  :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:baseline;gap:.6em;}
  .brand-mark .k{font-family:var(--serif);font-size:1.3rem;letter-spacing:.12em;color:var(--brand);}
  .brand-mark .sub{font-size:.62rem;letter-spacing:.24em;color:var(--ink-soft);text-transform:uppercase;}
  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:6px 0;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;}}

  .hero{background:var(--midori-900);color:var(--washi);position:relative;overflow:hidden;}
  .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{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 .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;}
  .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);}
  .ec-fig .ov{position:absolute;left:0;right:0;bottom:0;padding:26px;}
  .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);}
  .recruit-in{display:flex;align-items:center;justify-content:space-between;gap:clamp(28px,5vw,64px);padding:clamp(52px,8vh,86px) 0;}
  .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 .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:5px 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;}
  @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);}
  .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:var(--washi);}
  .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-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);}
  .sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);}
  .sig-row{display:flex;align-items:baseline;gap:16px;padding:20px 6px;border-bottom:1px solid var(--line);}
  .sig-row .n{font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.1rem;color:color-mix(in srgb,var(--brand) 45%,transparent);min-width:1.6em;}
  .sig-row .t{font-family:var(--serif);font-size:1.08rem;letter-spacing:.04em;color:var(--ink);}
  @media (max-width:640px){.sig-grid{grid-template-columns:1fr;}}

  .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: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;}}

  .reserve{background:var(--brand);color:var(--washi);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;}
.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;}
.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;}
.field input,.field select,.field textarea{font-family:inherit;font-size:.95rem;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 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;}}
@media (prefers-color-scheme: dark){.form-note.err{color:#e79a95;}.field input,.field select,.field textarea{background:#0e2016;}}

/* === 地図埋め込み・店舗写真 === */
.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;}
