/* classes.html 専用のスタイル。
   このページからしか読み込まないので、セレクタを限定する必要はない。
   全ページ共通の指定は assets/common.css にある。 */

body{--c-exa:#F46C6C; --c-kick:#EEE60F; --c-box:#5B63CD; --c-kids:#F266D9; --c-jhs:#299824; --c-intro:#70D75C; --page-bg:var(--bg); --footer-pad-bottom:96px;}
.c-hero{background:var(--bg-sub);position:relative;overflow:hidden;padding:32px 16px 28px;}
.c-hero p{font-size:var(--text-base);color:var(--text-sub);margin:0;}
.chooser{position:sticky;top:var(--header-h);z-index:40;background:rgba(255,255,255,0.95);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border);}
.chooser-hint{font-size:var(--text-xs,12px);color:var(--text-sub);text-align:center;padding:0 16px 10px;margin:0;line-height:1.8;letter-spacing:0.04em;display:flex;align-items:center;justify-content:center;gap:6px;}
.chooser-hint svg{width:14px;height:14px;color:var(--primary);flex-shrink:0;}

.chooser-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 16px;max-width:var(--maxw);margin:0 auto;}
.chooser-scroll::-webkit-scrollbar{display:none;}
.chip{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--radius-pill);background:#fff;border:1.5px solid var(--border);font-weight:700;font-size:var(--text-sm);color:var(--text);text-decoration:none;white-space:nowrap;transition:border-color .15s,background-color .15s;}
/* タッチ端末では効かせない。1回目のタップがホバーの発生として扱われ、
   その要素への操作が2回目のタップまで届かなくなるため。 */
@media (hover:hover) and (pointer:fine){
.chip:hover{border-color:var(--text);}
}
.chip .swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.classes{padding:28px 0 8px;}
/* ヘッダー(61px)とその下に固定されるクラス選択の帯(73px)の合計134pxより
   大きくしないと、飛んだ先の枠の上端が帯に隠れる。少し余裕を持たせている */
.cls{scroll-margin-top:150px;background:#fff;border:1px solid var(--border);border-left:5px solid var(--primary);border-radius:18px;overflow:hidden;margin-bottom:18px;}
.cls.c-exa{border-left-color:var(--c-exa);}
.cls.c-kick{border-left-color:var(--c-kick);}
.cls.c-box{border-left-color:var(--c-box);}
.cls.c-kids{border-left-color:var(--c-kids);}
.cls.c-jhs{border-left-color:var(--c-jhs);}
.cls.c-intro{border-left-color:var(--c-intro);}
.cls-top{padding:24px 22px 18px;border-bottom:1px solid var(--border);}
.cls-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.cls-no{font-family:var(--font-en);font-weight:800;font-size:var(--text-xs);letter-spacing:0.12em;color:var(--text-mute);}
.cls-cat{font-family:var(--font-en);font-size:var(--text-xs);font-weight:700;letter-spacing:0.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;color:var(--primary);}
.cls.c-exa .cls-cat{color:#E15454;}
.cls.c-kick .cls-cat{color:#B5AD08;}
.cls.c-box .cls-cat{color:var(--c-box);}
.cls.c-kids .cls-cat{color:#D04AB8;}
.cls.c-jhs .cls-cat{color:var(--c-jhs);}
.cls.c-intro .cls-cat{color:#3FA32C;}
.cls-cat::before{content:"";width:14px;height:2px;background:currentColor;}
.cls-time{margin-left:auto;display:inline-flex;align-items:center;gap:6px;background:var(--bg-sub);padding:6px 12px;border-radius:var(--radius-pill);font-family:var(--font-en);font-weight:700;font-size:var(--text-sm);}
.cls-time svg{width:13px;height:13px;color:var(--text-sub);}
.cls-top h2{font-size:var(--text-xl);font-weight:800;margin:0 0 6px;letter-spacing:-0.01em;}
.cls-for{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-sub);font-weight:600;}
.cls-for .dot{width:7px;height:7px;border-radius:50%;background:var(--primary);}
.cls.c-exa .cls-for .dot{background:var(--c-exa);}
.cls.c-kick .cls-for .dot{background:#C9C20A;}
.cls.c-box .cls-for .dot{background:var(--c-box);}
.cls.c-kids .cls-for .dot{background:var(--c-kids);}
.cls.c-jhs .cls-for .dot{background:var(--c-jhs);}
.cls.c-intro .cls-for .dot{background:#5BC247;}
.cls-body{padding:20px 22px 24px;}
.cls-lead{font-size:var(--text-base);line-height:1.95;color:var(--text);margin:0 0 20px;}
.cls-block{margin-bottom:20px;}
.cls-block:last-child{margin-bottom:0;}
.cls-block h3{font-size:var(--text-sm);font-family:var(--font-en);font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-mute);margin:0 0 12px;display:flex;align-items:center;gap:9px;}
.cls-block h3 .jp{font-family:var(--font-jp);font-size:var(--text-base);color:var(--text);letter-spacing:0;}
.cls-block h3::before{content:"";width:14px;height:2px;background:var(--primary);}
.cls.c-exa .cls-block h3::before{background:var(--c-exa);}
.cls.c-kick .cls-block h3::before{background:#C9C20A;}
.cls.c-box .cls-block h3::before{background:var(--c-box);}
.cls.c-kids .cls-block h3::before{background:var(--c-kids);}
.cls.c-jhs .cls-block h3::before{background:var(--c-jhs);}
.cls.c-intro .cls-block h3::before{background:#5BC247;}
.reco{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.reco li{display:flex;align-items:flex-start;gap:11px;font-size:var(--text-sm);font-weight:500;line-height:1.6;}
.reco li .ck{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.cls.c-box .reco li .ck{background:rgba(91,99,205,0.12);color:var(--c-box);}
.cls.c-kids .reco li .ck{background:rgba(242,102,217,0.14);color:#D04AB8;}
.cls.c-jhs .reco li .ck{background:rgba(41,152,36,0.12);color:var(--c-jhs);}
.cls.c-intro .reco li .ck{background:rgba(112,215,92,0.16);color:#3FA32C;}
.reco li .ck svg{width:13px;height:13px;}
.flow{list-style:none;margin:0;padding:0;counter-reset:fl;display:grid;gap:0;}
.flow li{position:relative;padding:0 0 18px 38px;counter-increment:fl;}
.flow li:last-child{padding-bottom:0;}
.flow li::before{content:counter(fl);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--primary);color:#fff;font-family:var(--font-en);font-weight:800;font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;}
.cls.c-exa .flow li::before{background:var(--c-exa);}
.cls.c-kick .flow li::before{background:#C9C20A;}
.cls.c-box .flow li::before{background:var(--c-box);}
.cls.c-kids .flow li::before{background:var(--c-kids);}
.cls.c-jhs .flow li::before{background:var(--c-jhs);}
.cls.c-intro .flow li::before{background:#5BC247;}
.flow li::after{content:"";position:absolute;left:12.5px;top:26px;bottom:0;width:1.5px;background:var(--border);}
.flow li:last-child::after{display:none;}
.flow li .ft{font-weight:700;font-size:var(--text-sm);margin-bottom:2px;}
.flow li .fd{font-size:var(--text-sm);color:var(--text-sub);line-height:1.65;}
.price-pill{display:inline-flex;align-items:baseline;gap:8px;background:var(--bg-sub);border:1px solid var(--border);border-radius:14px;padding:12px 18px;margin-top:6px;font-size:var(--text-sm);color:var(--text-sub);flex-wrap:wrap;}
.price-pill .amt{font-family:var(--font-en);font-weight:800;font-size:var(--text-lg);color:var(--text);}
.price-pill .amt .unit{font-family:var(--font-jp);font-size:var(--text-xs);color:var(--text-sub);font-weight:500;}
.price-pill .sep{width:1px;height:18px;background:var(--border-strong);align-self:center;}
.c-cta{margin-top:28px;background:var(--bg-sub);padding:40px 16px;}
.c-cta .inner{max-width:var(--maxw);margin:0 auto;text-align:center;}
.c-cta h2{font-size:var(--text-xl);font-weight:900;margin:0 0 8px;line-height:1.3;}
.c-cta h2 .accent{color:var(--primary);}
.c-cta p{font-size:var(--text-sm);color:var(--text-sub);margin:0 0 20px;}
.c-cta .btns{display:flex;flex-direction:column;gap:10px;max-width:420px;margin:0 auto;}
@media (min-width:760px){
.c-hero{padding:48px 24px 40px;}
.c-hero p{font-size:var(--text-base);}
.chooser{top:var(--header-h);}
.chooser-scroll{justify-content:center;flex-wrap:wrap;overflow:visible;padding:14px 24px;}
.chooser .hs-outer::after,.chooser .hs-cue{display:none;}
.classes{padding:36px 0 8px;}
.cls{margin-bottom:24px;}
.cls-top{padding:28px 32px 22px;}
.cls-top h2{font-size:var(--text-xl);}
.cls-body{padding:26px 32px 32px;display:grid;grid-template-columns:1.3fr 1fr;gap:32px;column-gap:48px;}
.cls-main{grid-column:1;}
.cls-side{grid-column:2;}
.cls-lead{font-size:var(--text-base);}
.c-cta{padding:56px 24px;}
.c-cta h2{font-size:var(--text-2xl);}
.c-cta .btns{flex-direction:row;justify-content:center;max-width:none;}
.c-cta .btns .btn--full{width:auto;display:inline-flex;}
}
@media (min-width:1024px){
.c-hero h1{font-size:var(--text-3xl);}
}
