  :root{
    --midori-900:#0f241a;
    --midori-800:#143020;
    --midori-700:#1b3d2b;
    --midori-500:#35604a;
    --moegi:#6f9e7e;
    --hero-green:#a9d4b6;
    --washi:#eef0e9;
    --sumi:#17211c;
    --sumi-soft:#41504a;
    --kin:#a98a4b;
    --kin-soft:#c2ab7d;
    --kori:#d3d3c8;
    --paper:#f6f6f0;

    --bg:var(--paper);
    --ink:var(--sumi);
    --ink-soft:var(--sumi-soft);
    --line:var(--kori);
    --panel:var(--washi);
    --brand:var(--midori-700);
    --accent:var(--kin);

    --serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Shippori Mincho",serif;
    --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;
    --wrap:1160px;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --bg:#0b1611;
      --ink:#eef0e9;
      --ink-soft:#a9b7ae;
      --line:#243b30;
      --panel:#10241a;
      --brand:#8db99d;
      --accent:var(--kin-soft);
      --washi:#10241a;
    }
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;}
  .kit{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased;letter-spacing:.01em;overflow-x:hidden;}
  .kit ::selection{background:var(--midori-500);color:#fff;}
  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,5vw,56px);}
  .eyebrow{font-family:var(--sans);font-size:.68rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:.7em;}
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--accent);opacity:.85;}
  .eyebrow.on-dark{color:var(--kin-soft);}
  .eyebrow.on-dark::before{background:var(--kin-soft);}
  h1,h2,h3,h4{font-family:var(--serif);font-weight:400;text-wrap:balance;margin:0;}
  a{color:inherit;text-decoration:none;}
  .ghost{font-family:var(--serif);font-style:italic;font-weight:300;line-height:.8;letter-spacing:.03em;}
  .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

  header.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.1) blur(10px);border-bottom:1px solid var(--line);}
  .nav-in{display:flex;align-items:center;justify-content:space-between;height:64px;}
  .brand-mark{display:flex;align-items:center;padding:5px 0;}
  /* ダークモード: 深緑固定色のロゴが暗背景に溶けるため白化(フッターと同じ手法) */
  @media (prefers-color-scheme: dark){header.nav .brand-logo{filter:brightness(0) invert(1);}}
  .brand-logo{height:34px;width:auto;display:block;}
  .footer-logo{height:30px;filter:brightness(0) invert(1);margin-bottom:16px;}
  nav.links{display:flex;gap:clamp(12px,1.9vw,28px);}
  nav.links a{font-size:.78rem;letter-spacing:.08em;color:var(--ink-soft);position:relative;padding:14px 6px;transition:color .3s;}
  nav.links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .35s ease;}
  nav.links a:hover{color:var(--ink);}
  nav.links a:hover::after,nav.links a:focus-visible::after{width:100%;}
  nav.links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
  @media (max-width:920px){nav.links{display:none;}}

  .menu-btn{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  .menu-btn span{display:block;width:22px;height:2px;background:var(--ink);transition:transform .3s ease,opacity .3s ease;}
  .menu-btn.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .menu-btn.active span:nth-child(2){opacity:0;}
  .menu-btn.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  @media (max-width:920px){.menu-btn{display:flex;}}

  .mobile-nav{display:none;flex-direction:column;position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--bg);z-index:49;padding:8px 24px 32px;overflow-y:auto;}
  .mobile-nav.open{display:flex;}
  .mobile-nav a{padding:17px 4px;font-size:1rem;letter-spacing:.04em;color:var(--ink);border-bottom:1px solid var(--line);}
  .mobile-nav a.active{color:var(--brand);}
  body.menu-open{overflow:hidden;}

  /* 文字色は var(--washi) を使わない: ダークモードで --washi が濃緑に再定義され、
     深緑背景のヒーロー文字が背景と同化して不可視になるため(2026-07-07 監査)。固定の明色で指定する */
  .hero{background:var(--midori-900);color:#eef0e9;position:relative;overflow:hidden;padding:0;}
  .hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 88% 8%,rgba(111,158,126,.16),transparent 58%);}
  .hero-in{max-width:var(--wrap);margin:0 auto;padding:clamp(140px,16vh,180px) clamp(20px,5vw,56px) clamp(90px,12vh,120px);min-height:92vh;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,72px);align-items:center;position:relative;z-index:1;}
  .hero h1{font-size:clamp(38px,5.4vw,66px);font-weight:300;letter-spacing:.09em;line-height:1.34;margin-bottom:26px;}
  .hero h1 em{font-style:normal;color:var(--hero-green);}
  .hero-sub{font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.28rem);line-height:2.1;color:#dce4dc;letter-spacing:.05em;max-width:34ch;margin:0 0 40px;}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
  .btn{display:inline-flex;align-items:center;gap:12px;padding:14px 30px;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:gap .3s,background .3s,border-color .3s,color .3s;}
  .btn .ar{transition:transform .3s;}
  .btn:hover .ar{transform:translateX(3px);}
  .btn-solid{background:var(--moegi);color:#0b1611;border:1px solid var(--moegi);}
  .btn-solid:hover{background:var(--hero-green);gap:18px;}
  .btn-ghost{border:1px solid rgba(226,232,224,.28);color:#e2e8e0;}
  .btn-ghost:hover{border-color:var(--kin-soft);color:#fff;gap:18px;}
  .btn:focus-visible{outline:2px solid var(--kin-soft);outline-offset:4px;}
  .hero-side{border-left:1px solid rgba(194,171,125,.4);padding-left:clamp(26px,4vw,52px);}
  .hero-side h2{font-family:var(--serif);font-weight:300;font-size:clamp(19px,2.3vw,27px);letter-spacing:.08em;line-height:1.75;color:#f2efe6;margin:20px 0 42px;}
  .stats{display:flex;gap:clamp(26px,4vw,52px);}
  .stat .v{display:flex;align-items:baseline;gap:5px;}
  .stat .v b{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(38px,4.2vw,54px);color:#f2efe6;line-height:.9;}
  .stat .v span{font-size:.7rem;letter-spacing:.1em;color:#9db3a4;}
  .stat .l{font-size:.68rem;letter-spacing:.14em;color:#8ba393;margin-top:8px;}
  .scrollhint{position:absolute;left:clamp(20px,5vw,56px);bottom:28px;z-index:2;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#7f9788;writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;}
  .scrollhint::after{content:"";width:1px;height:40px;background:linear-gradient(var(--kin-soft),transparent);}
  @media (max-width:820px){
    .hero-in{grid-template-columns:1fr;min-height:auto;gap:52px;padding-top:120px;}
    .hero-side{border-left:none;border-top:1px solid rgba(194,171,125,.3);padding-left:0;padding-top:40px;}
    .scrollhint{display:none;}
  }

  .vnav{background:var(--midori-900);border-top:1px solid rgba(255,255,255,.08);}
  .vnav-in{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);}
  .vnav a{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:30px clamp(20px,3vw,44px);color:#e2e8e0;transition:background .35s;}
  .vnav a+a{border-left:1px solid rgba(255,255,255,.08);}
  .vnav a:hover{background:rgba(255,255,255,.05);}
  .vnav .t{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:#7f9788;}
  .vnav .d{font-size:.9rem;letter-spacing:.06em;display:flex;align-items:center;justify-content:space-between;gap:14px;}
  .vnav .d .ar{color:#6f8a7b;transition:transform .3s,color .3s;}
  .vnav a:hover .ar{transform:translateX(4px);color:var(--kin-soft);}
  @media (max-width:760px){.vnav-in{grid-template-columns:1fr;}.vnav a+a{border-left:none;border-top:1px solid rgba(255,255,255,.08);}}

  section{padding:clamp(72px,12vh,132px) 0;}
  .sec-head{display:flex;flex-direction:column;gap:16px;margin-bottom:clamp(40px,6vh,66px);}
  .sec-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.4;letter-spacing:.05em;}
  .sec-head.light h2{color:#f2efe6;}
  .sec-head p{margin:0;max-width:54ch;color:var(--ink-soft);font-size:.95rem;}

  .biz-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);}
  .biz-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(28px,3vw,44px);transition:background .4s;}
  .biz-cell:hover{background:var(--panel);}
  .biz-cell .ghost{font-size:clamp(44px,4vw,60px);color:color-mix(in srgb,var(--brand) 16%,transparent);margin-bottom:18px;}
  .biz-cell .tg{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}
  .biz-cell h3{font-size:clamp(1.25rem,2vw,1.55rem);letter-spacing:.06em;margin:12px 0 18px;color:var(--brand);}
  .biz-cell p{margin:0;font-size:.88rem;line-height:2.05;color:var(--ink-soft);}
  @media (max-width:820px){.biz-grid{grid-template-columns:1fr;}}

  .philo{background:var(--brand);}
  @media (prefers-color-scheme: dark){.philo{background:#10241a;}}
  .philo-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);align-items:start;}
  .philo-in .lead p{color:rgba(255,255,255,.62);font-size:.94rem;line-height:2.1;margin:6px 0 0;}
  @media (prefers-color-scheme: dark){.philo-in .lead p{color:var(--ink-soft);}}
  .val-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);}
  @media (prefers-color-scheme: dark){.val-grid,.philo .val-grid{background:var(--line);border-color:var(--line);}}
  .val{background:var(--brand);padding:clamp(20px,2.4vw,30px);}
  @media (prefers-color-scheme: dark){.val{background:#10241a;}}
  .val .en{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--kin-soft);}
  .val h4{font-size:1.12rem;letter-spacing:.06em;color:#f2efe6;margin:12px 0 10px;}
  .val p{margin:0;font-size:.82rem;line-height:2;color:rgba(255,255,255,.52);}
  @media (prefers-color-scheme: dark){.val p{color:var(--ink-soft);}}
  @media (max-width:820px){.philo-in{grid-template-columns:1fr;}}
  @media (max-width:460px){.val-grid{grid-template-columns:1fr;}}

  .shops-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.6vw,40px);max-width:760px;margin:0 auto;}
  .shop .img{display:block;aspect-ratio:4/3;position:relative;overflow:hidden;background:linear-gradient(165deg,#20402e,#12271b);border:1px solid var(--line);}
  .shop .img .cap{position:absolute;left:14px;bottom:12px;font-size:.62rem;letter-spacing:.18em;color:#9db3a4;z-index:1;}
  .shop-badge{position:absolute;right:12px;bottom:10px;z-index:1;height:30px;width:auto;padding:6px 10px;background:rgba(245,244,240,.94);border-radius:8px;object-fit:contain;}
  .shop .img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 52%,rgba(9,20,14,.5));}
  .shop .ghost{font-size:30px;color:color-mix(in srgb,var(--ink) 12%,transparent);margin:22px 0 6px;}
  .shop h3{font-size:1.42rem;letter-spacing:.09em;margin:0 0 4px;}
  .shop .sub{font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft);}
  .shop .cc{font-family:var(--serif);font-size:.98rem;letter-spacing:.04em;color:var(--brand);margin:14px 0 12px;line-height:1.6;}
  .shop .rule{width:32px;height:1px;background:var(--line);margin:0 0 12px;}
  .shop .meta{font-size:.78rem;line-height:1.95;color:var(--ink-soft);margin:0 0 14px;}
  .shop .go{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);display:inline-flex;gap:8px;transition:gap .3s;}
  .shop .go::after{content:"→";}
  .shop:hover .go{gap:13px;}
  .shop:hover .img::before{content:"";position:absolute;inset:0;background:rgba(111,158,126,.12);z-index:1;}
  @media (max-width:820px){.shops-grid{grid-template-columns:1fr;gap:40px;}}

  .why-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);}
  .why-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(26px,3vw,42px);}
  .why-cell .ghost{font-size:26px;color:color-mix(in srgb,var(--brand) 26%,transparent);margin-bottom:16px;}
  .why-cell h3{font-size:clamp(1.05rem,1.8vw,1.32rem);letter-spacing:.05em;margin:0 0 14px;}
  .why-cell p{margin:0;font-size:.88rem;line-height:2.05;color:var(--ink-soft);}
  @media (max-width:760px){.why-grid{grid-template-columns:1fr;}}

  .kitos{background:var(--midori-900);color:#dce4dc;}
  .kitos-in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,80px);align-items:center;}
  .kitos h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.6rem,3vw,2.5rem);letter-spacing:.06em;line-height:1.5;color:#f2efe6;margin:18px 0 22px;}
  .kitos p{font-size:.92rem;line-height:2.1;color:#9db3a4;margin:0 0 34px;max-width:46ch;}
  .sys-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.09);}
  .sys{background:var(--midori-900);padding:18px 22px;display:flex;align-items:center;gap:14px;}
  .sys-icon{height:22px;width:auto;flex-shrink:0;opacity:.85;}
  .sys .lb{font-size:.72rem;letter-spacing:.14em;color:#e2e8e0;}
  .sys .ds{font-size:.66rem;letter-spacing:.08em;color:#7f9788;margin-top:5px;}
  @media (max-width:820px){.kitos-in{grid-template-columns:1fr;}}

  .ec{background:var(--panel);}
  .ec-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start;}
  .ec-fig{aspect-ratio:4/3;position:relative;overflow:hidden;background:linear-gradient(160deg,#1c3a29,#0d1f15);border:1px solid var(--line);}
  /* 商品写真のクロスフェード(CSSのみ・5枚×5秒=周期25秒)。
     1枚目は delay -1s でロード直後から表示状態(keyframes 4%地点)に置く */
  .ec-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:ec-fade 25s linear infinite;}
  .ec-slide:nth-of-type(1){animation-delay:-1s;}
  .ec-slide:nth-of-type(2){animation-delay:4s;}
  .ec-slide:nth-of-type(3){animation-delay:9s;}
  .ec-slide:nth-of-type(4){animation-delay:14s;}
  .ec-slide:nth-of-type(5){animation-delay:19s;}
  @keyframes ec-fade{0%{opacity:0}4%{opacity:1}20%{opacity:1}24%{opacity:0}100%{opacity:0}}
  @media (prefers-reduced-motion: reduce){.ec-slide{animation:none;}.ec-slide:nth-of-type(1){opacity:1;}}
  /* 白背景の商品写真でも下部の白文字が読めるよう暗色グラデを重ねる */
  .ec-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 38%,rgba(9,20,14,.62));z-index:1;}
  .ec-badge{position:absolute;top:14px;right:14px;z-index:2;height:44px;width:auto;padding:8px 12px;background:rgba(245,244,240,.95);border-radius:8px;object-fit:contain;}
  .ec-fig .ov{position:absolute;left:0;right:0;bottom:0;padding:26px;z-index:2;}
  .ec-fig .t{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.45);}
  .ec-fig h3{font-size:clamp(1.15rem,2vw,1.5rem);letter-spacing:.07em;color:#f2efe6;margin:10px 0 10px;font-weight:300;}
  .ec-fig p{margin:0;font-size:.8rem;line-height:1.9;color:rgba(255,255,255,.6);}
  .ec-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .ec-tags span{padding:5px 14px;border:1px solid var(--line);font-size:.66rem;letter-spacing:.1em;color:var(--ink-soft);}
  .ec-links{display:flex;flex-direction:column;gap:12px;margin:6px 0 26px;}
  .ec-link{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border:1px solid var(--line);transition:border-color .3s,color .3s;}
  .ec-link:hover{border-color:var(--brand);color:var(--brand);}
  .ec-link .t{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}
  .ec-link .n{font-size:.9rem;letter-spacing:.06em;margin-top:3px;}
  .gift-box{border:1px solid var(--line);padding:clamp(20px,2.4vw,28px);}
  .gift-box .t{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}
  .gift-box h4{font-size:1.1rem;letter-spacing:.06em;margin:12px 0 10px;}
  .gift-box p{margin:0 0 16px;font-size:.82rem;line-height:2;color:var(--ink-soft);}
  .inline-link{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);border-bottom:1px solid var(--line);padding-bottom:4px;transition:border-color .3s;}
  .inline-link:hover{border-color:var(--brand);}
  @media (max-width:820px){.ec-in{grid-template-columns:1fr;}}

  .recruit{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  /* padding は縦だけ longhand で指定する: ショートハンドだと同一要素 .wrap の横 padding を
     0 で上書きし、コンテンツが画面端に張り付く(2026-07-07 監査で実測) */
  .recruit-in{display:flex;align-items:center;justify-content:space-between;gap:clamp(28px,5vw,64px);padding-top:clamp(52px,8vh,86px);padding-bottom:clamp(52px,8vh,86px);}
  .recruit-in .tx{max-width:60ch;}
  .recruit-in h2{font-size:clamp(1.5rem,2.8vw,2.1rem);letter-spacing:.07em;line-height:1.45;margin:16px 0 16px;color:var(--brand);}
  .recruit-in p{margin:0;font-size:.92rem;line-height:2.05;color:var(--ink-soft);}
  .btn-brand{background:var(--brand);color:var(--washi);border:1px solid var(--brand);white-space:nowrap;flex-shrink:0;}
  @media (prefers-color-scheme: dark){.btn-brand{color:#0b1611;}}
  .btn-brand:hover{gap:18px;background:var(--midori-900);}
  @media (prefers-color-scheme: dark){.btn-brand:hover{background:var(--moegi);}}
  @media (max-width:760px){.recruit-in{flex-direction:column;align-items:flex-start;}}

  .contact{background:var(--brand);text-align:center;}
  @media (prefers-color-scheme: dark){.contact{background:#10241a;}}
  .contact .in{max-width:720px;margin:0 auto;}
  .contact .eyebrow{justify-content:center;color:var(--kin-soft);}
  .contact .eyebrow::before{background:var(--kin-soft);}
  .contact h2{font-size:clamp(1.6rem,3vw,2.35rem);letter-spacing:.1em;color:#f2efe6;font-weight:300;margin:22px 0 20px;}
  .contact .lede{font-size:.86rem;line-height:2.1;color:rgba(255,255,255,.62);margin:0 0 40px;}
  @media (prefers-color-scheme: dark){.contact .lede{color:var(--ink-soft);}}
  .contact .tel{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4vw,2.9rem);letter-spacing:.1em;color:#f2efe6;}
  .contact .tel a,.reserve .tel a,.form-side .tel a{display:inline-block;padding:8px 0;margin:-8px 0;}
  .contact .telnote{font-size:.72rem;letter-spacing:.1em;color:rgba(255,255,255,.5);margin:10px 0 38px;}
  @media (prefers-color-scheme: dark){.contact .telnote{color:var(--ink-soft);}}
  .btn-paper{background:var(--washi);color:var(--brand);border:1px solid var(--washi);}
  @media (prefers-color-scheme: dark){.btn-paper{background:var(--moegi);color:#0b1611;border-color:var(--moegi);}}
  .btn-paper:hover{gap:18px;opacity:.9;}

  footer.ft{background:var(--midori-900);color:#c3d2c8;padding:clamp(56px,8vh,90px) 0 40px;}
  .ft-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1);}
  .ft .mk .k{font-family:var(--serif);font-size:1.45rem;letter-spacing:.12em;color:#f2efe6;}
  .ft .mk .co{font-size:.8rem;color:#9db3a4;margin-top:14px;line-height:1.95;}
  .ft-col h4{font-family:var(--sans);font-size:.62rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--kin-soft);margin:0 0 16px;}
  .ft-col a{display:block;font-size:.84rem;color:#c3d2c8;padding:10px 0;transition:color .3s;}
  .ft-col a:hover{color:#fff;}
  .ft-bot{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:.72rem;letter-spacing:.08em;color:#7f9788;flex-wrap:wrap;gap:10px;}
  .ft-bot a{color:#9db3a4;}
  .ft-legal{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;}
  .ft-legal a{color:#9db3a4;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(157,179,164,.4);}
  .ft-legal a:hover{text-decoration-color:currentColor;}
  .ft-sep{color:#5c7166;}
  @media (max-width:760px){.ft-top{grid-template-columns:1fr 1fr;gap:28px;}}
  @media (max-width:460px){.ft-top{grid-template-columns:1fr;}}

/* shared: nav active state (header partial) */
nav.links a.active{color:var(--ink);}
nav.links a.active::after{width:100%;}

/* --- 店舗詳細ページ固有（section / sec-head は .page-shop にスコープ） --- */
  .crumb{padding:22px 0 0;font-size:.72rem;letter-spacing:.08em;color:var(--ink-soft);}
  /* 44px タップターゲット確保(§16-2): 見た目を変えず padding+負 margin でヒット領域だけ広げる */
  .crumb a{display:inline-block;padding:16px 2px;margin:-16px -2px;}
  .crumb a:hover{color:var(--brand);}
  .crumb span{margin:0 .5em;opacity:.5;}

  .shero{position:relative;margin-top:20px;border-radius:16px;overflow:hidden;background:var(--midori-900);color:#eef0e9;}
  .shero .img{position:absolute;inset:0;background:linear-gradient(150deg,#22422f,#0c1d14);}
  .shero .img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,20,14,.72),rgba(9,20,14,.2));}
  .shero .imgcap{position:absolute;right:16px;bottom:12px;z-index:1;font-size:.62rem;letter-spacing:.18em;color:#7f9788;}
  .shero-badge{position:absolute;top:20px;right:20px;z-index:2;height:48px;width:auto;padding:8px 12px;background:rgba(245,244,240,.94);border-radius:8px;object-fit:contain;}
  @media (max-width:640px){.shero-badge{height:36px;top:14px;right:14px;padding:6px 9px;}}
  .shero-in{position:relative;z-index:2;padding:clamp(38px,6vw,72px) clamp(24px,5vw,64px);min-height:clamp(360px,52vh,480px);display:flex;flex-direction:column;justify-content:flex-end;gap:0;}
  .shero .area{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--kin-soft);}
  .shero h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,7vw,4.6rem);letter-spacing:.16em;line-height:1.1;margin:16px 0 4px;color:#f2efe6;}
  .shero .en{font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:#9db3a4;}
  .shero .catch{font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.5rem);letter-spacing:.05em;color:var(--hero-green);margin:22px 0 0;}

  .facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:12px;margin-top:-1px;background:var(--panel);overflow:hidden;}
  .facts .f{padding:20px clamp(14px,2vw,24px);}
  .facts .f + .f{border-left:1px solid var(--line);}
  .facts .f .l{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
  .facts .f .v{font-family:var(--serif);font-size:clamp(.95rem,1.5vw,1.18rem);letter-spacing:.04em;color:var(--ink);margin-top:8px;line-height:1.4;}
  @media (max-width:720px){.facts{grid-template-columns:1fr 1fr;}.facts .f:nth-child(3){border-left:none;}.facts .f:nth-child(3),.facts .f:nth-child(4){border-top:1px solid var(--line);}}

  .page-shop section{padding:clamp(56px,9vh,104px) 0;}
  .page-shop .sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(28px,4vh,44px);}
  .page-shop .sec-head h2{font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.4;letter-spacing:.05em;}

  .about-in{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:start;}
  .about-lead{font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.6;letter-spacing:.04em;color:var(--brand);}
  .about-body{color:var(--ink-soft);font-size:.96rem;line-height:2.1;}
  @media (max-width:760px){.about-in{grid-template-columns:1fr;gap:18px;}}

  .sig{background:var(--panel);}

  .info-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,56px);align-items:start;}
  .info-tbl{width:100%;border-collapse:collapse;}
  .info-tbl th,.info-tbl td{text-align:left;padding:15px 4px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.9rem;}
  .info-tbl th{width:34%;font-family:var(--sans);font-weight:500;color:var(--ink-soft);letter-spacing:.06em;font-size:.76rem;padding-top:18px;}
  .info-tbl td{color:var(--ink);line-height:1.7;}
  .info-tbl a{display:inline-block;padding:12px 0;margin:-12px 0;}
  .info-tbl a:hover{color:var(--brand);}
  .map{aspect-ratio:4/3;border-radius:12px;border:1px solid var(--line);position:relative;overflow:hidden;background:linear-gradient(160deg,#1c3a29,#0d1f15);}
  .map .cap{position:absolute;left:16px;bottom:14px;font-size:.66rem;letter-spacing:.16em;color:#8fa89a;}
  .map .pin{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:2rem;color:rgba(194,171,125,.5);}
  @media (max-width:760px){.info-in{grid-template-columns:1fr;}.map{order:-1;aspect-ratio:16/10;}}

  /* 店内ギャラリー(店舗詳細): 1枚目を全幅ワイド、残り2枚を2列 */
  .interior-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,20px);}
  .interior-grid img{width:100%;height:100%;object-fit:cover;display:block;border-radius:12px;border:1px solid var(--line);aspect-ratio:4/3;}
  .interior-grid img:first-child{grid-column:1/-1;aspect-ratio:21/9;}
  @media (max-width:640px){.interior-grid{grid-template-columns:1fr;}.interior-grid img,.interior-grid img:first-child{aspect-ratio:3/2;}}

  .reserve{background:var(--brand);color:#eef0e9;text-align:center;}
  @media (prefers-color-scheme: dark){.reserve{background:#10241a;}}
  .reserve .in{max-width:640px;margin:0 auto;}
  .reserve .eyebrow{justify-content:center;color:var(--kin-soft);}
  .reserve .eyebrow::before{background:var(--kin-soft);}
  .reserve h2{font-size:clamp(1.5rem,2.8vw,2.1rem);letter-spacing:.08em;color:#f2efe6;font-weight:300;margin:20px 0 10px;}
  .reserve p{font-size:.86rem;line-height:1.9;color:rgba(255,255,255,.6);margin:0 0 28px;}
  @media (prefers-color-scheme: dark){.reserve p{color:var(--ink-soft);}}
  .reserve .tel{font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:.1em;color:#f2efe6;margin-bottom:6px;}
  .reserve .telnote{font-size:.7rem;letter-spacing:.1em;color:rgba(255,255,255,.5);margin-bottom:30px;}
  @media (prefers-color-scheme: dark){.reserve .telnote{color:var(--ink-soft);}}
  .btn-paper{background:var(--washi);color:var(--brand);border:1px solid var(--washi);}
  @media (prefers-color-scheme: dark){.btn-paper{background:var(--moegi);color:#0b1611;border-color:var(--moegi);}}
  .btn-paper:hover{gap:18px;opacity:.9;}


/* === 下層ページ共通（会社概要・事業内容 等）。section/sec-head を .page-sub にスコープ === */
.page-sub section{padding:clamp(56px,9vh,104px) 0;}
.page-sub .sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(28px,4vh,44px);}
.page-sub .sec-head h2{font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.4;letter-spacing:.05em;}
.subhero{padding:clamp(40px,7vh,84px) 0 clamp(20px,3vh,32px);border-bottom:1px solid var(--line);}
.subhero h1{font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:.12em;color:var(--brand);margin:16px 0 0;}
.subhero .lead{margin:18px 0 0;max-width:56ch;color:var(--ink-soft);font-size:.98rem;line-height:2;}
.cmsg{background:var(--midori-800);color:var(--washi);}
.cmsg .eyebrow{color:var(--kin-soft);}
.cmsg .eyebrow::before{background:var(--kin-soft);}
.cmsg blockquote{margin:22px 0 0;font-family:var(--serif);font-weight:300;font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.55;letter-spacing:.04em;color:#f2efe6;}
.cmsg p{color:#c3d2c8;font-size:.96rem;line-height:2.1;max-width:60ch;margin:22px 0 0;}
.cmsg .by{margin-top:26px;font-size:.8rem;letter-spacing:.12em;color:var(--kin-soft);}
.cmsg .by b{font-family:var(--serif);font-weight:400;color:#f2efe6;font-size:1.05rem;letter-spacing:.08em;}
.timeline{border-top:1px solid var(--line);}
.tl{display:grid;grid-template-columns:minmax(0,.2fr) minmax(0,1fr);gap:clamp(16px,4vw,48px);padding:22px 4px;border-bottom:1px solid var(--line);}
.tl .yr{font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.5rem;color:var(--brand);letter-spacing:.03em;}
.tl .ev h3{font-size:1.1rem;letter-spacing:.04em;margin:0 0 6px;}
.tl .ev p{margin:0;color:var(--ink-soft);font-size:.9rem;line-height:1.9;max-width:42em;}
.bizd{border-top:1px solid var(--line);}
.bizd-row{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);padding:clamp(30px,4vw,50px) 4px;border-bottom:1px solid var(--line);align-items:baseline;}
.bizd-row .hd .ghost{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(40px,4vw,56px);color:color-mix(in srgb,var(--brand) 16%,transparent);line-height:.8;}
.bizd-row .hd .tg{display:block;margin-top:12px;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}
.bizd-row .hd h2{font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:.05em;color:var(--brand);margin:8px 0 0;}
.bizd-row .bd p{margin:0;color:var(--ink-soft);font-size:.96rem;line-height:2.1;max-width:42em;}
.bd-flex{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;}
.bd-flex p{flex:1 1 320px;}
.quality-badge{width:88px;height:auto;flex-shrink:0;}
.bizd-row .bd .bizlnk{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-size:.78rem;letter-spacing:.1em;color:var(--brand);border-bottom:1px solid var(--line);padding-bottom:6px;transition:gap .3s;}
.bizd-row .bd .bizlnk::after{content:"→";color:var(--accent);}
.bizd-row .bd .bizlnk:hover{gap:15px;}
@media (max-width:720px){.bizd-row{grid-template-columns:1fr;gap:14px;}}
@media (max-width:640px){.tl{grid-template-columns:1fr;gap:6px;}}
@media (prefers-color-scheme: dark){.cmsg{background:#0d1f16;}.cmsg p{color:var(--ink-soft);}}

/* === フォーム(お問い合わせ・採用) === */
.form-grid{display:grid;grid-template-columns:1fr .52fr;gap:clamp(28px,5vw,64px);align-items:start;}
.form{max-width:640px;}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.field label{font-size:.78rem;letter-spacing:.08em;color:var(--ink-soft);}
.field label .req{color:var(--accent);margin-left:8px;font-size:.68rem;letter-spacing:.1em;}
/* font-size は 16px 未満にしない: iOS Safari がフォーカス時に自動ズームするため(2026-07-07 監査) */
.field input,.field select,.field textarea{font-family:inherit;font-size:1rem;line-height:1.5;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:100%;transition:border-color .25s;-webkit-appearance:none;appearance:none;}
.field input,.field select{min-height:52px;}
.field textarea{min-height:150px;resize:vertical;line-height:1.8;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%2335604a' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:36px;}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px;}
.form-actions button[disabled]{opacity:.5;cursor:default;}
.form-note{font-size:.85rem;line-height:1.7;margin:0;}
.form-note.ok{color:var(--brand);}
.form-note.err{color:#a3403a;}
.form-side{font-size:.85rem;color:var(--ink-soft);line-height:2;}
.form-side .tel{font-family:var(--serif);font-size:1.5rem;color:var(--brand);letter-spacing:.06em;}
.recruit-intro{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.recruit-intro .pts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-left:1px solid var(--line);}
.recruit-intro .pt{border-right:1px solid var(--line);padding:24px clamp(14px,2vw,26px);}
.recruit-intro .pt h3{font-size:1.05rem;letter-spacing:.04em;margin:0 0 8px;color:var(--brand);}
.recruit-intro .pt p{margin:0;font-size:.86rem;line-height:1.9;color:var(--ink-soft);}
@media (max-width:720px){.form-grid{grid-template-columns:1fr;}.recruit-intro .pts{grid-template-columns:1fr;border-left:none;}}

/* === FAQ(卸売ページ等) === */
.faq{margin:0;border-top:1px solid var(--line);}
.faq dt{font-family:var(--serif);font-size:1.05rem;letter-spacing:.04em;color:var(--brand);padding:22px 4px 8px;}
.faq dt::before{content:"Q．";color:var(--accent);margin-right:6px;}
.faq dd{margin:0;padding:0 4px 22px;border-bottom:1px solid var(--line);font-size:.92rem;line-height:2;color:var(--ink-soft);max-width:42em;}
@media (prefers-color-scheme: dark){.form-note.err{color:#e79a95;}.field input,.field select,.field textarea{background-color:#0e2016;}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%238db99d' d='M6 8 0 0h12z'/%3E%3C/svg%3E");}}

/* === 地図埋め込み・店舗写真 === */
.mapframe{display:block;width:100%;aspect-ratio:4/3;border:0;}
.shero-photo,.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}

/* EC欄: ラベル(.t)と名称(.n)を縦積みに + 準備中表示 */
.ec-link .t{display:block;}
.ec-link .n{display:block;}
.ec-link.ec-soon{cursor:default;color:var(--ink-soft);}
.ec-link.ec-soon:hover{border-color:var(--line);color:var(--ink-soft);}
.soon-badge{font-size:.62rem;letter-spacing:.14em;color:var(--ink-soft);border:1px solid var(--line);padding:3px 11px;border-radius:20px;white-space:nowrap;}

/* === 情報系ページ(プライバシー・特商法): 散文パラグラフ === */
.prose{color:var(--ink-soft);font-size:.94rem;line-height:2;max-width:56em;}
.prose p{margin:0 0 1.2em;}
.prose p:last-child{margin-bottom:0;}
.prose ul{margin:0 0 1.2em;padding-left:1.4em;}
.prose li{margin:.4em 0;}
.prose strong{color:var(--brand);font-weight:500;}
.prose a{color:var(--brand);text-decoration:underline;text-underline-offset:2px;}

/* === お知らせ一覧 === */
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.news-list li{display:grid;grid-template-columns:130px 1fr;gap:clamp(16px,2vw,32px);padding:24px 4px;border-bottom:1px solid var(--line);}
.news-list time{font-family:var(--serif);font-size:.95rem;color:var(--accent);letter-spacing:.06em;padding-top:2px;}
.news-list .news-body h3{margin:0 0 8px;font-family:var(--serif);font-size:1.05rem;letter-spacing:.04em;color:var(--brand);font-weight:400;}
.news-list .news-body p{margin:0;font-size:.9rem;line-height:1.9;color:var(--ink-soft);}
@media (max-width:640px){.news-list li{grid-template-columns:1fr;gap:8px;}}

/* ============================================================
   磨き S1-S4(2026-07-17): タイポ研磨 / ヒーロー演出 / 官能 / 振り付け
   ============================================================ */

/* --- S1: 和文プロポーショナル詰め(palt)。約物の間延びを締める(見出し・大型表示のみ、本文は可読性優先で対象外) --- */
h1,h2,h3,h4,.ghost,.about-lead,.cmsg blockquote,.shero .catch,.hero-sub{font-feature-settings:"palt" 1;}
h1,h2,h3,h4{hanging-punctuation:allow-end;}
.hero h1{font-size:clamp(40px,5.8vw,74px);}


/* --- ヒーロー書体の固定: Shippori Mincho を10文字だけサブセット(2.4KB・自己ホスト・外部通信ゼロ)。
   全端末でヒーローの「顔」を同一にする。血統ルールの例外はADR 2026-07-17-hp-hero-font-subset --- */
@font-face{font-family:"Shippori Hero";src:url(/assets/fonts/shippori-hero.woff2) format("woff2");font-weight:400;font-display:swap;}
.hero h1{font-family:"Shippori Hero",var(--serif);}

/* --- S2: ヒーローの映画化 --- */
/* 紙の質感: SVGノイズをdata URIで内蔵(外部読込ゼロ維持) */
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.055'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
/* コピー3行が時差で立ち上がる(CSSのみ・JS不要) */
@keyframes hero-rise{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:none;}}
.hero-lead .eyebrow,.hero-lead .hl,.hero-lead .hero-sub,.hero-lead .hero-cta{opacity:0;animation:hero-rise 1.15s cubic-bezier(.22,.61,.21,1) forwards;}
.hero-lead .hl{display:inline-block;}
.hero-lead .eyebrow{animation-delay:.1s;}
.hero-lead .hl-1{animation-delay:.3s;}
.hero-lead .hl-2{animation-delay:.48s;}
.hero-lead .hl-3{animation-delay:.66s;}
.hero-lead .hero-sub{animation-delay:.95s;}
.hero-lead .hero-cta{animation-delay:1.15s;}
/* スクロールに応じてヒーローが静かに沈んで退場(対応ブラウザのみ・CSSのみ) */
@supports (animation-timeline: view()){
  @keyframes hero-drift{to{transform:translateY(64px);opacity:.15;}}
  .hero-in{animation:hero-drift linear both;animation-timeline:view();animation-range:exit 5% exit 100%;}
}
@media (prefers-reduced-motion: reduce){
  .hero-lead .eyebrow,.hero-lead .hl,.hero-lead .hero-sub,.hero-lead .hero-cta{animation:none;opacity:1;}
  .hero-in{animation:none;}
}

/* --- S3: 官能(ホバー・ページ遷移) --- */
.shop .img .card-photo{transition:transform 1.1s cubic-bezier(.22,.61,.21,1);}
.shop:hover .card-photo,.shop:focus-within .card-photo{transform:scale(1.05);}
.interior-grid img{transition:transform 1.1s cubic-bezier(.22,.61,.21,1);}
.interior-grid img:hover{transform:scale(1.03);}
@view-transition{navigation:auto;}
@media (prefers-reduced-motion: reduce){@view-transition{navigation:none;}}

/* --- S4: スクロール振り付け(カード群の時差立ち上がり) --- */
.biz-grid.reveal,.val-grid.reveal,.why-grid.reveal,.sys-grid.reveal{transform:none;}
.biz-grid .biz-cell,.val-grid .val,.why-grid .why-cell,.sys-grid .sys{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform .9s ease;}
.reveal.in .biz-cell,.reveal.in .val,.reveal.in .why-cell,.reveal.in .sys{opacity:1;transform:none;}
.biz-grid.reveal.in > :nth-child(2),.val-grid.reveal.in > :nth-child(2),.why-grid.reveal.in > :nth-child(2),.sys-grid.reveal.in > :nth-child(2){transition-delay:.09s;}
.biz-grid.reveal.in > :nth-child(3),.val-grid.reveal.in > :nth-child(3),.why-grid.reveal.in > :nth-child(3),.sys-grid.reveal.in > :nth-child(3){transition-delay:.18s;}
.biz-grid.reveal.in > :nth-child(4),.val-grid.reveal.in > :nth-child(4),.why-grid.reveal.in > :nth-child(4),.sys-grid.reveal.in > :nth-child(4){transition-delay:.27s;}
.sys-grid.reveal.in > :nth-child(5){transition-delay:.36s;}
.sys-grid.reveal.in > :nth-child(6){transition-delay:.45s;}
@media (prefers-reduced-motion: reduce){.biz-grid .biz-cell,.val-grid .val,.why-grid .why-cell,.sys-grid .sys{opacity:1;transform:none;transition:none;}}

/* 見出し背後の英字watermark(透かし・彫りの奥行き) */
.sec-head{position:relative;}
.sec-head[data-en]::before{content:attr(data-en);position:absolute;left:-.04em;bottom:calc(100% - .62em);font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(58px,8.5vw,116px);line-height:1;letter-spacing:.02em;color:color-mix(in srgb,var(--brand) 8%,transparent);pointer-events:none;white-space:nowrap;}

/* --- S1b: 改行規律(2026-07-17)。単語・社名・文節の途中で折らない --- */
/* 行頭禁則を厳格化 + 文節折り(word-break:auto-phrase対応ブラウザ=Chrome系は自動文節改行) */
.kit{line-break:strict;}
.hero-sub,.sec-head p,.philo-in .lead p,.biz-cell p,.why-cell p,.kitos p,.val p,
.contact .lede,.about-body,.cmsg p,.subhero .lead,.reserve p,.shop .cc,.recruit-in p,
.ec-fig p,.gift-box p,.bizd-row .bd p,.tl .ev p,.form-side,.prose,.faq dd{word-break:auto-phrase;text-wrap:pretty;}
h1,h2,h3,h4,.about-lead,.cmsg blockquote,.shero .catch{word-break:auto-phrase;}
/* 文節ノーブレーク(Safari含む全ブラウザで確実に効く手動セグメント) */
.nb{display:inline-block;}
/* 文字サイズ微調整: モバイル下限を一段上げる */
.hero h1{font-size:clamp(43px,5.8vw,74px);}
.hero-sub{font-size:clamp(1.02rem,1.5vw,1.28rem);}
.shop .meta{font-size:.8rem;}

/* --- S5: 写真の統一グレーディング(2026-07-17)。出所バラバラの写真を同一トーンに --- */
/* 僅かに暖色・彩度を落とし・締める。肉の赤は殺さない範囲(sepia .05) */
.card-photo,.ec-slide,.interior-grid img,.shero-photo{filter:sepia(.05) saturate(.94) contrast(1.04) brightness(.99);}
/* ホバーズームとの合成: filterは維持したままscaleのみ変化(S3のtransition定義はtransformのみなので干渉なし) */

/* --- S6: 下層ページのエディトリアル化(2026-07-17) --- */
/* subhero をトップと同じ時差立ち上がりに(全下層ページ共通・CSSのみ・IO不要) */
.subhero.reveal{opacity:1;transform:none;transition:none;}
.subhero .eyebrow,.subhero h1,.subhero .lead{opacity:0;animation:hero-rise 1s cubic-bezier(.22,.61,.21,1) forwards;}
.subhero .eyebrow{animation-delay:.08s;}
.subhero h1{animation-delay:.22s;}
.subhero .lead{animation-delay:.4s;}
/* 下層グリッドの時差立ち上がり(理由カード・品目/フローカード・沿革) */
.pt p{word-break:auto-phrase;text-wrap:pretty;}
.pts.reveal,.facts.reveal,.timeline.reveal{transform:none;}
.pts .pt,.facts .f,.timeline .tl{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform .9s ease;}
.pts.reveal.in .pt,.facts.reveal.in .f,.timeline.reveal.in .tl{opacity:1;transform:none;}
.pts.reveal.in > :nth-child(2),.facts.reveal.in > :nth-child(2),.timeline.reveal.in > :nth-child(2){transition-delay:.09s;}
.pts.reveal.in > :nth-child(3),.facts.reveal.in > :nth-child(3),.timeline.reveal.in > :nth-child(3){transition-delay:.18s;}
.facts.reveal.in > :nth-child(4),.timeline.reveal.in > :nth-child(4){transition-delay:.27s;}
.timeline.reveal.in > :nth-child(5){transition-delay:.36s;}
@media (prefers-reduced-motion: reduce){
  .subhero .eyebrow,.subhero h1,.subhero .lead{animation:none;opacity:1;}
  .pts .pt,.facts .f,.timeline .tl{opacity:1;transform:none;transition:none;}
}

/* --- S7: 店舗お品書き(実メニューからの抜粋・価格は税込) --- */
.mn-featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,24px);margin-bottom:clamp(26px,4vh,40px);}
.mn-featured{border:1px solid var(--line);background:var(--bg);padding:clamp(20px,2.6vw,30px);}
.mn-featured .tg{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}
.mn-featured h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.15rem,1.8vw,1.4rem);letter-spacing:.05em;margin:10px 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:14px;}
.mn-featured h3 .pr{font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.1em;color:var(--brand);white-space:nowrap;}
.mn-featured p{margin:10px 0 0;font-size:.8rem;line-height:1.95;color:var(--ink-soft);word-break:auto-phrase;text-wrap:pretty;}
.mn-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(28px,5vw,64px);align-items:start;}
.mn-group{margin-bottom:clamp(18px,3vh,28px);}
.mn-group h3{font-family:var(--sans);font-size:.66rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0;padding-bottom:10px;border-bottom:1px solid var(--line);}
.mn-group h3 small{letter-spacing:.08em;text-transform:none;color:var(--ink-soft);margin-left:10px;}
.mn-item{display:flex;align-items:baseline;gap:10px;padding:13px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);}
.mn-item .nm{font-family:var(--serif);font-size:.98rem;letter-spacing:.03em;}
.mn-item .nm small{font-family:var(--sans);font-size:.66rem;color:var(--ink-soft);letter-spacing:.04em;margin-left:6px;}
.mn-item .ld{flex:1;min-width:16px;border-bottom:1px dotted color-mix(in srgb,var(--ink-soft) 40%,transparent);transform:translateY(-4px);}
.mn-item .pr{font-family:var(--serif);font-size:.95rem;letter-spacing:.02em;white-space:nowrap;}
.mn-foot{margin-top:16px;font-size:.75rem;line-height:2;color:var(--ink-soft);word-break:auto-phrase;text-wrap:pretty;max-width:64em;}
@media (max-width:720px){.mn-featured-grid{grid-template-columns:1fr;}.mn-cols{grid-template-columns:1fr;}}

/* --- S8: ブランド写真バンド(full-bleed・2026-07-17)。全社素材のため店舗特定の文脈では使わない --- */
.photo-band{position:relative;overflow:hidden;height:clamp(300px,52vh,540px);}
.photo-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:sepia(.05) saturate(.94) contrast(1.04) brightness(.99);}
.photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(15,36,26,.10),rgba(9,20,14,.24));pointer-events:none;}
/* スクロールに合わせて写真がゆっくり流れる(対応ブラウザのみ・CSSのみ) */
@supports (animation-timeline: view()){
  @keyframes band-drift{from{transform:translateY(-5.5%) scale(1.12);}to{transform:translateY(5.5%) scale(1.12);}}
  .photo-band img{animation:band-drift linear both;animation-timeline:view();}
}
@media (prefers-reduced-motion: reduce){.photo-band img{animation:none;transform:none;}}
