/* ============================================================
   畑と膳 — デザインシステム（A-E型：C 伝統 ／ モーション m-elegant）
   深緑 #2E4A32 × 生成り #F6F3EA × 焙じ茶の橙 #C6702A
   署名モチーフ：細い横罫（膳の縁）を反復
   ============================================================ */
:root{
  --green:#2E4A32; --green-d:#22381F; --green-deep:#182A19;
  --wakana:#7C9A6B; --wakana-l:#DCE6D2;
  --accent:#C6702A; --accent-d:#A85B1E;
  --bg:#F6F3EA; --bg-2:#EFEADC; --paper:#FCFAF3; --white:#FFFFFF;
  --ink:#1C2A1E; --body:#3A423A; --note:#7A8078;
  --line:#DDD6C4; --line-d:rgba(246,243,234,.18);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:clip;}
body{margin:0;background:var(--bg);color:var(--body);
  font-family:'Zen Kaku Gothic New',sans-serif;line-height:1.85;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase;text-wrap:balance;}
[id]{scroll-margin-top:96px;}
.mincho{font-family:'Zen Old Mincho',serif;}
.shippori{font-family:'Shippori Mincho',serif;}
.mono{font-family:'Space Grotesk',monospace;letter-spacing:.04em;}
.wrap{width:min(1120px,calc(100% - 56px));margin:0 auto;}
.wrap-w{width:min(1320px,calc(100% - 56px));margin:0 auto;}
section{padding:104px 0;position:relative;}

/* --- 署名モチーフ：膳の縁（細い横罫） --- */
.zen-rule{width:56px;height:1px;background:var(--accent);margin:0 0 22px;}
.zen-rule.c{margin-left:auto;margin-right:auto;}

/* --- 共通パーツ --- */
.eyebrow{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--accent);display:block;}
h2.h{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:clamp(27px,3.5vw,42px);
  line-height:1.42;margin:14px 0 0;color:var(--ink);letter-spacing:.04em;}
h3.h3{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:clamp(20px,2.2vw,26px);
  color:var(--ink);margin:0;letter-spacing:.04em;}
.lead{font-size:17px;line-height:2;}
.note{font-size:13px;color:var(--note);line-height:1.9;}
.btn{display:inline-block;padding:17px 40px;background:var(--accent);color:#fff;font-weight:700;
  text-decoration:none;letter-spacing:.08em;border:1px solid var(--accent);transition:background .3s,color .3s;}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d);}
.btn.ghost{background:transparent;color:var(--green);border-color:var(--green);}
.btn.ghost:hover{background:var(--green);color:#fff;}

/* --- アクセシビリティ --- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:999;}
.skip-link:focus{left:8px;top:8px;}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--accent);outline-offset:2px;border-radius:3px;}
@media (hover:none){ .btn,.hd-nav a,.hd-cta{min-height:44px;} }

/* 演出ゲート：.j（JS稼働時のみ付与）
   初期状態と動きはすべてCSSが持ち、JS は IntersectionObserver で .in を付けるだけ。
   スクロール連動ライブラリに依存しないので「発火せず opacity:0 のまま固着」が起きない。
   役割ごとに duration / easing を変える（design-rules.md の Motion Presets）。 */
.j [data-rv]{opacity:0;transform:translateY(22px);
  transition:opacity .85s cubic-bezier(.16,1,.3,1), transform .85s cubic-bezier(.16,1,.3,1);}
.j [data-rv].in{opacity:1;transform:none;}

/* 証拠・数字：やや重く踏み込む */
.j .c-num .stat{opacity:0;transform:translateY(52px);
  transition:opacity .95s cubic-bezier(.76,0,.24,1), transform .95s cubic-bezier(.76,0,.24,1);}
.j .c-num .stat.in{opacity:1;transform:none;}
.j .c-num .nrule{transform:scaleX(0);transform-origin:left;
  transition:transform 1.15s cubic-bezier(.76,0,.24,1);}
.j .c-num .nrule.in{transform:scaleX(1);}

/* お品書き：品ごとにふわり → 点線リーダーが左から引かれる */
.j .c-menu .it{opacity:0;transform:translateY(18px);
  transition:opacity .55s ease-out, transform .55s ease-out;}
.j .c-menu .it.in{opacity:1;transform:none;}
.j .c-menu .it .dots{transform:scaleX(0);transform-origin:left;
  transition:transform .7s cubic-bezier(.65,0,.35,1) .25s;}
.j .c-menu .it.in .dots{transform:scaleX(1);}
.j .c-menu .seal{opacity:0;transform:rotate(-38deg) scale(.2);
  transition:opacity .5s ease-out, transform .7s cubic-bezier(.34,1.56,.64,1);}
.j .c-menu .seal.in{opacity:.9;transform:rotate(-8deg) scale(1);}

/* 農家：葉型ポートレートと役割ピル */
.j .c-farm .pp .ph{opacity:0;transform:translateY(40px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);}
.j .c-farm .pp .ph.in{opacity:1;transform:none;}
.j .c-farm .pp .role{transform:scale(0);
  transition:transform .6s cubic-bezier(.34,1.56,.64,1) .3s;}
.j .c-farm .pp .role.in{transform:scale(1);}

/* CTA直前・全幅バンド：長めの余韻 */
.j .c-decl .inner > *,.j .c-cta .inner > *{opacity:0;transform:translateY(34px);
  transition:opacity 1.2s cubic-bezier(.16,1,.3,1), transform 1.2s cubic-bezier(.16,1,.3,1);}
.j .c-decl .inner > *.in,.j .c-cta .inner > *.in{opacity:1;transform:none;}

@media(prefers-reduced-motion:reduce){
  .j [data-rv],.j .c-num .stat,.j .c-menu .it,.j .c-menu .seal,
  .j .c-farm .pp .ph,.j .c-decl .inner > *,.j .c-cta .inner > *{
    opacity:1!important;transform:none!important;transition:none!important;}
  .j .c-num .nrule,.j .c-menu .it .dots{transform:none!important;transition:none!important;}
  .j .c-farm .pp .role{transform:none!important;transition:none!important;}
}

/* ============ 提案用の仮バー ============ */
.demo-bar{background:var(--green-deep);color:#E9E4D6;font-size:12px;letter-spacing:.06em;
  padding:9px 20px;text-align:center;line-height:1.7;}
.demo-bar b{color:var(--accent);font-weight:700;}

/* ============ ZOROYA:HEADER ============ */
.hd{position:sticky;top:0;z-index:50;background:rgba(246,243,234,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.hd-in{width:min(1320px,calc(100% - 40px));margin:0 auto;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;height:74px;}
.hd-logo{display:flex;align-items:baseline;gap:10px;text-decoration:none;}
.hd-logo .jp{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:21px;
  letter-spacing:.16em;color:var(--green);}
.hd-logo .en{font-family:'Space Grotesk',monospace;font-size:9px;letter-spacing:.24em;color:var(--note);}
.hd-nav{display:flex;gap:26px;justify-content:center;}
.hd-nav a{font-size:14px;text-decoration:none;color:var(--ink);position:relative;padding:6px 0;}
.hd-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.hd-nav a:hover::after,.hd-nav a[aria-current="page"]::after{transform:scaleX(1);}
.hd-right{display:flex;align-items:center;gap:18px;}
.hd-tel{text-align:right;line-height:1.3;text-decoration:none;}
.hd-tel .n{font-family:'Space Grotesk',monospace;font-size:19px;font-weight:700;color:var(--green);}
.hd-tel .t{font-size:10px;color:var(--note);letter-spacing:.08em;}
.hd-cta{display:inline-block;padding:12px 22px;background:var(--accent);color:#fff;
  font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;letter-spacing:.06em;}
.hd-cta:hover{background:var(--accent-d);}
.hd-burger{display:none;background:none;border:1px solid var(--line);width:44px;height:44px;
  cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px;}
.hd-burger span{display:block;width:19px;height:1.5px;background:var(--green);transition:transform .3s,opacity .3s;}
.hd.menu-open .hd-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hd.menu-open .hd-burger span:nth-child(2){opacity:0;}
.hd.menu-open .hd-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
@media(max-width:1000px){
  .hd-in{grid-template-columns:auto 1fr;height:64px;}
  .hd-burger{display:flex;justify-self:end;}
  .hd-nav,.hd-right{position:fixed;inset:64px 0 auto;background:var(--bg);flex-direction:column;
    align-items:stretch;padding:22px 24px;gap:2px;border-bottom:1px solid var(--line);
    transform:translateY(-130%);transition:transform .38s cubic-bezier(.4,0,.2,1);}
  .hd-right{top:auto;transform:translateY(-130%);}
  .hd.menu-open .hd-nav{transform:translateY(0);}
  .hd.menu-open .hd-right{transform:translateY(0);position:static;border:none;flex-direction:row;
    justify-content:space-between;padding:0 24px 22px;background:var(--bg);}
  .hd-nav a{padding:13px 0;border-bottom:1px solid var(--line);}
  .hd:not(.menu-open) .hd-nav,.hd:not(.menu-open) .hd-right{display:none;}
}
@media(max-width:1000px){
  .hd.menu-open{position:fixed;left:0;right:0;top:0;}
}

/* ============ FV（fv-57 Noren 移植：深緑の暖簾が割れて一膳が現れる） ============ */
.hero,
.fv{position:relative;width: 100%;height:100svh;min-height:760px;overflow:hidden;
  background:var(--green-deep);color:#F0EDE1;}
.fv::after{content:"";position:absolute;inset:0;z-index:20;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");}
.fv-interior{position:absolute;inset:0;}
.fv-ph{position:absolute;inset:0;z-index:0;}
.fv-ph img{width:100%;height:100%;object-fit:cover;}
.fv-ph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(96deg, rgba(24,42,25,.93) 0%, rgba(24,42,25,.82) 40%, rgba(24,42,25,.38) 70%, rgba(24,42,25,.50) 100%);}
.fv-inner{position:relative;z-index:2;width:min(1340px,calc(100% - 56px));margin:0 auto;
  height:100%;display:flex;flex-direction:column;justify-content:center;
  /* 開いたあとに残る暖簾の裾（幅≒5.6vw）にコピーが潜り込まないよう逃がす */
  padding-left:clamp(58px,6.4vw,104px);}
.fv-txt{max-width:45%;}
.fv-eb{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.34em;
  color:var(--accent);display:flex;align-items:center;gap:14px;}
.fv-eb::before{content:"";width:40px;height:1px;background:var(--accent);}
.fv h1{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(34px,4.5vw,62px);line-height:1.5;letter-spacing:.05em;margin:26px 0 0;color:#F6F3EA;}
.fv h1 .mk{color:var(--accent);}
.fv-sub{font-size:16px;line-height:2.1;color:rgba(246,243,234,.86);margin:26px 0 0;max-width:30em;}
.fv-acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.fv-acts .btn.ghost{color:#F6F3EA;border-color:rgba(246,243,234,.55);}
.fv-acts .btn.ghost:hover{background:#F6F3EA;color:var(--green);border-color:#F6F3EA;}
.fv-meta{margin-top:36px;padding-top:20px;border-top:1px solid rgba(246,243,234,.22);
  font-family:'Space Grotesk',monospace;font-size:11.5px;letter-spacing:.14em;
  color:rgba(246,243,234,.6);line-height:2.1;}
.fv-reveal{opacity:0;animation:fvRise 1.15s cubic-bezier(.22,1,.36,1) forwards;}
.fv-r1{animation-delay:1.95s;} .fv-r2{animation-delay:2.25s;} .fv-r3{animation-delay:2.5s;} .fv-r4{animation-delay:2.7s;}
.fv-rod{position:absolute;top:0;left:0;width:100%;height:4.6vh;min-height:32px;z-index:12;
  background:linear-gradient(180deg,#3B3225 0%,#241D12 82%);border-bottom:2px solid #100C06;}
.fv-half{position:absolute;top:4.3vh;width:50.5%;height:78vh;z-index:10;}
.fv-half.L{left:0;animation:fvOpenL 1.6s cubic-bezier(.7,0,.25,1) 1.05s forwards;}
.fv-half.R{right:0;animation:fvOpenR 1.6s cubic-bezier(.7,0,.25,1) 1.05s forwards;}
.fv-cloth{position:absolute;inset:0;overflow:hidden;
  background:
    repeating-linear-gradient(90deg, rgba(246,243,234,.05) 0 1px, transparent 1px 7px),
    linear-gradient(180deg, var(--green) 0%, var(--green-d) 76%, var(--green-deep) 100%);
  box-shadow:inset 0 -30px 50px rgba(0,0,0,.28);
  transform-origin:top center;animation:fvSway 5.4s ease-in-out infinite;}
.fv-half.R .fv-cloth{animation-delay:-2.7s;}
.fv-mon{position:absolute;top:25%;width:29vmin;height:29vmin;border:3px solid #EFEADC;border-radius:50%;
  display:flex;align-items:center;justify-content:center;}
.fv-half.L .fv-mon{right:20%;} .fv-half.R .fv-mon{left:20%;}
.fv-mon span{font-family:'Zen Old Mincho',serif;font-size:12vmin;color:#EFEADC;font-weight:700;}
.fv-half .fv-yago{position:absolute;bottom:9%;font-size:12px;letter-spacing:.5em;
  color:rgba(239,234,220,.85);writing-mode:vertical-rl;font-family:'Zen Old Mincho',serif;}
.fv-half.L .fv-yago{left:12%;} .fv-half.R .fv-yago{right:12%;}
.fv-hint{position:absolute;left:50%;bottom:3.4vh;transform:translateX(-50%);
  font-family:'Space Grotesk',monospace;font-size:10px;letter-spacing:.42em;
  color:rgba(246,243,234,.55);z-index:14;opacity:0;animation:fvRise 1s ease 2.9s forwards;}
@keyframes fvRise{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:translateY(0);}}
@keyframes fvOpenL{to{transform:translateX(-89%) rotate(-1.6deg);}}
@keyframes fvOpenR{to{transform:translateX(89%) rotate(1.6deg);}}
@keyframes fvOpenLsp{to{transform:translateX(-101%) rotate(-1.6deg);}}
@keyframes fvOpenRsp{to{transform:translateX(101%) rotate(1.6deg);}}
@keyframes fvSway{0%,100%{transform:skewX(0deg);}50%{transform:skewX(.7deg);}}
@media(max-width:900px){
  .fv{min-height:640px;}
  .fv-txt{max-width:100%;}
  /* スマホは暖簾を画面外まで開き切る（裾を残さない＝本文幅を削らない） */
  .fv-inner{padding-left:0;width:calc(100% - 44px);}
  .fv-half.L{animation-name:fvOpenLsp;} .fv-half.R{animation-name:fvOpenRsp;}
  .fv-ph::after{background:linear-gradient(180deg, rgba(24,42,25,.55) 0%, rgba(24,42,25,.74) 42%, rgba(24,42,25,.88) 72%, rgba(24,42,25,.93) 100%);}
  .fv h1{font-size:clamp(30px,7.4vw,42px);}
  .fv-mon{width:34vmin;height:34vmin;top:22%;}
  .fv-half.L .fv-mon{right:16%;} .fv-half.R .fv-mon{left:16%;}
  .fv-mon span{font-size:15vmin;}
}
@media(prefers-reduced-motion:reduce){
  .fv-half.L{animation:none;transform:translateX(-89%) rotate(-1.6deg);}
  .fv-half.R{animation:none;transform:translateX(89%) rotate(1.6deg);}
  .fv-cloth{animation:none;}
  .fv-reveal,.fv-hint{animation:none;opacity:1;}
}
html:not(.j) .fv-half.L{animation:none;transform:translateX(-89%) rotate(-1.6deg);}
html:not(.j) .fv-half.R{animation:none;transform:translateX(89%) rotate(1.6deg);}
html:not(.j) .fv-reveal,html:not(.j) .fv-hint{animation:none;opacity:1;}
/* スマホでは静止時も開き切った状態にする（裾がコピーに重ならない） */
@media(max-width:900px) and (prefers-reduced-motion:reduce){
  .fv-half.L{transform:translateX(-101%) rotate(-1.6deg);}
  .fv-half.R{transform:translateX(101%) rotate(1.6deg);}
}
@media(max-width:900px){
  html:not(.j) .fv-half.L{transform:translateX(-101%) rotate(-1.6deg);}
  html:not(.j) .fv-half.R{transform:translateX(101%) rotate(1.6deg);}
}

/* ============ 02 リード（雑誌見開き・非対称） ============ */
.c-lead{background:var(--bg);}
.c-lead .grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(30px,5vw,72px);align-items:start;}
.c-lead .ph{position:relative;}
.c-lead .ph img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.c-lead .ph figcaption{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.14em;
  color:var(--note);margin-top:12px;padding-left:14px;border-left:1px solid var(--accent);}
.c-lead .tx p{font-size:17.5px;line-height:2.25;margin:0 0 1.5em;}
.c-lead .tx p:last-child{margin-bottom:0;}
.c-lead .tx .big{font-family:'Zen Old Mincho',serif;font-size:clamp(21px,2.5vw,29px);
  line-height:1.85;color:var(--ink);font-weight:700;}
@media(max-width:860px){.c-lead .grid{grid-template-columns:1fr;gap:34px;}}

/* ============ 03 宣言（全幅バンド） ============ */
.c-decl{background:var(--green);color:#F0EDE1;padding:clamp(74px,9vw,118px) 0;overflow:hidden;position:relative;}
.c-decl::before{content:"";position:absolute;right:-6%;top:-30%;width:46vw;height:46vw;
  border:1px solid rgba(246,243,234,.1);border-radius:50%;}
.c-decl .inner{position:relative;z-index:1;max-width:26em;}
.c-decl .zen-rule{background:var(--accent);}
.c-decl h2{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(23px,3.1vw,37px);line-height:1.72;margin:0;letter-spacing:.04em;color:#F6F3EA;}
.c-decl p{margin:26px 0 0;color:rgba(246,243,234,.8);font-size:15.5px;line-height:2.1;}

/* ============ 04 数字（ブロークングリッド・特大の抜き） ============ */
.c-num{background:var(--bg-2);}
.c-num .field{position:relative;margin-top:44px;min-height:540px;}
.c-num .stat{position:absolute;}
.c-num .v{font-family:'Zen Old Mincho',serif;font-weight:700;line-height:.84;
  letter-spacing:-.01em;display:flex;align-items:flex-start;color:var(--ink);}
.c-num .v .u{font-size:.26em;color:var(--accent);font-weight:700;margin-top:.55em;margin-left:.1em;}
.c-num .l{font-size:13.5px;color:var(--body);letter-spacing:.04em;margin-top:14px;max-width:19em;line-height:1.9;}
.c-num .l::before{content:"— ";color:var(--accent);}
.c-num .n1{left:-1%;top:0;}        .c-num .n1 .v{font-size:clamp(112px,21vw,268px);}
.c-num .n2{right:2%;top:126px;text-align:right;} .c-num .n2 .v{font-size:clamp(70px,12vw,150px);color:var(--accent);justify-content:flex-end;}
.c-num .n2 .l::before{content:"";}
.c-num .n3{left:16%;top:330px;}    .c-num .n3 .v{font-size:clamp(80px,13vw,172px);}
.c-num .nrule{position:absolute;left:0;right:0;top:296px;height:1px;background:var(--line);}
.c-num .ntag{position:absolute;right:0;top:-8px;writing-mode:vertical-rl;
  font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.3em;color:var(--note);text-transform:uppercase;}
@media(max-width:860px){
  .c-num .field{min-height:0;display:grid;gap:42px;margin-top:32px;}
  .c-num .stat{position:static!important;text-align:left!important;}
  .c-num .n2 .v{justify-content:flex-start;}
  .c-num .nrule,.c-num .ntag{display:none;}
  .c-num .n1 .v{font-size:98px;} .c-num .n2 .v{font-size:76px;} .c-num .n3 .v{font-size:82px;}
}

/* ============ 05 三つの約束（特大番号のエディトリアル） ============ */
.c-prom{background:var(--bg);}
.c-prom .head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;}
.c-prom .pr{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3.4vw,52px);
  padding:44px 0;border-top:1px solid var(--line);align-items:start;}
.c-prom .pr:last-child{border-bottom:1px solid var(--line);}
.c-prom .no{font-family:'Space Grotesk',monospace;font-weight:700;
  font-size:clamp(40px,5.4vw,74px);line-height:.9;color:var(--wakana);}
.c-prom .bd p{margin:14px 0 0;font-size:16px;line-height:2.05;}
.c-prom .bd .ph{margin-top:20px;}
.c-prom .bd img{width:100%;aspect-ratio:16/9;object-fit:cover;}
@media(max-width:760px){
  .c-prom .head{grid-template-columns:1fr;gap:18px;}
  .c-prom .pr{grid-template-columns:1fr;gap:6px;padding:34px 0;}
}

/* ============ 06 農家3軒（葉型ポートレート・2トーン帯） ============ */
.c-farm{padding:0;}
.c-farm .band{position:relative;
  background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 32%,var(--wakana-l) 32%,var(--wakana-l) 100%);
  padding:96px 0 108px;}
.c-farm .layout{display:grid;grid-template-columns:.66fr 1.34fr;gap:clamp(26px,4vw,52px);align-items:center;}
.c-farm .side{display:flex;gap:16px;align-items:flex-start;}
.c-farm .vlabel{writing-mode:vertical-rl;font-family:'Space Grotesk',monospace;
  font-size:11px;letter-spacing:.3em;color:var(--green);}
.c-farm .vhead{writing-mode:vertical-rl;font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(24px,3.2vw,38px);letter-spacing:.16em;line-height:1.6;
  border-right:1px solid var(--line);padding-right:20px;margin:0;color:var(--ink);}
.c-farm .sidetx{margin-top:26px;font-size:14.5px;line-height:2;max-width:22em;}
.c-farm .people{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.c-farm .pp{text-align:center;}
.c-farm .pp .ph{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;
  border-radius:48% 48% 48% 48% / 60% 60% 40% 40%;border:5px solid #fff;
  box-shadow:0 18px 40px -22px rgba(28,42,30,.5);background:var(--wakana-l);}
.c-farm .pp .ph img{width:100%;height:100%;object-fit:cover;}
.c-farm .pp .role{display:inline-block;margin-top:-15px;position:relative;z-index:2;
  background:var(--accent);color:#fff;font-weight:700;font-size:12px;padding:6px 16px;border-radius:20px;}
.c-farm .pp .nm{margin-top:12px;font-family:'Zen Old Mincho',serif;font-weight:700;font-size:16px;color:var(--ink);}
.c-farm .pp .ds{font-size:12.5px;color:var(--body);line-height:1.85;margin-top:6px;}
@media(max-width:820px){
  .c-farm .layout{grid-template-columns:1fr;gap:32px;}
  .c-farm .people{grid-template-columns:1fr;gap:30px;max-width:320px;margin:0 auto;}
  .c-farm .band{padding:66px 0 78px;}
}
/* 全幅の畑写真 */
.c-fullbleed{position:relative;width:100%;height:clamp(260px,42vw,480px);overflow:hidden;}
.c-fullbleed img{width:100%;height:100%;object-fit:cover;}
.c-fullbleed figcaption{position:absolute;left:0;bottom:0;background:rgba(24,42,25,.86);
  color:#F0EDE1;font-size:12.5px;letter-spacing:.1em;padding:14px 26px;
  font-family:'Space Grotesk',monospace;}

/* ============ 07 店主（マガジン見開き・ドロップキャップ） ============ */
.c-msg{background:var(--paper);}
.c-msg .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,68px);align-items:start;}
.c-msg .tx p{font-size:16.5px;line-height:2.2;margin:0 0 1.4em;}
.c-msg .tx p.first::first-letter{font-family:'Zen Old Mincho',serif;float:left;font-size:4.1em;
  line-height:.86;padding:6px 12px 0 0;color:var(--green);font-weight:700;}
.c-msg .sign{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);
  display:flex;align-items:baseline;gap:14px;}
.c-msg .sign .role{font-size:12px;color:var(--note);letter-spacing:.14em;}
.c-msg .sign .nm{font-family:'Zen Old Mincho',serif;font-size:22px;font-weight:700;color:var(--ink);letter-spacing:.1em;}
.c-msg .ph img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;}
.c-msg .ph figcaption{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.14em;
  color:var(--note);margin-top:12px;}
@media(max-width:860px){.c-msg .grid{grid-template-columns:1fr;gap:34px;}}

/* ============ 08 お品書き（点線リーダーの罫線索引） ============ */
.c-menu{background:var(--bg-2);}
.c-menu .sheet{margin-top:44px;border:1px solid var(--green);outline:1px solid var(--green);
  outline-offset:5px;padding:clamp(28px,5vw,62px) clamp(20px,5.4vw,66px);
  background:rgba(255,253,247,.66);position:relative;}
.c-menu .grp{margin-bottom:44px;}
.c-menu .grp:last-of-type{margin-bottom:0;}
.c-menu .gt{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.c-menu .gt .jp{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(17px,2.1vw,22px);letter-spacing:.22em;color:var(--ink);}
.c-menu .gt .en{font-family:'Space Grotesk',monospace;font-size:9.5px;
  letter-spacing:.26em;color:var(--accent);text-transform:uppercase;}
.c-menu .gt::after{content:'';flex:1;height:1px;background:var(--line);}
.c-menu .it{display:flex;align-items:baseline;gap:14px;padding:13px 0;}
.c-menu .it .nmw{flex:none;max-width:62%;}
.c-menu .it .nm{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(15px,1.9vw,19px);letter-spacing:.1em;color:var(--ink);}
.c-menu .it .ds{display:block;font-size:11.5px;color:var(--note);margin-top:3px;line-height:1.8;}
.c-menu .it .dots{flex:1;height:1em;
  background-image:radial-gradient(circle,rgba(28,42,30,.5) 1.2px,transparent 1.3px);
  background-size:9px 9px;background-position:left 62%;background-repeat:repeat-x;transform-origin:left center;}
.c-menu .it .pr{flex:none;font-family:'Space Grotesk',monospace;
  font-size:clamp(14px,1.8vw,19px);letter-spacing:.06em;white-space:nowrap;color:var(--ink);}
.c-menu .it .pr small{font-size:.62em;color:var(--note);margin-left:3px;}
.c-menu .it .pr .yen{font-family:'Zen Old Mincho',serif;font-size:.76em;margin-right:2px;}
.c-menu .seal{position:absolute;right:clamp(16px,4vw,44px);bottom:clamp(16px,4vw,38px);
  width:82px;height:82px;border:2.5px solid var(--accent);border-radius:50%;color:var(--accent);
  display:flex;align-items:center;justify-content:center;font-family:'Zen Old Mincho',serif;
  font-weight:700;font-size:14px;letter-spacing:.18em;line-height:1.6;text-align:center;
  transform:rotate(-8deg);opacity:.9;mix-blend-mode:multiply;}
.c-menu .mnote{margin-top:24px;font-size:12px;color:var(--note);letter-spacing:.08em;}
.c-menu .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:38px;}
.c-menu .strip img{width:100%;aspect-ratio:1;object-fit:cover;}
@media(max-width:680px){
  .c-menu .it{flex-wrap:wrap;gap:8px;}
  .c-menu .it .nmw{max-width:100%;}
  .c-menu .it .dots{min-width:40px;}
  .c-menu .seal{width:62px;height:62px;font-size:11px;}
  .c-menu .strip{grid-template-columns:1fr 1fr;}
}

/* ============ 09 店舗情報（罫線インデックス） ============ */
.c-shop{background:var(--bg);}
.c-shop .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,4.6vw,64px);align-items:start;}
.c-shop dl{margin:36px 0 0;border-top:1px solid var(--line);}
.c-shop .row{display:grid;grid-template-columns:8.5em 1fr;gap:18px;
  padding:16px 0;border-bottom:1px solid var(--line);}
.c-shop dt{font-size:13px;color:var(--note);letter-spacing:.1em;margin:0;}
.c-shop dd{margin:0;font-size:15.5px;line-height:1.95;color:var(--ink);}
.c-shop .map{width:100%;aspect-ratio:4/3;border:1px solid var(--line);
  background:var(--wakana-l) center/cover no-repeat;position:relative;overflow:hidden;}
.c-shop .map img{width:100%;height:100%;object-fit:cover;}
.c-shop .map .slot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(24,42,25,.55);color:#F0EDE1;font-size:13px;letter-spacing:.12em;text-align:center;padding:20px;line-height:2;}
@media(max-width:860px){.c-shop .grid{grid-template-columns:1fr;gap:34px;}}

/* ============ 10 FAQ（特大Q番号・和） ============ */
.c-faq{background:var(--green-deep);color:#E9E4D6;}
.c-faq h2.h{color:#F6F3EA;}
.c-faq .eyebrow{color:var(--accent);}
.c-faq .list{margin-top:44px;border-top:1px solid rgba(246,243,234,.18);}
.c-faq details{border-bottom:1px solid rgba(246,243,234,.18);}
.c-faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;
  gap:20px;align-items:baseline;padding:26px 0;
  font-family:'Zen Old Mincho',serif;font-size:clamp(16px,2vw,20px);color:#F6F3EA;font-weight:700;letter-spacing:.04em;}
.c-faq summary::-webkit-details-marker{display:none;}
.c-faq summary .qn{font-family:'Space Grotesk',monospace;font-size:clamp(24px,3.4vw,40px);
  line-height:.9;color:var(--accent);font-weight:700;}
.c-faq summary .mkr{width:16px;height:16px;position:relative;flex:none;align-self:center;}
.c-faq summary .mkr::before,.c-faq summary .mkr::after{content:"";position:absolute;
  background:var(--accent);transition:transform .3s;}
.c-faq summary .mkr::before{left:0;top:7.5px;width:16px;height:1.5px;}
.c-faq summary .mkr::after{left:7.5px;top:0;width:1.5px;height:16px;}
.c-faq details[open] summary .mkr::after{transform:rotate(90deg);}
.c-faq .a{padding:0 0 28px 0;margin:0;max-width:52em;
  font-size:15.5px;line-height:2.1;color:rgba(233,228,214,.86);
  padding-left:calc(clamp(24px,3.4vw,40px) + 20px);}
@media(max-width:680px){.c-faq .a{padding-left:0;}}

/* ============ 11 最終CTA（全幅バンド） ============ */
.c-cta{position:relative;padding:clamp(80px,9vw,124px) 0;background:var(--green);color:#F0EDE1;overflow:hidden;}
.c-cta .bg{position:absolute;inset:0;z-index:0;opacity:.22;}
.c-cta .bg img{width:100%;height:100%;object-fit:cover;}
.c-cta .inner{position:relative;z-index:1;text-align:center;max-width:34em;margin:0 auto;}
.c-cta h2{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(25px,3.4vw,40px);line-height:1.6;margin:16px 0 0;color:#F6F3EA;letter-spacing:.04em;}
.c-cta p{margin:22px 0 0;font-size:16px;line-height:2.1;color:rgba(246,243,234,.86);}
.c-cta .acts{margin-top:34px;}
.c-cta .cnote{margin-top:22px;font-size:12.5px;color:rgba(246,243,234,.62);line-height:1.95;}

/* ============ ZOROYA:FOOTER ============ */
.ft{background:var(--green-deep);color:rgba(233,228,214,.82);padding:72px 0 0;}
.ft-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding-bottom:52px;
  border-bottom:1px solid rgba(246,243,234,.14);}
.ft-logo .jp{font-family:'Zen Old Mincho',serif;font-size:23px;font-weight:700;
  letter-spacing:.18em;color:#F6F3EA;display:block;}
.ft-logo .en{font-family:'Space Grotesk',monospace;font-size:9.5px;
  letter-spacing:.26em;color:rgba(233,228,214,.5);display:block;margin-top:6px;}
.ft address{font-style:normal;font-size:14px;line-height:2.05;margin-top:22px;}
.ft address .tel{font-family:'Space Grotesk',monospace;font-size:18px;
  font-weight:700;color:#F6F3EA;text-decoration:none;letter-spacing:.04em;}
.ft h3{font-family:'Space Grotesk',monospace;font-size:10.5px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--accent);margin:0 0 18px;font-weight:700;}
.ft ul{list-style:none;margin:0;padding:0;}
.ft li{margin-bottom:11px;}
.ft li a{font-size:14px;text-decoration:none;}
.ft li a:hover{color:#F6F3EA;}
.ft .hours{font-size:14px;line-height:2.05;}
.ft-low{padding:22px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:11.5px;color:rgba(233,228,214,.5);}
.ft-low a{text-decoration:none;}
@media(max-width:760px){.ft-grid{grid-template-columns:1fr;gap:34px;}}

/* ============ 768px 以下：1カラムへ ============ */
@media(max-width:768px){
  .wrap,.wrap-w{width:calc(100% - 40px);}
  section{padding:72px 0;}
  .c-lead .grid,.c-msg .grid,.c-shop .grid,.c-prom .head,.two{grid-template-columns:1fr;}
  .c-menu .strip,.pgrid{grid-template-columns:1fr 1fr;}
  .c-farm .people{grid-template-columns:1fr;}
  h2.h{font-size:clamp(23px,6vw,30px);}
}

/* お品書きの見出し：罫線インデックス型（導入リズムを崩す） */
.menu-head{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(18px,3vw,44px);
  align-items:baseline;padding-bottom:22px;border-bottom:1px solid var(--green);}
.menu-head h2.h{margin:0;white-space:nowrap;}
.menu-head .lead{font-size:15.5px;line-height:1.95;margin:0;color:var(--body);}
.menu-head .mh-meta{font-size:11px;letter-spacing:.28em;color:var(--accent);white-space:nowrap;}
@media(max-width:820px){
  .menu-head{grid-template-columns:1fr;gap:12px;}
  .menu-head h2.h{white-space:normal;}
  .menu-head .mh-meta{display:none;}
}

/* optimize_images.py が <img> を <picture> で包むため、
   picture をレイアウトから外して既存の img 指定（object-fit / 100%高さ）を効かせる */
picture{display:contents;}

/* ============================================================
   固定ページ用（page hero ほか）— _shared.css のみに存在
   ============================================================ */
.page-hero{position:relative;background:var(--green-deep);color:#F0EDE1;
  padding:clamp(72px,9vw,116px) 0 clamp(60px,7vw,92px);overflow:hidden;}
.page-hero .bg{position:absolute;inset:0;z-index:0;opacity:.34;}
/* 文字側を暗く落とすスクリム（FVと同じ考え方）。写真は右に残す */
.page-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(100deg, rgba(24,42,25,.90) 0%, rgba(24,42,25,.72) 44%,
    rgba(24,42,25,.34) 78%, rgba(24,42,25,.46) 100%);}
.page-hero .bg img{width:100%;height:100%;object-fit:cover;}
.page-hero .inner{position:relative;z-index:1;}
.page-hero .eyebrow{color:var(--accent);}
.page-hero h1{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(28px,4vw,46px);line-height:1.5;letter-spacing:.05em;margin:16px 0 0;color:#F6F3EA;}
.page-hero p{margin:20px 0 0;font-size:15.5px;line-height:2.05;
  color:rgba(246,243,234,.82);max-width:36em;}
.crumbs{font-family:'Space Grotesk',monospace;font-size:11px;letter-spacing:.16em;
  color:rgba(246,243,234,.72);margin:0 0 6px;}
.crumbs a{text-decoration:none;}
.crumbs a:hover{color:#F6F3EA;}

/* 汎用の本文ブロック */
.prose{max-width:44em;}
.prose h2{font-family:'Zen Old Mincho',serif;font-weight:700;
  font-size:clamp(21px,2.6vw,29px);color:var(--ink);margin:56px 0 0;letter-spacing:.04em;line-height:1.5;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:19px;
  color:var(--ink);margin:36px 0 0;letter-spacing:.04em;}
.prose p{margin:16px 0 0;font-size:16px;line-height:2.05;}
.prose ul,.prose ol{margin:16px 0 0;padding-left:1.4em;}
.prose li{margin-bottom:9px;font-size:16px;line-height:2;}
.prose .note{margin-top:20px;}

/* 罫線インデックス表（会社概要・店舗情報で共用） */
.idx{margin:0;border-top:1px solid var(--line);}
.idx .row{display:grid;grid-template-columns:9em 1fr;gap:18px;
  padding:16px 0;border-bottom:1px solid var(--line);}
.idx dt{font-size:13px;color:var(--note);letter-spacing:.1em;margin:0;}
.idx dd{margin:0;font-size:15.5px;line-height:1.95;color:var(--ink);}
@media(max-width:600px){.idx .row{grid-template-columns:1fr;gap:2px;}}

/* 2カラム（本文＋サイド） */
.two{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,4.6vw,64px);align-items:start;}
@media(max-width:860px){.two{grid-template-columns:1fr;gap:34px;}}

/* 画像グリッド */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:32px;}
.pgrid img{width:100%;aspect-ratio:4/3;object-fit:cover;}
@media(max-width:700px){.pgrid{grid-template-columns:1fr 1fr;}}

/* カード帯（薄緑） */
.soft{background:var(--wakana-l);padding:clamp(26px,3.6vw,40px);}
.soft h3{margin-top:0;}

/* フォーム枠 */
.formslot{border:1px dashed var(--wakana);background:var(--paper);
  padding:clamp(28px,5vw,56px);text-align:center;margin-top:32px;}
.formslot .ttl{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:19px;color:var(--ink);}
.formslot p{margin:14px auto 0;max-width:32em;font-size:14.5px;line-height:2;color:var(--body);}
.formslot .fields{margin-top:26px;text-align:left;max-width:34em;margin-left:auto;margin-right:auto;}
.formslot .fields li{font-size:14px;margin-bottom:8px;}
