/*
Theme Name: JAPAN STAR CHEF PROJECT 関東大会
Theme URI:
Author: JAPAN STAR CHEF PROJECT 実行委員会
Description: JAPAN STAR CHEF PROJECT 2027 関東大会 公式サイト用テーマ（1ページ構成）。統合企画書（収入1.7億／応募無料／プレゼンティング枠追加版）準拠。構造化データ・FAQ対応。
Version: 2.1
Requires at least: 6.0
Tested up to: 6.8
License: GNU General Public License v2 or later
Text Domain: jscp-kanto
*/

  :root{
    --sumi:#0e1114;
    --sumi-2:#151a1f;
    --sumi-3:#1e242b;
    --kinari:#f4efe4;
    --shu:#c6402c;
    --shu-dark:#a6331f;
    --kin:#c2a05a;
    --kin-hi:#e6cd8e;
    --ink:#2b2620;
    --ink-2:#5c5344;
    --mist:#98a0a7;
    --paper-line:rgba(43,38,32,0.14);
    --dark-line:rgba(244,239,228,0.13);
    --gold-grad:linear-gradient(100deg,#8f6f2e 0%,#e6cd8e 32%,#c2a05a 55%,#f0dcae 78%,#a6813a 100%);
    --sp:clamp(72px,9vw,124px);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:66px;}
  body{
    margin:0; background:var(--sumi); color:var(--kinari);
    font-family:'Noto Sans JP',sans-serif; line-height:1.85;
    -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  h1,h2,h3{margin:0; font-weight:700;}
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%; display:block;}
  ::selection{background:var(--kin); color:var(--sumi);}
  :focus-visible{outline:2px solid var(--kin-hi); outline-offset:3px;}

  .mincho{font-family:'Shippori Mincho',serif;}
  .mono{font-family:'Space Mono',monospace;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  .eyebrow{
    font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.26em;
    text-transform:uppercase; font-size:11.5px; color:var(--kin);
    display:flex; align-items:center; gap:12px;
  }
  .eyebrow::before{content:""; width:26px; height:1px; background:var(--kin); flex:none;}

  /* ---------- NAV ---------- */
  .progress{position:fixed; top:0; left:0; height:2px; width:0; z-index:120; background:var(--gold-grad);}
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:110;
    background:rgba(14,17,20,.82); backdrop-filter:blur(10px);
    border-bottom:1px solid transparent; transition:background .3s, border-color .3s;
  }
  .nav.solid{background:rgba(14,17,20,.96); border-bottom-color:var(--dark-line);}
  .nav .wrap{display:flex; align-items:center; justify-content:space-between; height:66px; gap:20px;}
  .brand{
    font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.05em;
    font-size:15px; color:var(--kinari); text-decoration:none;
    display:flex; align-items:center; gap:10px; white-space:nowrap;
  }
  .brand em{font-style:normal; color:var(--shu);}
  .brand .tag{
    font-family:'Noto Sans JP',sans-serif; font-weight:500; font-size:10.5px; letter-spacing:.08em;
    color:var(--kin); border:1px solid rgba(194,160,90,.55); padding:2px 7px; margin-left:2px;
  }
  .star{width:17px; height:17px; flex:none;}
  .star path{fill:var(--kin);}
  .nav-links{display:flex; gap:20px; list-style:none; margin:0; padding:0;}
  .nav-links a{
    font-size:12.5px; letter-spacing:.09em; color:var(--mist); text-decoration:none;
    position:relative; padding-bottom:3px; transition:color .2s;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
    background:var(--kin); transition:width .25s ease;
  }
  .nav-links a:hover{color:var(--kin-hi);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:.1em; font-weight:600;
    color:var(--sumi); background:var(--gold-grad); padding:10px 20px;
    text-decoration:none; white-space:nowrap;
  }
  .burger{
    display:none; width:42px; height:42px; border:1px solid var(--dark-line);
    background:none; cursor:pointer; padding:0; position:relative;
  }
  .burger span{
    position:absolute; left:12px; width:18px; height:1.5px; background:var(--kinari);
    transition:transform .3s, opacity .2s;
  }
  .burger span:nth-child(1){top:15px;}
  .burger span:nth-child(2){top:20px;}
  .burger span:nth-child(3){top:25px;}
  body.menu-open .burger span:nth-child(1){transform:translateY(5px) rotate(45deg);}
  body.menu-open .burger span:nth-child(2){opacity:0;}
  body.menu-open .burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}
  @media (max-width:960px){
    .nav-links{display:none;}
    .nav-cta{display:none;}
    .burger{display:block;}
    .brand .tag{display:none;}
  }
  .drawer{
    position:fixed; inset:66px 0 0; z-index:105; background:#0e1114;
    padding:34px 24px 40px; overflow-y:auto;
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity .3s ease, transform .3s ease, visibility .3s;
  }
  body.menu-open .drawer{opacity:1; visibility:visible; transform:none;}
  .drawer a{
    display:block; text-decoration:none; padding:17px 0;
    border-bottom:1px solid var(--dark-line); font-size:16px; letter-spacing:.04em;
  }
  .drawer a .en{
    display:block; font-family:'Oswald',sans-serif; font-size:10.5px;
    letter-spacing:.2em; color:var(--kin); text-transform:uppercase;
  }
  .drawer .d-cta{
    margin-top:26px; display:grid; gap:10px;
  }
  .drawer .d-cta a{
    border:none; text-align:center; padding:15px; font-family:'Oswald',sans-serif;
    font-size:13px; letter-spacing:.1em;
  }
  .drawer .d-cta a.p{background:var(--gold-grad); color:var(--sumi);}
  .drawer .d-cta a.g{border:1px solid var(--dark-line); color:var(--kinari);}

  /* ---------- HERO ---------- */
  .hero{position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden;}
  .hero-media{position:absolute; inset:0;}
  .hero-media img{width:100%; height:100%; object-fit:cover; object-position:68% center;}
  .hero-media::after{
    content:""; position:absolute; inset:0;
    background:
      linear-gradient(95deg, rgba(14,17,20,.97) 0%, rgba(14,17,20,.9) 38%, rgba(14,17,20,.45) 64%, rgba(14,17,20,.15) 100%),
      linear-gradient(180deg, rgba(14,17,20,.85) 0%, transparent 26%, transparent 55%, rgba(14,17,20,.9) 100%);
  }
  .hero-inner{position:relative; z-index:2; width:100%; padding-top:128px; padding-bottom:46px;}
  .hero h1{
    font-family:'Shippori Mincho',serif; font-weight:800;
    font-size:clamp(29px,4.4vw,52px); line-height:1.45; letter-spacing:.01em;
    margin:24px 0 0; max-width:none;
  }
  .hero h1 em{
    font-style:normal;
    background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero-sub{margin-top:26px; max-width:30em; color:#c3c9ce; font-size:15px;}
  .hero-cta{margin-top:38px; display:flex; gap:14px; flex-wrap:wrap;}

  .btn{
    font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.1em; font-weight:600;
    padding:15px 28px; text-decoration:none; display:inline-block;
    border:1px solid transparent; transition:background .22s, color .22s, border-color .22s;
  }
  .btn-primary{background:var(--shu); color:#fff;}
  .btn-primary:hover{background:var(--shu-dark);}
  .btn-gold{background:var(--gold-grad); color:var(--sumi);}
  .btn-gold:hover{filter:brightness(1.08);}
  .btn-ghost{border-color:rgba(244,239,228,.28); color:var(--kinari);}
  .btn-ghost:hover{border-color:var(--kin); color:var(--kin-hi);}

  /* ticket stub — signature element */
  .ticket{
    margin-top:52px; position:relative; background:rgba(21,26,31,.9);
    border:1px solid var(--dark-line); display:grid; grid-template-columns:repeat(4,1fr);
    backdrop-filter:blur(4px);
  }
  .ticket::before,.ticket::after{
    content:""; position:absolute; left:0; right:0; height:14px;
    background-image:radial-gradient(circle at 20px 50%, var(--sumi) 7px, transparent 7.5px);
    background-size:40px 14px; background-repeat:repeat-x;
  }
  .ticket::before{top:-7px;}
  .ticket::after{bottom:-7px; transform:scaleY(-1);}
  .t-item{padding:24px 22px; border-right:1px dashed var(--dark-line);}
  .t-item:last-child{border-right:none;}
  .t-label{
    font-family:'Oswald',sans-serif; font-size:10.5px; letter-spacing:.16em;
    color:var(--kin); text-transform:uppercase; margin-bottom:9px;
  }
  .t-value{font-family:'Space Mono',monospace; font-size:16px; line-height:1.5; color:var(--kinari);}
  .t-value small{display:block; font-family:'Noto Sans JP',sans-serif; font-size:11.5px; color:var(--mist);}
  @media (max-width:780px){
    .ticket{grid-template-columns:1fr 1fr;}
    .t-item:nth-child(2){border-right:none;}
    .t-item:nth-child(1),.t-item:nth-child(2){border-bottom:1px dashed var(--dark-line);}
  }
  @media (max-width:640px){
    .hero-media::after{background:linear-gradient(180deg, rgba(14,17,20,.93) 0%, rgba(14,17,20,.72) 42%, rgba(14,17,20,.9) 100%), linear-gradient(90deg, rgba(14,17,20,.72), rgba(14,17,20,.32));}
    .eyebrow{font-size:10.5px; letter-spacing:.17em;}
    .eyebrow::before{width:20px;}
    .hero-media img{object-position:76% center;}
    .hero-inner{padding-top:112px; padding-bottom:36px;}
    .hero-cta{gap:10px;}
    .hero-cta .btn{width:100%; text-align:center;}
  }

  /* ---------- FULL-BLEED SHOWCASE ---------- */
  .showcase{position:relative; height:clamp(340px,62vh,620px); overflow:hidden;}
  .showcase img{width:100%; height:100%; object-fit:cover;}
  .showcase::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(14,17,20,.55) 0%, transparent 30%, rgba(14,17,20,.8) 100%);
  }
  .showcase-cap{
    position:absolute; z-index:2; left:0; right:0; bottom:0; padding-bottom:42px;
  }
  .showcase-cap .line{
    font-family:'Shippori Mincho',serif; font-size:clamp(17px,2.4vw,26px); font-weight:700;
    line-height:1.7; text-shadow:0 2px 20px rgba(0,0,0,.6);
  }
  .showcase-cap .meta{
    font-family:'Space Mono',monospace; font-size:11.5px; letter-spacing:.1em;
    color:var(--kin-hi); margin-top:10px;
  }

  /* ---------- SECTIONS ---------- */
  .sec{padding:var(--sp) 0;}
  .sec-dark{background:var(--sumi);}
  .sec-deep{background:var(--sumi-2);}
  .sec-light{background:var(--kinari); color:var(--ink);}
  .sec-light .eyebrow{color:var(--shu);}
  .sec-light .eyebrow::before{background:var(--shu);}

  .head{display:flex; justify-content:space-between; align-items:flex-end; gap:44px; flex-wrap:wrap; margin-bottom:46px;}
  .head h2{
    font-family:'Shippori Mincho',serif; font-weight:800;
    font-size:clamp(24px,3.2vw,38px); line-height:1.6; margin-top:16px; max-width:16em;
  }
  .head-note{max-width:24em; font-size:13.5px; color:var(--mist); line-height:1.95;}
  .sec-light .head-note{color:var(--ink-2);}

  /* ---------- IMAGE BAND ---------- */
  .band{margin:0 0 52px; position:relative; border:1px solid var(--dark-line);}
  .sec-light .band{border-color:var(--paper-line);}
  .band .ph{display:block; aspect-ratio:21/8; overflow:hidden; background:var(--sumi-2);}
  .band.full .ph{aspect-ratio:16/9;}
  .band img{width:100%; height:100%; object-fit:cover;}
  .band figcaption{
    position:absolute; left:0; right:0; bottom:0; padding:44px 22px 15px;
    background:linear-gradient(0deg, rgba(0,0,0,.78), transparent);
    display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  }
  .band .idx{
    font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.1em; color:var(--kin-hi);
    border:1px solid rgba(230,205,142,.5); padding:1px 7px;
  }
  .band .cap{
    font-family:'Oswald',sans-serif; font-size:11.5px; letter-spacing:.11em;
    text-transform:uppercase; color:#f4efe4;
  }
  @media (max-width:640px){ .band .ph{aspect-ratio:4/3;} }

  /* ---------- VISION ---------- */
  .two-col{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
  @media (max-width:860px){ .two-col{grid-template-columns:1fr; gap:38px;} }
  .lab{
    font-family:'Oswald',sans-serif; font-size:10.5px; letter-spacing:.16em;
    color:var(--kin); text-transform:uppercase; margin-bottom:16px;
  }
  .sec-light .lab{color:var(--shu);}
  .issues{border-top:1px solid var(--dark-line);}
  .issue{display:grid; grid-template-columns:34px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid var(--dark-line);}
  .issue .n{font-family:'Space Mono',monospace; color:var(--kin); font-size:15px; font-weight:700;}
  .issue .t{font-size:14px;}
  .flow{display:grid; grid-template-columns:repeat(4,1fr); gap:2px;}
  .fs{
    padding:17px 8px; text-align:center; min-height:62px;
    font-family:'Oswald',sans-serif; font-size:12.5px; font-weight:600; letter-spacing:.02em;
    display:flex; align-items:center; justify-content:center;
  }
  .fs.a{background:var(--sumi-3); color:var(--kinari);}
  .fs.b{background:var(--gold-grad); color:var(--sumi);}
  .flow-note{font-size:11.5px; color:var(--mist); margin-top:10px; text-align:right;}
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--dark-line); border:1px solid var(--dark-line); margin-top:44px;}
  .pillar{background:var(--sumi-2); padding:24px 22px;}
  .pillar .p-t{font-family:'Oswald',sans-serif; font-size:12.5px; letter-spacing:.08em; color:var(--kin); margin-bottom:8px;}
  .pillar .p-d{font-size:12.5px; color:var(--mist); line-height:1.8;}
  @media (max-width:760px){ .pillars{grid-template-columns:1fr;} }
  .note-kanto{
    margin-top:40px; padding:22px 26px; background:var(--sumi-3);
    border-left:3px solid var(--shu); font-size:13.5px; line-height:1.95;
  }
  .note-kanto b{color:var(--kin-hi); font-weight:700;}

  /* ---------- QUOTE BAND (full-bleed) ---------- */
  .quote-band{position:relative; padding:clamp(90px,13vw,150px) 0; overflow:hidden;}
  .quote-band .qb-img{position:absolute; inset:0;}
  .quote-band .qb-img img{width:100%; height:100%; object-fit:cover;}
  .quote-band .qb-img::after{content:""; position:absolute; inset:0; background:rgba(14,17,20,.7);}
  .quote-band .wrap{position:relative; z-index:2;}
  .quote-band p{
    font-family:'Shippori Mincho',serif; font-weight:700;
    font-size:clamp(19px,2.7vw,32px); line-height:1.95; max-width:16em;
    text-shadow:0 2px 24px rgba(0,0,0,.6);
  }
  .quote-band .attr{
    font-family:'Space Mono',monospace; font-size:11.5px; letter-spacing:.1em;
    color:var(--kin-hi); margin-top:24px;
  }

  /* ---------- CONCEPT ---------- */
  .concept-lead{
    font-family:'Shippori Mincho',serif; font-size:clamp(20px,2.9vw,31px); font-weight:700;
    line-height:1.95; max-width:18em; color:var(--ink); margin-bottom:50px;
  }
  .cgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-line); border-block:1px solid var(--paper-line);}
  .ccell{background:var(--kinari); padding:32px 26px;}
  .ccell .num{font-family:'Space Mono',monospace; color:var(--shu); font-size:13px;}
  .ccell h3{font-size:16.5px; margin:14px 0 11px;}
  .ccell p{font-size:13.5px; color:var(--ink-2);}
  @media (max-width:760px){ .cgrid{grid-template-columns:1fr;} }

  /* ---------- OVERVIEW ---------- */
  .ovgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--dark-line); border:1px solid var(--dark-line);}
  .ov{background:var(--sumi); padding:28px 24px;}
  .ov .t-label{margin-bottom:11px;}
  .ov .v{font-size:14.5px; line-height:1.75;}
  .ov .v b{font-family:'Space Mono',monospace; color:var(--kin-hi); font-weight:700;}
  @media (max-width:760px){ .ovgrid{grid-template-columns:1fr;} }
  .prices{
    margin-top:1px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--dark-line); border:1px solid var(--dark-line); border-top:none;
  }
  .price{background:var(--sumi-2); padding:24px; text-align:center;}
  .price .pn{font-size:12.5px; color:var(--mist); letter-spacing:.05em;}
  .price .pa{font-family:'Space Mono',monospace; font-size:25px; color:var(--kin-hi); margin-top:6px;}
  @media (max-width:760px){ .prices{grid-template-columns:1fr;} }

  /* ---------- PROCESS ---------- */
  .steps{border-top:1px solid var(--paper-line);}
  .step{display:grid; grid-template-columns:64px 210px 1fr; gap:22px; padding:24px 0; border-bottom:1px solid var(--paper-line); align-items:start;}
  .step .n{font-family:'Space Mono',monospace; font-size:21px; color:var(--shu); font-weight:700;}
  .step .s{font-weight:700; font-size:15px; padding-top:2px;}
  .step .cnt{
    display:block; width:fit-content; font-family:'Space Mono',monospace; font-size:11.5px;
    color:var(--shu); border:1px solid var(--shu); padding:2px 8px; margin-top:8px;
  }
  .step .d{font-size:13.5px; color:var(--ink-2); padding-top:2px;}
  @media (max-width:760px){
    .step{grid-template-columns:40px 1fr; gap:8px 16px;}
    .step .s,.step .d{grid-column:2;}
  }
  .days{border-top:1px solid var(--paper-line); margin-top:14px;}
  .day{display:grid; grid-template-columns:92px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--paper-line);}
  .day .t{font-family:'Space Mono',monospace; font-size:14.5px; color:var(--shu); font-weight:700;}
  .day .w{font-size:14px;}
  .day.hi .w{font-weight:700;}
  .callout{
    margin-top:34px; padding:22px 26px; background:#fff;
    border:1px solid var(--paper-line); border-left:3px solid var(--shu);
    font-size:13.5px; color:var(--ink-2); line-height:1.95;
  }
  .callout b{color:var(--ink);}

  /* ---------- SCORECARD ---------- */
  .card{position:relative; background:var(--sumi-2); border:1px solid var(--dark-line); max-width:780px; margin:0 auto;}
  .card::before,.card::after{
    content:""; position:absolute; left:0; right:0; height:14px;
    background-image:radial-gradient(circle at 20px 50%, var(--sumi) 7px, transparent 7.5px);
    background-size:40px 14px; background-repeat:repeat-x;
  }
  .card::before{top:-7px;}
  .card::after{bottom:-7px; transform:scaleY(-1);}
  .card-h{padding:24px 28px; border-bottom:1px dashed var(--dark-line); display:flex; justify-content:space-between; align-items:center; gap:14px;}
  .card-h .ttl{font-family:'Oswald',sans-serif; letter-spacing:.12em; font-size:12.5px; color:var(--kin);}
  .card-h .tot{font-family:'Space Mono',monospace; font-size:13.5px; color:var(--mist);}
  .row{display:grid; grid-template-columns:1fr 110px 42px; align-items:center; gap:16px; padding:17px 28px; border-bottom:1px solid var(--dark-line);}
  .row:last-of-type{border-bottom:none;}
  .row .nm{font-size:14px; font-weight:500;}
  .row .ds{display:block; font-size:12px; color:var(--mist); margin-top:3px; font-weight:400;}
  .row .pt{font-family:'Space Mono',monospace; font-size:17px; color:var(--kin-hi); text-align:right;}
  .bar{width:100%; height:5px; background:var(--sumi-3); position:relative; overflow:hidden;}
  .bar i{position:absolute; left:0; top:0; height:100%; background:var(--gold-grad); width:var(--w); transition:width 1.1s cubic-bezier(.2,.7,.3,1);}
  .card.armed .bar i{width:0;}
  .card.armed.in .bar i{width:var(--w);}
  @media (max-width:620px){ .row{grid-template-columns:1fr auto;} .bar{display:none;} }
  .card-f{padding:20px 28px; font-size:12.5px; color:var(--mist); border-top:1px dashed var(--dark-line);}

  /* ---------- MEDIA CARDS ---------- */
  .mgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  @media (max-width:860px){ .mgrid{grid-template-columns:1fr;} }
  .mcard{border:1px solid var(--dark-line); background:var(--sumi); overflow:hidden;}
  .mcard .ph{aspect-ratio:16/10; overflow:hidden; display:block;}
  .mcard img{width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.3,1);}
  .mcard:hover img{transform:scale(1.05);}
  .mcard .body{padding:22px 22px 26px;}
  .mcard .kicker{font-family:'Space Mono',monospace; font-size:11px; color:var(--kin); letter-spacing:.08em;}
  .mcard h3{font-size:16px; margin:10px 0 10px;}
  .mcard p{font-size:13px; color:var(--mist); line-height:1.85;}

  /* ---------- SPONSOR TABLE ---------- */
  .tiers{width:100%; border-collapse:collapse;}
  .tiers th{
    text-align:left; font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:.11em;
    color:var(--shu); text-transform:uppercase; padding:0 0 13px; border-bottom:2px solid var(--ink);
  }
  .tiers td{padding:21px 0; border-bottom:1px solid var(--paper-line); font-size:13.5px; vertical-align:top;}
  .tiers .nm{font-weight:700; font-size:14.5px;}
  .tiers .amt{font-family:'Space Mono',monospace; color:var(--shu); font-size:15.5px; white-space:nowrap;}
  .tiers .cnt{color:var(--ink-2); font-size:13px; white-space:nowrap;}
  .tiers .rt{color:var(--ink-2);}
  .tiers tbody tr.top .nm{color:#8a6a1d;}
  .tiers tbody tr.pt .nm{color:#5d666f;}
  @media (max-width:760px){
    .tiers thead{display:none;}
    .tiers,.tiers tbody,.tiers tr,.tiers td{display:block; width:100%;}
    .tiers tr{padding:16px 0; border-bottom:1px solid var(--paper-line);}
    .tiers td{border:none; padding:3px 0;}
  }
  .fine{margin-top:26px; font-size:12.5px; color:var(--ink-2); line-height:1.95;}

  /* ---------- FINAL CTA ---------- */
  .final{position:relative; padding:clamp(90px,12vw,140px) 0; overflow:hidden;}
  .final .f-img{position:absolute; inset:0;}
  .final .f-img img{width:100%; height:100%; object-fit:cover; object-position:center 92%;}
  .final .f-img::after{content:""; position:absolute; inset:0; background:linear-gradient(96deg, rgba(14,17,20,.985) 0%, rgba(14,17,20,.955) 38%, rgba(14,17,20,.72) 72%, rgba(14,17,20,.5) 100%), linear-gradient(180deg, rgba(14,17,20,.55), rgba(14,17,20,.8));}
  .final .wrap{position:relative; z-index:2;}
  .final h2{font-family:'Shippori Mincho',serif; font-weight:800; font-size:clamp(25px,3.4vw,40px); line-height:1.6; max-width:14em;}
  .final .lead{margin-top:18px; color:#c3c9ce; font-size:14.5px; max-width:30em;}
  .cta-grid{margin-top:38px; display:flex; gap:12px; flex-wrap:wrap;}

  /* ---------- FOOTER ---------- */
  .foot{background:var(--sumi); border-top:1px solid var(--dark-line); padding:56px 0 40px;}
  .foot-nav{display:flex; gap:26px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--dark-line); margin-bottom:26px;}
  .foot-nav a{font-size:12.5px; color:var(--mist); text-decoration:none;}
  .foot-nav a:hover{color:var(--kin-hi);}
  .foot-note{font-size:12px; color:var(--mist); max-width:72ch; line-height:1.95;}
  .foot-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:30px; font-size:11.5px; color:var(--mist);}

  /* ---------- MOTION ---------- */
  .reveal{opacity:0; transform:translateY(20px); transition:opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1);}
  .reveal.in{opacity:1; transform:none;}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; transition:none;}
    .bar i{transition:none;}
    .mcard img{transition:none;}
  }

  /* ==========================================================
     v2.0 — 統合企画書（日程・会場確定版）対応の追加コンポーネント
     ========================================================== */

  /* ---------- 共通 ---------- */
  .fine-dark{margin-top:20px; font-size:12.5px; color:var(--mist); line-height:1.95;}
  .callout-dark{
    background:var(--sumi-3); border:1px solid var(--dark-line);
    border-left:3px solid var(--shu); color:var(--mist);
  }
  .callout-dark b{color:var(--kin-hi);}

  /* ---------- VISION : 5つの役割 ---------- */
  .roles{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
  .role{background:var(--sumi-2); border:1px solid var(--dark-line); padding:22px 18px;}
  .role .rn{font-family:'Space Mono',monospace; font-size:12px; color:var(--kin);}
  .role .rt{font-family:'Oswald',sans-serif; font-size:14.5px; letter-spacing:.06em; margin:11px 0 9px;}
  .role .rd{font-size:12.5px; color:var(--mist); line-height:1.8;}
  @media (max-width:900px){ .roles{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .roles{grid-template-columns:1fr;} }

  /* ---------- CONCEPT : 5事業タグ ---------- */
  .concept-lead{margin-bottom:34px;}
  .tags{display:flex; flex-wrap:wrap; gap:10px;}
  .tg{
    font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.08em;
    padding:9px 18px; background:#fff; border:1px solid var(--paper-line); color:var(--ink);
  }
  .tags-note{max-width:46em; font-size:13.5px; color:var(--ink-2); line-height:1.95; margin:20px 0 50px;}

  /* ---------- PROGRAM : 3日間 ---------- */
  .dayrow{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--dark-line); border:1px solid var(--dark-line);}
  .dcard{background:var(--sumi); padding:28px 24px;}
  .dcard.hi{background:var(--sumi-3);}
  .dcard .dd{font-family:'Space Mono',monospace; font-size:27px; color:var(--kin-hi); line-height:1.1;}
  .dcard .dd span{font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:.16em; color:var(--mist); margin-left:9px;}
  .dcard .dl{font-family:'Oswald',sans-serif; font-size:12.5px; letter-spacing:.12em; color:var(--kin); margin:14px 0 10px;}
  .dcard .dt{font-size:13px; color:var(--mist); line-height:1.85;}
  .dcard .dt b{color:var(--kinari); font-weight:700;}
  @media (max-width:780px){ .dayrow{grid-template-columns:1fr;} }

  /* ---------- PROGRAM : タイムテーブル ---------- */
  .tl{list-style:none; margin:0; padding:0; border-top:1px solid var(--dark-line);}
  .tl li{
    display:grid; grid-template-columns:84px minmax(0,1fr) minmax(0,1.2fr); gap:22px;
    padding:16px 0; border-bottom:1px solid var(--dark-line); align-items:baseline;
  }
  .tl .tm{font-family:'Space Mono',monospace; font-size:14px; color:var(--mist);}
  .tl .ts{font-size:14.5px; font-weight:500;}
  .tl .td{font-size:12.5px; color:var(--mist);}
  .tl li.mj .tm{color:var(--kin-hi);}
  .tl li.mj .ts{font-weight:700; color:var(--kin-hi);}
  @media (max-width:700px){
    .tl li{grid-template-columns:74px 1fr; gap:6px 16px;}
    .tl .td{grid-column:2;}
  }

  /* ---------- VENUE : ゾーニング ---------- */
  .zones{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--paper-line); border:1px solid var(--paper-line);}
  .zone{background:#fff; padding:26px 22px;}
  .zone .zt{font-weight:700; font-size:15px; margin-bottom:9px;}
  .zone .zd{font-size:13px; color:var(--ink-2); line-height:1.85;}
  @media (max-width:860px){ .zones{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .zones{grid-template-columns:1fr;} }

  /* ---------- VENUE : 来場者コンテンツ ---------- */
  .exp{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
  .ex{background:#fff; border:1px solid var(--paper-line); padding:22px 18px;}
  .ex .en{font-family:'Space Mono',monospace; font-size:12px; color:var(--shu);}
  .ex .eh{font-weight:700; font-size:14px; margin:11px 0 8px;}
  .ex .ed{font-size:12.5px; color:var(--ink-2); line-height:1.8;}
  @media (max-width:960px){ .exp{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:520px){ .exp{grid-template-columns:1fr;} }

  /* ---------- PROCESS : 応募資格 ---------- */
  .quals{border-top:1px solid var(--dark-line);}
  .q{display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:16px 0; border-bottom:1px solid var(--dark-line);}
  .q .qk{font-size:13px; font-weight:700; color:var(--kin);}
  .q .qv{font-size:13.5px; color:#c3c9ce; line-height:1.85;}
  @media (max-width:700px){ .q{grid-template-columns:1fr; gap:6px;} }

  /* ---------- PROCESS : ダーク背景のステップ ---------- */
  .steps-dark{border-top-color:var(--dark-line);}
  .steps-dark .step{border-bottom-color:var(--dark-line);}
  .steps-dark .step .n{color:var(--kin);}
  .steps-dark .step .cnt{color:var(--kin-hi); border-color:rgba(230,205,142,.5);}
  .steps-dark .step .d{color:var(--mist);}
  .step .dt{
    display:block; width:fit-content; font-family:'Space Mono',monospace; font-size:11px;
    letter-spacing:.06em; color:var(--shu); margin-top:7px;
  }

  /* ---------- PROCESS : 競技テーマ ---------- */
  .themes{border-top:1px solid var(--dark-line);}
  .th{display:grid; grid-template-columns:130px minmax(0,1fr); gap:24px; padding:18px 0; border-bottom:1px solid var(--dark-line); align-items:baseline;}
  .th .tk{font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:.11em; color:var(--kin);}
  .th .tv{font-family:'Shippori Mincho',serif; font-size:16.5px; font-weight:700; line-height:1.7;}
  .th .tv span{
    display:block; font-family:'Noto Sans JP',sans-serif; font-size:12px; font-weight:400;
    color:var(--mist); -webkit-text-fill-color:var(--mist); margin-top:5px;
  }
  .th.hi .tv{
    font-size:20px;
    background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  @media (max-width:640px){ .th{grid-template-columns:1fr; gap:8px;} }

  /* ---------- CRITERIA : 審査員構成 ---------- */
  .judges{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--dark-line); border:1px solid var(--dark-line);}
  .j{background:var(--sumi-2); padding:22px 12px; text-align:center;}
  .j .jn{font-family:'Space Mono',monospace; font-size:29px; color:var(--kin-hi); line-height:1;}
  .j .jn span{font-family:'Noto Sans JP',sans-serif; font-size:11px; color:var(--mist); margin-left:3px;}
  .j .jt{font-size:12px; color:var(--mist); margin-top:11px; line-height:1.6;}
  @media (max-width:780px){ .judges{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:440px){ .judges{grid-template-columns:repeat(2,1fr);} }

  /* ---------- CRITERIA : 公平性 ---------- */
  .fairs{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:28px;}
  .fair{font-size:13px; color:var(--mist); line-height:1.9; padding-top:16px; border-top:1px solid rgba(194,160,90,.55);}
  @media (max-width:780px){ .fairs{grid-template-columns:1fr; gap:16px;} }

  /* ---------- MEDIA : チャネル別の役割 ---------- */
  .chans{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--dark-line); border:1px solid var(--dark-line);}
  .ch{background:var(--sumi); padding:22px 20px;}
  .ch .ck{font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:.06em; color:var(--kinari);}
  .ch .cr{font-size:11.5px; color:var(--kin); margin:7px 0 9px; letter-spacing:.04em;}
  .ch .cd{font-size:12.5px; color:var(--mist); line-height:1.8;}
  @media (max-width:780px){ .chans{grid-template-columns:1fr 1fr;} }
  @media (max-width:480px){ .chans{grid-template-columns:1fr;} }

  /* ---------- SPONSOR : 7つの価値 ---------- */
  .values{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .val{background:#fff; border:1px solid var(--paper-line); padding:22px 20px;}
  .val .vt{font-family:'Oswald',sans-serif; font-size:13.5px; letter-spacing:.08em; color:var(--shu); margin-bottom:9px;}
  .val .vd{font-size:12.5px; color:var(--ink-2); line-height:1.8;}
  @media (max-width:860px){ .values{grid-template-columns:1fr 1fr;} }
  @media (max-width:480px){ .values{grid-template-columns:1fr;} }

  /* ---------- ROADMAP ---------- */
  .road{list-style:none; margin:0; padding:0; border-top:1px solid var(--dark-line);}
  .road li{display:grid; grid-template-columns:150px minmax(0,1fr); gap:26px; padding:16px 0; border-bottom:1px solid var(--dark-line); align-items:baseline;}
  .road .rm{font-family:'Space Mono',monospace; font-size:13.5px; color:var(--kin);}
  .road .rw{font-size:14px;}
  .road li.hi .rm{color:var(--shu); font-weight:700;}
  .road li.hi .rw{font-weight:700; color:var(--kin-hi);}
  @media (max-width:600px){ .road li{grid-template-columns:1fr; gap:5px;} }

  /* ===== FAQ ===== */
  .faq{border-top:1px solid var(--dark-line);}
  .fq{border-bottom:1px solid var(--dark-line);}
  .fq summary{list-style:none; cursor:pointer; display:flex; gap:14px; align-items:flex-start; padding:20px 0;}
  .fq summary::-webkit-details-marker{display:none;}
  .fq summary::before{content:'Q'; font-family:'Oswald',sans-serif; font-size:13px; letter-spacing:.08em; color:var(--kin); line-height:1.75; flex:none;}
  .fq summary::after{content:'+'; margin-left:auto; font-family:'Space Mono',monospace; font-size:16px; color:var(--kin); line-height:1.6; flex:none;}
  .fq[open] summary::after{content:'−';}
  .fq summary h3{margin:0; font-size:15px; font-weight:700; line-height:1.75;}
  .fq[open] summary h3{color:var(--kin-hi);}
  .fq p{margin:0 0 24px 28px; font-size:13.5px; color:#c3c9ce; line-height:1.95;}
  @media (max-width:640px){ .fq p{margin-left:0;} .fq summary h3{font-size:14px;} }
