:root{
--pine-900:#0A2624;--pine-800:#0D302E;--pine-700:#103B38;--pine-600:#1A4B47;--pine-500:#2A615C;--pine-300:#6E908B;--pine-100:#C2D1CE;
--brass-700:#6F6238;--brass-600:#3A8A7E;--brass-500:#46A395;--brass-400:#B0A06E;
--teal-600:#5C918A;--teal-500:#7BAAA1;--teal-300:#A6C8C1;
--cream-50:#FAF7EF;--cream-100:#F5F1E6;--ink-900:#16140F;--ink-800:#1C1B17;--ink-700:#2A2822;
--muted:#54706A;--line:rgba(92,145,138,0.45);
--font-display:'Poiret One','Century Gothic',sans-serif;
--font-serif:'Cormorant Garamond','Hoefler Text',Georgia,serif;
--font-sans:'Jost','Futura','Trebuchet MS',sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#E7EFEB;color:var(--ink-700);font-family:var(--font-sans),system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--teal-600)}a:hover{color:var(--pine-600)}
img{display:block;max-width:100%}
h1,h2,p{margin:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid rgba(70,163,149,0.4);outline-offset:2px}
@keyframes viewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page{min-height:100vh;background:linear-gradient(180deg,var(--cream-50) 0%,#E7EFEB 100%)}
.wrap{max-width:520px;margin:0 auto}
main{animation:viewIn .24s ease-out}

.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-weight:500;text-transform:uppercase;line-height:1;border-radius:4px;cursor:pointer;text-decoration:none;transition:background .24s ease,color .24s ease,box-shadow .24s ease,transform .14s ease}
.btn:active{transform:translateY(1px)}
.btn-sm{padding:8px 18px;font-size:12px;letter-spacing:.18em;min-height:36px}
.btn-md{padding:13px 28px;font-size:13px;letter-spacing:.2em;min-height:44px}
.btn-lg{padding:17px 38px;font-size:14px;letter-spacing:.22em;min-height:52px}
.btn-block{display:flex;width:100%}
.btn-accent{background:var(--brass-500);color:var(--ink-900);border:1.5px solid var(--brass-500)}
.btn-accent:hover{background:var(--brass-600);border-color:var(--brass-600);color:var(--ink-900);box-shadow:0 1px 2px rgba(22,20,15,.08),0 2px 6px rgba(22,20,15,.06)}
.btn-outline{background:transparent;color:var(--pine-700);border:1.5px solid var(--pine-700)}
.btn-outline:hover{background:var(--pine-700);color:var(--cream-100)}
.badge{display:inline-flex;align-items:center;font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:5px 11px;border-radius:2px;line-height:1;background:var(--brass-500);color:var(--ink-900);white-space:nowrap}
.card{border:1px solid var(--line);border-radius:4px;background:rgba(255,255,255,.72)}

.hero{position:relative}
.hero-slides{position:relative;height:58vh;min-height:380px;max-height:560px;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.hero-img.is-on{opacity:1}
.hero-dots{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:9px;z-index:2}
.hero-dot{width:9px;height:9px;padding:0;border-radius:999px;border:1px solid rgba(250,247,239,.85);background:transparent;cursor:pointer;transition:background .24s ease}
.hero-dot.is-on{background:var(--cream-100)}
.hero-scrim{position:absolute;inset:0;background:radial-gradient(ellipse 70% 45% at 50% 50%,rgba(10,26,24,.5),transparent 75%),linear-gradient(180deg,rgba(10,26,24,.42) 0%,rgba(10,26,24,.22) 42%,rgba(10,26,24,.38) 100%)}
.hero-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:0 24px}
.hero-logo{width:min(300px,76vw);height:auto;filter:drop-shadow(0 2px 14px rgba(10,26,24,.5))}
.hero-kicker{font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--cream-100);text-shadow:0 1px 8px rgba(10,26,24,.65)}
.hero-cta{margin-top:8px}
.eyebrow{display:flex;justify-content:center;padding:20px 24px 0;font-weight:500;font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--brass-600);text-align:center}
.status{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 24px 4px;text-align:center}
.status-line{display:flex;align-items:center;gap:10px}
.dot{width:9px;height:9px;border-radius:999px;flex:none}
.status-title{font-family:var(--font-display);font-weight:400;font-size:40px;line-height:1.15;color:var(--ink-800);letter-spacing:.05em}
.status-sub{font-size:16px;color:var(--muted)}
.status.sm{gap:6px;padding:22px 24px 4px}.status.sm .dot{width:8px;height:8px}.status.sm .status-title{font-size:34px}.status.sm .status-sub{font-size:15px}
.home-specials{display:block;margin:16px 24px 2px;text-decoration:none;color:inherit}
.sp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid rgba(92,145,138,.28)}
.sp-row:last-child{border-bottom:0}
.sp-name{font-family:var(--font-serif);font-size:17.5px;color:var(--ink-800)}
.tag{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-600);white-space:nowrap}
.pad{padding:16px 24px 6px}

.rows{display:flex;flex-direction:column;padding:8px 24px 0}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;border-bottom:1px solid rgba(28,27,23,.12);text-decoration:none;color:inherit}
.row:last-child{border-bottom:0}
.row:hover{color:inherit}.row:hover .row-title{color:var(--pine-600)}
.row-text{display:flex;flex-direction:column;gap:2px}
.row-title{font-family:var(--font-serif);font-size:20px;color:var(--ink-800);transition:color .24s ease}
.row-sub{font-size:13px;color:var(--muted)}
.row svg{color:var(--muted);flex:none}
.rows.tight{padding:6px 24px 0}.rows.tight .row{min-height:58px}.rows.tight .row-title{font-size:19px}

.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}
.back{display:flex;align-items:center;gap:6px;min-height:44px;padding-right:10px;color:var(--ink-800);text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.back:hover{color:var(--pine-600)}
.topbar-right{display:flex;align-items:center;gap:14px}
.topmark{height:30px;width:auto}
.page-title{padding:22px 24px 6px;text-align:center;font-family:var(--font-display);font-weight:400;font-size:34px;line-height:1.2;letter-spacing:.05em;color:var(--ink-800)}

.menu-cards{display:flex;flex-direction:column;gap:12px;padding:12px 24px 8px}
.link-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px;text-decoration:none;color:inherit;transition:box-shadow .24s ease}
.link-card:hover{color:inherit;box-shadow:0 2px 10px rgba(22,20,15,.08)}
.link-card-text{display:flex;flex-direction:column;gap:3px}
.link-card-title{font-family:var(--font-serif);font-size:21px;color:var(--ink-800)}
.link-card-sub{font-size:13px;color:var(--muted)}
.link-card svg{color:var(--teal-600);flex:none}
.note{padding:6px 24px 30px;text-align:center;font-size:12.5px;color:var(--muted)}

.hours{display:flex;flex-direction:column;padding:16px 24px 4px}
.day{padding:13px 14px;background:rgba(255,255,255,.72);border:1px solid rgba(92,145,138,.35);border-radius:4px;margin:4px 0}
.day.is-today,.day-card.is-today{background:rgba(123,170,161,.16);border:1px solid var(--teal-600);box-shadow:0 2px 10px rgba(22,20,15,.06)}
.day-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.day-name{font-family:var(--font-serif);font-weight:400;font-size:18px;color:var(--ink-800)}
.day-meta{display:flex;align-items:center;gap:10px}
.day-time{font-size:13.5px;letter-spacing:.06em;color:var(--muted)}
.day-specials{display:flex;flex-direction:column;gap:5px;margin-top:9px;padding-top:9px;border-top:1px dashed rgba(92,145,138,.3)}
.ds-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ds-name{font-size:13px;color:var(--teal-600)}
.ds-time{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.day-note{margin-top:9px;padding-top:9px;border-top:1px dashed rgba(92,145,138,.3);font-family:var(--font-serif);font-style:italic;font-size:13.5px;color:var(--muted)}
.toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin-top:6px;width:100%;background:none;border:0;cursor:pointer;font-family:inherit;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-600)}
.toggle svg{transition:transform .24s ease}.toggle.is-open svg{transform:rotate(180deg)}
.hh-card{margin:14px 24px 0;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.hh-text{display:flex;flex-direction:column;gap:2px}
.hh-title{font-family:var(--font-serif);font-size:17.5px;color:var(--ink-800)}
.hh-line{font-size:12.5px;color:var(--muted)}

.day-cards{display:flex;flex-direction:column;gap:12px;padding:8px 24px 10px}
.day-card{padding:15px 16px}
.day-card .day-name{font-size:19px}
.day-card .day-specials{gap:7px;margin-top:10px;padding-top:10px}
.day-card .ds-name{font-size:14.5px;color:var(--ink-800)}

.map{display:block;margin:10px 24px 0;border:1px solid rgba(92,145,138,.5);border-radius:4px;overflow:hidden}
.map img{width:100%;height:220px;object-fit:cover}
.address{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 24px 4px;text-align:center;font-style:normal}
.address-1{font-family:var(--font-serif);font-size:20px;color:var(--ink-800)}
.address-2{font-size:14px;color:var(--muted)}

.res-head{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 24px 6px;text-align:center}
.res-head .page-title{padding:0}
.res-kicker{display:flex;flex-direction:column;align-items:center;gap:7px;margin-top:2px}
.rule{display:flex;align-items:center;gap:12px}
.rule-l{width:38px;height:1px;background:rgba(92,145,138,.6)}
.rule-d{color:var(--teal-600);font-size:9px;line-height:1}
.res-welcome{font-family:var(--font-serif);font-style:italic;font-size:20px;color:var(--pine-600)}
.res-opt{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--teal-600)}
.modes{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px 24px 2px}
.mode{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;border-radius:4px;cursor:pointer;text-align:center;background:rgba(255,255,255,.72);border:1px solid rgba(16,59,56,.2);color:var(--ink-800);font-family:inherit;font-weight:400}
.mode.is-on{background:rgba(70,163,149,.14);border:1.5px solid var(--teal-600);font-weight:500}
.mode-label{font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.mode-sub{font-size:11.5px;color:var(--muted);font-weight:400}
.prompt{padding:16px 24px 0;text-align:center;font-size:15px;color:var(--muted)}
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 24px 6px}
.chip{min-height:48px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:16px;cursor:pointer;background:transparent;border:1px solid rgba(16,59,56,.28);color:var(--ink-800)}
.chip.is-on{background:var(--teal-600);border-color:var(--teal-600);color:#fff;font-weight:500}
.stack{display:flex;flex-direction:column;gap:14px;padding:16px 24px 6px}
.small-note{text-align:center;font-size:13px;color:var(--muted)}
.note-card{padding:16px;text-align:center;font-size:14.5px;line-height:1.55;color:var(--ink-800)}
.grat{padding:8px 24px 0;text-align:center;font-size:12.5px;color:var(--muted)}
.closing{padding:22px 24px 30px;text-align:center;font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--muted)}

.framed{margin:10px 24px 0;border:1px solid rgba(92,145,138,.5);border-radius:4px;overflow:hidden}
.framed img{width:100%;height:230px;object-fit:cover}
.prose{padding:18px 26px 6px;font-size:15px;line-height:1.65;color:var(--ink-800);text-align:center;text-wrap:pretty}
.aside{padding:14px 26px 6px;text-align:center;font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--muted)}
.links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 20px;padding:16px 24px 8px;font-size:14px}
.center{display:flex;justify-content:center;padding:12px 24px 30px}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:6px 24px 14px}
.g-item{display:block}
.g-item img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;border:1px solid rgba(92,145,138,.4)}
.g-item.wide{grid-column:1/-1}.g-item.wide img{aspect-ratio:16/9}
.lb{position:fixed;inset:0;z-index:60;background:rgba(10,26,24,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:viewIn .18s ease-out}
.lb-img{max-width:calc(100vw - 32px);max-height:calc(100dvh - 140px);object-fit:contain;border-radius:4px;border:1px solid rgba(92,145,138,.5);box-shadow:0 18px 60px rgba(0,0,0,.5)}
.lb-btn{position:absolute;display:flex;align-items:center;justify-content:center;background:rgba(250,247,239,.08);border:1px solid rgba(92,145,138,.45);border-radius:4px;cursor:pointer;color:var(--cream-100)}
.lb-close{top:14px;right:14px;width:44px;height:44px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%);width:44px;height:56px}
.lb-next{right:10px;top:50%;transform:translateY(-50%);width:44px;height:56px}
.lb-cap{position:absolute;bottom:18px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;pointer-events:none}
.lb-alt{font-family:var(--font-serif);font-size:16px;color:var(--cream-100)}
.lb-count{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-300)}

.footer{display:flex;flex-direction:column;align-items:center;gap:14px;padding:26px 24px 30px}
.footer-rule{display:flex;align-items:center;gap:14px;width:170px}
.footer-rule span{flex:1;height:1px;background:rgba(92,145,138,.5)}
.footer-rule img{height:24px;width:auto}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-size:14px}
.footer-nav a{color:var(--ink-800);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.footer-nav a:hover{color:var(--pine-600)}
.contact{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:13.5px;color:var(--muted);font-style:normal}
.contact a{color:inherit;text-decoration:none;min-height:36px;display:inline-flex;align-items:center}
.contact a:hover{color:var(--pine-600)}
.contact .tel{color:var(--ink-800);letter-spacing:.04em}
.signoff{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--muted)}
