html{-webkit-text-size-adjust:100%}
body{margin:0;font-size:14px}
img{max-width:100%}

  :root{
    --bg:#E2DEC7;
    --bg-raised:#D5CFB2;
    --bg-raised-2:#CAC29F;
    --ink:#242419;
    --logo:#253523;
    --ink-soft:#59543F;
    --moss:#454F35;
    --moss-2:#5E6B45;
    --sienna:#A25A32;
    --gold:#8C7326;
    --line:rgba(36,36,25,0.22);
    --line-soft:rgba(36,36,25,0.12);
    --card-shadow: 0 1px 0 rgba(36,36,25,0.06);
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#1B1C14;
      --bg-raised:#24251A;
      --bg-raised-2:#2C2D1F;
      --ink:#ECE6D2;
      --logo:#ECE6D2;
      --ink-soft:#B6AF93;
      --moss:#93A576;
      --moss-2:#7C8E60;
      --sienna:#D08A5C;
      --gold:#D2B968;
      --line:rgba(236,230,210,0.22);
      --line-soft:rgba(236,230,210,0.12);
      --card-shadow: 0 1px 0 rgba(0,0,0,0.3);
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#1B1C14;
    --bg-raised:#24251A;
    --bg-raised-2:#2C2D1F;
    --ink:#ECE6D2;
    --logo:#ECE6D2;
    --ink-soft:#B6AF93;
    --moss:#93A576;
    --moss-2:#7C8E60;
    --sienna:#D08A5C;
    --gold:#D2B968;
    --line:rgba(236,230,210,0.22);
    --line-soft:rgba(236,230,210,0.12);
    --card-shadow: 0 1px 0 rgba(0,0,0,0.3);
    color-scheme: dark;
  }

  *{box-sizing:border-box;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:"Archivo", ui-sans-serif, system-ui, sans-serif;
    padding-inline:20px;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1080px;margin-inline:auto;}
  h1,h2,h3{font-family:"Fraunces", Georgia, serif; text-wrap:balance; margin:0;}
  p{margin:0;}
  a{color:inherit;}
  .eyebrow{
    font-family:"Archivo", sans-serif;
    font-weight:600;
    font-size:0.72rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--moss);
  }

  /* ---------- header ---------- */
  header.site{
    position:sticky; top:env(safe-area-inset-top,0px);
    z-index:40;
    background:var(--bg);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    max-width:1080px; margin-inline:auto;
    display:flex; align-items:center; justify-content:space-between;
    padding-block:14px; gap:12px 32px; flex-wrap:wrap;
  }
  .wordmark{
    font-family:"Fraunces", serif; font-weight:900;
    font-size:1.5rem; letter-spacing:0.02em; line-height:1;
    display:flex; align-items:center; gap:14px;
    text-decoration:none; color:var(--ink);
  }
  .wm-text{display:flex; align-items:center; gap:12px;}
  .wordmark small{
    font-family:"Archivo", sans-serif; font-weight:500;
    font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--ink-soft);
  }
  .logo-mark{
    width:60px; height:60px; flex-shrink:0;
    background-color:var(--logo);
    -webkit-mask:url("/images/logo-mark.png") center/contain no-repeat;
    mask:url("/images/logo-mark.png") center/contain no-repeat;
  }
  nav.tabs{display:flex; align-items:center; gap:28px;}
  nav.tabs a{
    font-family:"Archivo", sans-serif;
    font-weight:500; font-size:0.85rem; letter-spacing:0.02em;
    padding-block:10px; text-decoration:none;
    color:var(--ink-soft);
  }
  nav.tabs a:hover{color:var(--ink); text-decoration:underline; text-underline-offset:6px;}
  nav.tabs a[aria-current="page"]{
    color:var(--ink);
    text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px;
  }
  nav.tabs a:focus-visible, .btn:focus-visible, .subtab:focus-visible{
    outline:2px solid var(--sienna); outline-offset:2px;
  }
  .header-cta{
    font-family:"Archivo", sans-serif; font-weight:700; font-size:0.78rem;
    letter-spacing:0.04em; text-decoration:none; line-height:1;
    padding:12px 18px; background:var(--sienna); color:#F7F1DE;
    border-radius:1px; white-space:nowrap;
  }
  @media (max-width:700px){
    header.site{position:static;}
    .header-inner{padding-block:12px 4px;}
    .wordmark{flex:1; font-size:1.35rem; gap:12px;}
    .wm-text{flex-direction:column; align-items:flex-start; gap:4px;}
    .logo-mark{width:52px; height:52px;}
    nav.tabs{order:3; width:100%; justify-content:space-between; gap:8px;}
    nav.tabs a{padding-block:12px;}
  }

  /* ---------- generic ---------- */
  main{padding-block:56px 90px;}
  .rule{height:1px; background:var(--line); border:none; margin-block:44px;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:"Archivo", sans-serif; font-weight:700; font-size:0.85rem;
    letter-spacing:0.02em; text-decoration:none;
    padding:14px 24px; border-radius:1px; border:1px solid var(--ink);
    color:var(--ink); background:transparent;
  }
  .btn.solid{background:var(--moss); border-color:var(--moss); color:#F4EFDC;}
  .btn.rust{background:var(--sienna); border-color:var(--sienna); color:#FBF3E2;}
  .btn:hover{opacity:0.85;}
  .is-disabled, .is-disabled:hover{opacity:0.4; cursor:not-allowed;}

  /* ---------- home hero ---------- */
  .hero{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px;
    align-items:center;
  }
  @media (max-width:760px){ .hero{grid-template-columns:1fr;} }
  .hero-eyebrow{margin-bottom:18px;}
  .hero h1{font-size:clamp(3rem,9vw,5.2rem); line-height:0.92; letter-spacing:-0.01em;}
  .hero .sub{
    font-family:"Fraunces", serif; font-style:italic; font-weight:500;
    font-size:clamp(1.15rem,2.6vw,1.5rem); color:var(--moss-2);
    margin-top:18px; max-width:32ch;
  }
  .hero .lede{
    margin-top:22px; font-size:1rem; line-height:1.65; color:var(--ink-soft);
    max-width:46ch;
  }
  .hero .ctas{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
  .hero-art{
    position:relative; aspect-ratio:4/5; border:1px solid var(--line);
    background:var(--bg-raised);
    overflow:hidden;
    max-width:100%;
  }
  .gallery-img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; opacity:0;
  }
  .gallery-img.active{opacity:1;}
  @media (prefers-reduced-motion:no-preference){
    .gallery-img{transition:opacity 1.1s ease;}
  }
  .gallery-credit{
    position:absolute; top:12px; right:12px;
    background:rgba(20,20,14,0.55); color:#F4EFDC;
    font-family:"Archivo",sans-serif; font-size:0.65rem; letter-spacing:0.04em;
    padding:5px 9px; text-decoration:none; border-radius:2px;
  }
  .hours-chip{
    position:absolute; left:-18px; bottom:-18px;
    background:var(--ink); color:var(--bg);
    padding:16px 20px; max-width:220px;
    font-size:0.8rem; line-height:1.5;
    border:1px solid var(--ink);
  }
  .hours-chip b{font-family:"Fraunces",serif; font-size:0.9rem; display:block; margin-bottom:4px; font-weight:600;}

  /* ---------- feature strip ---------- */
  .features{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:700px){ .features{grid-template-columns:1fr;} }
  .feature{background:var(--bg); padding:32px 28px;}
  .feature svg{width:34px; height:34px; stroke:var(--sienna); margin-bottom:16px;}
  .feature h3{font-size:1.15rem; font-weight:600; margin-bottom:10px;}
  .feature p{color:var(--ink-soft); font-size:0.92rem; line-height:1.6;}

  /* ---------- pull quote ---------- */
  .pullquote{
    display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:start;
    padding-block:8px;
  }
  .pullquote svg{width:38px;height:38px; stroke:var(--gold); flex-shrink:0;}
  .pullquote p{
    font-family:"Fraunces",serif; font-weight:500; font-style:italic;
    font-size:clamp(1.3rem,3vw,1.8rem); line-height:1.35; color:var(--ink);
    max-width:26ch;
  }

  /* ---------- section heading ---------- */
  .sec-head{margin-bottom:40px; max-width:60ch;}
  .sec-head h1{font-size:clamp(2.1rem,4.5vw,2.8rem); margin-top:10px;}
  .sub-h{font-family:"Archivo",sans-serif; font-size:1.1rem; font-weight:600; margin-bottom:16px;}
  .sec-head .note a{text-underline-offset:3px;}
  .sec-head .note{color:var(--ink-soft); font-size:0.95rem; margin-top:16px; line-height:1.6;}

  /* ---------- menu ---------- */
  .subtabs{display:flex; gap:10px; margin-bottom:36px;}
  .subtab{
    font-family:"Fraunces",serif; font-weight:600; font-size:1.05rem;
    padding:10px 4px; background:none; border:none; cursor:pointer;
    color:var(--ink-soft); border-bottom:2px solid transparent;
  }
  .subtab[aria-selected="true"]{color:var(--ink); border-color:var(--sienna);}
  .menu-cols{max-width:720px;}
  .menu-cat{margin-bottom:40px;}
  .menu-cat h3{
    font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase;
    font-family:"Archivo",sans-serif; font-weight:700; color:var(--moss);
    margin-bottom:18px;
  }
  .menu-item{margin-bottom:18px; font-size:0.98rem;}
  .menu-item-head{display:flex; align-items:baseline; gap:8px;}
  .menu-item .dots{
    flex:1; border-bottom:1px dotted var(--ink-soft); min-width:16px;
    transform:translateY(-4px); opacity:0.6;
  }
  .menu-item .price{
    font-family:"JetBrains Mono", monospace; font-size:0.9rem;
    font-variant-numeric:tabular-nums; white-space:nowrap;
  }
  .menu-item .desc{margin-top:3px; color:var(--ink-soft); font-size:0.85rem; line-height:1.5;}
  .menu-status{color:var(--ink-soft); font-size:0.95rem; line-height:1.6;}
  .menu-note{
    margin-top:8px; background:var(--bg-raised); border:1px solid var(--line);
    padding:16px 18px; font-size:0.85rem; color:var(--ink-soft); line-height:1.6;
    max-width:60ch;
  }
  .menu-note + .menu-note{margin-top:10px;}

  /* ---------- about ---------- */
  .about-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
  @media (max-width:760px){ .about-grid{grid-template-columns:1fr;} }
  .about-grid p{margin-bottom:20px; line-height:1.7; color:var(--ink-soft); font-size:1rem;}
  .about-grid p:last-child{margin-bottom:0;}
  .values{display:flex; flex-direction:column; gap:0;}
  .value{
    padding-block:22px; border-top:1px solid var(--line);
    display:grid; grid-template-columns:2.2rem 1fr; gap:16px;
  }
  .value:last-child{border-bottom:1px solid var(--line);}
  .value .num{
    font-family:"JetBrains Mono",monospace; color:var(--sienna); font-size:0.85rem;
    padding-top:3px;
  }
  .value h3{font-size:1.1rem; margin-bottom:6px; font-weight:600;}
  .value p{color:var(--ink-soft); font-size:0.92rem; line-height:1.6; margin:0;}

  /* ---------- reservation ---------- */
  .resv-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  @media (max-width:760px){ .resv-grid{grid-template-columns:1fr;} }
  .resv-card{
    background:var(--bg-raised); border:1px solid var(--line);
    padding:36px; box-shadow:var(--card-shadow);
  }
  .resv-card .btn{width:100%; justify-content:center; margin-bottom:14px;}
  .info-row{
    display:flex; justify-content:space-between; gap:16px;
    padding-block:14px; border-top:1px solid var(--line);
    font-size:0.92rem;
  }
  .info-row:last-child{padding-bottom:0;}
  .info-row dt{color:var(--ink-soft); font-weight:500;}
  .info-row dd{margin:0; text-align:right; font-weight:500;}
  .info-row a{text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--line);}
  .hours-table{width:100%; border-collapse:collapse; font-size:0.95rem;}
  .hours-table td{padding-block:10px; border-top:1px solid var(--line);}
  .hours-table td:first-child{color:var(--ink-soft);}
  .hours-table td:last-child{text-align:right; font-variant-numeric:tabular-nums; font-family:"JetBrains Mono",monospace; font-size:0.85rem;}
  .hours-table tr:first-child td{border-top:none;}
  .social-row{display:flex; gap:12px; margin-top:24px;}
  .icon-link{
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; border:1px solid var(--line);
    color:var(--ink);
  }
  .icon-link svg{width:18px;height:18px;}
  .icon-link:hover{border-color:var(--ink);}

  /* ---------- footer ---------- */
  footer{
    border-top:1px solid var(--line);
    padding-block:40px;
    display:flex; justify-content:space-between; align-items:center;
    gap:20px; flex-wrap:wrap;
  }
  footer .wordmark{font-size:1.1rem;}
  footer .fine{color:var(--ink-soft); font-size:0.8rem;}
  footer .fine a{text-decoration:none;}
  footer .fine a:hover{text-decoration:underline;}
  .foot-links{display:flex; gap:18px; font-size:0.8rem;}
  .foot-links a{color:var(--ink-soft); text-decoration:none;}
  .foot-links a:hover{color:var(--ink); text-decoration:underline;}

  [hidden]{display:none !important;}

  /* ---------- phones ---------- */
  @media (max-width:700px){
    body{padding-inline:18px;}
    main{padding-block:32px 56px;}
    .rule{margin-block:32px;}
    .hero{gap:40px;}
    .hero .ctas .btn{flex:1 1 100%; justify-content:center;}
    .hours-chip{left:0; bottom:0; max-width:none; padding:12px 16px;}
    .feature{padding:24px 20px;}
    .sec-head{margin-bottom:28px;}
    .menu-cat{margin-bottom:32px;}
    .about-grid{gap:40px;}
    .resv-grid{gap:36px;}
    .resv-card{padding:24px 20px;}
    .info-row{flex-wrap:wrap;}
    footer{flex-direction:column; align-items:flex-start; gap:16px;}
    .foot-links{flex-wrap:wrap; gap:10px 18px;}
  }
