@charset "UTF-8";

/* ============================================================ */
/* RESET */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font: inherit; font-size: 100%; vertical-align: baseline }
strong { font-weight: bold }
html { line-height: 1 }
ol, ul { list-style: none }
table { border-collapse: collapse; border-spacing: 0 }
caption, th, td { text-align: left; font-weight: normal; vertical-align: middle }
q, blockquote { quotes: none }
q:before, q:after, blockquote:before, blockquote:after { content: ""; content: none }
a img { border: none; transition: .6s }
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block }
body { font-family: var(--gothic); word-break: break-word; color: #535353 }
img { vertical-align: top }
body > span[style*="visibility: hidden"] { display: none !important }
main { display: block }
/* /RESET */
/* ============================================================ */

/* Common */
:root {
  --mp: "M PLUS 1p", meiryo, helvetica, arial, 'hiragino kaku gothic pro', 'ms pgothic', sans-serif;
  --gothic: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", meiryo, "ＭＳ Ｐゴシック", sans-serif;
  --mincho: "Sawarabi Mincho", 游明朝, YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", HG明朝E, "ＭＳ Ｐ明朝", serif;
}

.mp { font-family: var(--mp) }
.aa { transform: rotate(-0.03deg) }
span.aa {display: inline-block;}
.mincho { font-family: var(--gothic); word-break: break-word; color: #535353 }
.sin-mincho { font-family: var(--mincho) }

@media (min-width: 751px) {
  body {padding-top: 0 !important;}
  .sp_only { display: none !important }
}

@media (max-width: 750px) {
  .pc_only { display: none !important }
}
/* /Common */

/* Header */
#header {width: 1000px;padding: 0 15px 8px;margin: 0 auto;display: flex;justify-content: space-between;box-sizing: content-box;}
#header p { line-height: 1.75 }

#header_left {overflow: hidden;}
#header_description {font-size: 13px;line-height: 1.5384615384615384615384615384615;white-space: nowrap;overflow: hidden;margin: 0 30px 5px 0;text-overflow: ellipsis;width: 469px;}
#header_logo { display: inline-block; margin: 0; vertical-align: top; font-size: 15px }
#header_logo img { margin-bottom: 10px }
#header_thanks {display: block;font-family: var(--mincho);font-size: 21px;line-height: 1.2 !important;letter-spacing: -0.025em;width: fit-content;max-width: 95%;color: #d0120a;text-align: center;margin: -7px auto 0;position: relative;padding: 0 1em;}
#header_thanks::before, #header_thanks::after {content: "";position: absolute;top: 50%;height: 1px;background: #d0120a;width: 9999vw;}
#header_thanks::before {right: 100%;}
#header_thanks::after {left: 100%;}
#header_emblem { display: inline-block; margin: 0; vertical-align: top }

#header_resdv > .head { background: url(../img/cmn/header_mail.png) 15px center no-repeat #d91819; color: #fff; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 343px; height: 45px; padding: 15px 0 0 62px; font-size: 14px; display: block; line-height: 1; text-decoration: none; margin: 0 0 7px; position: relative }
#header_resdv > .head:after { content: ""; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; -webkit-transition: .6s; -o-transition: .6s; transition: .6s }
#header_resdv > .head:hover:after { background: rgba(255,255,255,.5) }
#header_resdv .freedial { margin: 0 0 7px; font-size: 10px }
#header_resdv .business_time { font-size: 12px; margin-bottom: 0 }
#header_resdv .business_time .head {display: inline-block;color: #000;background: #fff;padding: 0px 4px;margin: 0 5px 0 0;border: 1px solid #000;}
#header_resdv .business_time .detail { vertical-align: middle }

.head_btns {margin: 0 0 10px !important;display: flex;gap: 15px;}
.head_btns a { transition: all ease .3s }
.head_btns a:hover { opacity: .7 }
.head_btns.mb0 {margin-bottom: 0 !important;}

.header_logo_only #header_left, .header_logo_only #header_logo {width: 100%;text-align: center;display: block !important;}
.header_logo_only #header_logo img {width: 300px;}
#header.header_logo_only {padding: 15px 0 10px;}

.header_dial {font-family: var(--roboto);font-size: 42px;font-weight: bold;line-height: 1 !important;white-space: nowrap;margin: 0 !important;position: relative;top: -4px;}
.header_dial a {display: block;position: relative;padding-left: 36px;color: #050505 !important;text-decoration: inherit !important;}
.header_dial a::before {content: "";position: absolute;left: 0;top: 3px;width: 27px;height: auto;aspect-ratio: 115/150;background: url(../img/cmn/icon-dial.svg) center/100% 100% no-repeat;}
.header_dial--freedial a {padding-left: 58px;}
.header_dial--freedial a::before {background-image: url(../img/cmn/icon-freedial.svg);aspect-ratio: 228/150;width: 51px;top: 4px;}

@media (min-width: 751px) {
  #gn > ul > li.home > a:before { content: none }
  .head_siryo span { font-size: 17px; letter-spacing: 0.2em; padding-left: 20px }
  .head_siryo span:after { content: ""; display: inline-block; border: 7px solid transparent; border-left: 12px solid #fff; border-right: none; vertical-align: middle; position: relative; top: -1px; margin-left: 8px }
  #fn2 {display: none;}
}

@media (max-width: 750px) {
  #header { width: auto; padding: 0 5px }
  #header_sp { position: fixed; top: 0; left: 0; right: 0; z-index: 99999; background: #fff; padding: 0 5px }
  #header_description {margin: 0 -5px;background: #D91819;color: #fff;font-size: 10px;text-align: center;line-height: 15px;white-space: nowrap;overflow: hidden;-webkit-transition: .6s;-o-transition: .6s;transition: .6s;height: 15px;width: auto;}
  #header_sp .bottom {display: flex;justify-content: space-between;padding: 10px 0;transition: .6s;gap: 10px;}
  #header_logo {display: block;overflow: hidden;}
  #header_logo img {margin-bottom: 0;}
  #header_thanks {font-size: 13px;margin-top: 3px;}
  #header_spmenu {display: flex;justify-content: flex-end;gap: 5px;width: 145px;padding-top: 3px}
  #header_spmenu li {width: 43px;height: 43px;border: 1px solid #d91819;}
  #header_spmenu li + li { margin-left: 5px }
  #header_spmenu .menu { cursor: pointer }
  #header_sp.fixed { box-shadow: 0 0 3px #000 }
  #header_sp.fixed #header_description { height: 0 }
  #header_sp.fixed .bottom { padding: 3px 0 }
  #header_spmenu.nospmenu { width: calc(145px - 45px) }
}
/* /Header */

/* Global Navi */
#gn { background: url(../img/cmn/gn_bg.gif) repeat #525252 }
#gn > ul {display: flex;width: 1000px;margin: 0 auto;}
#gn > ul::after { content: ""; display: block; clear: both }
#gn > ul > li {width: calc((100% - 60px - 175px) / 6);height: 60px;position: relative;}
#gn > ul > li > a {display: block;position: relative;font-size: 14px;font-weight: 400;line-height: 1;text-decoration: none;text-align: center;color: #fff;white-space: nowrap;padding: 19px 0 27px;border-right: 1px solid #fff;}
#gn > ul > li:first-child a { border-left: 1px solid #fff }
#gn > ul > li.current > a { pointer-events: none }
#gn > ul > li > a:after { content: ""; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 100%; background: rgba(255,255,255,.3); -webkit-transition: .3s; -o-transition: .3s; transition: .3s }
#gn > ul > li > a:before {content: "";display: block;position: absolute;left: 50%;transform: translateX(-50%);bottom: 13px;border: 3px solid transparent;border-top: 6px solid #fff;border-bottom: none;}
#gn > ul > li > a:hover:after,
#gn > ul > li.current > a:after { bottom: 0% }
#gn > ul > li.home { width: 60px }
#gn > ul > li.home > a { padding: 18px 0 }
#gn > ul > li.about {width: 175px;}
#gn > ul > li.contact {width: 145px;}
#gn .sub {position: absolute;right: 0;top: 100%;background: url(../img/cmn/gn_bg.gif) repeat #525252;display: none;z-index: 1;min-width: 100%;list-style: none;}
#gn .sub > li + li > a { border-top: none }
#gn .sub > li > a { color: #fff; font-size: 14px; text-decoration: none; display: block; position: relative; padding: 10px; border: 1px solid #fff; white-space: nowrap }
#gn .sub > li.current > a { pointer-events: none }
#gn .sub > li > a:after { content: ""; display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 100%; background: rgba(255,255,255,.3); -webkit-transition: .3s; -o-transition: .3s; transition: .3s }
#gn .sub > li > a:hover:after,
#gn .sub > li.current > a:after { bottom: 0% }
#gn > ul.gn-new {
  --home-width: 60px;
  --about-width: 180px;
  --schedule-width: 130px;
  --campus-width: 120px;
  --contact-width: 150px;
}
#gn > ul.gn-new > li {width: calc((100% - var(--home-width) - var(--about-width) - var(--schedule-width) - var(--campus-width) - var(--contact-width)) / 4);}
#gn > ul.gn-new > li.home {width: var(--home-width);}
#gn > ul.gn-new > li.about {width: var(--about-width);}
#gn > ul.gn-new > .schedule {width: var(--schedule-width);}
#gn > ul.gn-new > .campus {width: var(--campus-width);}
#gn > ul.gn-new > li.contact {width: var(--contact-width);}

#fn {position: fixed;top: 60px;right: 0;-webkit-transition: .6s;-o-transition: .6s;transition: .6s;}
#fn li { -webkit-transition: .6s; -o-transition: .6s; transition: .6s; opacity: .7 }
#fn li:hover { opacity: 1 }
#fn.hidden { right: -94px }
.fn-login {margin-bottom: 10px;}

@media (max-width: 750px) {
  #fn {top: auto;bottom: 0;left: 0;overflow: hidden;font-size: 10px;}
  #fn.hidden {right: 0;bottom: -66px;}
  #fn li {margin: 0 !important;text-align: center;background: #d21718;width: 100%;height: 6.1em;}
  #fn li:nth-child(3) {background: #4f4f4e;border-color: #4f4f4e;}
  #fn li a {display: flex;justify-content: center;align-items: center;width: 100%;height: 100%;}
  #fn ul {display: flex;}
  #fn .fn-login {background: #fff;}
  #fn li:nth-child(2) {background: #4f4f4e;}
  #fn img {width: 11.7em;}
  #fn img[src*="fn_doc"] {width: 11.7em;}
  #fn img[src*="fn_inquire"] {width: 11.7em;}

  #gn { position: fixed; right: -35px; bottom: 0; width: 0; overflow: scroll; z-index: 99998; -webkit-transition: .6s; -o-transition: .6s; transition: .6s; border: 5px solid #333 !important; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box }
  #gn.visible { width: 100%; right: 0 }
  #gn > ul { width: auto; display: block }
  #gn > ul > li {display: block;float: none;height: auto;width: auto !important;}
  #gn > ul > li > a {width: auto;border: none;text-align: left;padding: 20px 15px 20px 35px !important;font-size: 16px;}
  #gn > ul > li > a:before { left: 10px; bottom: 24px; border: 6px solid transparent; border-left: 9px solid #fff; border-right: none }
  #gn > ul > li:first-child a { border-left: none }
  #gn > ul > li + li { border-top: 1px solid #aaa }
  #gn .sub {display: block !important;height: auto !important;position: static;padding: 0px 0 20px 0 !important;box-sizing: border-box;width: calc(100vw - 10px);background: none;overflow: visible !important;}
  #gn .sub > li > a {border: none;white-space: normal;line-height: 1.5;padding-left: 62px;}
  #gn .sub > li { position: relative }
  #gn .sub > li::before {content: "";display: block;position: absolute;left: 38px;top: 7px;border: 2px solid #fff;width: 12px;height: 12px;border-top: none;border-right: none;}
  #gn .sub > li::after {content: "";display: block;position: absolute;left: 38px;top: -23px;border-left: 2px solid #fff;height: 32px;}
  #gn .sub > li:first-child::after { height: 18px; top: -6px }
  #gn .link{  padding-right: 20px; background: url(../img/cmn/link.svg) right center/11px auto no-repeat; background-size: 13px;}

  #fn2 {position: fixed;z-index: 99997;width: 100%;table-layout: fixed;background: #d91819;transition: .6s;}
  #fn2 > ul {display: flex;justify-content: center;}
  #fn2 a {color: #fff;display: block;text-align: center;padding: 10px 15px;font-size: 16px;text-decoration: none;white-space: nowrap;}
}

@media (max-width: 480px) {
  #fn {font-size: 2.083333333333333vw;}
}

@media (min-width: 415px) and (max-width: 750px) {
  #header_logo img { max-width: 240px }
}

@media (max-width: 425px) {
  #header_logo img {max-width: 56.4705882352941vw;}
  #header_sp {padding: 0 1.17647058823529vw;}
  #header_sp .bottom {padding: 2.35294117647059vw 0;gap: 2.35294117647059vw;}
  #header_thanks {font-size: 3.05882352941176vw;margin-top: 0.705882352941177vw;}
  #header_spmenu {width: 34.1176470588235vw;padding-top: 0.705882352941177vw;gap: 1.17647058823529vw;}
  #header_spmenu li {width: 10.1176470588235vw;height: 10.1176470588235vw;margin: 0 !important;}
  #header_description {margin: 0 -1.17647058823529vw;}
}

@media (min-width: 375px) and (max-width: 424px) {
  #fn2 a {font-size: 14px;}
}

@media (max-width: 374px) {
  #fn2 a {font-size: 13px;padding: 10px 10px;}
}
/* /Global Navi */

/* Footer */
#pagetop { position: fixed; right: 8px; bottom: 20px; -webkit-transition: .6s; -o-transition: .6s; transition: .6s; z-index: 9999; opacity: .3; cursor: pointer }
#pagetop:hover { opacity: 1 }
#pagetop.hidden { right: -77px }

#resdv { background: #eee; padding: 0 0 15px; margin-top: 110px }
#resdv .inner { width: 1000px; margin: 0 auto }
#resdv p { line-height: 1.75 }
#resdv .head {--wing-w: 70px;background: #d91819;color: #fff;font-size: 25px;line-height: 1.2;width: 720px;max-width: calc(100% - 140px);min-height: var(--wing-w);margin: 0 auto;box-sizing: border-box;padding: 10px 0;position: relative;top: -20px;display: flex;justify-content: center;align-items: center;text-align: center;}
#resdv .head::before, #resdv .head::after {content: "";display: block;position: absolute;top: 0;bottom: 0;width: var(--wing-w);background: url(../img/cmn/red-triangle.svg) center/100% 100% no-repeat;}
#resdv .head::before {left: calc(var(--wing-w) * -1);}
#resdv .head::after {content: "";right: calc(var(--wing-w) * -1);transform: rotateY(180deg);}
#resdv .head a {color: inherit;text-decoration: inherit;}
#resdv .link:after { content: ""; display: block; clear: both }
:is(#resdv, .form_link__wrapper) .form_link { display: flex; justify-content: space-between; width: 585px; float: left }
:is(#resdv, .form_link__wrapper) .form_link > * {width: 290px;min-height: 60px;}
:is(#resdv, .form_link__wrapper) .form_link a {color: #fff;font-size: 16px;line-height: 1.2;text-decoration: none;display: flex;width: 100%;height: 100%;align-items: center;box-sizing: border-box;padding: 10px 5px 10px 80px;font-weight: 500;position: relative}
:is(#resdv, .form_link__wrapper) .form_link a:after { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; -webkit-transition: .6s; -o-transition: .6s; transition: .6s; pointer-events: none }
:is(#resdv, .form_link__wrapper) .form_link a:hover:after { background: rgba(255,255,255,.5) }
:is(#resdv, .form_link__wrapper) .doc a {background: #d91819;}
:is(#resdv, .form_link__wrapper) .taiken a {background: #535353;}
:is(#resdv, .form_link__wrapper) .file a {background: #535353;background-position: 20px center;}
:is(#resdv, .form_link__wrapper) .tel {float: left;border-left: 1px solid #a0a0a0;margin: 0 0 0 24px;padding: 0 0 0 25px;width: calc(1000px - 585px - 24px);box-sizing: border-box;}
.form_link > span {display: block;}
#resdv .pn { margin: 0 auto 14px; font-size: 10px }
#resdv .pn--txt {line-height: 1;white-space: nowrap;margin: 0 0 5px;}
#resdv .pn__txt {display: block;font-size: 50px;font-weight: bold;font-family: "Roboto", "Yu Gothic", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Meiryo", sans-serif;}
#resdv .uketuke { font-size: 13px; line-height: 1; font-weight: bold; margin: 0 }
#resdv .hosoku { text-align: center; font-size: 16px; font-weight: 500; margin: 19px auto 0 }
:is(#resdv, .form_link__wrapper) .doc a::before {left: 20px;width: 45px;height: auto;aspect-ratio: 45/33;background-image: url(../img/cmn/resdv_doc.png);}
:is(#resdv, .form_link__wrapper) .form_link a::before {content: "";position: absolute;top: 50%;transform: translateY(-50%);background-position: center;background-size: 100% 100%;background-repeat: no-repeat;}
:is(#resdv, .form_link__wrapper) .taiken a::before {left: 24px;width: 34px;height: auto;aspect-ratio: 34/35;background-image: url(../img/cmn/resdv_taiken.png);}
:is(#resdv, .form_link__wrapper) .file a::before {left: 24px;width: 34px;height: auto;aspect-ratio: 130/150;background-image: url(../img/cmn/icon-file-white.svg);}
.form_link__wrapper {margin-top: 12px;}
.form_link__wrapper .form_link {width: auto !important;}

.cs_resdv .hosoku {margin: -10px 0 3px !important;position: relative;font-size: 14px !important;color: #000 !important;}
.cs_resdv .form_link {width: 100% !important;justify-content: center !important;gap: 10px !important;}
.cs_resdv .form_link li {min-height: 66px !important;}
.cs_resdv .form_link a {font-size: 18px !important;}

#footer { background: #d0120c }
#footer .inner { width: 1000px; margin: 0 auto; padding: 31px 0 0 0 }
#footer p { line-height: 1.75 }
#footer_content { display: flex; justify-content: space-between }
#footer .logo {border-bottom: 1px solid #fff;padding: 0 23px 11px 0;margin: 0 0 14px;font-size: 16px;text-align: left;}
#footer .address { color: #fff; font-size: 16px; line-height: 1; margin: 0 0 15px }
#footer .tel { line-height: 1; margin: 0 auto 4px; font-size: 16px }
#footer_content .tel small {color: #fff;font-size: 14px;}
#footer .tel__option_text {font-size: 16px;font-weight: normal;line-height: 1.4;color: #fff;margin-top: 10px;}
#footer .tel__option_text a {color: inherit;}
#footer .tel__option_text a:hover {text-decoration: none;}
#footer_content .tel a {color: #fff;text-decoration: none;font-size: 45px;font-weight: 500;}
#footer .uketuke { font-size: 15px; color: #fff; margin: 0 }
#footer .shouhyou { width: 442px; margin: 7px 0 0; background: rgba(255,255,255,.8); border: 1px solid rgba(184, 184, 184, .8); padding: 16px 12px 10px 16px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box }
#footer .shouhyou .head { color: #3e3a39; font-size: 18px; font-weight: 800; line-height: 1; margin: 0 0 10px }
#footer .shouhyou p { font-size: 15px; line-height: 1.5; margin: 0 }
#footer .shouhyou ul { font-size: 15px; line-height: 1.5 }

#copyright { text-align: center; font-size: 14px; line-height: 1; color: #fff; margin: 38px 0 0; padding: 0 0 14px }

.cw_only #copyright {padding: 14px 0;}

.footer_dial a {background: none !important;position: relative;padding-left: 37px !important;}
.footer_dial a::before {content: "";position: absolute;top: 10px;left: 0;width: 24px;height: auto;aspect-ratio: 115/150;background: url(../img/cmn/icon-dial-white.svg) center/100% 100% no-repeat;}
.footer_dial--freedial a {padding-left: 56px !important;}
.footer_dial--freedial a::before {background-image: url(../img/cmn/icon-freedial-white.svg);aspect-ratio: 228/150;width: 45px;top: 11px;}

.footer-sns {display: flex;gap: 15px;margin-top: 10px;}

@media (max-width: 750px) {
  #resdv { padding: 0 }
  #resdv .inner { width: auto; padding: 25px 15px }
  #resdv .head {width: auto;max-width: 100%;font-size: 20px;top: auto;background: url(../img/cmn/resdv_headbg_sp.png) no-repeat;background-size: 100% 100%;padding: 5px 10%;margin: 0 auto 25px}
  #resdv .head:before { content: none }
  #resdv .head:after { content: none }
  #resdv .hosoku { margin: 3px auto 0 }
  #resdv .tel {float: none;margin: 0 auto 20px;padding: 0;border: none;width: auto;}
  #resdv .pn { margin: 0 auto 5px; text-align: center }
  #resdv .uketuke { text-align: center; line-height: 1.4 }

  #resdv .form_link {flex-direction: column;float: none;gap: 10px;margin: auto;max-width: 100%;align-items: center;}
  #resdv .doc a::before {background-image: url(../img/cmn/resdv_doc_sp.png);width: 32.5px;height: 25px;}
  #resdv .taiken a::before {background-image: url(../img/cmn/resdv_taiken_sp.png);width: 25.5px;height: 25px;}

  #pagetop { width: 45px; bottom: 70px }

  #footer .inner { width: auto; padding: 15px }
  #footer_content { display: block }
  #footer .tel { text-align: center }
  #footer .uketuke { font-size: 10px; text-align: center }
  #footer_content .tel a {font-size: 32px;padding: 2px 0 0 0;}
  #footer .shouhyou { width: auto; padding: 12px }
  #footer .shouhyou ul { display: table; margin: 10px auto 0 }
  #footermenu { display: flex; justify-content: space-between; margin: 10px auto 0 }
  #footermenu li { width: 49%; background: #fff; padding: 5px 10px; box-sizing: border-box; text-align: center; font-size: 14px; line-height: 1.4 }
  #footerleft { margin: 30px auto 0 }
  #footer .logo { padding: 0 5px 8px; text-align: center; margin: 0 auto 8px }
  #footer .address { font-size: 10px; text-align: center; margin: 0 auto 8px }
  #copyright { font-size: 10px; margin: 0 auto 0; padding: 0 0 5px }

  .footer_dial a::before {width: 18px;}
  .footer_dial a {padding-left: 26px !important;}

  #footer .tel__option_text {font-size: 12px;text-align: center;}

  .footer-sns {justify-content: center;margin-bottom: 20px;}
}

@media ( max-width: 480px ) {
  .cs_resdv .head {font-size: 16px !important;}
}

@media (max-width: 375px) {
  :is(#resdv, .form_link__wrapper) .form_link > * {width: 100%;}
  :is(#resdv, .form_link__wrapper) .form_link a {padding-right: 20px;}
}
/* /Footer */

/* List Dot */
.list_dot li { position: relative; padding-left: 1em }
.list_dot li:before { content: "\0030fb"; position: absolute; left: 0 }
/* /List Dot */
