@charset "UTF-8";

/* =========================================================
   Alsace 2026 LP  ―  style.css
   デザイン基準幅: PC 1440px / SP 390px   BP: 768px
   XDデザイン(260724_alsace_LP_ver1.0)準拠
   ========================================================= */

:root{
  --font-mincho: "Zen Old Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --font-plex:   "IBM Plex Sans JP", "Hiragino Sans", "Noto Sans JP", sans-serif;
  --font-inter:  "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-canto:  "Cormorant Garamond", "Times New Roman", serif;
  --font-heading: "canto-pen", "Cormorant Garamond", "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  --font-body: "IBM Plex Sans JP", "Inter", "Hiragino Sans", "Noto Sans JP", sans-serif;

  --green:   #06C755;
  --black:   #000000;
  --near:    #0b0b0b;
  --dark:    #1a1a1a;
  --panel:   #1f1f1f;
  --beige:   #F1EFEA;
  --lav:     #E9EBF1;
  --offwhite:#F9F9F9;
  --gray-text: #d6d6d6;
  --gray-sub:  #9a9a9a;
  --line-lt:   rgba(255,255,255,.22);
  --line-dk:   rgba(0,0,0,.16);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
main{ overflow-x: clip; }   /* 中間幅でデスクトップ用固定幅レイアウトがはみ出しても横スクロールさせない（縦は影響なし）*/
body{
  margin: 0;
  font-family: var(--font-body);
  color: #111;
  background: #000;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img{ display: block; max-width: 100%; height: auto; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,p,figure,figcaption,dl,dd,dt{ margin: 0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; }
sup{ font-size: .6em; vertical-align: super; }

/* ---------- 汎用フェードイン ---------- */
.js-fade{
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 1.1s ease, transform 1.1s ease;
  will-change: opacity, transform;
}
.js-fade.is-visible{ opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  .js-fade{ opacity:1; transform:none; transition:none; }
  .ugc__item.js-fade{ opacity:1; transform:none; transition:none; }
  .fv__slide{ transition:none; }
}

.br-sp{ display:none; }
.br-pc{ display:inline; }

/* =========================================================
   固定ヘッダー
   ========================================================= */
.l-header{
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  padding: 50px 50px 0;   /* 上・左右とも50px */
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 100;
}
.l-header__logo{ line-height:0; }
.l-header__emblem{
  display:block;
  width: 46px; height: 46px;
  background: url("../img/emblem.svg") no-repeat left center / contain;   /* エンブレム専用SVG（左端揃え・既定は白）*/
  transition: filter .4s ease;
}
/* 明るいセクション上：エンブレムを黒に反転 */
.l-header.is-darklogo .l-header__emblem{
  filter: invert(1) brightness(0);
}

/* ハンバーガー（XD準拠：2本線・長め・線間が近い）*/
.hamburger{
  position: relative;
  width: 56px; height: 17px;
  background: none; border: 0; padding: 0; cursor: pointer;
  z-index: 130;
}
.hamburger span{
  position: absolute; left: 0;
  width: 100%; height: 1px;
  background: #fff;
  transition: transform .4s ease, opacity .3s ease, background-color .4s ease;
}
.hamburger span:nth-child(1){ top: 5px; }
.hamburger span:nth-child(2){ top: 11px; }   /* 線間6px */
.l-header.is-darklogo .hamburger span{ background: #111; }
/* open時：ハンバーガーは隠し、ドロワー内の×を表示 */
.is-nav-open .hamburger{ opacity: 0; visibility: hidden; }

/* 右端 縦 Instagram */
.l-insta{
  position: fixed;
  top: 50%; right: 50px;   /* ハンバーガー(右50px)と右端を揃える */
  transform: translateY(-50%);
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #fff;
  transition: color .4s ease;
}
.l-insta img{ width: 18px; height: 18px; filter: brightness(0) invert(1); transition: filter .4s ease; }  /* 既定：白 */
.l-insta__text{
  font-family: var(--font-inter);
  font-size: 11px;
  letter-spacing: .1em;
  writing-mode: vertical-rl;
}
.l-insta.is-dark{ color:#111; }
.l-insta.is-dark img{ filter: brightness(0); }   /* 明るいセクション上：黒 */
.l-insta.is-dark .l-insta__text{ text-shadow:none; }

/* =========================================================
   ドロワーナビ
   ========================================================= */
.drawer{
  position: fixed;
  inset: 0;
  z-index: 120;
  background: rgba(0,0,0,.35);   /* 左側：半透明オーバーレイ */
  opacity: 0; visibility: hidden;
  transition: opacity .5s ease, visibility .5s ease;
}
.is-nav-open .drawer{ opacity: 1; visibility: visible; }

/* 右端の白パネル（PC：画面右28%程度）*/
.drawer__panel{
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 28%; min-width: 420px; max-width: 500px;
  background: #F7F6F3;
  transform: translateX(24px);
  transition: transform .5s ease;
}
.is-nav-open .drawer__panel{ transform: translateX(0); }

/* 閉じる（×）*/
.drawer__close{
  position: absolute; top: 44px; right: 44px;
  z-index: 2;   /* パネル内容より前面に */
  width: 52px; height: 52px;
  background: none; border: 0; padding: 0; cursor: pointer;
  opacity: 0; transition: opacity .5s ease .1s;
}
.is-nav-open .drawer__close{ opacity: 1; }
.drawer__close::before, .drawer__close::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 40px; height: 1px; background: #1a1a1a;
}
.drawer__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.drawer__close::after{ transform: translate(-50%,-50%) rotate(-45deg); }

/* メニュー本体（パネル内）*/
.drawer__inner{
  position: absolute; top: 0; right: 56px; left: 40px; bottom: 0;
  padding-bottom: 150px;   /* メニューを少し上へ */
  display: flex; flex-direction: column; justify-content: center;
}
.drawer__list{ text-align: right; }
.drawer__item{ overflow: hidden; }
.drawer__item a{
  display: block;
  padding: 10px 0;
  color: #1a1a1a;
  font-family: var(--font-body);
  font-size: 17px;
  letter-spacing: .1em;
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .6s ease, transform .6s ease, color .3s ease;
}
.is-nav-open .drawer__item a{ opacity: 1; transform: translateX(0); }
.drawer__item:nth-child(1) a{ transition-delay:.12s; }
.drawer__item:nth-child(2) a{ transition-delay:.18s; }
.drawer__item:nth-child(3) a{ transition-delay:.24s; }
.drawer__item:nth-child(4) a{ transition-delay:.30s; }
.drawer__item:nth-child(5) a{ transition-delay:.36s; }
.drawer__item a:hover{ color: #999; }

/* 商品カード（パネル下部）*/
.drawer__product{
  position: absolute; left: 0; right: 0; bottom: 46px;
  border-top: 1px solid rgba(0,0,0,.16);
  padding-top: 24px;
  opacity: 0; transform: translateY(16px);
  transition: opacity .6s ease .4s, transform .6s ease .4s;
}
.is-nav-open .drawer__product{ opacity: 1; transform: translateY(0); }
.drawer__prod-card{ display: flex; align-items: center; gap: 16px; }
.drawer__prod-thumb{ flex: none; width: 80px; }
.drawer__prod-thumb img{ width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.drawer__prod-info{ display: flex; flex-direction: column; }
.drawer__prod-en{ font-family: var(--font-heading); font-size: 21px; letter-spacing: .02em; color: #1a1a1a; line-height: 1.1; }
.drawer__prod-jp{ font-family: var(--font-heading); font-size: 13px; letter-spacing: .04em; color: #555; margin-top: 5px; }  /* 日本語=明朝／数字・英語=Canto */
.drawer__prod-price{ font-family: var(--font-inter); font-size: 13px; color: #1a1a1a; margin-top: 12px; }
.drawer__prod-price small{ font-size: 10px; margin-left: 3px; color: #666; }
.drawer__prod-btn{
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: 50px; margin-top: 22px;
  border: 1px solid #1a1a1a; color: #1a1a1a;
  font-family: var(--font-body); font-size: 13px; letter-spacing: .08em;
  transition: background-color .35s ease, color .35s ease;
}
.drawer__prod-btn:hover{ background: #333333; color: #fff; border-color: #333333; }

/* =========================================================
   ① FV / ヒーロー
   ========================================================= */
.fv{
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
}
.fv__media{ position:absolute; inset:0; z-index:0; background:#e9eaee; }
.fv__slide{
  position:absolute; inset:0;
  background-size: cover; background-position: center; background-repeat:no-repeat;
  opacity:0;
  transition: opacity 2s ease-in-out 1s;
}
.fv__slide.is-active{ opacity:1; z-index:1; }
.fv__slide--1{ background-image:url("../img/pc_hero01.jpg"); }
.fv__slide--2{ background-image:url("../img/pc_hero02.jpg"); }
.fv__slide--3{ background-image:url("../img/pc_hero03.jpg"); }
.fv__slide--4{ background-image:url("../img/pc_hero04.jpg"); }
.fv__slide--5{ background-image:url("../img/pc_hero05.jpg"); }

/* FVタイトル（左下） */
.fv__title{
  position:absolute;
  left: 50px; bottom: 50px;   /* 左上ロゴと左端を揃える／下余白50px */
  z-index: 3;
  display:flex; align-items:center; gap:26px;
  color:#fff;                      /* XD準拠：白文字 */
}
.fv__title-main{ text-align:left; }
.fv__en{
  display:block;
  font-family: var(--font-heading);
  font-size: 48px; line-height:1.05; letter-spacing:.03em;
}
.fv__coll{
  display:block;
  font-family: var(--font-inter);
  font-size: 14px; letter-spacing:.14em;
  margin-top: 6px;
}
.fv__divider{ width:1px; height:52px; background: rgba(255,255,255,.6); }
.fv__catch{ text-align:left; }
.fv__catch-jp{
  display:block;
  font-family: var(--font-mincho);
  font-size: 20px; letter-spacing:.08em; line-height:1.5;
}
.fv__catch-fr{
  display:block;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 14px; letter-spacing:.04em; color:rgba(255,255,255,.9);
  margin-top: 4px;
}
.fv__catch-sub{
  display:block;
  font-family: var(--font-mincho);
  font-size: 13px; letter-spacing:.1em; color:rgba(255,255,255,.9);
  margin-top: 6px;
}

/* INFORMATION ポップアップ（右下） */
.info{
  position: fixed;
  right: 0; bottom: 0;   /* 右下ぴったり（余白なし）*/
  z-index: 80;
  display: flex; align-items: stretch;
  width: 390px; min-height: 144px;   /* 横幅390px・高さは内容に応じて可変（画像がツリーを切らない高さ）*/
  background: rgba(20,20,20,.92);
  color:#fff;
  transition: transform .5s ease, opacity .5s ease;
}
.info.is-closed{ transform: translateY(140%); opacity:0; pointer-events:none; }
.info__thumb{
  position: relative;
  flex: none;
  width: 112px;   /* 画像幅106px＋左余白6px */
}
/* 高さ可変でも余白を保ちつつ画像がバナー高に追従（絶対配置）*/
.info__thumb img{
  position: absolute;
  top: 6px; left: 6px;                       /* 上・左に6pxの余白 */
  width: calc(100% - 6px); height: calc(100% - 12px);   /* 右は詰める／下も6px */
  object-fit: cover;
}
.info__body{ flex:1; display:flex; flex-direction:column; justify-content:center; padding: 0 24px; }
.info__label{
  font-family: var(--font-inter);
  font-size: 10px; letter-spacing:.2em; color:#cfcfcf;
  display:flex; align-items:center; gap:8px;
  margin-bottom: 10px;
}
.info__label::after{ content:""; width:22px; height:1px; background:#8a8a8a; }
.info__text{
  font-family: var(--font-body);
  font-size: 12px; line-height:1.55; letter-spacing:.03em;
}
.info__more{
  align-self:flex-start;
  margin-top: 10px;
  font-family: var(--font-body);
  font-size: 10px; letter-spacing:.04em;
  border-bottom:1px solid rgba(255,255,255,.7); padding-bottom:1px;
}
.info__close{
  position:absolute; top:8px; right:10px;
  display:inline-flex; align-items:center; gap:4px;
  background:none; border:0; padding:2px; cursor:pointer;
  font-family: var(--font-inter); font-size:8px; letter-spacing:.08em; color:#cfcfcf;
}
.info__close img{ width:8px; height:8px; }

/* =========================================================
   ② New Variations（黒・散在画像）
   ========================================================= */
.nv{ background:#000; color:#fff; padding: 160px 0 24px; overflow:hidden; }   /* 見出し上の余白を広げる／下は詰める */
/* XD座標(1440×2612)を%換算した散らし配置ステージ */
.nv__stage{
  position: relative;
  width: 100%; max-width: 1440px; margin: 0 auto;
  aspect-ratio: 1440 / 2612;
}
.nv__inner{
  position: absolute; top: 0; left: 8.26%; width: 44%; z-index: 2;
}
.nv__en{
  font-family: var(--font-heading);
  font-size: clamp(44px, 5vw, 72px); line-height:1.05; letter-spacing:.02em;
}
.nv__heading{
  font-family: var(--font-mincho);
  font-weight: 500;
  font-size: clamp(18px, 1.7vw, 24px); line-height:1.9; letter-spacing:.03em;
  margin-top: 50px;   /* 上下余白を統一（上）*/
}
.nv__lead-jp{
  font-family: var(--font-mincho);
  font-size: 14px; line-height:2.15; letter-spacing:.06em;
  color: var(--gray-text);
  margin-top: 50px;   /* 上下余白を統一（下）*/
}
.nv__lead-en{
  font-family: var(--font-inter);
  font-size: 10px; line-height:2; letter-spacing:.04em;
  color: var(--gray-sub);
  margin-top: 1.8em;
}
/* 各画像（XD座標 %換算）*/
.nv__fig{ position: absolute; margin:0; }
.nv__fig img{ width:100%; object-fit:cover; display:block; }
.nv__cap{
  font-family: var(--font-inter);
  font-size: 10px; line-height:1.7; letter-spacing:.04em;
  color: var(--gray-text);
  margin-top: 12px;
}
/* キャプション行：左にキャプション、右に SOLD OUT */
.nv__meta{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; }
.nv__meta .nv__cap{ margin-top:0; }
/* 使用オーナメントが完売のときだけ JS が表示する */
.nv__soldout{
  flex:0 0 auto; align-self:center;
  font-family: var(--font-inter); font-size:11px; font-weight:500;
  letter-spacing:.16em; line-height:1; white-space:nowrap;
  color:#D9634B; border:1px solid rgba(217,99,75,.5);
  padding:8px 14px;
}
.nv__soldout[hidden]{ display:none; }
.nv1{ left:58.9%; top:8.3%;  width:41.11%; } .nv1 img{ aspect-ratio:592/740; }
.nv2{ left:8.26%;  top:30.5%;  width:42.50%; } .nv2 img{ aspect-ratio:612/344; }
.nv3{ left:3%; top:52.25%; width:41.11%; } .nv3 img{ aspect-ratio:592/656; }
.nv4{ left:49%; top:47.65%; width:42.50%; } .nv4 img{ aspect-ratio:612/344; }
.nv5{ left:54.8%; top:67.41%; width:41.11%; } .nv5 img{ aspect-ratio:592/656; }
.nv6{ left:7.5%;  top:82.5%; width:42.50%; } .nv6 img{ aspect-ratio:612/344; }

/* =========================================================
   ③④ 商品ブロック（tree=黒 / snow=白）
   ========================================================= */
.product{ padding: 110px 0; }
.product--tree{ background:#000; color:#fff; padding-top: 64px; }   /* New Variationsとの余白を詰める */
.product--snow{ background:#fff; color:#111; }
.product__inner{
  max-width: 1440px; margin:0 auto; padding: 0 120px;
  display:grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items:center;
}
.product--snow .product__media{ order:0; }
.product__media{ position:relative; }
/* スライダー */
.slider{ position:relative; overflow:hidden; background:#f2f2f2; touch-action: pan-y; cursor: grab; }
.slider:active{ cursor: grabbing; }
.product--tree .slider{ background:#111; }
.slider__track{ display:flex; transition: transform .6s cubic-bezier(.4,0,.2,1); }
.slider__slide{ min-width:100%; }
.slider__slide img{ width:100%; aspect-ratio: 1/1; object-fit:cover; user-select:none; -webkit-user-drag:none; }
/* Alsace tree：画像を488×610（4:5・元画像と同比率で見切れ防止）、上端をテキストに揃える／中央余白を詰める */
.product--tree .product__inner{ align-items: start; grid-template-columns: 488px 480px; gap: 120px; }
.product--tree .slider{ width:100%; max-width:488px; }
.product--tree .slider__slide img{ aspect-ratio: 488/610; }
.product--snow .slider__slide img{ aspect-ratio: 4/5; }   /* 元画像(1200×1500)と同比率にしてツリーを見切れさせない（PC/SP共通）*/
.product--snow .product__inner{ grid-template-columns: 488px 480px; gap: 120px; }   /* PC：列構成をtreeと同一に（写真列488px＋余白120px＝テキスト開始位置608px一致）*/
.product--snow .product__media{ display:flex; justify-content:flex-end; }   /* 440px写真を488px列の右端に寄せ、写真右端をtree写真(右端608px)に揃える */
.product--snow .slider{ width:100%; max-width:440px; }   /* 写真幅は440pxを維持（左端は168pxにズレる）*/
.slider__btn{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border:0; cursor:pointer;
  background:none;   /* 背景なし・矢印だけ */
}
.slider__btn::before{
  content:""; position:absolute; top:50%; left:50%;
  width:12px; height:12px; border-top:1.5px solid #333333; border-right:1.5px solid #333333;
  transition: opacity .3s ease;
}
.slider__btn:hover::before{ opacity:.55; }
.slider__prev{ left:12px; }
.slider__next{ right:12px; }
.slider__prev::before{ transform:translate(-30%,-50%) rotate(-135deg); }
.slider__next::before{ transform:translate(-70%,-50%) rotate(45deg); }
.slider__counter{ display:none; }   /* 「1/3」等のカウンターは非表示 */

.product__label{
  font-family: var(--font-mincho);
  font-size: 15px; letter-spacing:.06em;
  color: var(--gray-text);
}
.product--snow .product__label{ color:#555; }
.product__title{
  font-family: var(--font-heading);
  font-size: 48px; font-weight: 300; line-height:1.1; letter-spacing:.02em;
  margin-top: 6px;
  display:flex; align-items:baseline; gap:16px; flex-wrap:wrap;
}
.product__title small{
  font-family: var(--font-mincho);
  font-size: 11px; letter-spacing:.08em; color:inherit;
}
.product__price-lead{
  font-family: var(--font-inter);
  font-size: 14px; letter-spacing:.04em; margin: 10px 0 26px;   /* 線の下に価格→本文の間隔を確保 */
}
.product__price-lead small{ font-size:8px; margin-left:4px; }
.product__rule{ height:1px; background: var(--line-lt); margin: 16px 0 45px; }
.product--snow .product__rule{ background: var(--line-dk); }
.product__desc{
  font-family: var(--font-body);
  font-size: 13px; line-height:2; letter-spacing:.04em; color: var(--gray-text);
}
.product--snow .product__desc{ color:#444; }

/* 価格テーブル */
.price-table{ margin: 45px 0 50px; }
.price-row{
  display:grid; grid-template-columns: 90px 1fr auto;
  align-items:center; gap: 10px;
  padding: 4px 0;
  border-top: 1px solid var(--line-lt);
  font-family: var(--font-inter); font-size:14px; letter-spacing:.02em;
}
.price-row:last-child{ border-bottom: 1px solid var(--line-lt); }
.product--snow .price-row{ border-color: var(--line-dk); }
.price-row__size{ font-weight:500; }
.price-row__yen small{ font-size:9px; margin-left:3px; color: #fff; }
.price-row__status{
  font-family: var(--font-body); font-size:10px; letter-spacing:.04em; color: #fff;
  text-align:right;
  display:none; /* 一時非表示：ステータス公開時にこの行を削除 */
}
.product--snow .price-row__yen small{ color:#999; }
.product--snow .price-row__status{ color:#888; }

/* CTAボタン */
.btn-line{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:58px; margin-top: 24px;
  border:1px solid var(--line-lt);
  font-family: var(--font-body); font-size:14px; letter-spacing:.08em;
  transition: background-color .35s ease, color .35s ease, border-color .35s ease;
}
.product--tree .btn-line{ border-color:#fff; }   /* 枠線を白に */
.product--tree .btn-line:hover{ background:#fff; color:#000; }
.product--snow .btn-line{ border-color:#111; }
.product--snow .btn-line:hover{ background:#111; color:#fff; }
/* サブリンク */
.sublinks{
  display:flex; gap: 28px; margin-top: 20px;
  font-family: var(--font-body); font-size:12px; letter-spacing:.04em;
}
.sublinks a{ position:relative; border-bottom:1px solid currentColor; padding-bottom:0; }
.sublinks a[target]::after{
  content:""; display:inline-block; width:11px; height:11px; margin-left:6px; vertical-align:-1px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
}
.sublinks a:hover{ opacity:.6; }
/* snowは白背景のため外部リンクアイコンを濃色に（白のままだと見えない）*/
.product--snow .sublinks a[target]::after{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1a1a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
}

/* =========================================================
   ⑤ DETAIL（ベージュ）
   ========================================================= */
.detail{ background: var(--beige); color:#1a1a1a; padding: 190px 0 120px; }
.detail__head{ text-align:center; margin-bottom: 40px; }
.detail__title{
  font-family: var(--font-heading);
  font-size: 20px; font-weight: 300; letter-spacing:.18em;
}
.detail__title + span{ display:block; width:30px; height:1px; background:#1a1a1a; margin: 14px auto 0; }

.detail__block{
  max-width:1440px; margin:0 auto; padding: 60px 120px;
  display:grid; grid-template-columns: minmax(0,1fr) 632px; gap: 90px; align-items:center;
}
.detail__block--rev{ grid-template-columns: 632px minmax(0,1fr); }
.detail__block--rev .detail__txt{ order:2; }
/* テキスト列：幅を絞り、画像側（内側）に寄せて外側に余白を作る */
.detail__txt{ max-width: 350px; width:100%; justify-self:end; }
.detail__block--rev .detail__txt{ justify-self:start; }
.detail__num{
  display:flex; align-items:center; gap: 16px;
  font-family: var(--font-inter); font-size:10px; letter-spacing:.14em; color:#333;
  padding-bottom: 12px; border-bottom:1px solid rgba(0,0,0,.25);
}
.detail__num span:last-child{ margin-left:auto; }
.detail__h{
  font-family: var(--font-mincho);
  font-size: 24px; font-weight: 500; line-height:1.7; letter-spacing:.06em;
  margin-top: 88px;
}
.detail__p{
  font-family: var(--font-body);
  font-size: 13px; line-height:2; letter-spacing:.04em; color:#3a3a3a;
  margin-top: 34px;
}
.detail__en{
  font-family: var(--font-inter);
  font-size: 10px; line-height:1.9; letter-spacing:.03em; color:#8a8a8a;
  margin-top: 34px;
}
.detail__rule{ display:block; height:1px; background:rgba(0,0,0,.22); margin-top: 88px; }
/* 画像レイアウト */
/* 01：2列マソンリー（左=縦長4:5+正方形／右=正方形+縦長4:5）*/
.detail__imgs--grid{ display:flex; gap:9px; }
.detail__imgs--grid .detail__col{ flex:1; display:flex; flex-direction:column; gap:8px; }
.detail__imgs--grid img{ width:100%; object-fit:cover; display:block; }
.detail__imgs--grid .is-tall{ aspect-ratio:4/5; }
.detail__imgs--grid .is-sq{ aspect-ratio:1/1; }
.detail__imgs--single img{ width:100%; object-fit:cover; display:block; }
/* 02：全幅ヒーロー（画像を横幅いっぱいに敷き、右の壁面にテキストをオーバーレイ）*/
.detail__block--hero{ position:relative; display:block; max-width:none; margin:52px 0; padding:0; }
.detail__block--hero .detail__imgs{ width:100%; }
.detail__block--hero .detail__imgs img{ display:block; width:100%; height:auto; aspect-ratio:2.2/1; object-fit:cover; object-position:center 65%; }
/* テキストは他ブロックと同じ1440グリッド上に重ねる（左端を04と一致・全画面幅で揃う）*/
.detail__block--hero .detail__hero-inner{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  max-width:1440px; margin:0 auto; padding:0 120px;
  display:grid; grid-template-columns:632px minmax(0,1fr); gap:90px; align-items:center;
}
.detail__block--hero .detail__txt{ grid-column:2; justify-self:start; max-width:350px; margin:0; pointer-events:auto; }

/* =========================================================
   ⑥ Ornement
   ========================================================= */
/* ヘッダー：全幅16:9ヒーロー画像＋左上テキスト・左下注釈をオーバーレイ */
.ornement-head{ position:relative; overflow:hidden; background:#fff; }
.ornement-head__media{ width:100%; }
.ornement-head__media img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.ornement-head__txt{
  position:absolute; z-index:2; top:25%; left:0; right:0;
  max-width:1440px; margin:0 auto; padding: 0 122px; width:100%;
}
.ornement-head__en{
  font-family: var(--font-heading);
  font-size: 48px; letter-spacing:.02em;
  display:flex; align-items:baseline; gap:16px;
}
.ornement-head__en small{ font-family: var(--font-mincho); font-size:11px; letter-spacing:.3em; }
.ornement-head__jp{
  font-family: var(--font-mincho);
  font-size: 14px; line-height:2.2; letter-spacing:.08em;
  margin-top: 34px;
}
.ornement-head__en2{
  font-family: var(--font-inter);
  font-size: 10px; line-height:1.9; letter-spacing:.03em; color:#8a8a8a;
  margin-top: 30px;
}
.ornement-note{
  position:absolute; z-index:2; bottom:5.4%; left:0; right:0;
  max-width:1440px; margin:0 auto; padding: 0 40px;
  color:#555555; font-family: var(--font-body); font-size:10px; letter-spacing:.04em; text-align:left;
  text-shadow: 0 0 6px #fff, 0 0 12px #fff, 0 0 20px #fff, 0 0 30px rgba(255,255,255,.9), 0 0 44px rgba(255,255,255,.7);   /* 白ハローを強め・広めにして周囲に馴染ませる */
}
.ornement-note sup{ margin-right:2px; }

/* オーナメント商品（黒） */
.ornament-item{ background:#000; color:#fff; }
.ornament-item__inner{
  max-width:1440px; margin:0 auto; padding: 95px 120px;
  display:grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items:center;
}
.ornament-item__detail img{ width:100%; aspect-ratio: 3/4; object-fit:cover; }
.ornament-item__card{ text-align:center; }
.ornament-item__portrait{ width:62%; margin:0 auto 26px; }
.ornament-item__portrait img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.ornament-item__sub{
  font-family: var(--font-mincho); font-size:13px; letter-spacing:.06em; color:var(--gray-text);
}
.ornament-item__name{
  font-family: var(--font-heading); font-size:30px; font-weight:500; line-height:1.2; letter-spacing:.03em; margin-top:4px;
}
.ornament-item__desc{
  font-family: var(--font-body); font-size:13px; line-height:1.9; letter-spacing:.04em;
  color: var(--gray-text); margin-top: 22px;
}
.ornament-divider{ height:1px; background: var(--line-lt); max-width: 1200px; margin: 0 auto; }
/* ギャラリー（黒・6列×3行の縦長サムネイル 3:4）*/
.ornament-gallery{ background:#000; padding: 96px 0 70px; }
.ornament-gallery__grid{
  max-width: 1003px; margin: 0 auto; padding: 0;
  display:grid; grid-template-columns: repeat(6, 1fr); gap: 41px;
}
.ornament-gallery__item{ overflow:hidden; cursor:pointer; }
.ornament-gallery__item img{ width:100%; aspect-ratio: 3/4; object-fit:cover; display:block; transition: transform .6s ease, opacity .3s ease; }
.ornament-gallery__item:hover img{ transform: scale(1.05); opacity:.85; }
.ornement-cta{ background:#000; text-align:center; padding: 20px 0 180px; }

/* ギャラリー ライトボックス（ティザーと同一形式）*/
.lightbox{
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,0.9);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 64px 24px 96px;
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.lightbox.is-open{ opacity: 1; visibility: visible; }
.lightbox__close{
  position: absolute; top: 22px; right: 28px;
  width: 40px; height: 40px; background: none; border: 0; padding: 0; cursor: pointer;
}
.lightbox__close::before, .lightbox__close::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 24px; height: 1px; background: #fff;
}
.lightbox__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.lightbox__close::after{ transform: translate(-50%,-50%) rotate(-45deg); }
.lightbox__stage{
  margin: 0; display: flex; align-items: center; justify-content: center;
  max-width: 100%; max-height: 72vh;
}
.lightbox__img{ max-width: 100%; max-height: 72vh; width: auto; height: auto; object-fit: contain; }
.lightbox__controls{
  display: flex; align-items: stretch; margin-top: 30px;
  border: 1px solid rgba(255,255,255,.28);
}
.lightbox__btn{
  position: relative; width: 58px; height: 46px;
  background: none; border: 0; cursor: pointer; transition: background-color .25s ease;
}
.lightbox__btn:hover{ background: rgba(255,255,255,.08); }
.lightbox__prev{ border-right: 1px solid rgba(255,255,255,.28); }
.lightbox__next{ border-left: 1px solid rgba(255,255,255,.28); }
.lightbox__btn::before{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 9px; height: 9px; border-top: 1px solid #fff; border-right: 1px solid #fff;
}
.lightbox__prev::before{ transform: translate(-40%,-50%) rotate(-135deg); }
.lightbox__next::before{ transform: translate(-60%,-50%) rotate(45deg); }
.lightbox__counter{
  display: flex; align-items: center; justify-content: center;
  min-width: 92px; padding: 0 14px;
  font-family: var(--font-body); font-size: 12px; letter-spacing: .12em; color: #fff;
}
.btn-outline{
  display:inline-flex; align-items:center; justify-content:center;
  min-width: 320px; height: 60px; padding: 0 40px;
  border:1px solid var(--line-lt); color:#fff;
  font-family: var(--font-body); font-size:15px; letter-spacing:.08em;
  transition: background-color .35s ease, color .35s ease;
}
.btn-outline:hover{ background:#fff; color:#000; }
.btn-outline--dark{ border-color:#111; color:#111; }
.btn-outline--dark:hover{ background:#111; color:#fff; }
/* オーナメントコレクションボタン：枠線を白に＋外部リンクアイコン（ホバーで自動反転）*/
.ornement-cta .btn-outline{ border-color:#fff; }
.ornement-cta .btn-outline::after{
  content:""; display:inline-block; width:13px; height:13px; margin-left:9px; vertical-align:-1px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* =========================================================
   ⑦ ブランドバンド（ダーク studio + ロゴ）
   ========================================================= */
.brand-band{ position:relative; overflow:hidden; background:#111; display:grid; }
.brand-band__media{ grid-area:1 / 1; width:100%; }
.brand-band__media img{ width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.brand-band__logo{ grid-area:1 / 1; place-self:center; z-index:1; width:211px; }
.brand-band__logo img{ width:100%; }

/* =========================================================
   ⑧ ABOUT（黒）＋ No.1
   ========================================================= */
.about{ background:#000; color:#fff; padding: 90px 0 110px; }
.about__inner{
  max-width:1440px; margin:0 auto; padding: 0 120px;
  display:grid; grid-template-columns: 200px 460px max-content; gap: 40px; align-items:start;
  justify-content:center;   /* 内容グループを中央寄せ（EN列を内容幅にして右の空きを解消）*/
}
.about__label{
  font-family: var(--font-heading); font-size:20px; letter-spacing:.18em;
  display:flex; align-items:center; gap:14px;
}
.about__label::after{ content:""; width:36px; height:1px; background:#fff; }
.about__catch{
  font-family: var(--font-mincho);
  font-size: 24px; font-weight: 500; line-height:1.8; letter-spacing:.06em;
}
.about__body{
  font-family: var(--font-mincho);
  font-size: 14px; line-height:2.3; letter-spacing:.06em; color:#efefef;
  margin-top: 40px;
}
.about__en{
  font-family: var(--font-inter);
  font-size: 10px; line-height:1.8; letter-spacing:.03em; color: var(--gray-sub);
}

/* No.1 achievements */
.no1{
  max-width:1440px; margin: 100px auto 0; padding: 0 120px;
  border-top: 1px solid var(--line-lt); padding-top: 100px;
  display:grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items:center;
}
.no1__stats{ text-align:center; }
.no1__main{ width: 340px; max-width:80%; margin:0 auto; }
.no1__divider{ width: 70%; height:1px; background: var(--line-lt); margin: 22px auto; }
.no1__row{ display:flex; align-items:center; justify-content:center; gap: 30px; }
.no1__cell{ display:flex; flex-direction:column; align-items:center; }
.no1__cell img{ height: 104px; width:auto; }
.no1__cell + .no1__cell{ border-left:1px solid var(--line-lt); padding-left:30px; }
.no1__head{
  font-family: var(--font-mincho); font-size:24px; font-weight:500; line-height:1.6; letter-spacing:.06em;
}
.no1__text{
  font-family: var(--font-body); font-size:13px; line-height:2; letter-spacing:.03em;
  color: var(--gray-text); margin-top: 22px;
}
.no1__notes{
  font-family: var(--font-body); font-size:10px; line-height:1.7; color: var(--gray-sub);
  margin-top: 18px;
}

/* =========================================================
   ⑨ MESSAGE 導入バンド
   ========================================================= */
.memories-band{
  background: linear-gradient(180deg, #000000 0%, #1f1f1f 100%);   /* 黒→暗グレー（下のMESSAGEへ連続）*/
  color:#fff; text-align:center;
  padding: 380px 20px;   /* FOREVERの上下に広い余白 */
  font-family: var(--font-heading);
  font-size: 20px; letter-spacing:.32em;
}

/* =========================================================
   ⑩ MESSAGE（ダーク）＋ UGC
   ========================================================= */
.message{ background: linear-gradient(180deg, #1f1f1f 0%, #000000 100%); color:#fff; padding: 90px 0 0; overflow:hidden; }
.message__inner{
  max-width:1440px; margin:0 auto; padding: 0 120px;
  display:grid; grid-template-columns: 200px 1fr max-content; gap: 40px 70px; align-items:start;
}
.message__head{ justify-self:end; }   /* En mémoire＋本文を右側にグループ化 */
.message__label{
  font-family: var(--font-heading); font-size:20px; letter-spacing:.18em;
  display:flex; align-items:center; gap:14px;
}
.message__label::after{ content:""; width:36px; height:1px; background:#fff; }
.message__fr{
  font-family: var(--font-heading); font-size:36px; line-height:1.2; letter-spacing:.02em;
}
.message__jp{
  font-family: var(--font-mincho); font-size:18px; letter-spacing:.1em; margin-top: 18px;
}
.message__body{
  font-family: var(--font-mincho); font-size:13px; line-height:2.0; letter-spacing:.05em; color:#eaeaea;
}
.message__body p + p{ margin-top: 1.6em; }

/* UGC コラージュ（B&W・散在） */
.ugc{
  position:relative; max-width: 1440px; margin: 20px auto 0;
  aspect-ratio: 1440 / 2650;
}
@property --ugc-fy{ syntax:"<length>"; inherits:false; initial-value:26px; }
@property --ugc-px{ syntax:"<length>"; inherits:false; initial-value:0px; }
.ugc__item{
  position:absolute; overflow:hidden;
  filter: grayscale(1) contrast(1.02);
  box-shadow: 0 22px 55px rgba(0,0,0,.55);
  will-change: transform;
}
.ugc__item img{ width:100%; height:100%; object-fit:cover; }
.ugc__item.js-fade{
  opacity:0;
  transform: translateY(var(--ugc-fy,26px)) translateY(var(--ugc-px,0px));
  transition: opacity 1.1s ease, --ugc-fy 1.1s ease;
}
.ugc__item.js-fade.is-visible{ opacity:1; --ugc-fy:0px; }
/* 位置（%・1440基準・XD準拠の散在／6枚縦長）*/
.ugc__item{ aspect-ratio:3/4; }
.ugc1{ left:8%;   top:0%;   width:26%; }
.ugc2{ left:45%;  top:10%;  width:45.83%; }  /* 660px @1440・比率3:4維持で縦も拡大 */
.ugc3{ left:10%;  top:27%;  width:31%; }
.ugc4{ left:64%;  top:48%;  width:23%; }
.ugc5{ left:8%;   top:60%;  width:42%; }
.ugc6{ left:58%;  top:76%;  width:29%; }

/* =========================================================
   ⑧.5 UGC 自動スクロールスライドショー（マウス/フリック操作可）
   ========================================================= */
.ugc-slider{
  overflow:hidden; background:#0d0d0d;
  cursor:grab; touch-action: pan-y; user-select:none;
}
.ugc-slider.is-dragging{ cursor:grabbing; }
.ugc-slider__track{ display:flex; width:max-content; will-change:transform; }
.ugc-slider__item{
  flex:0 0 auto; height:495px; aspect-ratio:884/1328; margin-right:6px; overflow:hidden;
}
.ugc-slider__item img{
  width:100%; height:100%; object-fit:cover; display:block;
  user-select:none; -webkit-user-drag:none; pointer-events:none;
}

/* =========================================================
   ⑪ PRE-ORDER
   ========================================================= */
.preorder{ background:#000; color:#fff; padding: 110px 0 0; }
.preorder__head{ text-align:center; margin-bottom: 80px; }
.preorder__label{ font-family:var(--font-heading); font-size:20px; letter-spacing:.18em; }
.preorder__label + span{ display:block; width:20px; height:1px; background:#fff; margin:14px auto 22px; }
.preorder__title{ font-family:var(--font-heading); font-size:32px; letter-spacing:.04em; font-weight:500; margin-top:34px; }
.preorder__sub{ font-family:var(--font-mincho); font-size:13px; letter-spacing:.08em; color:var(--gray-text); margin-top:0; }

.pcards{
  max-width: 1440px; margin:0 auto;
  border-top:1px solid #ffffff; border-left:1px solid #ffffff;
  display:grid; grid-template-columns: repeat(4, 1fr);
}
.pcard{
  position:relative;
  border-right:1px solid #ffffff; border-bottom:1px solid #ffffff;
  padding: 24px 24px 32px;   /* セル内に余白・画像/テキストを内側寄せ */
}
.pcard__img{ background:#e9e9ec; }
.pcard__img img{ width:100%; height:400px; object-fit:cover; }
.pcard__badge{
  position:absolute; top:34px; left:34px;
  background:#fff; color:#111; border-radius:20px;
  font-family:var(--font-inter); font-size:10px; letter-spacing:.1em;
  padding: 4px 14px;
}
.pcard__row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding: 18px 0 0;
  font-family: var(--font-inter); font-size:15px; letter-spacing:.02em;
}
.pcard__name{}
.pcard__price{ font-size:13px; }
.pcard__jp{ font-family:var(--font-body); font-size:12px; letter-spacing:.04em; color:var(--gray-text); padding: 6px 0 0; }
.pcard__ship{
  font-family:var(--font-body); font-size:11px; letter-spacing:.04em; color:var(--gray-sub); padding: 45px 0 0;
  display:none;   /* 一時非表示：発送時期を出す場合はこの行を削除 */
}
.pcard--empty{ display:none; align-items:center; justify-content:center; } /* 一時非表示：公開時に display:flex に戻す */
.pcard__link{ font-family:var(--font-body); font-size:12px; letter-spacing:.04em; border-bottom:1px solid rgba(255,255,255,.6); padding-bottom:2px; }
.pcard__link:hover{ opacity:.6; }

/* サイズ選びボックス */
.size-note{
  max-width: 1440px; margin: 0 auto; padding: 80px 120px 90px;
}
.size-note__box{
  background: var(--panel);
  display:grid; grid-template-columns: 320px 1fr; align-items:start;
  padding: 44px 56px;
}
.size-note__t{ font-family:var(--font-body); font-size:15px; letter-spacing:.08em; padding-top:4px; }
.size-note__c{ border-left:1px solid var(--line-lt); padding-left:56px; }
.size-note__h{ font-family:var(--font-body); font-size:13px; letter-spacing:.04em; }
.size-note__p{ font-family:var(--font-body); font-size:12px; line-height:2; letter-spacing:.03em; color:var(--gray-text); margin-top:16px; }
.size-note__link{ display:block; margin-top:18px; font-size:12px; color:var(--gray-text); }
.size-note__link a{ border-bottom:1px solid rgba(255,255,255,.6); }

/* =========================================================
   ⑫ SHOP LIST
   ========================================================= */
.shop{ background: linear-gradient(180deg, #000 0%, #000 60%, #2a2a2a 100%); color:#fff; padding: 40px 0 110px; }
.shop__head{ text-align:center; margin-bottom: 50px; }
.shop__label{ font-family:var(--font-heading); font-size:20px; letter-spacing:.18em; }
.shop__label + span{ display:block; width:20px; height:1px; background:#fff; margin:14px auto 22px; }
.shop__lead{ font-family:var(--font-mincho); font-size:13px; letter-spacing:.12em; color:var(--gray-text); }
.shop__grid{
  max-width: 1200px; margin:0 auto; padding: 0 40px;
  display:grid; grid-template-columns: repeat(3,1fr); gap: 40px;
}
.shop__card figure{ margin:0; }
.shop__card img{ width:100%; aspect-ratio: 1/1; object-fit:cover; }
.shop__name{ font-family:var(--font-mincho); font-size:14px; line-height:1.6; letter-spacing:.04em; margin-top:18px; }
.shop__note{ font-family:var(--font-inter); font-size:10px; line-height:1.7; color:var(--gray-sub); margin-top:22px; }

/* =========================================================
   ⑬ フッター
   ========================================================= */
.l-footer{ background:#000; color:#fff; text-align:center; padding: 40px 20px 28px; position:relative; }
.l-footer__tag{ font-family:var(--font-mincho); font-size:14px; letter-spacing:.1em; color:var(--gray-text); }
.l-footer__logo{ width: 150px; margin: 72px auto 0; }
.l-footer__logo img{ width:100%; }
.store-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:170px; height:50px; margin-top: 34px;
  border:1px solid rgba(255,255,255,.8);
  transition: background-color .35s ease, color .35s ease;
}
.store-btn__label{ font-family:var(--font-inter); font-size:12px; letter-spacing:.16em; color:#fff; transition:color .35s ease; }
.store-btn:hover{ background:#fff; }
.store-btn:hover .store-btn__label{ color:#000; }
.l-footer__copy{ font-family:var(--font-inter); font-size:10px; letter-spacing:.08em; color:var(--gray-sub); margin-top: 100px; }

/* ページトップ */
.pagetop{
  position:fixed; right:24px; bottom:24px; z-index:95;
  width:48px; height:48px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease;
}
.pagetop.is-show{ opacity:1; visibility:visible; }
.pagetop__arrow{ width:9px; height:9px; border-top:1px solid #fff; border-right:1px solid #fff; transform:rotate(-45deg); margin-top:3px; }

/* =========================================================
   サイズ表モーダル（SIZE GUIDE）
   ========================================================= */
.size-modal{
  position: fixed; inset: 0; z-index: 130;
  background: rgba(12,12,12,.72);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);   /* 背景をぼかす */
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px;
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.is-size-open .size-modal{ opacity: 1; visibility: visible; }
.size-modal__close{
  position: absolute; top: 44px; right: 44px; z-index: 2;
  width: 52px; height: 52px;
  background: none; border: 0; padding: 0; cursor: pointer;
}
.size-modal__close::before, .size-modal__close::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 34px; height: 1px; background: rgba(255,255,255,.85);
}
.size-modal__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.size-modal__close::after{ transform: translate(-50%,-50%) rotate(-45deg); }
.size-modal__card{
  background: #F7F6F3; color: #1a1a1a;
  width: 100%; max-width: 940px;
  padding: 60px 64px;
  max-height: 88vh; overflow-y: auto;
  transform: translateY(16px);
  transition: transform .4s ease;
}
.is-size-open .size-modal__card{ transform: translateY(0); }
.size-modal__title{
  font-family: var(--font-heading); font-size: 16px; letter-spacing: .1em; color: #1a1a1a;
  display: flex; align-items: center; gap: 14px;
}
.size-modal__title::after{ content: ""; width: 28px; height: 1px; background: #1a1a1a; }
.size-table-hint{ display:none; }   /* PCは非表示・SPでのみ表示 */
/* サイズ表の中身をtree/snowで切替（既定=tree、is-size-snow=snow）*/
.size-rows--snow, .size-modal__note--snow{ display:none; }
.is-size-snow .size-rows--tree, .is-size-snow .size-modal__note--tree{ display:none; }
.is-size-snow .size-rows--snow{ display:table-row-group; }
.is-size-snow .size-modal__note--snow{ display:block; }
.size-table-wrap{ overflow-x: auto; margin-top: 34px; }
.size-table{ width: 100%; border-collapse: collapse; font-family: var(--font-body); }
.size-table th{
  background: #E8E6E0; font-weight: 400;
  font-size: 13px; letter-spacing: .04em; color: #555;
  padding: 11px 10px; text-align: center; white-space: nowrap;
}
.size-table td{
  font-size: 14px; letter-spacing: .02em; color: #1a1a1a;
  padding: 10px 10px; text-align: center; white-space: nowrap;
  border-bottom: 1px solid rgba(0,0,0,.12);
}
.size-modal__note{
  font-family: var(--font-body); font-size: 11px; line-height: 1.9;
  color: #777; margin-top: 14px;
}
.size-modal__link{
  font-family: var(--font-body); font-size: 13px; color: #1a1a1a; margin-top: 28px;
}
.size-modal__link a{ text-decoration: underline; text-underline-offset: 3px; }
.size-modal__link a:hover{ opacity: .6; }

/* INFORMATION モーダル（入荷・予約状況）*/
.info-modal{
  position: fixed; inset: 0; z-index: 130;
  background: rgba(12,12,12,.72);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px;
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.is-info-open .info-modal{ opacity: 1; visibility: visible; }
.info-modal__close{
  position: absolute; top: 44px; right: 44px; z-index: 2;
  width: 52px; height: 52px; background: none; border: 0; padding: 0; cursor: pointer;
}
.info-modal__close::before, .info-modal__close::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 34px; height: 1px; background: rgba(255,255,255,.85);
}
.info-modal__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.info-modal__close::after{ transform: translate(-50%,-50%) rotate(-45deg); }
.info-modal__card{
  background: #F7F6F3; color: #1a1a1a;
  width: 100%; max-width: 940px;
  padding: 56px 64px;
  max-height: 88vh; overflow-y: auto;
  transform: translateY(16px); transition: transform .4s ease;
}
.is-info-open .info-modal__card{ transform: translateY(0); }
.info-modal__head{ display:flex; justify-content:space-between; align-items:baseline; }
.info-modal__title{
  font-family: var(--font-heading); font-size: 20px; letter-spacing:.3em; color:#1a1a1a;
  display:flex; align-items:center; gap:14px;
}
.info-modal__title::after{ content:""; width:40px; height:1px; background:#1a1a1a; }
.info-modal__date{ font-family: var(--font-body); font-size:13px; letter-spacing:.06em; color:#666; }
.info-modal__lead{
  font-family:var(--font-body); font-size:13px; line-height:1.9; letter-spacing:.02em;
  color:#666; margin-top:18px;
}
.info-modal__group{
  font-family:var(--font-heading); font-size:15px; letter-spacing:.22em; color:#1a1a1a;
  display:flex; align-items:baseline; gap:12px; margin-top:38px;
}
.info-modal__group small{ font-family:var(--font-body); font-size:11px; letter-spacing:.1em; color:#8a8a8a; }
.info-grid{
  display:grid; grid-template-columns:1fr 1fr; column-gap:56px; margin-top:14px;
}
.info-block{ border-top:1px solid #2a2a2a; padding:16px 0 18px; }
.info-block__name{
  font-family:var(--font-body); font-size:15px; letter-spacing:.04em; color:#1a1a1a;
  display:flex; align-items:baseline; gap:8px; margin-bottom:11px;
}
.info-block__name small{ font-size:11px; letter-spacing:.06em; color:#8a8a8a; }
.info-block__rows{ display:grid; row-gap:9px; }
.info-row{ display:grid; grid-template-columns:132px 1fr; column-gap:10px; align-items:baseline; }
.info-row__m, .info-row__s{ font-family:var(--font-body); font-size:14px; letter-spacing:.02em; color:#1a1a1a; line-height:1.4; }
/* サイズ内の入荷ロット（ツリー）*/
.info-size{ display:grid; grid-template-columns:62px 1fr; column-gap:14px; padding:2px 0 14px; }
.info-size:last-child{ padding-bottom:0; }
.info-size__label{ font-family:var(--font-body); font-size:14px; letter-spacing:.04em; color:#1a1a1a; }
.info-size__rows{ display:grid; row-gap:7px; }
/* ロット名は「11月下旬最終入荷分」が最長。折り返さない幅を確保する */
.info-size .info-row{ grid-template-columns:148px 1fr; }
.info-block__rows .info-size + .info-size{ padding-top:10px; }

/* ロットの状態。Shopify の商品ページと同じ見え方に揃える */
.info-row--sold .info-row__m{ text-decoration:line-through; color:#8f8f8f; }
.info-row--sold .info-row__s{ color:#9a3324; font-weight:500; }
.info-row--wait .info-row__m, .info-row--wait .info-row__s{ color:#c2c2c2; }

/* オーナメント（スケジュールが無い商品）の完売表示 */
.info-row--sold-eta .info-row__eta{ text-decoration:line-through; color:#8f8f8f; }
.info-row__mark{
  margin-left:10px; white-space:nowrap;
  color:#9a3324; font-weight:500; letter-spacing:.06em;
}
/* Shopify から納期を取得している間 */
.info-modal__card.is-loading .info-grid{ opacity:.4; }
.info-grid{ transition:opacity .25s ease; }

/* RESERVATION & DELIVERY モーダル（予約・お届けについて）*/
.rd-modal{
  position: fixed; inset: 0; z-index: 130;
  background: rgba(12,12,12,.72);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  display: flex; align-items: center; justify-content: center;
  padding: 40px 20px;
  opacity: 0; visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.is-rd-open .rd-modal{ opacity: 1; visibility: visible; }
.rd-modal__close{
  position: absolute; top: 44px; right: 44px; z-index: 2;
  width: 52px; height: 52px; background: none; border: 0; padding: 0; cursor: pointer;
}
.rd-modal__close::before, .rd-modal__close::after{
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 34px; height: 1px; background: rgba(255,255,255,.85);
}
.rd-modal__close::before{ transform: translate(-50%,-50%) rotate(45deg); }
.rd-modal__close::after{ transform: translate(-50%,-50%) rotate(-45deg); }
.rd-modal__card{
  background: #F7F6F3; color: #1a1a1a;
  width: 100%; max-width: 680px;
  padding: 56px 60px;
  max-height: 88vh; overflow-y: auto;
  transform: translateY(16px); transition: transform .4s ease;
}
.is-rd-open .rd-modal__card{ transform: translateY(0); }
.rd-modal__title{
  font-family: var(--font-heading); font-size: 20px; letter-spacing:.3em; color:#1a1a1a;
  display:flex; align-items:center; gap:14px;
}
.rd-modal__title::after{ content:""; width:40px; height:1px; background:#1a1a1a; }
.rd-list{ margin-top:36px; border-bottom:1px solid #2a2a2a; }
.rd-row{
  display:grid; grid-template-columns:190px 1fr; column-gap:24px;
  border-top:1px solid #2a2a2a; padding:22px 4px;
}
.rd-row__t{ font-family:var(--font-body); font-size:14px; letter-spacing:.04em; color:#1a1a1a; }
.rd-row__d{ font-family:var(--font-body); font-size:14px; line-height:1.9; letter-spacing:.02em; color:#1a1a1a; margin:0; }
.rd-note{
  font-family:var(--font-body); font-size:11px; line-height:1.9; color:#777;
  margin-top:16px; padding-left:1em; text-indent:-1em;
}

/* =========================================================
   Responsive : SP（〜768px）
   ========================================================= */
@media (max-width: 768px){
  .br-sp{ display:inline; }
  .br-pc{ display:none; }
  .l-header{ padding:22px 20px 0; }   /* 上の余白を少し広げる */
  .l-header__emblem{ width:42px; height:42px; }
  .hamburger{ width:46px; height:17px; }

  .l-insta{ right:12px; gap:6px; }
  .l-insta img{ width:16px; height:16px; }
  .l-insta__text{ font-size:10px; }

  /* ドロワー（SP）*/
  .drawer{ background:#F7F6F3; }   /* SPは全面白 */
  .drawer__panel{ width:100%; min-width:0; max-width:none; transform:none; }
  .drawer__close{ top:26px; right:18px; width:48px; height:48px; }   /* ×を大きく */
  .drawer__close::before, .drawer__close::after{ width:38px; }
  .drawer__inner{ right:20px; left:20px; width:auto; padding-bottom:130px; }  /* メニューを少し上へ */
  .drawer__item a{ font-size:16px; padding:9px 0; letter-spacing:.08em; }     /* 項目間隔を詰める */
  .drawer__product{ bottom:36px; }
  .drawer__prod-en{ font-size:20px; }
  .drawer__prod-btn{ background:#333333; color:#fff; border-color:#333333; }

  /* FV */
  .fv{ height:100svh; min-height:0; }
  .fv__slide--1{ background-image:url("../img/sp_hero01.jpg"); }
  .fv__slide--2{ background-image:url("../img/sp_hero02.jpg"); }
  .fv__slide--3{ background-image:url("../img/sp_hero03.jpg"); }
  .fv__slide--4{ background-image:url("../img/sp_hero04.jpg"); }
  .fv__slide--5{ background-image:url("../img/sp_hero05.jpg"); }
  /* FV：タイトルは上部中央／キャッチは左下（区切り線付き）＝XD SP準拠 */
  .fv__title{ inset:0; left:0; right:0; top:0; bottom:0; display:block; padding:0; }
  .fv__title-main{ position:absolute; top:88px; left:20px; right:20px; text-align:center; }
  .fv__en{ font-size:46px; }
  .fv__coll{ font-size:13px; margin-top:3px; letter-spacing:.16em; }   /* タイトルとの間を詰める */
  .fv__catch{ position:absolute; left:20px; bottom:24px; text-align:left; padding-left:15px; border-left:1px solid rgba(255,255,255,.6); }
  .fv__catch-jp{ font-size:14px; }
  .fv__catch-fr{ font-size:13px; margin-top:4px; }
  .fv__catch-sub{ font-size:11px; margin-top:5px; }
  .fv__divider{ display:none; }

  /* INFORMATION：固定解除し、FV直下のセクションとして配置（ティザー準拠）*/
  .info{ position:static; width:100%; left:auto; right:auto; bottom:auto; }
  .info.is-closed{ transform:none; opacity:1; }
  .info__close{ display:none; }
  .info__thumb{ width:112px; }
  .info__body{ padding:0 20px; }

  /* New Variations（SP：1カラム縦積み）*/
  .nv{ padding:150px 0 40px; }
  .nv__stage{ aspect-ratio:auto; padding:0 20px; }
  .nv__inner{ position:static; width:auto; margin-bottom:100px; }
  .nv__en{ font-size:56px; line-height:1.08; }
  .nv__heading{ font-size:23px; line-height:1.85; margin-top:48px; }
  .nv__lead-jp{ font-size:13px; margin-top:48px; }
  .nv__lead-en{ font-size:10px; line-height:1.6; margin-top:40px; }
  .nv1,.nv2,.nv3,.nv4,.nv5,.nv6{ position:static; left:auto; top:auto; width:100%; margin:0 0 44px; }
  /* SP は横幅が足りず、並べるとキャプションが余計に折り返すのでバッジを下段へ */
  .nv__meta{ flex-wrap:wrap; gap:12px; }
  .nv__meta .nv__cap{ flex:1 1 100%; }
  .nv__soldout{ font-size:10px; letter-spacing:.14em; padding:7px 12px; }
  /* XD SP準拠：縦長=4:5／横長=350:197 に統一 */
  .nv1 img, .nv3 img, .nv5 img{ aspect-ratio: 4/5; }
  .nv2 img, .nv4 img, .nv6 img{ aspect-ratio: 350/197; }

  /* Product */
  .product{ padding:70px 0; }
  .product__inner{ grid-template-columns:1fr; padding:0 20px; gap:36px; }
  /* Alsace tree：PC用の2カラム指定（詳細度が高い）をSPでも1カラムへ上書き */
  .product--tree{ padding-bottom:130px; }   /* サブリンク下の余白を少し広げる */
  .product--tree .product__inner{ grid-template-columns:1fr; gap:36px; }
  .product--tree .slider{ max-width:none; }
  /* スライダーは左右余白なしの全幅（inner の padding:0 20px を打ち消す）*/
  .product--tree .product__media{ margin-left:-20px; margin-right:-20px; }
  .product--snow{ padding-top:100px; padding-bottom:100px; }   /* 写真上・サブリンク下の余白を少し広げる */
  .product--snow .product__inner{ grid-template-columns:1fr; gap:36px; }   /* PC用の2カラム＋gap120pxをSPでは1カラム・gap36pxへ（画像↔テキストの余白を詰める）*/
  .product--snow .product__rule{ margin-bottom:30px; }   /* 線↔価格の余白（snowのみ・treeの本文上余白は維持）*/
  .product--snow .btn-line{ background:#333333; color:#fff; border-color:#333333; margin-top:25px; }   /* 塗りボタン＋上余白を少し広げる */
  .product--snow .product__media{ order:-1; display:block; }   /* PC用の右寄せflexを解除 */
  .product--snow .slider{ max-width:none; }   /* PC用の440px制限を解除しSPは全幅 */
  .product__title{ font-size:32px; font-weight:300; }
  .product__rule{ margin:16px 0 34px; }   /* 本文上の余白を少し詰める */
  .price-table{ margin:45px 0 30px; }   /* 価格表とボタンの間の余白を詰める */
  .btn-line{ height:60px; margin-top:20px; }   /* 縦幅を少し広げる */
  .product--tree .btn-line{ background:#fff; color:#000; }   /* SPはPCホバー時と同じ白背景・黒文字 */
  .sublinks{ flex-wrap:wrap; gap:16px 24px; }

  /* DETAIL */
  .detail{ padding:70px 0 80px; }
  .detail__title{ font-size:17px; }   /* SPは見出しを少し小さく */
  .detail__head{ margin-bottom:0; }   /* 下線→画像の余白を詰める（下記の先頭ブロックpaddingと合算）*/
  .detail__head + .detail__block{ padding-top:35px; }   /* DETAIL直下の先頭ブロックだけ上余白を詰める */
  .detail__block, .detail__block--rev, .detail__block--hero{ display:grid; grid-template-columns:1fr; padding:34px 20px; gap:30px; }
  .detail__imgs{ order:-1; }   /* SPは全ブロックとも画像を上・テキストを下に */
  .detail__txt{ max-width:none; justify-self:stretch; }   /* PC用の幅絞り・寄せを解除 */
  /* 02ヒーロー：SPはオーバーレイ解除して縦積み */
  .detail__block--hero{ position:static; margin:0; }
  .detail__block--hero .detail__hero-inner{ position:static; display:block; max-width:none; padding:0; }
  .detail__block--hero .detail__txt{ grid-column:auto; max-width:none; }
  .detail__block--hero .detail__h{ margin-top:48px; }
  .detail__block--hero .detail__imgs img{ aspect-ratio:auto; }
  .detail__num{ padding-bottom:4px; }   /* テキスト↔下線を詰める（SP）*/
  .detail__h{ font-size:22px; margin-top:48px; }   /* 下線↔見出しの余白（SP）*/
  .detail__rule{ margin-top:48px; }   /* 英文↔下線の余白（SP・見出し上と揃える）*/

  /* Ornement：SPは縦長画像→黒背景の白テキスト（PC用オーバーレイを解除）*/
  .ornement-head{ background:#000; }
  .ornement-head__media img{ aspect-ratio: 1560/3000; }   /* sp_ornament の縦長比率 */
  .ornement-head__media::before{ display:none; }
  .ornement-head__txt{ position:static; max-width:none; padding:81px 20px 44px; }
  .ornement-head__en{ font-size:48px; color:#fff; }
  .ornement-head__jp{ color:#fff; }
  .ornement-head__en2{ color:#DDDDDD; }   /* SPは黒背景に合わせて明るいグレーに */
  .ornement-note{ display:none; }   /* SPでは注釈を非表示（XD準拠）*/
  /* 商品：カード（ツリー画像＋文字）を上・ディテール画像を下に */
  .ornament-item__inner{ grid-template-columns:1fr; padding:40px 20px; gap:52px; }
  .ornament-item__card{ order:-1; }
  .ornament-item__portrait{ width:70%; margin-bottom:44px; }
  /* ギャラリー：SPは3列 */
  .ornament-gallery{ padding:160px 0 30px; }
  .ornament-gallery__grid{ grid-template-columns:repeat(3,1fr); gap:12px; max-width:320px; margin:0 auto; padding:0; }
  /* CTA：SPは白背景・黒文字 */
  .btn-outline{ min-width:0; width:100%; }
  .ornement-cta .btn-outline{ background:#fff; color:#000; border-color:#fff; }
  .ornement-cta{ padding:20px 20px 200px; }

  /* Brand band */
  .brand-band__media img{ aspect-ratio: 1560/3000; }   /* SPは about-sp の縦長 */
  .brand-band__logo{ width:160px; }

  /* ABOUT */
  .about{ padding:100px 0; }
  .about__inner{ grid-template-columns:1fr; padding:0 20px; gap:22px; }
  .about__body{ font-size:13px; letter-spacing:.04em; }   /* 指定改行が1行に収まるよう少し縮小 */
  .about__en{ margin-top:78px; }   /* 英文の上余白（gap22+78=100）*/
  .about__label, .message__label, .preorder__label{ font-size:16px; }   /* SP：英語ラベルを16pxに統一 */
  .about__catch{ font-size:22px; margin-top:78px; }   /* ABOUTラベル→見出しの余白（gap22+78=100）*/
  .about__en{ font-size:10px; }
  .no1{ grid-template-columns:1fr; padding: 100px 20px 0; gap:40px; margin-top:100px; }   /* 英文下=100px / 楽天ランキング上=100px */
  .no1__main{ width:350px; max-width:100%; }   /* XD SP: 9年連続No.1=289px相当 */
  .no1__divider{ width:100%; }   /* 線を伸ばす（左右は画面端から20px余白）*/
  .no1__head{ font-size:20px; }   /* SP見出し */
  .no1__text{ margin-top:50px; }   /* 見出し下の余白 */
  .no1__row{ gap:14px; }
  .no1__cell + .no1__cell{ padding-left:14px; }
  .no1__cell img{ height:96px; }   /* XD SP: 数字≈46px相当 */

  .memories-band{ padding:320px 20px; font-size:16px; letter-spacing:.24em; }

  /* MESSAGE */
  .message{ padding:60px 0 0; }
  .message__inner{ grid-template-columns:1fr; padding:0 20px; gap:24px; }
  .message__head{ justify-self:stretch; }   /* SPは右寄せ解除 */
  .message__label{ margin-bottom:76px; }   /* MESSAGE→En mémoire 見た目100px（+gap24）*/
  .message__fr{ font-size:30px; }
  .message__jp{ font-size:16px; margin-bottom:76px; }   /* 「思い出とともに…」下・見た目100px（+gap24） */

  .ugc-slider__item{ height:300px; margin-right:5px; }   /* SPは高さを縮小 */
  .ugc{ aspect-ratio: 390/980; margin-top:100px; }   /* 本文下の余白・縦間隔を確保 */
  .ugc1{ left:0%;  top:0%;   width:33%; }
  .ugc2{ left:46%; top:10%;  width:54%; }
  .ugc3{ left:2%;  top:26%;  width:39%; }
  .ugc4{ left:57%; top:49%;  width:37%; }
  .ugc5{ left:0%;  top:59%;  width:50%; }
  .ugc6{ left:60%; top:82%;  width:29%; }

  /* PRE-ORDER */
  .preorder{ padding:135px 0 0; }   /* PRE-ORDER上の余白を見た目160pxに（写真下から135+約25）*/
  .preorder__title{ font-size:26px; }
  .pcards{ grid-template-columns: repeat(2,1fr); }
  .pcard{ padding: 20px 20px 35px; }   /* SP：画像まわり20px・発送日↔カード下端35px */
  .pcard__img img{ height:193px; }
  .pcard__badge{ top:30px; left:30px; }
  .pcard__row{ font-size:12px; column-gap:6px; }
  .pcard__price{ font-size:11px; white-space:nowrap; }
  .pcard__ship{ padding-top:35px; }   /* SP：商品名↔発送日の余白を広げる */
  .pcard--empty{ display:none; }   /* 一時非表示：公開時に display:flex に戻す（SPでも「予約・お届けについて」を表示） */
  .size-note{ padding:74px 20px 70px; }   /* カード↔サイズ選びボックスの余白を見た目100pxに */
  .size-note__box{ grid-template-columns:1fr; padding:30px 24px; gap:20px; }
  .size-note__c{ border-left:0; padding-left:0; border-top:1px solid var(--line-lt); padding-top:20px; }

  /* SHOP */
  .shop{ padding:70px 0 80px; }   /* サイズ選びボックス↔SHOP LISTの余白を広げる（見た目140px）*/
  .shop__lead{ letter-spacing:.04em; margin-top:50px; }   /* SP：字間を詰め・上余白を見た目50pxに（span margin22とcollapse）*/
  .shop__name{ line-height:1.4; }   /* SP：店名の行間を詰める */
  .shop__note{ margin-top:24px; }   /* SP：店名↔展示日の余白を広げる */
  .shop__grid{ grid-template-columns:1fr 1fr; column-gap:16px; row-gap:36px; padding:0 20px; max-width:none; }   /* SP：2カラム */

  .l-footer__logo{ width:130px; }

  /* サイズ表モーダル（SP）：カードはコンテンツ高さ＋中央配置。上下に透過ゾーンを残す */
  .size-modal{ padding: 40px 16px; align-items: center; }
  .size-modal__close{ top: 16px; right: 12px; width: 56px; height: 56px; }
  .size-modal__close::before, .size-modal__close::after{ width: 36px; }   /* ×は透過ゾーン上なので白のまま／大きめ */
  .size-modal__card{ max-width: none; height: auto; max-height: calc(100dvh - 80px); padding: 40px 20px; }
  /* サイズ表：画面幅に押し込まず、各列に最小幅を与えて横スクロール表示に */
  .size-table-hint{ display:block; text-align:right; font-family:var(--font-body);
    font-size:11px; letter-spacing:.04em; color:#999; margin-top:24px; }
  .size-table-wrap{ margin-top:12px; -webkit-overflow-scrolling:touch; }
  .size-table{ width:auto; min-width:100%; }
  .size-table th, .size-table td{ min-width:120px; }
  .size-table th{ font-size: 12px; padding: 12px 12px; }
  .size-table td{ font-size: 14px; padding: 15px 12px; }
  /* SP：「サイズ」列を固定し、他項目だけ横スクロール */
  .size-table th:first-child, .size-table td:first-child{
    min-width:90px;
    position:sticky; left:0; z-index:1;
    box-shadow: 1px 0 0 rgba(0,0,0,.12);   /* 固定列の右境界（border-collapse対策でshadow）*/
  }
  .size-table td:first-child{ background:#F7F6F3; }   /* カード背景で下の列を隠す */
  .size-table th:first-child{ background:#E8E6E0; z-index:2; }   /* ヘッダーは最前面 */
  .size-modal__link{ font-size:12px; }   /* 案内文を少し小さく */

  /* INFORMATION モーダル（SP：1カラム・縦スクロール）*/
  .info-modal{ padding: 40px 16px; align-items:center; }
  .info-modal__close{ top:16px; right:12px; width:56px; height:56px; }
  .info-modal__close::before, .info-modal__close::after{ width:36px; }
  .info-modal__card{ max-width:none; max-height: calc(100dvh - 80px); padding: 36px 20px; }
  .info-modal__title{ font-size:14px; letter-spacing:.1em; gap:8px; }
  .info-modal__title::after{ width:20px; }
  .info-modal__date{ font-size:10px; white-space:nowrap; }
  .info-modal__lead{ font-size:12px; margin-top:14px; }
  .info-modal__group{ font-size:13px; letter-spacing:.16em; gap:8px; margin-top:28px; }
  .info-grid{ grid-template-columns:1fr; column-gap:0; margin-top:10px; }
  .info-block{ padding:14px 0 16px; }
  .info-block__name{ font-size:14px; margin-bottom:10px; }
  .info-row{ grid-template-columns:112px 1fr; }
  .info-size{ grid-template-columns:52px 1fr; column-gap:10px; padding-bottom:12px; }
  .info-size .info-row{ grid-template-columns:132px 1fr; }
  .info-size__label{ font-size:13px; }
  .info-row__m, .info-row__s{ font-size:13px; }

  /* RESERVATION & DELIVERY モーダル（SP）*/
  .rd-modal{ padding: 40px 16px; align-items:center; }
  .rd-modal__close{ top:16px; right:12px; width:56px; height:56px; }
  .rd-modal__close::before, .rd-modal__close::after{ width:36px; }
  .rd-modal__card{ max-width:none; max-height: calc(100dvh - 80px); padding: 36px 20px; }
  .rd-modal__title{ font-size:12px; letter-spacing:.04em; gap:8px; }
  .rd-modal__title::after{ width:18px; }
  .rd-list{ margin-top:24px; }
  .rd-row{ grid-template-columns:118px 1fr; column-gap:10px; padding:18px 2px; }
  .rd-row__t{ font-size:12px; }
  .rd-row__d{ font-size:12px; line-height:1.85; }
  .rd-note{ font-size:10.5px; }
}

@media (max-width: 380px){
  .fv__en{ font-size:40px; }
  .nv__en{ font-size:52px; }
  .nv__heading{ font-size:22px; }
  /* 狭い端末では納期の折り返しを減らすため、サイズ欄を詰める */
  .info-row{ grid-template-columns:88px 1fr; }
  .info-size{ grid-template-columns:46px 1fr; column-gap:8px; }
  .info-size .info-row{ grid-template-columns:1fr auto; column-gap:8px; }
}
