/* ============================================================
   デザイントークン  ｜  シックな黒×白＋ベージュアクセント
   ============================================================ */
:root{
  --color-ink:        #000000; /* 主役カラー（テキスト・CTA） */
  --color-ink-deep:   #000000;
  --color-bordeaux:   #000000; /* 差し色ブロック */
  --color-bordeaux-deep:#000000;
  --color-rose:       #CBC1AF;
  --color-gold:       #CBC1AF; /* アクセント */
  --color-gold-soft:  #CBC1AF;
  --color-gold-line:  rgba(203,193,175,.5);
  --color-cream:      #FFFFFF;
  --color-bg:         #FFFFFF; /* ベース白 */
  --color-bg-2:       #FFFFFF;
  --color-bg-page:    #FFFFFF;
  --color-text:       #1A1A1A;
  --color-text-weak:  #8A8A8A;
  --color-white:      #FFFFFF;

  --font-serif: "Hiragino Mincho ProN","Hiragino Mincho W3","YuMincho","Yu Mincho",serif;
  --font-en:    "Plantagenet Cherokee","Big Caslon","Palatino Linotype","Book Antiqua",Georgia,serif;
  --font-sans:  "Hiragino Mincho ProN","Hiragino Mincho W3","YuMincho","Yu Mincho",serif;

  --shadow-soft: 0 8px 32px rgba(0,0,0,.08);
  --shadow-card: 0 14px 44px rgba(26,26,26,.12);
  --line-soft:   1px solid rgba(203,193,175,.22);
  --maxw: 480px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-sans);font-weight:400;color:var(--color-text);
  background:var(--color-bg-page);font-size:15px;line-height:1.95;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
a{color:inherit;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

.wrap{max-width:var(--maxw);margin:0 auto;background:var(--color-bg);
  min-height:100vh;overflow:hidden;position:relative;}

/* 共通パーツ */
.en-label{font-family:var(--font-en);color:var(--color-gold);font-size:12px;font-weight:600;
  letter-spacing:.34em;text-transform:uppercase;display:block;}
.sec-head{font-family:var(--font-serif);font-weight:500;font-size:24px;letter-spacing:.16em;
  line-height:1.7;margin-top:14px;color:var(--color-ink);}
.hl{font-weight:700;color:var(--color-ink);border-bottom:1.5px solid var(--color-gold);
  padding-bottom:1px;}
.st-head .hl{border-bottom:none;padding-bottom:0;}
.section{padding:80px 26px;}
.section--press{padding-top:52px;padding-bottom:52px;}
.section--cream{background:var(--color-cream);}
.section--bg{background:var(--color-bg);}
.section--bg2{background:var(--color-bg-2);}
.section-head-wrap{text-align:center;margin-bottom:8px;}
.center{text-align:center;}

/* 金の装飾ディバイダ */
.ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px auto 22px;max-width:220px;}
.ornament::before,.ornament::after{content:"";height:1px;flex:1;
  background:linear-gradient(90deg,transparent,var(--color-gold-line));}
.ornament::after{background:linear-gradient(90deg,var(--color-gold-line),transparent);}
.ornament i{width:6px;height:6px;transform:rotate(45deg);border:1px solid var(--color-gold);display:block;}

/* スクロールフェード */
.reveal{opacity:0;transform:translateY(16px);transition:opacity 1s ease,transform 1s ease;}
.reveal.is-visible{opacity:1;transform:none;}

/* ============================================================
   共通CTA（リッチ）
   ============================================================ */
.cta-primary{
  display:flex;align-items:center;justify-content:center;gap:11px;
  width:92%;max-width:360px;height:60px;margin:0 auto;
  background:var(--color-gold);
  color:var(--color-ink);font-family:var(--font-serif);font-weight:600;font-size:16px;letter-spacing:.09em;
  border:1px solid var(--color-ink);border-radius:3px;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;position:relative;
}
.cta-primary::after{content:"";position:absolute;inset:3px;border:1px solid rgba(0,0,0,.28);border-radius:2px;pointer-events:none;}
.cta-primary:active{transform:translateY(1px);filter:brightness(.95);}
.cta-primary .ico{width:22px;height:22px;flex:none;}
.cta-vip{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:88%;max-width:340px;height:54px;margin:14px auto 0;
  background:var(--color-bg);color:var(--color-ink);
  font-family:var(--font-serif);font-weight:500;font-size:14.5px;letter-spacing:.08em;
  border:1.5px solid var(--color-ink);border-radius:3px;
  box-shadow:0 6px 18px rgba(0,0,0,.1);
  transition:background .25s ease,color .25s ease,transform .2s ease,filter .2s ease;
}
.cta-vip .ico{width:16px;height:16px;flex:none;}
.cta-vip:active{background:var(--color-ink);color:var(--color-bg);transform:translateY(1px);filter:brightness(1);}
.cta-sub{font-size:11px;color:var(--color-text-weak);margin-top:16px;letter-spacing:.05em;text-align:center;}

/* ============================================================
   ① ヘッダー
   ============================================================ */
.site-header{text-align:center;padding:22px 24px 20px;background:var(--color-ink-deep);position:relative;}
.site-header .logo{height:28px;margin:0 auto;filter:brightness(0) invert(1);}
.site-header .en-label{margin-top:12px;color:var(--color-gold-soft);letter-spacing:.3em;font-size:10.5px;}

/* ヘッダー直下 FV動画 */
.fv-video-wrap{width:100%;aspect-ratio:9/16;max-height:70vh;overflow:hidden;background:#000;}
.fv-video{width:100%;height:100%;object-fit:cover;display:block;}

/* ヘッダー直下 完売バー */
.soldout-bar{background:var(--color-bordeaux);color:var(--color-cream);text-align:center;
  font-family:var(--font-serif);font-size:13.5px;letter-spacing:.1em;padding:11px 20px;
  display:flex;align-items:center;justify-content:center;gap:12px;}
.soldout-bar b{color:var(--color-gold-soft);font-weight:600;padding:0 1px;}
.soldout-bar .so-en{font-family:var(--font-en);font-size:10px;letter-spacing:.26em;color:var(--color-gold-soft);
  border:1px solid rgba(203,193,175,.55);padding:2px 8px;border-radius:2px;white-space:nowrap;}

/* ============================================================
   ② FV（白基調）
   ============================================================ */
/* 商品画像を全面に敷き、テキストをオーバーレイ */
.fv{position:relative;overflow:hidden;color:var(--color-ink);text-align:center;
  padding:0 0 calc(22px + env(safe-area-inset-bottom));}
.fv__bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.fv__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 46%;
  transform:scale(1.16);transform-origin:50% 78%;animation:fvZoom 18s ease-out both;}
@keyframes fvZoom{from{transform:scale(1.26);}to{transform:scale(1.16);}}
/* 上部＝タイトル帯、下部＝操作帯を生成りにして可読性を確保。中央で商品を見せる */
.fv__wash{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,
  rgba(255,255,255,.85) 0%, rgba(255,255,255,.5) 22%, rgba(255,255,255,0) 42%,
  rgba(255,255,255,0) 68%, rgba(247,248,248,.32) 84%, rgba(247,248,248,.68) 100%);}
/* 金の内枠 */
.fv__frame{position:absolute;inset:14px;border:1px solid var(--color-gold-line);z-index:2;pointer-events:none;}
.fv__frame::before,.fv__frame::after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--color-gold);}
.fv__frame::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.fv__frame::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.fv__top{position:relative;z-index:3;padding:34px 26px 6px;}
/* 下部操作帯：生成りでしっかり塗り、文字を商品と重ねず可読性を確保（パネルは浅めに） */
.fv__content{position:relative;z-index:3;padding:30px 26px 0;
  background:linear-gradient(180deg, rgba(247,248,248,0) 0%, rgba(247,248,248,.85) 10%,
    var(--color-bg) 20%, var(--color-bg) 100%);}
.fv__content::before{content:"";display:block;width:44px;height:1px;background:var(--color-gold);
  margin:0 auto 16px;opacity:.7;}

/* FV メインタイトル（第◯期を大きく） */
.fv-kicker2{font-family:var(--font-en);font-size:12px;letter-spacing:.42em;color:var(--color-gold);
  text-transform:uppercase;}
.fv-title{font-family:var(--font-serif);font-weight:600;font-size:48px;letter-spacing:.1em;
  color:var(--color-ink);line-height:1.1;margin:8px 0 2px;text-shadow:0 2px 18px rgba(255,255,255,.9);}
.fv-title .num{font-size:60px;color:var(--color-bordeaux);padding:0 3px;
  font-variant-numeric:tabular-nums;}
/* 受付ステータス：ボタン化せず、金の罫線で挟んだ静かなラベル */
.fv-status{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-serif);
  font-size:15px;letter-spacing:.22em;margin-top:14px;color:var(--color-bordeaux);
  text-shadow:0 1px 10px rgba(255,255,255,.9);}
.fv-status::before,.fv-status::after{content:"";display:inline-block;width:22px;height:1px;background:var(--color-gold);}
.fv-status--light{color:var(--color-text-weak);}
.fv-status--light::before,.fv-status--light::after{background:var(--color-gold-line);}

/* 今週の購入枠 見出し */
.fv-capacity{font-family:var(--font-serif);font-size:19px;font-weight:500;letter-spacing:.1em;
  line-height:1.7;color:var(--color-ink);margin:0 0 12px;text-shadow:0 1px 10px rgba(255,255,255,.9);}
.fv-capacity b{font-size:26px;color:var(--color-bordeaux);font-weight:600;padding:0 2px;}

/* カウントダウン */
.cd-label{font-family:var(--font-serif);font-size:13px;letter-spacing:.18em;color:var(--color-text-weak);}
.cd-value{font-family:var(--font-serif);font-weight:500;font-size:40px;letter-spacing:.04em;line-height:1.15;
  margin:6px 0 2px;color:var(--color-ink);font-variant-numeric:tabular-nums;}
.cd-note{font-family:var(--font-serif);font-size:17px;letter-spacing:.08em;line-height:1.8;margin:6px 0 2px;color:var(--color-ink);}
.open-line{font-size:12.5px;letter-spacing:.1em;color:var(--color-gold);margin-top:8px;font-family:var(--font-serif);}

/* 実績3値（高さを揃える） */
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:22px auto;max-width:400px;
  padding:18px 0;border-top:1px solid var(--color-gold-line);border-bottom:1px solid var(--color-gold-line);}
.stat{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 6px;position:relative;}
.stat + .stat::before{content:"";position:absolute;left:0;top:6%;height:88%;width:1px;background:var(--color-gold-line);}
.stat .num{font-family:var(--font-serif);font-weight:700;font-size:27px;color:var(--color-gold);
  letter-spacing:.01em;font-variant-numeric:tabular-nums;line-height:1;
  min-height:28px;display:flex;align-items:flex-end;}
.stat .cap{font-size:10.5px;letter-spacing:.04em;color:var(--color-text-weak);margin-top:10px;
  line-height:1.4;min-height:15px;white-space:nowrap;}
/* FVタイトル下に置く実績（コンパクト・生成り地の上） */
.stats--fv{margin:18px auto 0;padding:14px 0 0;border-top:1px solid var(--color-gold-line);border-bottom:none;max-width:340px;}
.stats--fv .num{font-size:22px;text-shadow:0 1px 10px rgba(255,255,255,.85);}
.stats--fv .cap{font-size:10px;margin-top:6px;text-shadow:0 1px 8px rgba(255,255,255,.8);}

/* 応募状況ゲージ（希少性の可視化：単一バー＋倍率） */
.demand-gauge{margin:16px auto 0;max-width:340px;padding:16px 20px 15px;
  background:rgba(255,255,255,.88);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  border:1px solid var(--color-gold-line);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.08);}
.dg-head{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--font-serif);}
.dg-head-label{font-size:11.5px;letter-spacing:.06em;color:var(--color-text-weak);}
.dg-head-ratio{font-size:13px;letter-spacing:.03em;color:var(--color-text-weak);}
.dg-head-ratio b{font-size:22px;color:var(--color-ink);font-weight:700;margin-right:1px;
  font-variant-numeric:tabular-nums;}
.dg-track{position:relative;height:6px;border-radius:3px;background:var(--color-ink);
  margin:13px 0 12px;overflow:hidden;}
.dg-quota{position:absolute;left:0;top:0;bottom:0;background:var(--color-gold);border-radius:3px 0 0 3px;}
.dg-legend{display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-serif);font-size:11.5px;letter-spacing:.02em;color:var(--color-ink);}
.dg-legend-item{display:flex;align-items:center;gap:6px;}
.dg-dot{width:6px;height:6px;border-radius:50%;flex:none;}
.dg-dot--quota{background:var(--color-gold);}
.dg-dot--applied{background:var(--color-ink);}

.fv .cta-sub{color:var(--color-text-weak);}

/* ============================================================
   ③ PRESS帯
   ============================================================ */
.press-scroll{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;padding:8px 26px 12px;margin:20px -26px 0;scrollbar-width:none;}
.press-scroll::-webkit-scrollbar{display:none;}
.press-card{flex:0 0 auto;width:140px;scroll-snap-align:start;}
.press-card img{width:140px;height:184px;object-fit:cover;border:var(--line-soft);border-radius:3px;
  background:var(--color-cream);box-shadow:var(--shadow-soft);}
.press-card .cap{font-size:11px;color:var(--color-text-weak);text-align:center;margin-top:10px;letter-spacing:.03em;line-height:1.5;}
.note{font-size:10.5px;color:var(--color-text-weak);line-height:1.8;margin-top:20px;letter-spacing:.02em;text-align:center;}

/* ============================================================
   ④ PHILOSOPHY
   ============================================================ */
.philo-catch{text-align:center;margin:6px 0 6px;color:var(--color-ink);
  font-size:34px;letter-spacing:.06em;line-height:1.1;}
.philo-catch .lm-bold{font-family:"Futura","Futura PT","Futura Std",Century Gothic,"Trebuchet MS",sans-serif;
  font-weight:800;}
.philo-catch .lm-italic{font-family:Baskerville,"Baskerville Old Face","Baskerville Display PT",Georgia,"Times New Roman",serif;
  font-style:italic;font-weight:400;font-size:.82em;margin:0 .06em;}
.philo-catch-sub{font-family:var(--font-serif);font-size:13px;letter-spacing:.2em;color:var(--color-rose);
  text-align:center;margin-bottom:26px;}
.philosophy p{font-family:var(--font-serif);font-size:15px;line-height:2.25;letter-spacing:.07em;
  margin-top:22px;text-align:center;color:var(--color-text);}
.philosophy .remystem{background:var(--color-white);border:var(--line-soft);border-radius:6px;
  padding:24px 22px;margin-top:26px;box-shadow:var(--shadow-soft);}
.philosophy .remystem .rk{font-family:var(--font-en);font-size:11px;letter-spacing:.28em;color:var(--color-gold);
  text-transform:uppercase;display:block;text-align:center;margin-bottom:10px;}
.remystem-tex{width:100px;height:100px;border-radius:50%;overflow:hidden;margin:0 auto 16px;
  border:1px solid var(--color-gold-line);box-shadow:var(--shadow-soft);}
.remystem-tex img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);}
.philosophy .remystem p{margin-top:14px;font-size:14px;line-height:2.15;}
.philosophy .remystem p:first-of-type{margin-top:0;}
.text-link{display:inline-block;margin-top:40px;font-size:13px;letter-spacing:.1em;color:var(--color-ink);
  text-decoration:none;border-bottom:1px solid rgba(0,0,0,.18);padding-bottom:3px;}
.text-link .en{font-family:var(--font-en);color:var(--color-gold);letter-spacing:.16em;font-weight:600;}

/* ============================================================
   ⑤ MESSAGE（ブランドディレクター 森ユキオ）
   ============================================================ */
.director{text-align:center;margin-top:6px;}
.director-photo{width:150px;height:150px;margin:0 auto;border-radius:50%;overflow:hidden;
  border:1px solid var(--color-gold-line);box-shadow:var(--shadow-card);background:var(--color-white);}
.director-photo img{width:100%;height:100%;object-fit:cover;}
.director figcaption{font-family:var(--font-serif);font-size:12.5px;letter-spacing:.08em;color:var(--color-text-weak);
  margin-top:18px;line-height:1.8;}
.director figcaption .en{font-family:var(--font-en);color:var(--color-gold);letter-spacing:.2em;font-size:11px;display:block;margin-bottom:6px;}
.director figcaption b{display:block;font-family:var(--font-serif);font-size:20px;color:var(--color-ink);
  letter-spacing:.16em;margin-top:4px;font-weight:500;}
.message-body{font-family:var(--font-serif);font-size:14.5px;line-height:2.25;letter-spacing:.06em;
  text-align:center;margin-top:26px;color:var(--color-text);}
.message-body p + p{margin-top:18px;}

/* ============================================================
   ⑥ HOW IT WORKS
   ============================================================ */
.steps{margin-top:28px;}
.step{display:flex;gap:18px;align-items:flex-start;padding:22px 0;border-top:var(--line-soft);}
.step:last-child{border-bottom:var(--line-soft);}
.step .n{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-gold);
  font-family:var(--font-en);font-size:20px;font-weight:500;color:var(--color-ink);
  display:flex;align-items:center;justify-content:center;background:var(--color-white);}
.step .st-head{font-family:var(--font-serif);font-size:16px;letter-spacing:.07em;font-weight:500;color:var(--color-ink);}
.step .st-body{font-size:13px;color:var(--color-text);line-height:1.9;margin-top:6px;}
.assurances{margin-top:32px;display:flex;flex-direction:column;gap:14px;}
.assur{background:var(--color-white);border:var(--line-soft);border-radius:6px;padding:18px 20px;box-shadow:var(--shadow-soft);}
.assur .t{font-family:var(--font-serif);font-size:14.5px;letter-spacing:.06em;color:var(--color-ink);position:relative;padding-left:18px;}
.assur .t::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--color-gold);}
.assur .d{font-size:12.5px;color:var(--color-text);line-height:1.9;margin-top:7px;}
.ratio-graph-wrap{margin-top:44px;background:var(--color-white);border:var(--line-soft);border-radius:6px;padding:26px 20px 20px;box-shadow:var(--shadow-soft);}
.rg-title{font-family:var(--font-serif);font-size:15px;font-weight:600;letter-spacing:.1em;
  color:var(--color-ink);text-align:center;margin-bottom:6px;}
.ratio-graph-wrap .cap{font-family:var(--font-en);font-size:12px;color:var(--color-gold);letter-spacing:.2em;margin-bottom:20px;text-align:center;text-transform:uppercase;}
.ratio-graph{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;height:160px;padding-top:22px;}
.rg-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;}
.rg-val{font-family:var(--font-serif);font-size:11px;color:var(--color-ink);margin-bottom:6px;font-variant-numeric:tabular-nums;}
.rg-bar{width:64%;max-width:22px;background:linear-gradient(180deg,#1A1A1A,var(--color-ink));border-radius:3px 3px 0 0;transition:height 1s cubic-bezier(.2,.7,.2,1);}
.rg-col.is-latest .rg-bar{background:linear-gradient(180deg,#FFFFFF,var(--color-gold));}
.rg-col.is-latest .rg-val{color:var(--color-gold);font-weight:700;}
.rg-label{font-size:9.5px;color:var(--color-text-weak);margin-top:10px;letter-spacing:.02em;}

/* ============================================================
   ⑦ PRODUCT
   ============================================================ */
.product-copy{font-family:var(--font-serif);font-size:14.5px;line-height:2.2;letter-spacing:.06em;margin-top:6px;text-align:center;}
.product-copy p + p{margin-top:18px;}
.lineup-price{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;padding:6px 26px 10px;margin:20px -26px 0;scrollbar-width:none;}
.lineup-price::-webkit-scrollbar{display:none;}
.lp-card{flex:0 0 auto;width:78%;max-width:290px;scroll-snap-align:center;
  display:flex;flex-direction:column;background:#fff;border:var(--line-soft);
  border-radius:6px;overflow:hidden;box-shadow:var(--shadow-card);}
.lp-thumb{width:100%;aspect-ratio:1/1;background:var(--color-bg);}
.lp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.lp-info{display:flex;flex-direction:column;align-items:center;text-align:center;padding:11px 12px 13px;}
.lp-name{font-family:var(--font-en);font-size:11px;letter-spacing:.08em;color:var(--color-gold);
  text-transform:uppercase;line-height:1.5;}
.lp-price{font-family:var(--font-serif);font-size:16px;font-weight:600;color:var(--color-ink);
  margin-top:5px;font-variant-numeric:tabular-nums;}
.lp-price small{font-size:10px;font-weight:400;letter-spacing:.02em;margin-left:2px;}
.lp-tax{font-size:9.5px;color:var(--color-text-weak);margin-top:2px;letter-spacing:.02em;}
.lineup-hint{text-align:center;font-size:10.5px;letter-spacing:.1em;color:var(--color-text-weak);margin-top:-2px;}


/* ============================================================
   ⑧ FAQ + 最終CTA
   ============================================================ */
.faq{margin-top:24px;}
.faq details{border-top:var(--line-soft);}
.faq details:last-of-type{border-bottom:var(--line-soft);}
.faq summary{list-style:none;cursor:pointer;padding:20px 36px 20px 8px;position:relative;
  font-family:var(--font-serif);font-size:15px;letter-spacing:.05em;line-height:1.7;color:var(--color-ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"";position:absolute;right:10px;top:26px;width:9px;height:9px;
  border-right:1.5px solid var(--color-gold);border-bottom:1.5px solid var(--color-gold);transform:rotate(45deg);transition:transform .3s ease;}
.faq details[open] summary::after{transform:rotate(-135deg);top:30px;}
.faq .ans{padding:0 8px 22px;font-size:13.5px;line-height:2;color:var(--color-text);}

/* 最終CTA（差し色ボルドーの没入ブロック） */
.final-cta{position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--color-bordeaux) 0%,var(--color-bordeaux-deep) 100%);
  color:var(--color-cream);text-align:center;padding:74px 26px 80px;margin-top:8px;}
.final-cta::before{content:"";position:absolute;inset:16px;border:1px solid rgba(203,193,175,.34);pointer-events:none;}
.final-cta .en-label{color:var(--color-gold-soft);}
.final-cta .catch{font-family:var(--font-serif);font-size:23px;font-weight:500;letter-spacing:.14em;
  line-height:1.85;margin:16px 0 34px;text-shadow:0 2px 20px rgba(0,0,0,.3);}
.final-cta .cta-sub{color:rgba(247,248,248,.72);}

/* ============================================================
   ⑨ フッター
   ============================================================ */
.foot-hero{position:relative;}
.foot-hero img{width:100%;height:220px;object-fit:cover;display:block;}
.foot-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.5));}
.site-footer{background:var(--color-ink-deep);color:rgba(247,248,248,.8);text-align:center;
  padding:44px 26px calc(112px + env(safe-area-inset-bottom));}
.site-footer .logo{height:26px;margin:0 auto 26px;filter:brightness(0) invert(1);}
.foot-links{display:flex;flex-direction:column;gap:14px;font-size:12px;margin-bottom:26px;}
.foot-links a{color:rgba(247,248,248,.82);text-decoration:none;border-bottom:1px solid var(--color-gold-line);
  display:inline-block;padding-bottom:3px;letter-spacing:.04em;}
.foot-note{font-size:11px;line-height:2;color:rgba(247,248,248,.6);letter-spacing:.02em;}
.foot-copy{font-family:var(--font-en);font-size:11px;letter-spacing:.18em;color:rgba(247,248,248,.55);margin-top:22px;}

/* ============================================================
   ⑩ 追従ボトムバー
   ============================================================ */
.bottom-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:var(--maxw);
  z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;
  background:rgba(0,0,0,.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border-top:1px solid var(--color-gold);color:var(--color-cream);box-shadow:0 -8px 30px rgba(0,0,0,.3);
  opacity:1;visibility:visible;transition:opacity .4s ease,visibility .4s ease;}
.bottom-bar.is-shown{opacity:1;visibility:visible;}
.bb-text{display:flex;align-items:baseline;justify-content:center;gap:6px;}
.bb-text .l1{font-size:10.5px;color:rgba(247,248,248,.75);letter-spacing:.02em;}
.bb-text .l2{font-size:12.5px;font-family:var(--font-serif);letter-spacing:.03em;font-variant-numeric:tabular-nums;color:var(--color-gold-soft);}
.bb-ctas{display:flex;gap:8px;}
.bb-cta{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  font-family:var(--font-serif);font-size:12.5px;letter-spacing:.03em;
  padding:11px 6px;border-radius:3px;white-space:nowrap;}
.bb-cta .ico{width:14px;height:14px;flex:none;}
.bb-cta--primary{background:var(--color-gold);color:var(--color-ink);border:1px solid var(--color-ink);}
.bb-cta--vip{background:transparent;color:var(--color-cream);border:1px solid var(--color-gold-line);}

/* ============================================================
   §5 VIPモーダル
   ============================================================ */
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.72);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:24px;}
.modal-overlay.is-open{display:flex;}
.modal-panel{background:var(--color-bg);width:100%;max-width:360px;border-radius:8px;padding:36px 32px;
  position:relative;box-shadow:0 24px 70px rgba(0,0,0,.45);border-top:2px solid var(--color-gold);}
.modal-close{position:absolute;top:12px;right:12px;width:40px;height:40px;font-size:22px;color:var(--color-text-weak);
  line-height:1;display:flex;align-items:center;justify-content:center;}
.modal-panel .en-label{text-align:center;}
.modal-head{font-family:var(--font-serif);font-size:19px;letter-spacing:.1em;text-align:center;margin-top:10px;color:var(--color-ink);}
.modal-body{font-size:13px;line-height:1.95;text-align:center;margin-top:16px;color:var(--color-text);}
.modal-input{display:block;width:100%;margin-top:22px;height:52px;border:1px solid var(--color-rose);border-radius:3px;
  background:var(--color-white);text-align:center;letter-spacing:.15em;font-size:15px;font-family:var(--font-sans);color:var(--color-text);}
.modal-input:focus{outline:2px solid var(--color-ink);outline-offset:1px;}
.modal-input.shake{animation:shake .4s ease;}
@keyframes shake{0%,100%{transform:translateX(0);}20%,60%{transform:translateX(-7px);}40%,80%{transform:translateX(7px);}}
.modal-submit{width:100%;height:52px;margin-top:18px;border-radius:3px;
  background:linear-gradient(180deg,#1A1A1A,var(--color-ink));color:var(--color-cream);font-size:15px;
  letter-spacing:.08em;font-weight:500;border:1px solid var(--color-gold);transition:filter .2s ease;}
.modal-submit:active{filter:brightness(1.1);}
.modal-error{display:none;margin-top:16px;font-size:12px;line-height:1.7;color:var(--color-rose);text-align:center;}
.modal-error.is-shown{display:block;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}
@media (min-width:520px){.wrap{box-shadow:0 0 80px rgba(0,0,0,.12);}}