@import url("./fonts.css");:root{--ink:#101010;--paper:#fffef8;--soft:#f4f3e7;--lime:#ceff00;--blue:#1267ff;--coral:#ff4d49;--lavender:#ded6ff;--line:2px solid var(--ink);--content:min(1160px,calc(100% - 48px));--heading:"Zen Kaku Gothic New","Zen Kaku Gothic Antique","Noto Sans JP",sans-serif;--body:"Noto Sans JP",sans-serif;--latin:"Figtree","Poppins",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--body);font-weight:500;line-height:1.85;overflow-x:hidden}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}:focus-visible{outline:4px solid var(--blue);outline-offset:4px}.skip-link{position:fixed;left:16px;top:-70px;z-index:99;background:var(--lime);border:var(--line);padding:10px 16px}.skip-link:focus{top:12px}.container{width:var(--content);margin-inline:auto}.section{padding:92px 0}.section.soft{background:var(--soft);border-block:var(--line)}.eyebrow{margin:0 0 9px;color:var(--blue);font-family:var(--latin);font-size:.75rem;font-weight:800;letter-spacing:.12em}.section-title{max-width:760px;margin-bottom:34px}.section-title h2,.page-title h1{margin:0;font-family:var(--heading);font-size:clamp(2.1rem,4.5vw,4.5rem);line-height:1.12;letter-spacing:-.04em;font-weight:900}.section-title p:last-child{margin-top:16px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-width:210px;padding:14px 17px;border:var(--line);background:var(--lime);box-shadow:4px 4px 0 var(--ink);font-weight:800}.button:hover{background:#dbff3a}.button.secondary{background:#fff}.button-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.site-header{position:sticky;top:0;z-index:50;min-height:78px;background:rgba(255,254,248,.98);border-bottom:var(--line);display:flex;align-items:center}.header-inner{width:min(1320px,calc(100% - 40px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{display:flex;flex-direction:column;line-height:1}.logo strong{font-family:var(--heading);font-size:1.45rem;font-weight:900}.logo small{margin-top:7px;font-family:var(--latin);font-size:.58rem;font-weight:800;letter-spacing:.13em}.desktop-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);font-size:.84rem;font-weight:700}.desktop-nav a{padding:25px 0}.desktop-nav a:hover,.desktop-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:var(--lime);text-underline-offset:6px}.header-cta{padding:12px 16px;background:var(--ink);color:#fff}.menu-button{display:none;width:52px;height:52px;border:0;background:var(--lime);align-items:center;justify-content:center;flex-direction:column;gap:6px}.menu-button span{width:24px;height:2px;background:var(--ink)}.mobile-nav{display:none;position:fixed;z-index:40;inset:78px 0 auto;background:var(--paper);border-bottom:var(--line);padding:20px}.mobile-nav.is-open{display:grid}.mobile-nav a{padding:13px 4px;border-bottom:1px solid #bbb;font-weight:800}
.hero{display:grid;grid-template-columns:.82fr 1.18fr;min-height:660px;border-bottom:var(--line)}.hero-copy{padding:clamp(70px,8vw,120px) clamp(30px,6vw,90px);align-self:center}.hero h1{margin:0;font-family:var(--heading);font-size:clamp(3.3rem,6.8vw,6.6rem);line-height:1;letter-spacing:-.06em;font-weight:900}.hero h1 span{background:linear-gradient(transparent 68%,var(--lime) 68%)}.hero-copy>p:last-of-type{max-width:520px;margin:25px 0 0}.hero figure{margin:0;position:relative;min-width:0;border-left:var(--line)}.hero figure img{height:100%;object-fit:cover}.hero figcaption,.photo figcaption{position:absolute;right:16px;bottom:16px;max-width:calc(100% - 32px);background:#fff;border:var(--line);padding:6px 9px;font-size:.7rem}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.feature-card{border:var(--line);background:#fff}.feature-card figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-bottom:var(--line)}.feature-card img{height:100%;object-fit:cover}.feature-card div{padding:22px}.feature-card h3{font-family:var(--heading);font-size:1.4rem;line-height:1.35;margin:0 0 8px}.feature-card p{margin:0;font-size:.88rem}.faculty-list{display:grid;grid-template-columns:repeat(5,1fr);border:var(--line)}.faculty-card{border-right:var(--line);background:#fff}.faculty-card:last-child{border-right:0}.faculty-card figure{margin:0;aspect-ratio:3/4;overflow:hidden;border-bottom:var(--line)}.faculty-card img{height:100%;object-fit:cover}.faculty-card div{padding:17px 14px;min-height:160px}.faculty-card:nth-child(1) div{background:#f4f9d9}.faculty-card:nth-child(2) div{background:#e4ecff}.faculty-card:nth-child(3) div{background:#ffe8e5}.faculty-card:nth-child(4) div{background:#eee9ff}.faculty-card:nth-child(5) div{background:#e3f6ff}.faculty-card span{font-family:var(--latin);font-size:.68rem;font-weight:800}.faculty-card h3{font-family:var(--heading);font-size:1.05rem;line-height:1.4;margin:7px 0}.faculty-card p{font-size:.75rem;line-height:1.65;margin:0}
.cta{padding:70px 0;background:var(--blue);color:#fff;border-block:var(--line)}.cta-inner{width:var(--content);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:35px}.cta h2{font-family:var(--heading);font-size:clamp(2rem,4vw,4rem);line-height:1.15;margin:0}.cta .button{color:var(--ink);flex:0 0 auto}.page-title{padding:86px max(24px,calc((100vw - 1160px)/2));background:var(--soft);border-bottom:var(--line)}.page-title p:last-child{max-width:720px}.split{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}.photo{margin:0;position:relative;border:var(--line);min-width:0}.photo img{aspect-ratio:4/3;object-fit:cover}.split h2{font-family:var(--heading);font-size:clamp(2rem,4vw,3.6rem);line-height:1.2}.cards-3,.admission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.info-card{border:var(--line);padding:24px;background:#fff}.info-card:nth-child(2n){background:var(--lavender)}.info-card strong{display:block;color:var(--blue);font-family:var(--latin);font-size:2rem}.info-card h3{font-family:var(--heading);font-size:1.3rem;line-height:1.4}.faculty-detail{display:grid;grid-template-columns:.8fr 1.2fr;border:var(--line);margin-bottom:28px}.faculty-detail figure{margin:0;min-width:0;border-right:var(--line)}.faculty-detail img{height:100%;min-height:390px;object-fit:cover}.faculty-detail div{padding:34px}.faculty-detail h2{font-family:var(--heading);font-size:2rem;line-height:1.35}.faculty-detail ul{padding-left:1.2em}.oc-band{display:grid;grid-template-columns:1fr 1fr;border:var(--line)}.oc-band figure{margin:0;border-right:var(--line)}.oc-band img{height:100%;object-fit:cover}.oc-band div{padding:36px;background:var(--lime)}.oc-band h2{font-family:var(--heading);font-size:2.2rem;line-height:1.3}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:58px;align-items:start}.contact-note{padding:25px;background:var(--lime);border:var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.form-grid label{display:grid;gap:7px;font-weight:700}.form-grid label.full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:var(--line);border-radius:0;padding:12px;background:#fff}.form-grid textarea{min-height:145px;resize:vertical}.check-row{display:flex!important;flex-direction:row;align-items:flex-start;gap:10px!important}.check-row input{width:20px;margin-top:7px}.form-grid button,.form-status{grid-column:1/-1}.form-status{min-height:1.8em;font-weight:700}.form-status.error{color:#ad1414}.form-status.success{color:#075b39}.access-box{display:grid;grid-template-columns:1.1fr .9fr;border:var(--line)}.access-box figure{margin:0;border-right:var(--line)}.access-box img{height:100%;object-fit:contain}.access-box div{padding:32px;background:#e3f6ff}.admin-shell{max-width:1040px;margin:auto;padding:65px 24px}.admin-login,.inquiry-card{border:var(--line);padding:22px;margin-bottom:18px;background:#fff}.admin-login input{width:min(420px,100%);padding:12px;border:var(--line)}.admin-login button{padding:12px 18px;background:var(--lime);border:var(--line)}
.site-footer{padding:58px 0 24px;background:var(--ink);color:#fff}.footer-grid{width:var(--content);margin:auto;display:flex;justify-content:space-between;gap:50px}.footer-links{display:flex;gap:30px;flex-wrap:wrap}.footer-links a{display:block;margin-bottom:8px;font-size:.82rem}.disclaimer{width:var(--content);margin:42px auto 0;padding-top:20px;border-top:1px solid #555;color:#bbb;font-size:.72rem}.footer-bottom{width:var(--content);margin:16px auto 0;font-family:var(--latin);font-size:.68rem;color:#aaa}
@media(max-width:960px){.desktop-nav,.header-cta{display:none}.menu-button{display:flex}.hero{grid-template-columns:1fr}.hero figure{min-height:540px;border-left:0;border-top:var(--line)}.faculty-list{grid-template-columns:repeat(2,1fr)}.faculty-card{border-bottom:var(--line)}.faculty-card:nth-child(even){border-right:0}.faculty-card:last-child{grid-column:1/-1}.split,.contact-layout{grid-template-columns:1fr}.faculty-detail{grid-template-columns:1fr}.faculty-detail figure{border-right:0;border-bottom:var(--line)}}
@media(max-width:680px){:root{--content:min(100% - 32px,1160px)}.site-header{min-height:66px}.header-inner{width:calc(100% - 24px)}.logo strong{font-size:1.2rem}.logo small{font-size:.5rem}.menu-button{width:54px;height:64px;margin-right:-12px}.mobile-nav{top:66px}.hero{min-height:0}.hero-copy{padding:66px 20px 48px}.hero h1{font-size:clamp(3rem,15vw,4.7rem)}.hero figure{min-height:420px}.section{padding:68px 0}.feature-grid,.cards-3,.admission-grid{grid-template-columns:1fr}.faculty-list{grid-template-columns:1fr}.faculty-card,.faculty-card:nth-child(even){border-right:0}.faculty-card:last-child{grid-column:auto}.faculty-card figure{aspect-ratio:4/3}.page-title{padding:62px 20px}.split{gap:32px}.faculty-detail div{padding:24px}.faculty-detail img{min-height:280px}.oc-band,.access-box{grid-template-columns:1fr}.oc-band figure,.access-box figure{border-right:0;border-bottom:var(--line)}.form-grid{grid-template-columns:1fr}.form-grid label.full,.form-grid button,.form-status{grid-column:auto}.cta-inner,.footer-grid{flex-direction:column;align-items:flex-start}.footer-links{display:grid;grid-template-columns:1fr 1fr}}

/* 見出しの改行バランス調整(2026-09-05): 行末1〜2文字の孤立を防ぐ。100万版と同方式 */
h1, h2, h3, h4, figcaption {
  text-wrap: balance;
  word-break: auto-phrase;
}

/* 見出し直下の短いリード段落にも文節改行を適用(2026-09-05) */
.hero-copy > p:last-of-type,
.page-title p:last-child {
  word-break: auto-phrase;
}

/* 狭幅ではセクション見出しの手動<br>を無効化しbalanceに任せる。
   ヒーローh1(好きが、/学びを/飛び越える。)の改行は意図的な組みのため対象外 */
@media (max-width: 1099px) {
  main h2 br {
    display: none;
  }
}

/* 狭幅でヒーローh1の「飛び越える。」が折れて「る。」が孤立するのを防ぐ */
@media (max-width: 480px) {
  .hero h1 {
    font-size: 3.2rem;
  }
}

/* ============================================
   大画面対応(施主承認済み方針・学習塾方式A+B: 1800px以上)
   1799px以下は一切変更しない。ルート文字サイズを一段拡大し、
   remベースの文字をまとめてスケールさせ、主要コンテナを広げる。
   ============================================ */
@media (min-width: 1800px) {
  html {
    font-size: clamp(18px, 0.78vw, 20px);
  }

  :root {
    --content: min(90vw, 1160px);
  }

  .header-inner {
    width: min(90vw, 1320px);
  }
}
