  :root{
    --bg:#30211c;          /* サイト背景 */
    --panel:#3b2c25;       /* カード（背景より少し明るい） */
    --panel2:#3f3835;      /* グループ枠（実サイト値） */
    --text:#ffffff;
    --sub: #ffffff;          /* ダーク上の控えめ文字 */
    --terra:#a02222;        /* アクセント */
    --khaki:#8e8265;       /* 英字見出しの金 */
    --cream:#ffe0b4;       /* ハイライト */
    --line:rgba(255,255,255,.18);
    --line-gold:#8e8265;
    --navy:#2d384b;        /* Menuボタン */
    --divider:#494949;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;scroll-padding-top:20px}
  body{font-family:"Shippori Mincho",serif;color:var(--text);background:var(--bg);line-height:1.9;-webkit-font-smoothing:antialiased}
  .en{font-family:"Italiana",serif;letter-spacing:.04em}
  .num{font-family:"Ibarra Real Nova",serif}
  img{max-width:100%;display:block}
  a{color:inherit}

  .mock-note{background:#1f1511;color:#e7d8c8;font-size:12px;line-height:1.7;padding:9px 18px;text-align:center;letter-spacing:.02em;border-bottom:1px solid rgba(255,255,255,.08)}
  .mock-note b{color:var(--cream)}

  /* ===== MV（l-title準拠：高さ640px・上下グラデ・下部タイトル） ===== */
  .mv{position:relative;width:100%;height:clamp(380px,33.34vw,640px);overflow:hidden;background:#241915}
  .mv__img{position:absolute;inset:0}
  .mv__img img{width:100%;height:100%;object-fit:cover}
  .mv::before{content:"";position:absolute;left:0;top:0;width:100%;height:33%;z-index:1;background:linear-gradient(to bottom,#000,rgba(0,0,0,0));opacity:.7}
  .mv::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:33%;z-index:1;background:linear-gradient(to top,#000,rgba(0,0,0,0));opacity:.9}
  .mv__title{position:absolute;left:0;right:0;bottom:6.5%;z-index:2;text-align:center}
  .mv__title .en{display:block;font-size:clamp(42px,6.2vw,92px);text-transform:uppercase;line-height:1.15}
  .mv__title .ja{display:block;font-size:clamp(15px,1.9vw,22px);letter-spacing:.18em;margin-top:.2em}

  /* ===== ヘッダー（l-header準拠：透過・白・ピル予約／ネイビーMenu） ===== */
  .site-header{position:absolute;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:1.3rem;padding:0 1.56% 0 2.08%}
  .site-header .logo{width:14.6rem;max-width:42%}
  .site-header .logo img{width:100%;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
  .gnav ul{list-style:none;display:flex;align-items:center;gap:0 2.08vw}
  .gnav a{position:relative;color:#fff;text-decoration:none;font-size:1rem;letter-spacing:.02em}
  .gnav a::after{content:"";position:absolute;left:0;bottom:-.33rem;width:100%;height:1px;background:#fff;opacity:0;transition:opacity .5s ease}
  .gnav a:hover::after{opacity:1}
  .header-nav{display:flex;align-items:center}
  .btn-rsv{display:block;margin-left:2.08vw;padding:.7rem 1.8rem;background:var(--terra);border-radius:999px;color:#fff;text-decoration:none;font-size:1rem;white-space:nowrap}
  .btn-rsv:hover{opacity:.85}
  .menu-btn{display:flex;align-items:center;justify-content:center;margin-left:.6vw;padding:.9rem 1.4rem;background:var(--navy);border-radius:999px;color:#fff;border:0;cursor:pointer;font-family:"Ibarra Real Nova",serif;font-size:1rem;letter-spacing:.04em}
  .menu-btn i{position:relative;display:block;width:1.7em;height:.5em;margin-left:.9em}
  .menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;height:1px;background:#fff}
  .menu-btn i::before{top:0;width:58%}
  .menu-btn i::after{top:100%;width:100%}

  /* ===== パンくず帯 ===== */
  .topicpath{padding:1rem 5% .2rem;max-width:1800px;margin:0 auto;font-size:.86rem;letter-spacing:.02em}
  .topicpath a{text-decoration:none}.topicpath a:hover{text-decoration:underline}
  .topicpath .sep{display:inline-block;margin:0 .6em;opacity:.6}
  /* 本番は .l-title 直下の葉パターン bg_pattern1.webp を適用 */

  /* ===== 季節ジャンプ ===== */
  .jump{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:0 24px;margin:40px auto 0;max-width:920px}
  .jump a{text-decoration:none;color:var(--cream);border:1px solid var(--line-gold);border-radius:999px;padding:11px 30px;font-size:1rem;background:transparent;transition:.25s;display:inline-flex;align-items:center;gap:9px}
  .jump a .en{font-size:1.2rem;color:var(--khaki)}
  .jump a:hover{background:var(--terra);color:#fff;border-color:var(--terra)}.jump a:hover .en{color:#fff}

  main{margin:0 auto;}
  .state{text-align:center;color:var(--sub);font-size:.95rem;padding:48px 20px}
  .season{padding:62px 0 8px;scroll-margin-top:20px}
  .season-head{text-align:center;margin-bottom:34px}
  .season-head .en{display:block;font-size:clamp(38px,8vw,66px);color:var(--khaki);line-height:1.1;text-transform:uppercase}
  .season-head h2{font-size:clamp(20px,4vw,27px);font-weight:500;letter-spacing:.08em;margin-top:.1em}
  .season-head .announce{display:inline-block;margin-top:14px;font-size:.86rem;color:#fff;background:var(--terra);border-radius:999px;padding:5px 20px;letter-spacing:.04em}
  .season-visual{width:100%;border-radius:6px;margin-bottom:32px;border:1px solid var(--line);overflow:hidden;background:#241915}
  .season-visual img{width:100%;height:auto;display:block}

  .prize{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:26px;margin-bottom:16px;display:grid;grid-template-columns:88px 1fr;gap:22px;align-items:start}
  .prize .rank{text-align:center}
  .prize .rank .badge{width:88px;height:88px;border-radius:50%;border:1px solid var(--line-gold);display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.15)}
  .prize .rank .badge .en{font-size:.86rem;color:var(--khaki);letter-spacing:.14em}
  .prize .rank .badge .num{font-size:2rem;line-height:1;color:var(--cream)}
  .prize .rank .badge .suf{font-size:.8rem;color:var(--sub)}
  .prize .body h3{font-size:1.06rem;font-weight:500;margin-bottom:4px;letter-spacing:.02em;color:var(--cream)}
  .prize .body .desc{font-size:.94rem;color:var(--sub);line-height:1.8}
  .prize .body .desc .or{display:inline-block;font-size:.8rem;color:var(--khaki);margin:3px 0}
  .numbers{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
  .numbers .label{font-size:.9rem;color:var(--khaki);letter-spacing:.12em;margin-bottom:9px}
  .numbers .label .digit{color:var(--text);margin-left:6px}
  .numbers ul{list-style:none;display:flex;flex-wrap:wrap;gap:9px}
  .numbers li{font-family:"Ibarra Real Nova",serif;font-size:1.5rem;letter-spacing:.08em;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:4px;padding:5px 16px;color:var(--cream)}

  .period{margin:22px 0 4px;text-align:center;background:var(--terra);color:#fff;border-radius:6px;padding:16px 20px}
  .period .t{font-size:.78rem;letter-spacing:.18em;color:#f1d8c4;margin-bottom:5px}
  .period .d{font-family:"Ibarra Real Nova",serif;font-size:clamp(16px,3.5vw,21px);letter-spacing:.04em}
  .exclude{font-size:.96rem;color:var(--sub);text-align:center;margin-top:12px;line-height:1.8}
  .exclude b{color:var(--cream);font-weight:500}

  .common{border-top:1px solid var(--line-gold);margin-top:66px;background:#2a1c18}
  .common .inner{max-width:920px;margin:0 auto;padding:54px 20px 40px}
  .block{margin-bottom:40px}
  .block .en-tit{font-family:"Italiana",serif;font-size:1.2rem;color:var(--khaki);letter-spacing:.08em;text-transform:uppercase}
  .block h2{font-size:1.25rem;font-weight:500;letter-spacing:.04em;margin:2px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .window{font-size:.95rem;line-height:1.95;color:var(--sub)}
  .window .tel{display:inline-flex;align-items:center;gap:8px;font-family:"Ibarra Real Nova",serif;font-size:1.6rem;color:var(--cream);text-decoration:none;margin:6px 0;letter-spacing:.04em}
  .shops{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .shops a{text-decoration:none;color:var(--text);font-size:.94rem;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:13px 16px;transition:.2s;display:block}
  .shops a:hover{border-color:var(--line-gold)}
  .shops a .nm{font-weight:500;display:block}
  .shops a .ad{font-size:.8rem;color:var(--sub);display:block;margin-top:2px}
  .notes{font-size:.86rem;color:var(--sub);line-height:2;padding-left:1.1em}
  .notes li{margin-bottom:4px}

  .foot-cta{position:relative;text-align:center;padding:58px 20px;background:#241915;border-top:1px solid var(--line)}
  .foot-cta .lead{font-family:"Italiana",serif;font-size:1.1rem;letter-spacing:.18em;color:var(--khaki);text-transform:uppercase}
  .foot-cta .jp{font-size:clamp(19px,4vw,26px);font-weight:500;margin:10px 0 22px;letter-spacing:.06em}
  .foot-cta .btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
  .foot-cta .btns a{text-decoration:none;font-size:.95rem;letter-spacing:.04em;padding:13px 30px;border-radius:6px;transition:.2s}
  .foot-cta .btns a.primary{background:var(--terra);color:#fff}.foot-cta .btns a.primary:hover{opacity:.85}
  .foot-cta .btns a.ghost{border:1px solid var(--line);color:var(--cream)}.foot-cta .btns a.ghost:hover{border-color:var(--line-gold)}

  .site-footer{background:var(--bg);color:var(--sub);padding:52px 24px 28px;border-top:1px solid var(--divider)}
  .site-footer .fwrap{max-width:1100px;margin:0 auto}
  .ftop{display:flex;flex-wrap:wrap;gap:36px;justify-content:space-between;align-items:flex-start;padding-bottom:34px;border-bottom:1px solid var(--divider)}
  .fbrand img{height:54px;margin-bottom:18px}
  .fbrand .addr{font-size:.82rem;line-height:1.9;color:var(--sub)}
  .fbrand .ftel{font-family:"Ibarra Real Nova",serif;font-size:1.6rem;color:#fff;text-decoration:none;display:inline-block;margin:8px 0 2px;letter-spacing:.04em}
  .fsocial{display:flex;gap:14px;margin-top:16px}
  .fsocial a{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--sub);transition:.2s}
  .fsocial a:hover{border-color:var(--line-gold);color:#fff}
  .fnav{display:flex;flex-wrap:wrap;gap:8px 28px;max-width:520px;border-left:1px solid var(--divider);padding-left:28px}
  .fnav a{font-size:.82rem;color:var(--sub);text-decoration:none;transition:.2s;line-height:2}
  .fnav a:hover{color:#fff;text-decoration:underline}
  .fgroup{padding:30px 0 6px}
  .fgroup .gh{font-family:"Italiana",serif;font-size:1.1rem;letter-spacing:.14em;color:var(--khaki);margin-bottom:14px;text-transform:uppercase}
  .fgroup .area{font-size:.78rem;color:var(--sub);margin:14px 0 8px;letter-spacing:.06em;position:relative;padding-left:1em}
  .fgroup .area::before{content:"";position:absolute;left:0;top:50%;width:.5em;height:.5em;background:var(--terra);border-radius:50%;transform:translateY(-50%)}
  .fgroup .logos{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center}
  .fgroup .logos a img{height:34px;opacity:.85;transition:.2s;filter:brightness(0) invert(.9)}
  .fgroup .logos a:hover img{opacity:1}
  .flegal{display:flex;flex-wrap:wrap;gap:6px 0;justify-content:center;padding-top:26px;margin-top:24px;border-top:1px solid var(--divider)}
  .flegal a{font-size:.8rem;color:var(--sub);text-decoration:none;padding:0 1.4em;border-right:1px solid #505050}
  .flegal a:first-child{border-left:1px solid #505050}
  .flegal a:hover{color:#fff;text-decoration:underline}
  .copy{text-align:center;font-size:.8rem;color:#8a7f76;margin-top:22px;letter-spacing:.04em}

  @media(max-width:1199px){
    .gnav ul{display:none}
    .gnav.open ul{display:flex;position:absolute;top:100%;right:1.56%;flex-direction:column;gap:0;background:rgba(45,32,27,.97);border:1px solid var(--line);border-radius:8px;padding:6px 0;min-width:210px;margin-top:10px}
    .gnav.open ul a{display:block;padding:13px 24px}.gnav.open ul a::after{display:none}
  }
  @media(max-width:767px){
    .site-header{padding:0 5.1%;margin-top:1rem;gap:10px}
    .btn-rsv{display:none}
    .menu-btn{margin-left:0;padding:.8rem 1.1rem}
    .mv{height:auto;min-height:340px;display:flex;align-items:flex-end}
    .mv__title{position:relative;bottom:auto;padding:120px 16px 34px;width:100%}
    .ftop{flex-direction:column;gap:26px}
    .fnav{border-left:0;padding-left:0}
    .prize{grid-template-columns:60px 1fr;gap:14px;padding:18px}
    .prize .rank .badge{width:60px;height:60px}.prize .rank .badge .num{font-size:1.4rem}
    .numbers li{font-size:1.3rem;padding:4px 12px}
    .shops{grid-template-columns:1fr}
  }