/* ============================================================
   第6回 北区ビジネスプランコンテスト LP — styles
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;800;900&display=swap');

:root{
  /* brand */
  --pink:#E5007D; --pink-deep:#C30068; --pink-tint:#FCE4EF; --pink-soft:#FFF4F9;
  --orange:#F08200; --orange-deep:#D86E00; --orange-tint:#FFEFDD; --orange-soft:#FFF9F2;
  --gold:#E0A100; --silver:#9AA0A6; --bronze:#BC7A45;
  --ink:#2A2024; --sub:#6E6470; --line:#F0D9E5; --white:#fff;

  /* accent = current division (switched on body) */
  --acc:var(--pink); --acc-deep:var(--pink-deep);
  --acc-tint:var(--pink-tint); --acc-soft:var(--pink-soft);

  /* type scale */
  --t-hero:clamp(31px,5vw,68px);
  --t-h2:clamp(28px,3.6vw,52px);
  --t-h3:clamp(20px,2.1vw,28px);
  --t-lead:clamp(16px,1.5vw,21px);
  --t-body:clamp(15px,1.15vw,17px);
  --t-small:clamp(13px,1vw,14px);
  --t-num:clamp(40px,7vw,96px);

  /* spacing */
  --sec-y:clamp(64px,8vw,120px);
  --pad-x:clamp(20px,5vw,72px);
  --radius:22px; --radius-lg:32px;
  --shadow:0 18px 50px -24px rgba(140,20,80,.35);
  --shadow-sm:0 8px 24px -14px rgba(120,30,80,.3);
  --maxw:1180px;
}
body[data-division="student"]{
  --acc:var(--orange); --acc-deep:var(--orange-deep);
  --acc-tint:var(--orange-tint); --acc-soft:var(--orange-soft);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{
  font-family:"Noto Sans JP",sans-serif;color:var(--ink);
  font-size:var(--t-body);line-height:1.85;background:var(--white);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,h4,.disp{font-family:"Noto Sans JP",sans-serif;line-height:1.28;letter-spacing:.01em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x)}
.acc{color:var(--acc)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ============================================================ HEADER */
.hd{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;gap:26px;height:74px;max-width:1320px;margin:0 auto;padding:0 clamp(18px,3vw,38px)}
.hd-brand{display:flex;align-items:center;flex:none}
.hd-brand .wm{font-family:"Noto Sans JP";font-weight:800;font-size:13px;line-height:1.3;letter-spacing:.06em;color:var(--ink)}
.hd-nav{display:flex;gap:clamp(18px,2vw,34px);margin-left:auto;align-items:center}
.hd-nav a{display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--ink);transition:color .2s}
.hd-nav a .jp{font-family:"Noto Sans JP";font-weight:700;font-size:14px}
.hd-nav a .en{font-size:9px;letter-spacing:.12em;color:var(--sub);font-weight:600}
.hd-nav a:hover{color:var(--acc)} .hd-nav a:hover .en{color:var(--acc)}
.hd-sub{flex:none;font-family:"Noto Sans JP";font-weight:700;font-size:13px;color:var(--acc);background:#fff;border:1.5px solid var(--acc);border-radius:6px;padding:10px 16px;transition:.2s;cursor:pointer}
.hd-sub:hover{background:var(--acc);color:#fff}
.hd-cta{flex:none;display:inline-flex;align-items:center;gap:7px;background:var(--acc);color:#fff;font-family:"Noto Sans JP";font-weight:800;font-size:14px;padding:11px 22px;border-radius:6px;transition:transform .18s,box-shadow .2s;box-shadow:var(--shadow-sm)}
.hd-cta:hover{transform:translateY(-2px)}
@media(max-width:1080px){.hd-nav{display:none}}
@media(max-width:680px){.hd-cta{display:none}}
@media(max-width:560px){.hd-sub{display:none}.hd-brand .wm{font-size:11px}}

/* division toggle (segmented) */
.segs{display:inline-flex;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:4px;gap:4px}
.seg{font-family:"Noto Sans JP";font-weight:700;font-size:13px;border:0;background:transparent;color:var(--sub);
  padding:8px 16px;border-radius:999px;cursor:pointer;transition:.2s;white-space:nowrap}
.seg[aria-selected="true"]{background:var(--acc);color:#fff;box-shadow:var(--shadow-sm)}
.hd .segs{margin-left:4px}
@media(max-width:640px){.hd-brand .ttl{display:none}.hd .segs .seg{padding:8px 12px}}

/* ============================================================ HERO (full-bleed key visual) */
.hero-top{width:100%;background:#fff;line-height:0}
.hero-top img{width:100%;height:auto;display:block}
.abar-wrap{background:linear-gradient(180deg,var(--acc-soft),#fff)}
.abar{max-width:1180px;margin:0 auto;padding:clamp(22px,3.4vw,40px) var(--pad-x);
  display:flex;flex-wrap:wrap;gap:16px;align-items:stretch;justify-content:center}
.abar .datechip{justify-content:center;height:100%}
.datechips{display:grid;grid-template-columns:repeat(2,minmax(0,353px));gap:16px;align-items:stretch}
.abar-cta{display:flex;flex-direction:column;gap:12px;justify-content:center}
.abar-cta .btn{width:100%}
@media(max-width:760px){.abar{flex-direction:column}.datechips{width:100%;grid-template-columns:1fr;grid-auto-rows:1fr}.abar-cta{width:100%;max-width:353px}}

/* 主催・共催 band */
.host-band{background:var(--acc-soft);border-bottom:1px solid var(--line)}
.host-in{max-width:1180px;margin:0 auto;padding:18px var(--pad-x);display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-start}
.host-item{display:flex;gap:12px;align-items:baseline}
.host-lab{flex:none;font-family:"Noto Sans JP";font-weight:700;font-size:13px;color:#fff;background:var(--acc);border-radius:999px;padding:4px 16px}
.host-val{font-size:var(--t-small);color:var(--ink);font-weight:500;line-height:1.7}
@media(max-width:680px){.host-item{flex-direction:column;gap:6px}}
.catch{text-align:center;padding:clamp(26px,4.5vw,60px) var(--pad-x) clamp(38px,5.5vw,76px)}
.catch-line{font-family:"Noto Sans JP";font-weight:900;color:var(--ink);
  font-size:clamp(25px,4.4vw,54px);line-height:1.4;letter-spacing:.01em;text-wrap:balance}
.catch-line .acc{color:var(--acc)}

/* hero badges (dates) */
.datechip{display:flex;flex-direction:column;gap:2px;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:14px 22px;box-shadow:var(--shadow-sm)}
.datechip .lab{font-size:12px;font-weight:700;color:#fff;background:var(--acc);border-radius:999px;padding:3px 12px;align-self:flex-start;font-family:"Noto Sans JP"}
.datechip .val{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(22px,2.4vw,30px);letter-spacing:.01em;color:var(--ink)}
.datechip .val small{font-size:.62em;font-weight:700}
.datechip .sub{font-size:12px;color:var(--sub);font-weight:500}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:"Noto Sans JP";font-weight:800;border-radius:999px;cursor:pointer;transition:transform .18s,box-shadow .2s;border:0}
.btn-lg{font-size:clamp(16px,1.5vw,19px);padding:18px 38px}
.btn-pri{background:var(--acc);color:#fff;box-shadow:0 16px 34px -14px var(--acc)}
.btn-pri:hover{transform:translateY(-3px)}
.btn-ghost{background:#fff;color:var(--acc);border:2px solid var(--acc)}
.btn-ghost:hover{transform:translateY(-3px)}
.btn .ico{width:20px;height:20px}

/* ---------- HERO A : full banner ---------- */
#hero-a{background:linear-gradient(180deg,var(--pink-soft),#fff)}
#hero-a .banner{max-width:1280px;margin:0 auto;padding:clamp(18px,3vw,40px) var(--pad-x) 0}
#hero-a .banner img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow)}
#hero-a .abar{max-width:1180px;margin:clamp(26px,4vw,48px) auto 0;padding:0 var(--pad-x) var(--sec-y);
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center}
#hero-a .abar .btn-lg{margin-left:auto}
@media(max-width:760px){#hero-a .abar .btn-lg{margin-left:0;width:100%}}

/* ---------- HERO B : split ---------- */
#hero-b{position:relative;background:
  radial-gradient(120% 90% at 88% 0%,var(--pink-tint),transparent 55%),
  linear-gradient(180deg,var(--pink-soft),#fff)}
#hero-b .hb{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,6vw,86px) var(--pad-x) var(--sec-y);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,56px);align-items:center}
#hero-b .eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:"Noto Sans JP";font-weight:800;color:var(--pink-deep);font-size:15px;margin-bottom:18px}
#hero-b .eyebrow b{font-size:24px;color:var(--pink)}
#hero-b .eyebrow .ln{width:46px;height:3px;background:var(--pink);border-radius:2px}
#hero-b h1{font-size:var(--t-hero);font-weight:800;color:var(--ink)}
#hero-b h1 .pk{color:var(--pink);display:block}
#hero-b .lead{font-size:var(--t-lead);color:var(--ink);font-weight:500;margin:22px 0 6px;font-family:"Noto Sans JP"}
#hero-b .note{color:var(--sub);font-size:var(--t-small)}
#hero-b .hb-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
#hero-b .hb-dates{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
#hero-b .art{position:relative}
#hero-b .art .ph{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(180deg,#fff,var(--pink-soft))}
#hero-b .art .ph img{width:100%}
#hero-b .prizebadge{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  width:128px;height:128px;border-radius:50%;background:#fff;box-shadow:var(--shadow);border:3px solid var(--pink);
  font-family:"Noto Sans JP";line-height:1.25}
#hero-b .prizebadge .pt{font-size:12px;font-weight:700;color:var(--pink-deep)}
#hero-b .prizebadge .pv{font-size:26px;font-weight:800;color:var(--pink)}
#hero-b .prizebadge .pv small{font-size:.5em}
#hero-b .pb1{left:-14px;bottom:34px}
#hero-b .pb2{right:-10px;top:30px;border-color:var(--orange)}
#hero-b .pb2 .pt{color:var(--orange-deep)} #hero-b .pb2 .pv{color:var(--orange)}
@media(max-width:880px){
  #hero-b .hb{grid-template-columns:1fr;gap:34px}
  #hero-b .prizebadge{width:104px;height:104px}
  #hero-b .pb1{left:6px} #hero-b .pb2{right:6px}
}

/* ---------- HERO C : bold typographic ---------- */
#hero-c{position:relative;text-align:center;background:
  radial-gradient(90% 70% at 50% -8%,var(--pink-tint),transparent 60%),
  linear-gradient(180deg,var(--pink-soft),#fff)}
#hero-c .hc{max-width:1080px;margin:0 auto;padding:clamp(46px,6vw,86px) var(--pad-x) 0}
#hero-c .eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"Noto Sans JP";font-weight:800;color:var(--pink-deep);font-size:15px}
#hero-c .eyebrow b{font-size:22px;color:var(--pink)}
#hero-c h1{font-size:var(--t-hero);font-weight:800;margin:14px 0 0}
#hero-c h1 .pk{color:var(--pink)}
#hero-c .lead{font-size:var(--t-lead);font-weight:500;color:var(--ink);margin-top:16px;font-family:"Noto Sans JP"}
#hero-c .dateband{display:inline-flex;flex-wrap:wrap;align-items:stretch;gap:0;margin:34px auto 0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
#hero-c .db{display:flex;align-items:center;gap:16px;padding:18px 30px}
#hero-c .db + .db{border-left:1px solid var(--line)}
#hero-c .db .k{font-family:"Noto Sans JP";font-weight:700;font-size:13px;color:#fff;background:var(--pink);padding:5px 13px;border-radius:999px;white-space:nowrap}
#hero-c .db .n{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(26px,3vw,40px);color:var(--ink);white-space:nowrap}
#hero-c .db .n small{font-size:.55em;font-weight:700}
#hero-c .hc-cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
#hero-c .band{margin-top:clamp(28px,4vw,52px);position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:end}
#hero-c .band img{width:100%}
#hero-c .band .l{border-top-right-radius:0}
@media(max-width:760px){#hero-c .dateband{flex-direction:column}#hero-c .db + .db{border-left:0;border-top:1px solid var(--line)}#hero-c .band{grid-template-columns:1fr}#hero-c .band .r{display:none}}

/* ============================================================ SECTION base */
.sec{padding:var(--sec-y) 0}
.sec.soft{background:var(--acc-soft)}
.sec.tint{background:linear-gradient(180deg,#fff,var(--acc-soft))}
.eyebrow-lab{display:inline-flex;align-items:center;gap:9px;font-family:"Noto Sans JP";font-weight:800;color:var(--acc);font-size:14px;letter-spacing:.06em;margin-bottom:14px}
.eyebrow-lab::before{content:"";width:22px;height:3px;border-radius:2px;background:var(--acc)}
#hero-b h1,#hero-c h1{text-wrap:balance}
.h2{font-size:var(--t-h2);font-weight:800;color:var(--ink);letter-spacing:.01em}
.h2 .pk{color:var(--acc)}
.lead-tx{font-size:var(--t-lead);color:var(--sub);margin-top:16px;max-width:720px;font-weight:500}
.sec-head{margin-bottom:clamp(34px,5vw,56px)}
.sec-head.center{text-align:center;display:flex;flex-direction:column;align-items:center}
.sec-head.center .lead-tx{margin-left:auto;margin-right:auto}

/* ---------- 特長 cards ---------- */
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feat .card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s}
.feat .card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.feat .num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--acc-tint);color:var(--acc-deep);font-family:"Noto Sans JP";font-weight:800;font-size:20px;margin-bottom:18px}
.feat h3{font-size:var(--t-h3);font-weight:800;margin-bottom:10px}
.feat p{color:var(--sub);font-size:var(--t-body)}
.feat .card.biz,.feat .card.student{display:none}
body[data-division="biz"] .feat .card.biz{display:block}
body[data-division="student"] .feat .card.student{display:block}
@media(max-width:780px){.feat{grid-template-columns:1fr}}

/* ---------- 部門選択 big ---------- */
#division{background:linear-gradient(180deg,#fff,var(--acc-soft))}
.divpick{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.divcard{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:2.5px solid transparent;background:#fff;box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:transform .25s,box-shadow .25s,border-color .25s;padding:0}
.divcard:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.divcard .top{display:flex;align-items:center;gap:18px;padding:26px 28px 0}
.divcard .ttl{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(22px,2.4vw,30px)}
.divcard .tgt{font-size:var(--t-small);color:var(--sub);font-weight:500}
.divcard .prize{margin-left:auto;text-align:right;font-family:"Noto Sans JP"}
.divcard .prize .pl{font-size:12px;font-weight:700}
.divcard .prize .pv{font-size:clamp(24px,3vw,34px);font-weight:800;line-height:1}
.divcard .prize .pv small{font-size:.5em}
.divcard .ph{margin-top:18px;overflow:hidden;background:linear-gradient(180deg,#fff,var(--acc-soft))}
.divcard .ph img{width:100%}
.divcard.biz{--c:var(--pink);--ct:var(--pink-deep)}
.divcard.student{--c:var(--orange);--ct:var(--orange-deep)}
.divcard .ttl,.divcard .prize .pv{color:var(--c)} .divcard .prize .pl{color:var(--ct)}
.divcard .pick{position:absolute;top:18px;right:18px;background:var(--c);color:#fff;font-family:"Noto Sans JP";font-weight:700;font-size:12px;padding:6px 14px;border-radius:999px;opacity:0;transform:translateY(-4px);transition:.25s}
body[data-division="biz"] .divcard.biz,body[data-division="student"] .divcard.student{border-color:var(--c);box-shadow:0 22px 50px -22px var(--c)}
body[data-division="biz"] .divcard.biz .pick,body[data-division="student"] .divcard.student .pick{opacity:1;transform:none}
@media(max-width:780px){.divpick{grid-template-columns:1fr}}
/* divcard — text only */
.divcard{padding:30px 32px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.divcard .ttl{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(22px,2.4vw,30px);color:var(--c)}
.divcard .prize{display:inline-flex;align-items:baseline;gap:10px;margin-left:0;text-align:left}
.divcard .prize .pl{font-size:13px;font-weight:700;color:var(--ct)}
.divcard .prize .pv{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(26px,3vw,34px);line-height:1;color:var(--c);white-space:nowrap}
.divcard .prize .pv small{font-size:.5em}
.divcard .tgt{display:block;font-size:var(--t-body);color:var(--sub);line-height:1.75;margin-top:4px}

/* division-conditional blocks */
.only-biz,.only-student{display:none}
body[data-division="biz"] .only-biz{display:block}
body[data-division="student"] .only-student{display:block}
body[data-division="student"] .only-biz,
body[data-division="biz"] .only-student{display:none}
.divtag{align-items:center;gap:7px;font-family:"Noto Sans JP";font-weight:700;font-size:13px;color:#fff;background:var(--acc);padding:5px 14px;border-radius:999px;margin-bottom:14px}
.divtag.only-biz,.divtag.only-student{display:none}
body[data-division="biz"] .divtag.only-biz{display:inline-flex}
body[data-division="student"] .divtag.only-student{display:inline-flex}

/* ---------- 賞金 ---------- */
.prizes{display:grid;gap:20px}
.prizes.biz-grid{grid-template-columns:1fr;justify-items:center}
.prizes.stu-grid{grid-template-columns:repeat(4,1fr)}
.prizecard{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:30px;text-align:center;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.prizecard .rank{font-family:"Noto Sans JP";font-weight:800;font-size:18px;display:inline-block;padding:6px 18px;border-radius:999px;color:#fff;margin-bottom:14px}
.prizecard .rank.r-aud{font-size:15px;line-height:1.3;padding:7px 16px}
.prizecard .amt{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(32px,4vw,52px);color:var(--ink);line-height:1}
.prizecard .amt small{font-size:.42em;font-weight:700;color:var(--sub)}
.prizecard.spot{background:linear-gradient(135deg,var(--pink),var(--pink-deep));color:#fff;border:0}
.prizecard.spot .rank{background:rgba(255,255,255,.22)}
.prizecard.spot .amt{color:#fff}.prizecard.spot .amt small{color:rgba(255,255,255,.85)}
.prizecard.spot .cap{color:rgba(255,255,255,.9);font-size:var(--t-small);margin-top:10px}
.r-gold{background:var(--gold)}.r-silver{background:var(--silver)}.r-bronze{background:var(--bronze)}.r-aud{background:var(--orange)}
.prizecard .cap{color:var(--sub);font-size:var(--t-small);margin-top:8px}
.prizecard .amt.amt-sm{font-size:clamp(18px,2vw,24px)}

/* ---------- horizontal prize rows ---------- */
.prize-row{display:grid;gap:18px;align-items:stretch;max-width:1100px;margin:0 auto}
.biz-row{grid-template-columns:1.15fr 1fr 1fr 1fr}
.stu-row{grid-template-columns:repeat(4,1fr)}
.prize-row .prizecard,.prize-row .awardcard{margin:0;height:100%}
.prize-row .prizecard{display:flex;flex-direction:column;justify-content:center}
@media(max-width:900px){.biz-row,.stu-row{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.biz-row,.stu-row{grid-template-columns:1fr}}

/* general division award cards */
.awardcard{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:11px;text-align:left}
.awardcard .tagp{align-self:flex-start;font-size:11px;font-weight:700;color:var(--acc-deep);background:var(--acc-tint);border-radius:999px;padding:4px 13px;font-family:"Noto Sans JP"}
.awardcard .at{font-family:"Noto Sans JP";font-weight:800;font-size:clamp(16px,1.6vw,19px);color:var(--ink);line-height:1.45}
.awardcard .av{font-family:"Noto Sans JP";font-weight:800;color:var(--acc);font-size:clamp(24px,2.6vw,32px);line-height:1}
.awardcard .av small{font-size:.5em;font-weight:700}
.awardcard .awl{list-style:none;display:grid;gap:8px;margin-top:2px}
.awardcard .awl li{position:relative;padding-left:18px;font-size:var(--t-small);color:var(--ink);font-weight:500}
.awardcard .awl li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--acc)}
.awardcard .awd{font-size:var(--t-small);color:var(--sub);line-height:1.7}

/* ---------- テーマ ---------- */
.themes{display:grid;gap:18px}
.themes.g4{grid-template-columns:repeat(4,1fr)}
.themes.g4-stu{grid-template-columns:repeat(4,1fr)}
.theme{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow-sm);transition:transform .25s}
.theme:hover{transform:translateY(-4px)}
.theme .ic{width:50px;height:50px;border-radius:14px;background:var(--acc-tint);display:flex;align-items:center;justify-content:center;color:var(--acc-deep);margin-bottom:16px}
.theme .ic svg{width:28px;height:28px}
.theme h4{font-family:"Noto Sans JP";font-weight:800;font-size:18px;margin-bottom:8px}
.theme p{font-size:var(--t-small);color:var(--sub);line-height:1.7}
.themes-note{text-align:center;margin-top:26px;font-family:"Noto Sans JP";font-weight:700;color:var(--acc);font-size:var(--t-lead)}
@media(max-width:980px){.themes.g4,.themes.g4-stu{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.themes.g4,.themes.g4-stu{grid-template-columns:1fr}}

/* ---------- 流れ timeline ---------- */
.flow{display:grid;gap:16px;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch}
.step{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:22px 18px;box-shadow:var(--shadow-sm);text-align:center}
.step .n{font-family:"Noto Sans JP";font-weight:800;font-size:12px;color:var(--acc);letter-spacing:.08em}
.step h4{font-family:"Noto Sans JP";font-weight:800;font-size:16px;margin:8px 0 6px}
.step .when{font-family:"Noto Sans JP";font-weight:800;color:var(--ink);font-size:18px}
.step .where{font-size:12px;color:var(--sub);margin-top:4px}
.step.fin{background:linear-gradient(135deg,var(--acc),var(--acc-deep));border:0;color:#fff}
.step.fin .n,.step.fin .when{color:#fff}.step.fin .where{color:rgba(255,255,255,.9)}
.flow .arrow{display:flex;align-items:center;justify-content:center;color:var(--acc)}
.flow .arrow svg{width:22px;height:22px}
.flow-note{margin-top:22px;text-align:center;background:var(--acc);color:#fff;font-family:"Noto Sans JP";font-weight:700;border-radius:999px;padding:14px 24px;display:inline-block}
.flow-wrap{overflow-x:auto;padding-bottom:6px}
@media(max-width:920px){.flow{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr}.flow .arrow{transform:rotate(90deg);padding:2px}}

/* ---------- イベント日程 ---------- */
.events{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;align-items:stretch}
.evcard{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-sm)}
.evcard.feature{border:2px solid var(--acc);background:linear-gradient(180deg,var(--acc-soft),#fff)}
.evcard h3{font-family:"Noto Sans JP";font-weight:800;font-size:var(--t-h3);margin-bottom:6px;display:flex;align-items:center;gap:10px}
.evcard .pill{font-size:11px;font-weight:700;color:#fff;background:var(--acc);padding:4px 11px;border-radius:999px;font-family:"Noto Sans JP"}
.evcard .desc{color:var(--sub);font-size:var(--t-small);margin-bottom:18px}
.evrow{display:flex;gap:16px;padding:16px 0;border-top:1px dashed var(--line)}
.evrow:first-of-type{border-top:0}
.evrow .date{font-family:"Noto Sans JP";font-weight:800;font-size:20px;color:var(--acc);white-space:nowrap;min-width:78px}
.evrow .meta b{font-family:"Noto Sans JP";font-weight:700;display:block;font-size:15px}
.evrow .meta span{font-size:13px;color:var(--sub)}
.consult ul{list-style:none;display:grid;gap:10px;margin-top:6px}
.consult li{display:flex;gap:10px;align-items:baseline;font-size:var(--t-body)}
.consult li b{font-family:"Noto Sans JP";font-weight:800;color:var(--acc);min-width:84px}
@media(max-width:880px){.events{grid-template-columns:1fr}}

/* ---------- 応募資格 ---------- */
.elig{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.eligcard{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-sm)}
.eligcard h3{font-family:"Noto Sans JP";font-weight:800;font-size:var(--t-h3);color:#fff;background:var(--acc);border-radius:12px;padding:10px 18px;margin-bottom:18px;display:inline-block}
.eligcard ul{list-style:none;display:grid;gap:14px}
.eligcard li{display:flex;gap:12px;font-size:var(--t-body);color:var(--ink)}
.eligcard li .ck{flex:none;width:22px;height:22px;color:var(--acc);margin-top:3px}
.eligcard .qual b{color:var(--acc-deep);font-weight:700}
@media(max-width:780px){.elig{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:860px;margin:0 auto;display:grid;gap:14px}
.qa{background:#fff;border:1.5px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.qa summary{list-style:none;cursor:pointer;display:flex;gap:14px;align-items:center;padding:22px 26px;font-family:"Noto Sans JP";font-weight:700;font-size:var(--t-h3);font-size:clamp(16px,1.6vw,19px)}
.qa summary::-webkit-details-marker{display:none}
.qa summary .q{flex:none;width:30px;height:30px;border-radius:8px;background:var(--acc-tint);color:var(--acc-deep);display:flex;align-items:center;justify-content:center;font-weight:800}
.qa summary .ar{margin-left:auto;color:var(--acc);transition:transform .25s;flex:none}
.qa[open] summary .ar{transform:rotate(180deg)}
.qa .a{padding:0 26px 24px 70px;color:var(--sub);font-size:var(--t-body)}

/* ---------- 応募 CTA ---------- */
#apply{background:linear-gradient(135deg,var(--acc),var(--acc-deep));color:#fff;position:relative;overflow:hidden}
#apply .h2{color:#fff}
#apply .lead-tx{color:rgba(255,255,255,.92)}
.applygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:42px}
.applycard{background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.28);border-radius:var(--radius);padding:30px;backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:14px}
.applycard .st{font-family:"Noto Sans JP";font-weight:800;font-size:13px;color:rgba(255,255,255,.8)}
.applycard h3{font-family:"Noto Sans JP";font-weight:800;font-size:var(--t-h3);color:#fff}
.applycard p{font-size:var(--t-small);color:rgba(255,255,255,.85);flex:1}
.applycard .go{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:var(--acc-deep);font-family:"Noto Sans JP";font-weight:800;padding:14px 22px;border-radius:999px;transition:transform .18s}
.applycard .go:hover{transform:translateY(-3px)}
.applycard.lead-card{background:#fff}
.applycard.lead-card .st{color:var(--acc)}.applycard.lead-card h3{color:var(--ink)}.applycard.lead-card p{color:var(--sub)}
.applycard.lead-card .go{background:var(--acc);color:#fff}
@media(max-width:880px){.applygrid{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.ft{background:#241a20;color:#fff;padding:clamp(54px,7vw,84px) 0 40px}
.ft .h2{color:#fff;font-size:var(--t-h3)}
.ft-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-bottom:44px}
.org h4{font-family:"Noto Sans JP";font-weight:700;font-size:13px;color:var(--pink);margin-bottom:8px}
.org p{font-size:var(--t-small);color:rgba(255,255,255,.78);line-height:1.9}
.org + .org{margin-top:22px}
.contactbox{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:28px}
.contactbox h4{font-family:"Noto Sans JP";font-weight:800;font-size:var(--t-h3);margin-bottom:6px}
.contactbox .sub{font-size:var(--t-small);color:rgba(255,255,255,.7);margin-bottom:18px}
.contactbox .row{display:flex;gap:12px;align-items:baseline;font-size:var(--t-body);margin-top:10px}
.contactbox .row b{font-family:"Noto Sans JP";color:var(--pink);min-width:54px}
.ft-bot{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;font-size:12px;color:rgba(255,255,255,.55);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media(max-width:780px){.ft-grid{grid-template-columns:1fr}}

/* ---------- mobile sticky CTA ---------- */
.mcta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;gap:10px;padding:12px 16px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.mcta a{flex:1;text-align:center}
.mcta .btn{padding:14px;width:100%;font-size:15px}
@media(max-width:680px){.mcta{display:flex}body{padding-bottom:78px}}

/* ---------- hero switcher (removed) ---------- */

/* ---------- footer brand ---------- */
.ft-brand{margin-bottom:24px}
.ft-brand .ft-mk{display:block;font-family:"Noto Sans JP";font-weight:700;font-size:12px;color:var(--pink);letter-spacing:.04em;margin-bottom:2px}
.ft-brand .ft-name{display:block;font-family:"Noto Sans JP";font-weight:800;font-size:19px;color:#fff;letter-spacing:.02em}

/* ---------- schedule timeline ---------- */
.sched{max-width:860px;margin:0 auto;list-style:none;position:relative}
.sched .ev{position:relative;display:grid;grid-template-columns:128px 36px 1fr;align-items:center;gap:16px;padding:14px 0}
.ev-date{text-align:right}
.ev-date b{display:block;font-family:"Noto Sans JP";font-weight:800;font-style:italic;color:var(--acc);font-size:clamp(16px,1.8vw,23px);line-height:1.15;letter-spacing:.01em}
.ev-date i{display:block;font-style:normal;font-size:10px;letter-spacing:.12em;color:var(--sub);font-weight:700;margin-top:3px}
.ev-dot{align-self:stretch;position:relative}
.ev-dot::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--line);transform:translateX(-50%)}
.sched .ev:first-child .ev-dot::before{top:50%}
.sched .ev:last-child .ev-dot::before{bottom:50%}
.ev-dot::after{content:"";position:absolute;left:50%;top:50%;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--acc);transform:translate(-50%,-50%);z-index:1}
.ev.key .ev-dot::after{background:var(--acc);box-shadow:0 0 0 5px var(--acc-tint)}
.ev-body{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:15px 22px;box-shadow:var(--shadow-sm)}
.ev.key .ev-body{border-color:var(--acc)}
.ev.hl .ev-body{background:var(--acc-soft);border-color:var(--acc)}
.ev-body b{display:block;font-family:"Noto Sans JP";font-weight:800;font-size:clamp(16px,1.5vw,18px);color:var(--ink)}
.ev-body > span{display:block;font-size:var(--t-small);color:var(--sub);margin-top:4px;line-height:1.7}
.ev-body .tagmini{display:inline-block;margin-left:10px;font-size:11px;font-weight:700;color:#fff;background:var(--acc);border-radius:999px;padding:2px 10px;vertical-align:middle;font-style:normal}
@media(max-width:560px){.sched .ev{grid-template-columns:70px 22px 1fr;gap:10px}.ev-date b{font-size:15px}.ev-body{padding:13px 16px}}

/* ---------- notes ---------- */
.notes{max-width:900px;margin:0 auto;list-style:none;display:grid;gap:13px}
.notes li{display:flex;gap:16px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:18px 22px;box-shadow:var(--shadow-sm)}
.notes .no{flex:none;width:30px;height:30px;border-radius:50%;background:var(--acc-tint);color:var(--acc-deep);font-family:"Noto Sans JP";font-weight:800;display:flex;align-items:center;justify-content:center;font-size:15px}
.notes p{font-size:var(--t-body);color:var(--ink);line-height:1.8}
