
  :root{
    --ink:#171311;        /* 墨 */
    --ink-2:#221c18;      /* 一段明るい墨 */
    --ink-3:#2e2622;      /* 面 */
    --paper:#efe4d2;      /* 生成り */
    --paper-dim:#c9bba4;  /* 生成りの影 */
    --mute:#8f8272;
    --shu:#b8412e;        /* 朱（暖簾の色） */
    --shu-deep:#8f2f21;
    --kin:#c9a45c;        /* 金 */
    --kin-dim:#8c7141;
    --line:rgba(201,164,92,.28);
    --serif:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
    --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
    color-scheme:dark;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
  img{max-width:100%;display:block}
  a{color:inherit}
  h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.35;margin:0;text-wrap:balance}
  p{margin:0}
  .wrap{width:min(1120px,100%);margin-inline:auto;padding-inline:20px}
  .eyebrow{font-family:var(--serif);color:var(--kin);font-size:.8rem;letter-spacing:.32em;text-transform:uppercase}
  .eyebrow::before{content:"";display:inline-block;width:1.6em;height:1px;background:var(--kin);vertical-align:middle;margin-right:.8em;opacity:.8}
  .sec{padding-block:clamp(64px,9vw,112px)}
  .sec-title{font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:.12em;margin-top:.5rem}
  .lead{max-width:34em;color:var(--paper-dim);margin-top:1.25rem}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.9em 1.8em;border:1px solid var(--kin);color:var(--paper);text-decoration:none;font-family:var(--serif);letter-spacing:.18em;font-size:.95rem;transition:background .25s,color .25s}
  .btn:hover,.btn:focus-visible{background:var(--kin);color:var(--ink);outline:none}
  .btn.shu{background:var(--shu);border-color:var(--shu)}
  .btn.shu:hover,.btn.shu:focus-visible{background:var(--shu-deep);border-color:var(--shu-deep);color:var(--paper)}
  :focus-visible{outline:2px solid var(--kin);outline-offset:3px}

  /* header */
  .hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(23,19,17,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
  .brand{display:flex;align-items:baseline;gap:.7em;text-decoration:none}
  .brand .sm{font-family:var(--serif);font-size:.72rem;letter-spacing:.3em;color:var(--kin)}
  .brand .lg{font-family:var(--serif);font-size:1.45rem;letter-spacing:.2em;font-weight:600}
  .nav{display:flex;gap:1.6em;font-family:var(--serif);font-size:.9rem;letter-spacing:.14em}
  .nav a{text-decoration:none;color:var(--paper-dim)}
  .nav a:hover{color:var(--kin)}
  .hdr-tel{font-family:var(--serif);letter-spacing:.08em;text-decoration:none;border:1px solid var(--kin);padding:.45em 1em;font-size:.9rem;white-space:nowrap}
  @media (max-width:820px){.nav{display:none}}
  @media (max-width:520px){.hdr-tel{display:none}}

  /* hero */
  .hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
  .hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px)}
  .hero-photo{position:relative}
  .hero-photo img{width:100%;aspect-ratio:1/1.02;object-fit:cover;border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(0,0,0,.9)}
  .hero-photo::after{content:"";position:absolute;inset:14px;border:1px solid rgba(201,164,92,.35);pointer-events:none}
  .hero-text{display:flex;gap:clamp(20px,3vw,40px);align-items:flex-start}
  .tate{writing-mode:vertical-rl;font-family:var(--serif);font-size:clamp(1.1rem,1.6vw,1.35rem);letter-spacing:.3em;line-height:2;color:var(--paper);height:23.5em;border-right:1px solid var(--kin);padding-right:.8em;font-weight:500;flex:none}
  .hero-body{flex:1;min-width:0}
  .tate .kin{color:var(--kin)}
  .hero-body h1{font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:.14em;font-weight:600}
  .hero-body h1 small{display:block;font-size:.4em;letter-spacing:.42em;color:var(--kin);margin-bottom:.4em;font-weight:500}
  .hero-body .three{display:flex;gap:1.2em;margin-top:1.2rem;font-family:var(--serif);font-size:1.05rem;letter-spacing:.2em}
  .hero-body .three span{padding-left:.9em;border-left:1px solid var(--shu)}
  .hero-body .three span:first-child{padding-left:0;border:0}
  .hero-body p.note{color:var(--paper-dim);margin-top:1.2rem;max-width:26em}
  .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
  @media (max-width:760px){
    .hero .wrap{grid-template-columns:1fr}
    .hero-photo{order:-1}
    .tate{height:22em;font-size:1rem}
  }

  /* 八つの入口 */
  .doors{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:2.5rem}
  .door{position:relative;aspect-ratio:4/3;overflow:hidden;text-decoration:none;background:var(--ink-3);border:1px solid var(--line);display:flex;align-items:flex-end}
  .door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;opacity:.85}
  .door:hover img{transform:scale(1.05)}
  .door::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,19,17,0) 35%,rgba(23,19,17,.92) 100%)}
  .door .cap{position:relative;padding:14px 16px;width:100%}
  .door .cap b{display:block;font-family:var(--serif);font-size:1.35rem;letter-spacing:.2em;font-weight:500}
  .door .cap span{display:block;font-size:.78rem;color:var(--paper-dim);letter-spacing:.06em;line-height:1.5;margin-top:.2em}
  .door.plain{background:radial-gradient(120% 90% at 100% 0%,#3a2d25 0%,var(--ink-3) 60%)}
  .door.plain .mon{position:absolute;right:14px;top:10px;font-family:var(--serif);font-size:4.2rem;line-height:1;color:var(--kin);opacity:.16;font-weight:700}
  .door.shu-door{border-color:var(--shu)}
  .door.shu-door .cap b{color:#f0c2b6}
  @media (max-width:900px){.doors{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:560px){.doors{grid-template-columns:repeat(2,1fr);gap:10px}.door .cap b{font-size:1.1rem}.door .cap span{display:none}}

  /* about */
  .about{background:var(--ink-2);border-block:1px solid var(--line)}
  .about .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,80px);align-items:start}
  .about .txt p+p{margin-top:1.1em}
  .about .txt{color:var(--paper-dim)}
  .about .txt strong{color:var(--paper);font-weight:500}
  .noren{margin-top:2rem;padding:1.4rem 1.6rem;border-left:3px solid var(--shu);background:rgba(184,65,46,.08)}
  .noren b{font-family:var(--serif);font-size:1.15rem;letter-spacing:.18em;display:block;margin-bottom:.4em;font-weight:500}
  .noren p{font-size:.95rem;color:var(--paper-dim)}
  .about-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .about-photos img{aspect-ratio:4/5;object-fit:cover;width:100%;border:1px solid var(--line)}
  .about-photos img:first-child{grid-column:1/-1;aspect-ratio:3/2}
  .kodawari{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:3.5rem;border-top:1px solid var(--line);border-left:1px solid var(--line)}
  .kodawari div{padding:1.4rem 1.2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .kodawari b{font-family:var(--serif);font-size:1.1rem;letter-spacing:.14em;display:block;font-weight:500;color:var(--kin)}
  .kodawari p{font-size:.9rem;color:var(--paper-dim);margin-top:.4em;line-height:1.7}
  @media (max-width:820px){.about .wrap{grid-template-columns:1fr}.kodawari{grid-template-columns:1fr 1fr}}

  /* seats */
  .seats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px) clamp(20px,3vw,48px);margin-top:2.5rem}
  .seat img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line)}
  .seat .meta{display:flex;justify-content:space-between;align-items:baseline;gap:1em;margin-top:1rem;border-bottom:1px solid var(--line);padding-bottom:.6rem}
  .seat h3{font-size:1.3rem;letter-spacing:.16em}
  .seat .cap{font-family:var(--serif);color:var(--kin);letter-spacing:.1em;font-size:.95rem;white-space:nowrap;font-variant-numeric:tabular-nums}
  .seat p{font-size:.95rem;color:var(--paper-dim);margin-top:.6rem}
  .seat-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:2.5rem}
  .seat-strip img{aspect-ratio:4/5;object-fit:cover;width:100%;opacity:.9;border:1px solid var(--line)}
  @media (max-width:720px){.seats{grid-template-columns:1fr}.seat-strip{grid-template-columns:repeat(3,1fr)}}

  /* menu */
  .menu{background:var(--ink-2);border-block:1px solid var(--line)}
  .menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px) clamp(32px,5vw,72px);margin-top:2.5rem}
  .mcat h3{font-size:1.35rem;letter-spacing:.2em;display:flex;align-items:baseline;gap:.8em;padding-bottom:.6rem;border-bottom:1px solid var(--kin)}
  .mcat h3 small{font-size:.7rem;letter-spacing:.3em;color:var(--kin);font-family:var(--serif)}
  .mcat ul{list-style:none;margin:0;padding:0}
  .mcat li{display:grid;grid-template-columns:1fr auto;gap:.6em 1.2em;align-items:baseline;padding:.85rem 0;border-bottom:1px dotted rgba(201,164,92,.28)}
  .mcat li .nm{font-family:var(--serif);font-size:1.05rem;letter-spacing:.08em}
  .mcat li .pr{font-family:var(--serif);color:var(--kin);letter-spacing:.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
  .mcat li .ds{grid-column:1/-1;font-size:.84rem;color:var(--mute);line-height:1.6;margin-top:-.2em}
  .mcat .fn{font-size:.8rem;color:var(--mute);margin-top:.9rem}
  .menu-photo{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
  .menu-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line)}
  .lunch-photos{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:1rem}
  .lunch-photos img{width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--line)}
  @media (max-width:720px){.lunch-photos{grid-template-columns:repeat(3,1fr)}}
  .menu-note{margin-top:2rem;font-size:.85rem;color:var(--mute);text-align:center}
  @media (max-width:720px){.menu-grid{grid-template-columns:1fr}.menu-photo{grid-template-columns:1fr 1fr}}

  /* occasions */
  .occ{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:2.5rem}
  .occ article{position:relative;padding:clamp(24px,3vw,40px);border:1px solid var(--line);background:var(--ink-2);overflow:hidden;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
  .occ article img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32}
  .occ article::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,28,24,.1),rgba(34,28,24,.95) 70%)}
  .occ .in{position:relative}
  .occ h3{font-size:1.6rem;letter-spacing:.2em}
  .occ h3 small{display:block;font-size:.72rem;letter-spacing:.3em;color:var(--kin);margin-bottom:.4em}
  .occ p{color:var(--paper-dim);font-size:.95rem;margin-top:.8rem;max-width:30em}
  .occ .pts{display:flex;flex-wrap:wrap;gap:.5em;margin-top:1rem}
  .occ .pts span{font-size:.8rem;letter-spacing:.08em;border:1px solid var(--kin-dim);color:var(--paper);padding:.25em .8em}
  @media (max-width:720px){.occ{grid-template-columns:1fr}}

  /* info */
  .info .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px)}
  .dl{display:grid;grid-template-columns:7em 1fr;gap:0;margin-top:2rem;border-top:1px solid var(--line)}
  .dl dt,.dl dd{margin:0;padding:.9rem 0;border-bottom:1px solid var(--line)}
  .dl dt{font-family:var(--serif);color:var(--kin);letter-spacing:.14em;font-size:.92rem}
  .dl dd{color:var(--paper);font-variant-numeric:tabular-nums}
  .dl dd small{display:block;color:var(--mute);font-size:.82rem;line-height:1.6}
  .tel-big{display:block;font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.4rem);letter-spacing:.08em;text-decoration:none;color:var(--paper);margin-top:1.4rem;line-height:1.2}
  .tel-big small{display:block;font-size:.75rem;letter-spacing:.3em;color:var(--kin)}
  .map{margin-top:2rem;border:1px solid var(--line);background:var(--ink-3);padding:24px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;position:relative;overflow:hidden}
  .map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22}
  .map .in{position:relative}
  .map .route{font-family:var(--serif);font-size:1.25rem;letter-spacing:.16em}
  .map .route b{color:var(--kin);font-weight:500}
  .map p{color:var(--paper-dim);font-size:.92rem;margin-top:.5rem}
  .map .btn{position:relative;align-self:flex-start}
  @media (max-width:760px){.info .wrap{grid-template-columns:1fr}}

  /* footer */
  footer{border-top:1px solid var(--line);padding-block:40px 120px;background:#120f0d}
  footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:flex-end}
  footer .fb .lg{font-family:var(--serif);font-size:1.5rem;letter-spacing:.22em}
  footer .fb .sm{font-size:.8rem;color:var(--mute);margin-top:.3em}
  footer .cp{font-size:.75rem;color:var(--mute);letter-spacing:.1em}
  @media (min-width:641px){footer{padding-bottom:48px}}

  /* mobile fixed bar */
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;grid-template-columns:1fr 1fr 1fr;background:rgba(23,19,17,.96);border-top:1px solid var(--kin-dim);padding-bottom:env(safe-area-inset-bottom,0px)}
  .mbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;text-decoration:none;font-family:var(--serif);font-size:.82rem;letter-spacing:.14em;color:var(--paper);border-right:1px solid var(--line)}
  .mbar a:last-child{border-right:0}
  .mbar a.tel{background:var(--shu)}
  .mbar a small{font-size:.62rem;letter-spacing:.2em;color:var(--kin)}
  .mbar a.tel small{color:#f6d6cc}
  @media (max-width:640px){.mbar{display:grid}}

  /* news */
  .news{border-top:1px solid var(--line)}
  .news-list{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line)}
  .news-list li{display:grid;grid-template-columns:7.5em 1fr;gap:1em;padding:1rem 0;border-bottom:1px solid var(--line);align-items:baseline}
  .news-list time{font-family:var(--serif);color:var(--kin);letter-spacing:.08em;font-variant-numeric:tabular-nums}
  .news-list a{text-decoration:none;color:var(--paper)}
  .news-list a:hover{color:var(--kin)}
  .news-more{margin-top:1.2rem;font-family:var(--serif);letter-spacing:.14em}
  .news-more a{color:var(--kin);text-decoration:none;border-bottom:1px solid var(--kin-dim)}
  @media (max-width:520px){.news-list li{grid-template-columns:1fr;gap:.2em}}
  /* admin bar */
  body.admin-bar .hdr{top:32px}
  @media (max-width:782px){body.admin-bar .hdr{top:46px}}
