/* P2M JUNIOR — top page (/) sections */

/* hero */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden;}
.hero .bgph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8b98ad;font-weight:600;font-size:14px;background:linear-gradient(120deg,#2a3a52,#1a2842);}
.hero .heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,40,.94),rgba(15,23,40,.82) 42%,rgba(15,23,40,.45));}
.hero .inner{position:relative;padding:96px 0 104px;max-width:780px;}
.hero .eyebrow{color:#8fb4f5;}
.hero .eyebrow::before{background:#8fb4f5;}
.hero .eyebrow .ja{color:#b7c4d8;}
.hero h1{font-size:clamp(32px,7vw,58px);font-weight:900;line-height:1.28;margin:22px 0 8px;}
.hero h1 .u{background:linear-gradient(transparent 62%,rgba(198,167,107,.55) 62%);padding:0 2px;}
.hero p.sub{font-size:17px;color:#cdd6e4;line-height:1.9;margin:20px 0 34px;max-width:600px;}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap;}
.hero .newcard{margin-top:40px;display:inline-flex;align-items:center;gap:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:14px 20px;flex-wrap:wrap;}
.hero .newcard .tag{background:var(--gold);color:#2a2410;font-size:11px;font-weight:800;letter-spacing:.1em;padding:5px 10px;border-radius:6px;}
.hero .newcard .txt{font-size:14px;color:#eaf0f8;}
.hero .newcard .txt b{color:#fff;}
.hero .newcard a{color:#8fb4f5;font-weight:700;font-size:13px;}

/* stats bar */
.stats{background:var(--navy);border-top:1px solid rgba(255,255,255,.08);}
.stats .grid{display:grid;grid-template-columns:repeat(3,1fr);}
.stats .cell{padding:34px 26px;border-left:1px solid rgba(255,255,255,.12);}
.stats .cell:first-child{border-left:none;}
.stats .k{font-family:var(--lat);font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;}
.stats .v{font-size:20px;font-weight:800;color:#fff;margin-top:8px;}
.stats .d{font-size:12.5px;color:#aeb9ca;margin-top:4px;}

/* sections */
.sec{padding:92px 0;}
.sec.tint{background:var(--tint);}
.sec .head{max-width:760px;margin-bottom:48px;}
.sec h2{font-size:clamp(26px,3.4vw,38px);font-weight:900;color:var(--navy);line-height:1.35;margin-top:16px;}
.sec .lead{font-size:16px;color:var(--muted);line-height:2;margin-top:18px;}

.creed{font-size:16.5px;line-height:2.15;color:#2c3644;max-width:840px;}
.creed b{color:var(--navy);}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
.pillar{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;}
.pillar .n{font-family:var(--lat);font-size:12.5px;font-weight:800;color:var(--gold-d);letter-spacing:.1em;}
.pillar h3{font-size:18px;font-weight:800;color:var(--navy);margin:12px 0 8px;}
.pillar p{font-size:14px;color:var(--muted);line-height:1.85;}

/* pathway */
.pathwrap{position:relative;overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px 22px;}
.pathsvg{width:100%;min-width:820px;height:auto;}
.eventlink{margin-top:22px;display:flex;justify-content:flex-end;}
.eventlink a{display:inline-flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border-radius:12px;padding:14px 22px;font-size:14px;font-weight:700;transition:.2s;min-height:44px;}
.eventlink a:hover{background:#0f1830;}
.eventlink .g{color:var(--gold);font-family:var(--lat);font-size:11px;letter-spacing:.12em;font-weight:800;}

/* pathway — mobile vertical cards (§7.4 accessible alternative) */
.pathcards{display:none;}
.pathcards .pcstep{position:relative;background:var(--navy);color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:14px;}
.pathcards .pcstep .arrow{position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);color:var(--gold);font-size:18px;line-height:1;}
.pathcards .pcstep:last-child .arrow{display:none;}
.pathcards .step{font-family:var(--lat);font-size:11px;font-weight:800;letter-spacing:.12em;color:#8fb4f5;}
.pathcards .nm{font-size:18px;font-weight:800;margin:6px 0 2px;}
.pathcards .ag{font-size:12.5px;color:#aeb9ca;}
.pathcards .pclink{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:13px;font-weight:700;color:#fff;background:var(--blue);border-radius:999px;padding:9px 16px;min-height:44px;}

.classgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.ccard{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:.2s;display:block;}
.ccard:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(22,34,58,.12);}
.ccard .cph{aspect-ratio:4/3;}
.ccard .cbody{padding:20px 20px 24px;}
.ccard .age{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.02em;color:var(--blue);}
.ccard h3{font-size:18px;font-weight:800;color:var(--navy);margin:8px 0 8px;}
.ccard p{font-size:13.5px;color:var(--muted);line-height:1.8;min-height:74px;}
.ccard .more{font-size:13px;font-weight:700;color:var(--blue);margin-top:12px;display:inline-flex;gap:6px;}

/* FSEP banner */
.fsep{margin-top:30px;display:grid;grid-template-columns:1.1fr 1fr;background:var(--navy);border-radius:18px;overflow:hidden;color:#fff;}
.fsep .fph{min-height:220px;}
.fsep .fbody{padding:38px 40px;}
.fsep .tag{font-family:var(--lat);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--gold);}
.fsep h3{font-size:24px;font-weight:900;margin:12px 0;line-height:1.4;}
.fsep p{font-size:14px;color:#c2cddd;line-height:1.9;margin-bottom:20px;}

/* pricing (month only) */
.plist{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.pcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 22px;}
.pcard .stg{font-size:15px;font-weight:800;color:var(--navy);}
.pcard .sub{font-size:12px;color:var(--muted);margin-top:4px;min-height:32px;}
.pcard .price{font-size:28px;font-weight:900;color:var(--navy);margin-top:14px;}
.pcard .price small{font-size:15px;}
.pcard .per{font-size:12px;color:var(--muted);margin-top:2px;}
.pcard.tagnew{border-color:var(--blue);}
.pcard .badge{display:inline-block;background:var(--blue-soft);color:var(--blue);font-size:10.5px;font-weight:800;letter-spacing:.08em;padding:4px 9px;border-radius:6px;margin-bottom:10px;}
.pricefoot{margin-top:22px;font-size:13px;color:var(--muted);}

/* choose (2 columns, expandable) */
.choose{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.copt{position:relative;border-radius:18px;overflow:hidden;cursor:pointer;color:#fff;min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;padding:30px;transition:.2s;border:2px solid transparent;}
.copt::before{content:"";position:absolute;inset:0;z-index:0;}
.copt.class-opt::before{background:linear-gradient(180deg,rgba(22,34,58,.25),rgba(22,34,58,.9)),linear-gradient(120deg,#3a4d6b,#1a2842);}
.copt.event-opt::before{background:linear-gradient(180deg,rgba(30,58,95,.25),rgba(15,23,40,.9)),linear-gradient(120deg,#2f6be4,#173a86);}
.copt .ol{position:relative;z-index:1;}
.copt .lab{font-family:var(--lat);font-size:11px;font-weight:800;letter-spacing:.14em;opacity:.85;}
.copt h3{font-size:22px;font-weight:900;margin:8px 0 6px;}
.copt p{font-size:13px;color:#dce3ee;}
.copt .plus{position:absolute;top:24px;right:26px;z-index:1;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:400;transition:.3s;}
.copt.open{border-color:var(--blue);}
.copt.open .plus{transform:rotate(45deg);background:var(--blue);}
.panel{grid-column:1/-1;display:none;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;}
.panel.show{display:block;}
.panel h4{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:16px;}
.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.opts.ev{grid-template-columns:repeat(3,1fr);}
.opt-item{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:12px;padding:16px;transition:.2s;}
.opt-item:hover{border-color:var(--blue);background:var(--blue-soft);}
.opt-item .nm{font-size:14px;font-weight:800;color:var(--navy);}
.opt-item .ag{font-size:11.5px;color:var(--muted);}
.opt-item .go{margin-top:auto;font-size:12.5px;font-weight:700;color:var(--blue);}

/* responsive */
@media (max-width:900px){
  .stats .grid{grid-template-columns:repeat(3,1fr);}
  .pillars{grid-template-columns:1fr;}
  .classgrid{grid-template-columns:repeat(2,1fr);}
  .plist{grid-template-columns:repeat(2,1fr);}
  .fsep{grid-template-columns:1fr;}
  .fsep .fph{min-height:180px;}
  .choose{grid-template-columns:1fr;}
  .opts,.opts.ev{grid-template-columns:1fr 1fr;}
  /* swap the wide SVG staircase for stacked cards */
  .pathwrap{display:none;}
  .pathcards{display:block;}
}
@media (max-width:560px){
  .hero .inner{padding:64px 0 72px;}
  .sec{padding:56px 0;}
  .classgrid,.plist,.opts,.opts.ev{grid-template-columns:1fr;}
  .stats .grid{grid-template-columns:1fr;}
  .stats .cell{border-left:none;border-top:1px solid rgba(255,255,255,.12);}
  .stats .cell:first-child{border-top:none;}
  .ccard p{min-height:0;}
}

/* ---- photos (added) ---- */
.ccard .cph{overflow:hidden;}
.ccard .cph img{width:100%;height:100%;object-fit:cover;}
.fsep .fph{overflow:hidden;}
.fsep .fph img{width:100%;height:100%;min-height:220px;object-fit:cover;}

/* ---- P2M Performance（育成年代パーソナル）への誘導カード ---- */
.pband{margin-top:52px;display:grid;grid-template-columns:.85fr 1.15fr;
  background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.pband .pbph{position:relative;min-height:230px;}
.pband .pbph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.pband .pbbody{padding:34px 40px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;}
.pband .tag{font-family:var(--lat);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--gold-d);}
.pband h3{font-size:clamp(19px,2.2vw,23px);font-weight:900;color:var(--navy);margin:10px 0 12px;line-height:1.5;}
.pband p{font-size:13.5px;color:var(--muted);line-height:1.95;margin-bottom:22px;}
.pband p b{color:var(--navy);font-weight:800;}
@media (max-width:760px){
  .pband{grid-template-columns:1fr;margin-top:36px;}
  .pband .pbph{aspect-ratio:16/9;min-height:0;}
  .pband .pbbody{padding:26px 24px 28px;}
  .pband .btn{width:100%;justify-content:center;}
}

/* ---- FSEP sub-heading (positions FSEP as the special "next stage") ---- */
.fsep-head{margin-top:96px;margin-bottom:24px;max-width:760px;}
.fsep-head h3{font-size:clamp(26px,3.4vw,38px);font-weight:900;color:var(--navy);line-height:1.35;margin-top:14px;}
.fsep-head .lead{font-size:15px;color:var(--muted);line-height:1.95;margin-top:12px;}
@media (max-width:560px){ .fsep-head{margin-top:44px;} }
