:root{
  --bg:#FFFFFF;        /* 白ベース */
  --bg2:#FBF6EA;       /* ほんのり温かい面（カード/シート） */
  --ink:#17120C;       /* ほぼ黒 */
  --mute:#8C8175;
  --line:#ECE4D4;
  --yellow:#FFEA01;    /* 署名色（写真の背景と実測一致） */
  --yellow-d:#EBD400;
  --red:#E5392B;       /* トマトの差し色（点で使う） */
  --green:#06C755;     /* LINE */
  --disp:"Anton", system-ui, sans-serif;
  --jp:"Noto Sans JP", system-ui, sans-serif;
  --safe: env(safe-area-inset-bottom, 0px);
}
*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  background:var(--bg); color:var(--ink); font-family:var(--jp); font-weight:400;
  line-height:1.75; letter-spacing:.01em; -webkit-font-smoothing:antialiased;
  padding-bottom:88px;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--jp); font-weight:700; border:0; border-radius:999px; cursor:pointer;
  padding:15px 26px; font-size:15px; transition:transform .12s ease, background .2s ease; }
.btn:active{ transform:scale(.97); }
.btn--primary{ background:var(--ink); color:var(--yellow); }   /* 黒地×黄文字 */
.btn--primary:hover{ background:#000; }
.btn--line{ background:var(--green); color:#fff; width:100%; padding:17px; font-size:16px; }

/* topbar */
.topbar{ position:sticky; top:0; z-index:30; display:flex; align-items:center; justify-content:space-between;
  padding:14px 20px; background:rgba(255,255,255,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.brand{ font-family:var(--disp); font-size:26px; letter-spacing:.06em; }
.topnav{ display:flex; gap:20px; font-size:12px; font-weight:700; letter-spacing:.12em; }
.topnav a{ color:var(--mute); }
.topnav a:hover{ color:var(--ink); }

/* ===== FV（黄色地に写真が溶け込む） ===== */
.fv{ position:relative; background:var(--yellow); display:grid; grid-template-columns:1fr 1.08fr; align-items:stretch; overflow:hidden; }
.fv__copy{ display:flex; flex-direction:column; justify-content:center; gap:16px; padding:56px 44px; }
.fv__eyebrow{ margin:0; font:700 12px/1 var(--jp); letter-spacing:.28em; color:#3a2f10; }
.fv__title{ margin:0; font-family:var(--jp); font-weight:900; font-size:clamp(32px,3.6vw,58px);
  line-height:1.25; letter-spacing:-.01em; color:var(--ink); }
.fv__lead{ margin:0; max-width:34em; color:#33290f; font-size:15px; }
.fv__cta{ align-self:flex-start; margin-top:8px; }
.fv__note{ margin:6px 0 0; color:#6a5a1e; font-size:12px; letter-spacing:.06em; }
.fv__media{ position:relative; min-height:100%; order:-1; }  /* PC: 写真を左に */
.fv__media img{ width:100%; height:100%; object-fit:cover; object-position:50% 60%; }

/* ===== MENU（A案・写真なしのタイポ主役） ===== */
.wrap{ max-width:900px; margin:0 auto; padding:0 20px; }
.menu{ padding:60px 20px 40px; }
.sec__h{ font-family:var(--disp); font-weight:400; font-size:clamp(34px,5.5vw,52px); letter-spacing:.05em; margin:0 0 6px; }
.sec__sub{ color:var(--mute); font-size:13px; margin:0 0 30px; }

.cat{ margin:0 0 30px; }
.cat__h{ display:flex; align-items:baseline; gap:12px; font-size:13px; font-weight:900; letter-spacing:.16em;
  padding-bottom:8px; margin:0 0 4px; border-bottom:2px solid var(--ink); }
.cat__h::before{ content:""; width:12px; height:12px; background:var(--yellow); border-radius:3px; align-self:center; }
.cat__h small{ color:var(--mute); font-weight:500; letter-spacing:.02em; }

.item{ display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center;
  padding:16px 2px; border-bottom:1px solid var(--line); }
.item__body{ min-width:0; }
.item__name{ font-weight:700; font-size:17px; margin:0 0 2px; }
.item__desc{ color:var(--mute); font-size:12.5px; margin:0 0 5px; }
.item__price{ font-weight:900; font-size:16px; margin:0; font-variant-numeric:tabular-nums; }
.item--sold{ opacity:.42; }
.menu-error{ text-align:center; color:var(--mute); font-size:14px; padding:40px 0; text-wrap:balance; }

/* stepper */
.step{ display:flex; align-items:center; gap:0; }
.step__b{ width:36px; height:36px; border-radius:9px; border:1.5px solid var(--ink); background:var(--bg);
  color:var(--ink); font-size:20px; font-weight:700; line-height:1; cursor:pointer; }
.step__b:disabled{ opacity:.28; cursor:default; }
.step__n{ min-width:36px; text-align:center; font-weight:900; font-variant-numeric:tabular-nums; }
.step__soldout{ font-size:12px; color:var(--red); font-weight:700; }

/* footer */
.site-footer{ border-top:1px solid var(--line); padding:40px 20px 30px; text-align:center; }
.foot__brand{ font-family:var(--disp); font-size:30px; margin:0 0 14px; }
.foot__make a{ color:var(--ink); font-weight:700; font-size:13px; border-bottom:2px solid var(--yellow); padding-bottom:2px; }
.foot__cp{ color:var(--mute); font-size:11px; margin:16px 0 0; letter-spacing:.08em; }

/* orderbar */
.orderbar{ position:fixed; left:0; right:0; bottom:0; z-index:40;
  display:flex; align-items:center; gap:14px; justify-content:space-between;
  padding:12px 16px calc(12px + var(--safe)); background:#fff; box-shadow:0 -6px 24px rgba(0,0,0,.09);
  border-top:1px solid var(--line); }
.orderbar__info{ display:flex; flex-direction:column; line-height:1.2; }
.orderbar__count{ font-size:11px; color:var(--mute); letter-spacing:.06em; }
.orderbar__total{ font-size:22px; font-weight:900; font-variant-numeric:tabular-nums; }
.orderbar__btn{ flex:1; max-width:60%; }

/* ===== bottom sheet + iOS風ドラムピッカー ===== */
.sheet{ position:fixed; inset:0; z-index:60; }
.sheet__scrim{ position:absolute; inset:0; background:rgba(20,15,8,.42); }
.sheet__panel{ position:absolute; left:0; right:0; bottom:0; background:var(--bg);
  border-radius:22px 22px 0 0; padding:8px 18px calc(20px + var(--safe)); max-width:520px; margin:0 auto;
  box-shadow:0 -10px 40px rgba(0,0,0,.2); animation:sheetUp .28s cubic-bezier(.2,.8,.2,1); }
@keyframes sheetUp{ from{ transform:translateY(100%); } to{ transform:translateY(0); } }
.sheet__head{ position:relative; text-align:center; padding:12px 0 6px; }
.sheet__title{ margin:0; font-weight:900; font-size:15px; letter-spacing:.06em; }
.sheet__x{ position:absolute; right:-4px; top:6px; width:34px; height:34px; border:0; background:transparent;
  color:var(--mute); font-size:16px; cursor:pointer; }
.sheet__fine{ color:var(--mute); font-size:11px; text-align:center; margin:10px 0 0; text-wrap:balance; }
.sheet__demo{ color:#B04A38; font-size:12px; font-weight:700; text-align:center; margin:0 0 10px; text-wrap:balance; }

.picker{ position:relative; display:flex; align-items:stretch; justify-content:center; gap:2px;
  height:210px; margin:6px 0 2px; -webkit-mask-image:linear-gradient(#0000, #000 22%, #000 78%, #0000);
  mask-image:linear-gradient(#0000, #000 22%, #000 78%, #0000); }
.picker__band{ position:absolute; left:8px; right:8px; top:50%; height:42px; transform:translateY(-50%);
  border-radius:11px; background:#F1ECE1; border:0; pointer-events:none; }
.picker__col{ position:relative; z-index:1; height:100%; overflow-y:scroll; scroll-snap-type:y mandatory;
  scrollbar-width:none; -ms-overflow-style:none; text-align:center; }
.picker__col::-webkit-scrollbar{ display:none; }
.picker__col--num{ min-width:58px; }
.picker__opt{ height:42px; line-height:42px; scroll-snap-align:center; font-size:19px; font-weight:700;
  color:#c9bda9; font-variant-numeric:tabular-nums; transition:color .12s; white-space:nowrap; }
.picker__opt.is-active{ color:var(--ink); font-weight:900; }
.picker__pad{ height:84px; }
.picker__sep{ position:relative; z-index:1; align-self:center; font-size:22px; font-weight:900; color:var(--ink); padding:0 2px; }

.picker__readout{ text-align:center; font-size:16px; font-weight:900; color:var(--ink); margin:8px 0 16px; letter-spacing:.02em; text-wrap:balance; }
.summary__empty{ text-wrap:balance; }

.summary{ background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:0 0 14px; }
.summary__row{ display:flex; justify-content:space-between; font-size:13.5px; padding:3px 0; }
.summary__row span:last-child{ font-variant-numeric:tabular-nums; }
.summary__total{ border-top:1px solid var(--line); margin-top:6px; padding-top:8px; font-weight:900; font-size:15px; }
.summary__empty{ color:var(--mute); font-size:13px; text-align:center; }

[hidden]{ display:none !important; }

/* SP */
@media (max-width:720px){
  .fv{ grid-template-columns:1fr; }
  .fv__media{ order:-1; min-height:auto; height:75vw; }  /* 写真を上に */
  .fv__media img{ object-position:50% 55%; }
  .fv__copy{ padding:26px 22px 34px; }
  .fv__title{ font-size:clamp(30px,8.2vw,52px); }
  .fv__lead{ max-width:32ch; }   /* SPは承認済みの幅を維持 */
}
