@charset "UTF-8";
/* =====================================================================
   夏期講習LP  style.css
   和文 : DNP 秀英丸ゴシック Std (Adobe Fonts / kitId: bni8qvb)
          family = "dnp-shuei-mgothic-std"   L = 400 / B = 600
   見出し数字 : LTC Caslon Pro (Adobe Fonts / 同 kit)
          family = "ltc-caslon-pro"          Regular/Italic = 400 / Bold = 700
   欧文(数字強調) : Helvetica LT Std (Adobe Fonts / 同 kit)
          family = "helvetica-lt-std"        Bold = 700 / Italic 対応
   ===================================================================== */

/* ========== RESET & BASE ========== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{
  font-family:var(--jp);
  font-weight:400;            /* 秀英丸ゴシック L */
  color:#3a3a3a;line-height:1.95;background:#fff;overflow-x:hidden;
  font-synthesis:none;        /* 和文への擬似ボールド/イタリックを抑止 */
}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}

/* ========== TOKENS ========== */
:root{
  --navy:#000064;--pink:#E73A77;--pink-hover:#d12e6a;
  --cyan:#00A5E3;--sky:#e8f6fb;--sky-2:#eaf4fb;
  --ink:#3a3a3a;--ink-soft:#6a6a6a;--line:#e3e3e3;
  --dark:#3f3d3c;--gray-bg:#f6f6f6;--yellow:#ffffb4;--promo-yellow:#ffff83;
  /* 和文：秀英丸ゴシック → Noto Sans JP → ヒラギノ丸ゴ */
  --jp:"dnp-shuei-mgothic-std","Noto Sans JP","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif;
  /* 欧文ディスプレイ（数字・英語ラベル）：Caslon。万一の和文は秀英へ */
  --serif:"ltc-caslon-pro","dnp-shuei-mgothic-std","Noto Sans JP",serif;
  /* Helvetica（数字強調用）：Adobe Fonts → システム → 和文フォールバック */
  --helv:"helvetica-lt-std","Helvetica Neue","Helvetica","Arial","dnp-shuei-mgothic-std","Noto Sans JP",sans-serif;
  --max:1120px;
}
.inner{max-width:var(--max);margin:0 auto;padding:0 40px;}
/* SP専用改行ヘルパー（PCでは無効化） */
.sp-br{display:none;}

/* ========== SECTION HEADINGS ========== */
.sec-eyebrow{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--pink);font-size:1.7rem;text-align:center;letter-spacing:.02em;}
.sec-pad{padding:90px 0;}

/* ========== CTA BUTTON ========== */
.cta-pill{
  display:block;width:100%;max-width:620px;margin:0 auto;
  background:var(--pink);color:#fff;font-weight:600;font-size:1.25rem;
  text-align:center;padding:20px 24px;border-radius:999px;letter-spacing:.04em;
  box-shadow:0 10px 24px rgba(231,58,119,.28);transition:transform .2s,background .2s;
}
.cta-pill:hover{background:var(--pink-hover);transform:translateY(-2px);}
.cta-note{text-align:center;color:var(--ink-soft);font-size:.72rem !important;margin-top:14px;letter-spacing:.02em;}

/* ========== HEADER ========== */
.header{position:fixed;top:0;left:0;width:100%;background:#fff;z-index:1000;border-bottom:3px solid var(--pink);box-shadow:0 1px 6px rgba(0,0,0,.05);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1280px;margin:0 auto;padding:12px 28px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand img {width: 150px;}
.brand-mark{width:26px;height:26px;border-radius:50%;border:3px solid var(--cyan);border-right-color:var(--pink);border-bottom-color:var(--pink);}
.brand-name{font-family:var(--serif);font-weight:400;font-size:1.6rem;color:#1a5fb4;letter-spacing:.01em;}
.brand-sub{font-size:.62rem;color:var(--ink-soft);letter-spacing:.18em;display:block;line-height:1;margin-top:2px;}
.gnav{display:flex;align-items:center;gap:22px;}
.gnav a{font-size:.84rem;color:#333;font-weight:400;position:relative;white-space:nowrap;}
.gnav a:not(.header-cta)::before{content:"›";color:var(--cyan);margin-right:5px;font-weight:600;}
.gnav a:not(.header-cta):hover{color:var(--pink);}
.header-cta{display:flex;align-items:center;gap:8px;background:var(--pink);color:#fff;font-weight:600;padding:9px 18px;border-radius:999px;font-size:.82rem;}
.header-cta .free-badge{background:#fff;color:var(--pink);font-size:.62rem;font-weight:600;padding:2px 6px;border-radius:4px;}
.header-cta::before{display:none;}
.menu-toggle{display:none;}
a.header-cta{color:#fff;}

/* ========== HERO ========== */
.hero{padding-top:88px;}
.hero-main{max-width:1240px;margin:0 auto;padding:40px 40px 30px;display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center;}
.hero-copy h1{font-size:3.7rem;font-weight:300;line-height:1.3;color:#2b2b2b;letter-spacing:.01em;font-family:"Noto Sans JP","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif;}
.hero-copy-img{margin:0;line-height:0;}
.hero-copy-img img{display:block;width:100%;max-width:520px;height:auto;}
.hero-strike{position:relative;display:inline-block;}
.hero-strike::after{content:"";position:absolute;left:-4%;top:54%;width:108%;height:5px;background:var(--pink);transform:rotate(-8deg);}
.hero-accent{color:var(--pink);}
.hero-lead{margin-top:24px;font-size:0.98rem;color:#555;font-weight:400;}
.hero-lead b{color:var(--pink);font-weight:600;}
.hero-callout{position:relative;margin-top:22px;--cut:15px;border:1px solid #cfcfcf;padding:14px 22px 14px 18px;font-weight:600;font-size:.96rem;color:#333;background:linear-gradient(transparent 60%,var(--yellow) 60%);width:fit-content;max-width:100%;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);}
.hero-callout::after{content:"";position:absolute;top:0;right:0;width:var(--cut);height:var(--cut);background:#dcdcdc;clip-path:polygon(0 0,100% 0,100% 100%);}
.hero-badges{display:block;margin-top:30px;}
.hero-badges img{display:block;width:100%;max-width:350px;height:auto;}
.hero-badge{width:104px;height:104px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1.4rem;box-shadow:0 8px 18px rgba(0,0,0,.16);}
.hero-badge.b1{background:var(--pink);}
.hero-badge.b2{background:var(--cyan);}
.hero-badge.b3{background:var(--navy);}
.hero-photos{display:block;}
.hero-photos img{display:block;width:100%;height:auto;border-radius:8px;}

.hero-promo{background:var(--dark);color:#fff;}
.hero-promo-inner{max-width:1240px;margin:0 auto;padding:42px 40px;display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:center;}
.promo-left{display:flex;align-items:center;gap:20px;flex-wrap:nowrap;}
.promo-tag{display:inline-block;background:#fff;color:#3a3a3a;border:1px solid #fff;font-size:.78rem;padding:3px 10px;font-weight:600;letter-spacing:.02em;}
.promo-deadline{font-weight:400;font-size:.95rem;color:#e7e7e7;white-space:nowrap;}
.promo-date{font-family:var(--helv);font-style:italic;font-weight:700;font-size:3.6rem;line-height:1;letter-spacing:.01em;font-synthesis:style;white-space:nowrap;}
.promo-date small{font-size:1.15rem;font-style:normal;font-family:var(--jp);font-weight:400;letter-spacing:0;}
.promo-arrow{color:var(--promo-yellow);font-size:2rem;line-height:1;flex-shrink:0;}
.promo-off{text-align:center;flex-shrink:0;}
.promo-off .lbl{font-size:1.2rem;color:var(--promo-yellow);font-weight:600;letter-spacing:.04em;}
.promo-off .big{font-family:var(--helv);font-style:italic;font-weight:700;font-size:3.6rem;color:var(--promo-yellow);line-height:1;letter-spacing:.01em;font-synthesis:style;white-space:nowrap;}
.promo-list{display:flex;flex-direction:column;gap:12px;}
.promo-item{display:flex;gap:10px;font-size:.86rem;font-weight:400;}
.promo-item .dot{color:var(--cyan);font-size:1rem;line-height:1.4;}
.promo-item b{color:#fff;font-weight:600;}
.promo-item .pink{color:var(--pink);font-weight:600;font-size: 1.2rem;line-height: 1;}
.promo-cta{display:inline-block;margin-top:6px;background:var(--pink);color:#fff;font-weight:600;padding:12px 28px;border-radius:999px;font-size:.95rem;}
.promo-cta:hover{background:var(--pink-hover);}

/* ========== TRIAL ========== */
.trial{text-align:center;padding:80px 0;}
.trial p{font-size:1.18rem;font-weight:600;color:#444;margin-bottom:14px;}
.trial p.lead2{font-size:1.32rem;}
.trial .pink{color:var(--pink);}
.trial p.small{font-size:1rem;font-weight:400;color:#555;margin-top:8px;}
.trial-flow{display:flex;align-items:center;justify-content:center;gap:26px;margin:46px 0 40px;flex-wrap:wrap;}
.trial-min{width:160px;height:160px;border-radius:50%;background:var(--yellow);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.trial-min b{font-family:var(--helv);font-style:italic;font-weight:500;font-size:3.4rem;color:#444;line-height:1;font-synthesis:style;letter-spacing:.01em;}
.trial-min span{font-family:var(--helv);font-style:italic;font-weight:700;font-size:1.15rem;color:#444;font-synthesis:style;letter-spacing:.02em;margin-top:2px;}
.trial-flow .plus{font-size:1.8rem;color:#bbb;font-weight:400;}
.trial-item{font-size:1.05rem;font-weight:600;color:#444;line-height:1.5;}

/* ========== TROUBLE ========== */
.trouble{background:var(--sky);padding:84px 0;}
.trouble h2{font-size:2.3rem;font-weight:600;color:#3a3a3a;letter-spacing:.04em;margin-bottom:40px;}
.trouble-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.trouble-card{background:#f2f2f2;border-radius:12px;padding:30px 26px;box-shadow:0 6px 14px rgba(0,0,0,.06);position:relative;}
.trouble-card .num{position:absolute;top:22px;right:24px;font-family:var(--serif);font-style:italic;font-weight:700;color:var(--cyan);font-size:1.9rem;}
.trouble-icon{width:54px;height:54px;margin-bottom:16px;color:#333;}
.trouble-card h3{font-size:1.18rem;font-weight:600;color:#333;line-height:1.5;margin-bottom:12px;}
.trouble-card p{font-size:.88rem;color:#666;line-height:1.9;font-weight:400;}
.trouble-foot{text-align:center;margin-top:42px;font-size:1.3rem;font-weight:600;color:#444;line-height:1.7;}
.trouble-foot .pink{color:var(--pink);font-size:1.5rem;}

/* ========== STEPS ========== */
.steps{padding:80px 0;}
.steps-eyebrow{margin-bottom:36px;}
.steps-grid{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:start;gap:0 14px;}
.step-card{background:#f3f3f3;border-radius:14px;padding:24px 22px 28px;box-shadow:0 2px 6px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.04);}
.step-top{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.step-num{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--pink);font-size:2.4rem;line-height:1;}
.step-badge{background:var(--cyan);color:#fff;font-size:.72rem;font-weight:600;padding:5px 12px;border-radius:999px;letter-spacing:.02em;}
.step-photo{border-radius:8px;overflow:hidden;background:var(--sky);aspect-ratio:16/10;margin-bottom:16px;}
.step-photo img{width:100%;height:100%;object-fit:cover;}
.step-cal{background:#fff;border:1px solid #e0e0e0;border-radius:8px;height:100%;display:flex;font-size:.5rem;}
.step-cal .cal-l{flex:1;padding:8px;border-right:1px solid #eee;}
.step-cal .cal-r{flex:1;padding:10px 8px;}
.step-cal .cal-row{height:8px;background:#f0f0f0;border-radius:2px;margin-bottom:3px;}
.step-cal .cal-pick{background:var(--cyan);color:#fff;text-align:center;border-radius:3px;padding:3px;margin-bottom:4px;font-size:.55rem;}
.step-card h3{font-size:1.18rem;font-weight:600;color:#333;margin-bottom:10px;}
.step-card p{font-size:.85rem;color:#666;line-height:1.9;font-weight:400;}
.step-arrow{align-self:center;color:var(--pink);font-size:1.4rem;padding-top:40px;}

/* ========== PLAN ========== */
.plan{padding:80px 0;}
.plan h2{font-size:2.2rem;font-weight:600;color:#3a3a3a;line-height:1.4;margin-bottom:20px;}
.plan-lead{font-size:.95rem;color:#555;font-weight:400;}
.plan-lead .off{color:var(--pink);font-weight:600;}
.plan-lead .off b{font-size:1.05rem;}
.plan-table{border:1px solid #e0e0e0;border-radius:6px;overflow:hidden;margin-top:34px;}
.plan-tier{padding:26px 30px;border-bottom:1px solid #ececec;}
.plan-tier:last-child{border-bottom:none;}
.plan-tier.dark{background:var(--dark);color:#fff;}
.plan-tier-label{text-align:center;font-size:.95rem;color:var(--pink);font-weight:600;margin-bottom:20px;letter-spacing:.02em;}
.plan-tier-label .desc{color:#3a3a3a;font-weight:400;}
.plan-tier.dark .plan-tier-label{color:var(--pink);}
.plan-tier.dark .plan-tier-label .desc{color:#e0e0e0;}
.plan-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.plan-cell{border-top:1px dotted #cfcfcf;padding-top:10px;}
.plan-tier.dark .plan-cell{border-top-color:#6a6a6a;}
.plan-cell .cnt{font-size:.86rem;color:#777;font-weight:400;margin-bottom:4px;}
.plan-tier.dark .plan-cell .cnt{color:#cfcfcf;}
.plan-cell .price{font-size:1.7rem;font-weight:600;color:var(--pink);line-height:1.1;}
.plan-cell .was{font-size:.78rem;color:#aaa;text-decoration:line-through;}
.plan-tier.dark .plan-cell .was{color:#9a9a9a;}
.plan-wide{display:flex;align-items:baseline;justify-content:center;gap:14px;}
.plan-wide .cnt{font-size:.92rem;color:#777;font-weight:400;}
.plan-wide .price{font-size:2rem;font-weight:600;color:var(--pink);}
.plan-wide .was{font-size:.78rem;color:#aaa;text-decoration:line-through;}
.plan-flex{background:var(--dark);color:#fff;border-radius:8px;text-align:center;padding:26px 30px;margin-top:26px;}
.plan-flex h3{font-size:1.25rem;font-weight:600;margin-bottom:12px;letter-spacing:.02em;}
.plan-flex p{font-size:.88rem;color:#e0e0e0;line-height:1.9;font-weight:400;}
.plan-flex u{text-decoration-color:var(--pink);text-underline-offset:4px;}

/* ========== SCHOOL ========== */
.school{padding:80px 0;}
.school-head{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:center;margin-bottom:48px;}
.school-head h2{font-size:2.4rem;font-weight:600;color:#3a3a3a;line-height:1.5;}
.school-head p{font-size:.95rem;color:#555;line-height:2;font-weight:400;}
.school-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 22px;}
.sc{display:flex;flex-direction:column;}
.sc-photo{border-radius:6px;overflow:hidden;background:var(--sky);aspect-ratio:3/2;margin-bottom:12px;}
.sc-photo img{width:100%;height:100%;object-fit:cover;}
.sc-name{font-size:1.22rem;font-weight:600;color:#333;margin-bottom:6px;}
.sc-catch{font-size:.88rem;font-weight:600;color:#444;margin-bottom:8px;}
.sc-desc{font-size:.76rem;color:#777;line-height:1.85;margin-bottom:auto;font-weight:400;}
.sc-cta{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--cyan);color:#fff;font-weight:600;font-size:.86rem;padding:11px 14px;border-radius:999px;margin-top:16px;}
.sc-cta:hover{filter:brightness(.95);}

/* ========== 92 (WHY) ========== */
.why{padding:90px 0;}
.why-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:center;}
.why h2{font-size:2.6rem;font-weight:600;color:#3a3a3a;line-height:1.6;}
.why .ul{border-bottom:3px solid var(--pink);padding-bottom:2px;}
.why-stat{text-align:left;}
.why-stat .big{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--pink);font-size:8rem;line-height:.9;}
.why-stat .big small{font-size:3rem;font-weight:400;}
.why-stat p{font-size:.86rem;color:#666;margin-top:10px;line-height:1.7;font-weight:400;}

/* ========== REASONS ========== */
.reasons{background:var(--sky);padding:84px 0;}
.reasons-title{text-align:center;font-size:2.1rem;font-weight:600;color:#3a3a3a;line-height:1.6;margin-bottom:54px;}
.reason{margin-bottom:70px;}
.reason:last-child{margin-bottom:0;}
.reason-head .num{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--pink);font-size:4.6rem;line-height:1;}
.reason-r1{display:block;}
.reason-r1 .reason-head{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center;margin-bottom:38px;}
.reason-r1 h3{font-size:1.7rem;font-weight:600;color:#333;line-height:1.5;margin-top:6px;}
.reason-r1 .reason-text{font-size:.92rem;color:#555;line-height:2;font-weight:400;}
.teacher-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.tc{background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 6px 16px rgba(0,0,0,.06);}
.tc-photo{aspect-ratio:1/1;background:var(--sky-2);position:relative;}
.tc-photo img{width:100%;height:100%;object-fit:cover;}
.tc-loves{position:absolute;left:0;bottom:0;background:rgba(255,255,255,.92);font-size:.6rem;color:#666;padding:4px 8px;}
.tc-loves b{color:#888;font-weight:600;display:block;font-size:.55rem;}
.tc-body{padding:18px 18px 22px;}
.tc-uni{font-size:.74rem;color:#777;font-weight:400;}
.tc-name{font-size:1.3rem;font-weight:600;color:#333;margin:2px 0 6px;}
.tc-cert{font-size:.8rem;color:var(--pink);font-weight:600;margin-bottom:10px;}
.tc-bg{font-size:.72rem;color:#777;line-height:1.7;padding-bottom:10px;border-bottom:1px solid #eee;margin-bottom:10px;font-weight:400;}
.tc-quote{font-size:.72rem;color:#777;line-height:1.8;font-weight:400;}
.reason-split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.reason-split h3{font-size:1.6rem;font-weight:600;color:#333;line-height:1.5;margin:10px 0 16px;}
.reason-split p{font-size:.9rem;color:#555;line-height:2;font-weight:400;}
.reason-split .pink{color:var(--pink);}
.reason-photo{border-radius:8px;overflow:hidden;background:var(--sky-2);/*aspect-ratio:3/2;*/}
.reason-photo img{width:100%;height:100%;object-fit:cover;}
/* 4技能サイクル */
.cycle{position:relative;width:340px;height:340px;margin:0 auto;border-radius:50%;background:#fdfbf0;display:flex;align-items:center;justify-content:center;}
.cycle-core{width:150px;height:150px;border-radius:50%;border:2px dashed #d8d2b8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.cycle-core b{font-family:var(--serif);font-style:italic;font-size:2.6rem;color:#444;line-height:1;font-weight:700;}
.cycle-core span{font-size:.8rem;color:#555;font-weight:600;margin-top:4px;}
.cycle-node{position:absolute;text-align:center;width:140px;}
.cycle-node .en{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--pink);font-size:1.05rem;}
.cycle-node .jp{font-size:1rem;font-weight:600;color:#333;}
.cycle-node .ds{font-size:.62rem;color:#888;font-weight:400;}
.cycle-node.top{top:24px;left:50%;transform:translateX(-50%);}
.cycle-node.right{top:50%;right:8px;transform:translateY(-50%);}
.cycle-node.bottom{bottom:24px;left:50%;transform:translateX(-50%);}
.cycle-node.left{top:50%;left:8px;transform:translateY(-50%);}

/* ========== CHANGE ========== */
.change-stats{background:var(--dark);}
.change-stats-inner{max-width:var(--max);margin:0 auto;padding:34px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.cstat{border:1px solid var(--pink);border-radius:4px;text-align:center;padding:20px;}
.cstat .big{font-family:var(--helv);font-style:italic;font-weight:700;color:var(--pink);font-size:3.6rem;line-height:1;font-synthesis:style;}
.cstat .big small{font-size:1.4rem;font-weight:400;color:#fff;}
.cstat .ttl{color:#fff;font-weight:600;font-size:1.05rem;margin-top:8px;}
.cstat .sub{color:#c7c7c7;font-size:.78rem;font-weight:400;}
.change{padding:70px 0 90px;}
.change h2{font-size:2.4rem;font-weight:600;color:#3a3a3a;margin-bottom:44px;letter-spacing:.02em;}
.voice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 56px;}
.voice{border-top:1px solid #cfcfcf;padding:26px 0;}
.voice h4{font-family:var(--jp);color:var(--cyan);font-size:1.2rem;font-weight:600;margin-bottom:14px;font-style:italic;font-synthesis:style;}
.voice p{font-size:.9rem;color:#555;line-height:1.95;font-weight:400;}
.voice .who{font-size:.76rem;color:#999;margin-top:12px;font-weight:400;}
.voice-mini-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid #cfcfcf;padding-top:26px;margin-top:10px;}
.voice-mini h5{font-family:var(--jp);color:var(--cyan);font-size:.92rem;font-weight:600;margin-bottom:10px;font-style:italic;font-synthesis:style;}
.voice-mini p{font-size:.84rem;color:#555;line-height:1.9;font-weight:400;}
.voice-mini .who{font-size:.72rem;color:#999;margin-top:10px;font-weight:400;}

/* ========== FAQ ========== */
.faq{background:var(--gray-bg);padding:80px 0;}
.faq-inner{display:grid;grid-template-columns:1fr 2fr;gap:50px;}
.faq-head h2{font-size:2.3rem;font-weight:600;color:#3a3a3a;line-height:1.5;margin-bottom:18px;}
.faq-head p{font-size:.86rem;color:#777;line-height:1.9;font-weight:400;}
.faq-item{border-bottom:1px solid #e2e2e2;}
.faq-q{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;padding:22px 4px;font-family:inherit;}
.faq-q .qt{font-size:1.02rem;font-weight:600;color:#333;}
.faq-q .qt b{color:#333;margin-right:6px;}
.faq-q .ic{color:var(--pink);font-size:1.4rem;font-weight:400;transition:transform .3s;flex-shrink:0;}
.faq-item.open .faq-q .ic{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-a-in{padding:0 4px 24px;font-size:.9rem;color:#666;line-height:1.95;font-weight:400;}

/* ========== CLOSING + FOOTER ========== */
.closing{padding:80px 0 70px;text-align:center;}
.closing-eyebrow{margin-bottom:20px;}
.closing h2{font-size:2.2rem;font-weight:600;color:#3a3a3a;line-height:1.6;margin-bottom:50px;letter-spacing:.02em;}
.closing .steps-grid{margin-bottom:50px;text-align:left;}
.footer{background:var(--dark);color:#fff;text-align:center;padding:34px 20px;}
.footer-links{display:flex;gap:40px;justify-content:center;font-size:.9rem;margin-bottom:18px;font-weight:400;}
.footer-links a:hover{color:var(--pink);}
.footer-copy{font-size:.74rem;color:#c0c0c0;font-weight:400;}

/* ========== FIXED CTA ========== */
.fixed-cta{position:fixed;left:0;bottom:0;width:100%;background:rgba(255,255,255,.98);box-shadow:0 -4px 12px rgba(0,0,0,.10);padding:12px 0;z-index:900;transform:translateY(120%);transition:transform .4s;}
.fixed-cta.show{transform:translateY(0);}
.fixed-cta-inner{display:flex;align-items:center;justify-content:center;gap:20px;max-width:1100px;margin:0 auto;padding:0 20px;}
.fixed-cta-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--pink);color:#fff;font-weight:600;padding:14px 30px;border-radius:999px;font-size:1.05rem;white-space:nowrap;flex-shrink:0;transition:background .2s;}
.fixed-cta-btn:hover{background:var(--pink-hover);}
.fixed-cta .free-badge{background:#fff;color:var(--pink);font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:999px;}
.fixed-cta-steps{display:flex;align-items:center;gap:7px;}
.fc-step{display:flex;align-items:stretch;border:1px solid #d6d6d6;border-radius:3px;overflow:hidden;background:#fff;}
.fc-step-no{background:#6a6a6a;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 8px;line-height:1.05;}
.fc-step-no i{font-style:normal;font-size:.5rem;letter-spacing:.06em;}
.fc-step-no b{font-size:1rem;font-weight:700;}
.fc-step-label{display:flex;align-items:center;color:#333;font-size:.74rem;font-weight:600;line-height:1.25;padding:0 10px;white-space:nowrap;}
.fc-arrow{color:#9a9a9a;font-size:.7rem;}
.fixed-cta-time{flex-shrink:0;width:52px;height:52px;border:1.5px solid var(--pink);color:var(--pink);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:.74rem;font-weight:600;line-height:1.25;}

/* ========== RESPONSIVE ========== */
@media(max-width:980px){
  .gnav{position:fixed;top:62px;right:0;width:78%;max-width:320px;height:calc(100vh - 62px);background:#fff;flex-direction:column;align-items:flex-start;gap:0;padding:18px 26px;box-shadow:-6px 0 20px rgba(0,0,0,.12);transform:translateX(110%);transition:transform .3s;overflow-y:auto;}
  .gnav.open{transform:translateX(0);}
  .gnav a{width:100%;padding:14px 0;border-bottom:1px solid #eee;}
  .header-cta{margin-top:14px;justify-content:center;width:100%;}
  .menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
  .menu-toggle span{width:24px;height:2px;background:#333;display:block;}
  .hero-main{grid-template-columns:1fr;gap:30px;padding:28px 24px 20px;}
  .hero-copy h1{font-size:2.3rem;}
  .hero-photos{order:-1;}
  .hero-promo-inner{grid-template-columns:1fr;gap:24px;padding:28px 24px;}
  .promo-date{font-size:2.8rem;}
  .promo-date small{font-size:1rem;}
  .promo-off .big{font-size:2.8rem;}
  .promo-off .lbl{font-size:1.15rem;}
  .trial-flow{gap:14px;}
  .trouble-grid{grid-template-columns:1fr;}
  .trouble h2,.plan h2,.school-head h2,.why h2,.change h2,.faq-head h2,.closing h2{font-size:1.7rem;}
  .steps-grid,.closing .steps-grid{grid-template-columns:1fr;gap:28px;}
  .step-arrow{display:none;}
  .step-cal{min-height:120px;}
  .plan-row{grid-template-columns:1fr 1fr;gap:14px;}
  .plan-wide{flex-direction:column;gap:4px;}
  .school-head{grid-template-columns:1fr;gap:18px;}
  .school-grid{grid-template-columns:1fr 1fr;gap:22px 16px;}
  .why-inner{grid-template-columns:1fr;gap:24px;text-align:center;}
  .why h2{font-size:1.8rem;}
  .why-stat{text-align:center;}
  .why-stat .big{font-size:5.5rem;}
  .reason-r1 .reason-head{grid-template-columns:1fr;gap:14px;}
  .teacher-grid{grid-template-columns:1fr;}
  .reason-split{grid-template-columns:1fr;gap:20px;}
  .reason-split .reason-photo{order:-1;}
  .cycle{width:280px;height:280px;}
  .change-stats-inner{grid-template-columns:1fr;gap:14px;padding:24px;}
  .voice-grid{grid-template-columns:1fr;gap:0 0;}
  .voice-mini-row{grid-template-columns:1fr;gap:0;}
  .voice-mini{border-bottom:1px solid #ddd;padding-top:18px;padding-bottom:18px;}
  .faq-inner{grid-template-columns:1fr;gap:24px;}
  /* 固定CTA：スマホでもSTEPを表示（ボタン上段／STEP下段の2段組み） */
  .fixed-cta-inner{flex-wrap:wrap;gap:9px 10px;padding:0 12px;}
  .fixed-cta-btn{flex:0 0 100%;max-width:none;padding:11px;font-size:1rem;}
  .fixed-cta-steps{gap:5px;}
  .fc-step-no{padding:2px 6px;}
  .fc-step-no i{font-size:.46rem;}
  .fc-step-no b{font-size:.84rem;}
  .fc-step-label{font-size:.66rem;padding:0 7px;}
  .fc-arrow{font-size:.58rem;}
  .fixed-cta-time{width:42px;height:42px;font-size:.62rem;border-width:1.4px;}
  .inner{padding:0 22px;}
  body{padding-bottom:130px;line-height:1.8;}

  /* SP改行ヘルパー：モバイルで有効化 */
  .sp-br{display:inline;}

  /* HERO promo：縦並びに変えて矢印を中央・下向きに */
  .promo-left{flex-direction:column;gap:14px;align-items:center;text-align:center;}
  .promo-arrow{transform:rotate(90deg);font-size:1.6rem;}

  /* trial lead2：font-size 縮小（折り返しを読みやすく） */
  .trial p.lead2{font-size:1.15rem;line-height:1.6;}

  /* cta-note：CTAボタンより小さく */
  .cta-note{font-size:.7rem;}

  /* reasons-title：「得意」が途中で折り返さない範囲に縮小 */
  .reasons-title{font-size:1.7rem;}

  /* ===== スマホ：縦の余白を圧縮（冗長感の解消／レイアウト構造は不変） ===== */
  .trial,.trouble,.steps,.plan,.school,.why,.reasons,.faq{padding:52px 0;}
  .change{padding:46px 0 56px;}
  .closing{padding:52px 0 46px;}
  .trial p{margin-bottom:8px;}
  .trial p.small{margin-top:6px;}
  .trial-flow{margin:28px 0 26px;}
  .trouble h2{margin-bottom:24px;}
  .trouble-foot{margin-top:26px;font-size:1.1rem;line-height:1.6;}
  .trouble-foot .pink{font-size:1.25rem;}
  .steps-eyebrow{margin-bottom:22px;}
  .step-card{padding:20px 18px 22px;}
  .plan h2{margin-bottom:14px;}
  .plan-table{margin-top:24px;}
  .plan-tier{padding:20px 18px;}
  .plan-flex{padding:22px 20px;margin-top:20px;}
  .school-head{margin-bottom:30px;}
  .reasons-title{margin-bottom:32px;}
  .reason{margin-bottom:42px;}
  .reason-r1 .reason-head{margin-bottom:22px;}
  .change h2{margin-bottom:28px;}
  .voice{padding:18px 0;}
  /* 本文の行間を詰める（間延び解消） */
  .hero-lead,.trial p.small,.trouble-card p,.trouble-foot,.step-card p,.plan-lead,.plan-flex p,.school-head p,.sc-desc,.why-stat p,.reason-split p,.reason-r1 .reason-text,.tc-bg,.tc-quote,.voice p,.voice-mini p,.faq-head p,.faq-a-in{line-height:1.7;}
  .closing h2{margin-bottom:32px;}
  .closing .steps-grid{margin-bottom:32px;}
}
@media(max-width:560px){
  .hero-copy h1{font-size:2rem;}
  .hero-lead{margin-top:18px;}
  .hero-callout{margin-top:18px;}
  .hero-badges{margin-top:20px;gap:12px;}
  .hero-badge{width:88px;height:88px;font-size:1.15rem;}
  .school-grid{grid-template-columns:1fr;}
  .plan-row{grid-template-columns:1fr;}
  .gnav a:not(.header-cta)::before{content:"";margin:0;}
  /* スマホ実機：さらに縦を詰める */
  .trial,.trouble,.steps,.plan,.school,.why,.reasons,.faq{padding:44px 0;}
  .change{padding:40px 0 48px;}
  .closing{padding:44px 0 40px;}
  .trial-min{width:124px;height:124px;}
  .trial-min b{font-size:2.5rem;}
  .trial-min span{font-size:1.1rem;}
  .reason{margin-bottom:36px;}
}
@media(max-width:340px){
  /* 極小幅：所要2分を隠してSTEP行の折り返しを防ぎ2段を維持 */
  .fixed-cta-time{display:none;}
}
/* 教室が1校のときだけ中央寄せ（PCのみ） */
@media (min-width: 769px) {
  .school-grid {
    grid-template-columns: calc((100% - 22px * 3) / 4);
    justify-content: center;
  }
}
