/* program 固有の変数 */
:root{
  --img-phead:url("../img/p-program.webp");
}


/* ===== 下層ページ共通 ===== */
.phead{background:var(--deep);color:#fff;position:relative;overflow:hidden;}
.phead::before{content:"";position:absolute;inset:0;background-image:var(--img-phead);background-size:cover;background-position:center 40%;opacity:.3;}
.phead::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,24,48,.55) 0%,rgba(15,24,48,.82) 100%);}
.phead-in{position:relative;z-index:2;max-width:var(--col);margin:0 auto;padding:54px var(--pad) 50px;}
.crumb{font-size:11.5px;font-family:var(--fu);letter-spacing:.04em;opacity:.8;margin:0 0 20px;}
.crumb a{text-decoration:none;opacity:.85;}
.crumb a:hover{opacity:1;text-decoration:underline;}
.crumb span{margin:0 8px;opacity:.55;}
.phead .eyebrow{color:var(--blue-l);margin:0 0 8px;}
.phead h1{font-size:clamp(28px,4.4vw,44px);font-weight:900;letter-spacing:.06em;line-height:1.4;margin:0 0 16px;}
.phead p.pl{font-size:14.5px;line-height:2;margin:0;max-width:680px;opacity:.94;}

/* 今月 */
.now{background:linear-gradient(135deg,var(--blue) 0%,var(--navy) 100%);color:#fff;border-radius:14px;padding:28px 24px 30px;text-align:center;box-shadow:0 8px 24px rgba(43,72,148,.26);}
.now .m{font-size:11px;letter-spacing:.2em;opacity:.85;margin:0;font-weight:700;font-family:var(--fu);}
.now .a{font-size:clamp(28px,4.4vw,38px);font-weight:900;margin:8px 0 10px;letter-spacing:.04em;}
.now .d{font-size:13.5px;margin:0 auto;opacity:.93;line-height:1.95;max-width:660px;}
.setlist{margin:20px auto 0;max-width:660px;border-top:1px solid rgba(255,255,255,.28);padding-top:17px;}
.setlist .sl{font-size:10.5px;letter-spacing:.2em;font-weight:700;font-family:var(--fu);opacity:.8;margin:0 0 11px;}
.tracks{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:0;padding:0;list-style:none;}
.tracks li{font-size:12.5px;font-weight:700;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:99px;padding:6px 14px;display:flex;align-items:center;gap:7px;}
.tracks li b{font-family:var(--fu);font-size:10.5px;font-weight:800;opacity:.7;}

/* 選び方 */
.pick{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.pcard{border:1px solid var(--line);border-radius:12px;padding:22px 20px 24px;background:var(--surface);}
.pcard .pn{font-family:var(--fu);font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--blue);margin:0 0 8px;}
.pcard h3{font-size:17px;font-weight:900;margin:0 0 10px;}
.pcard p{font-size:13px;line-height:1.95;color:var(--muted);margin:0;}

/* フィルタ */
.filt{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 22px;}
.filt button{font-family:inherit;font-size:13px;font-weight:900;color:var(--navy);background:var(--surface);border:1.5px solid var(--line);border-radius:99px;padding:9px 20px;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.filt button:hover{border-color:var(--blue);}
.filt button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff;}
.filt button i{font-style:normal;font-family:var(--fu);font-size:11px;opacity:.7;margin-left:5px;}

/* プログラム一覧 */
.plist{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start;}
.pg{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden;box-shadow:0 3px 12px rgba(30,50,90,.05);}
.pg[hidden]{display:none;}
.pg>summary{cursor:pointer;list-style:none;padding:19px 46px 19px 20px;position:relative;}
.pg>summary::-webkit-details-marker{display:none;}
.pg>summary::after{content:"";position:absolute;right:20px;top:26px;width:9px;height:9px;border-right:2.2px solid var(--blue);border-bottom:2.2px solid var(--blue);transform:rotate(45deg);transition:transform .2s;}
.pg[open]>summary::after{transform:rotate(-135deg);margin-top:4px;}
.pgh{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 7px;}
.pgname{font-size:18px;font-weight:900;letter-spacing:.01em;margin:0;line-height:1.35;}
.tag{font-size:10.5px;font-weight:900;font-family:var(--fu);letter-spacing:.06em;border-radius:99px;padding:3px 9px;background:var(--frame);color:var(--navy);}
.tag.new{background:var(--coral);color:#fff;font-family:var(--fd);letter-spacing:.04em;}
.pgt{font-size:12.5px;color:var(--muted);font-weight:700;margin:0;}
.pgt b{color:var(--navy);}
.pgb{padding:0 20px 20px;border-top:1px solid var(--frame);}
.pgb p.lead2{font-size:13px;line-height:1.95;color:var(--muted);margin:15px 0 0;}
.pglv{display:flex;align-items:center;gap:8px;margin:0 0 6px;}
.pglv .lvl{font-size:10.5px;font-weight:900;font-family:var(--fu);letter-spacing:.1em;color:var(--muted);}
.pglv i{font-style:normal;color:#E8A33D;font-size:14px;letter-spacing:.1em;line-height:1;}
.tl2{margin:15px 0 0;padding:0;list-style:none;counter-reset:t;}
.tl2 li{font-size:12.5px;font-weight:700;line-height:1.6;padding:6px 0 6px 28px;position:relative;border-top:1px dashed #e6ecf6;}
.tl2 li:first-child{border-top:none;}
.tl2 li::before{counter-increment:t;content:counter(t,decimal-leading-zero);position:absolute;left:0;top:7px;font-family:var(--fu);font-size:10.5px;font-weight:800;color:var(--blue);}
.slt{font-size:10.5px;font-family:var(--fu);font-weight:800;letter-spacing:.16em;color:var(--blue);margin:16px 0 0;}
.nosl{font-size:12px;color:var(--muted);margin:14px 0 0;}

/* レベル（日本橋準拠） */
.lvgroup{border:2px solid var(--blue);border-radius:10px;background:var(--surface);margin:18px 0 10px;padding:26px 0 0;position:relative;}
.lvbadge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:11.5px;font-weight:900;padding:4px 14px;border-radius:99px;white-space:nowrap;}
.lvrest{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);}
.lvrow{display:flex;align-items:center;gap:11px;padding:12px 15px;border-top:1px dashed #e3eaf4;}
.lvgroup .lvrow:first-of-type{border-top:none;}
.lvst{flex:0 0 72px;color:#E8A33D;font-size:13.5px;letter-spacing:.06em;}
.lvtx{font-size:13px;margin:0;line-height:1.7;}
.lvtx b{font-weight:900;}
.lvnote{font-size:12.5px;color:var(--muted);line-height:1.9;margin:14px 0 0;}

/* 毎月追加 */
.mon{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;}
.mon>*{min-width:0;}
.mon .ph img{width:100%;border-radius:12px;}
.mon h3{font-size:clamp(19px,2.6vw,24px);font-weight:900;margin:0 0 14px;line-height:1.55;}
.mon p{font-size:14px;line-height:2.05;margin:0 0 14px;}
.mon p:last-child{margin-bottom:0;}
.mon strong{color:var(--navy);}

/* 最終CTA */
.fin{background:var(--deep);color:#fff;text-align:center;}
.fin h2{color:#fff;}
.fin p{opacity:.9;font-size:14px;line-height:2;}
.fin .fb{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--coral);color:#fff;text-decoration:none;font-weight:900;font-size:16px;border-radius:99px;padding:17px 44px;margin-top:22px;box-shadow:0 8px 22px rgba(239,136,128,.4);transition:transform .2s,box-shadow .2s;}
.fin .fb:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(239,136,128,.5);}
.fin .sub{display:block;margin-top:14px;font-size:12.5px;opacity:.75;}
.fin .sub a{color:var(--blue-l);font-weight:700;}

@media (max-width:900px){
  .phead-in{padding:34px var(--pad) 34px;}
  .crumb{margin-bottom:14px;}
  .pick,.plist,.mon{grid-template-columns:1fr;}
  .pick{gap:12px;}
  .mon{gap:22px;}
  .now{padding:22px 16px 24px;}
  .filt button{font-size:12px;padding:8px 15px;}
  .lvst{flex:0 0 64px;font-size:12.5px;}
  .fin .fb{font-size:15px;padding:16px 30px;width:100%;box-sizing:border-box;}
}

