:root { --ink:#2d1b14; --muted:#6f625b; --paper:#fffdf9; --surface:#f6efe7; --card:#fff; --line:#e5d9cc; --accent:#bd5a28; --accent-dark:#99431d; --cream:#f2d2a3; --footer:#2d1b14; --shadow:0 18px 45px rgb(47 25 15 / .10); }
[data-theme="dark"] { --ink:#f8eee5; --muted:#c7b9ae; --paper:#1d1512; --surface:#2a1d18; --card:#31221c; --line:#4a342b; --accent:#ed8b52; --accent-dark:#f3a474; --cream:#6b3c26; --footer:#100b09; --shadow:0 18px 45px rgb(0 0 0 / .28); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:5rem; }
body { background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height:1.6; }
a { color:inherit; } img { max-width:100%; }
.skip-link { position:fixed; top:1rem; left:1rem; z-index:2000; padding:.65rem 1rem; color:#fff; background:var(--accent); border-radius:.4rem; transform:translateY(-200%); }.skip-link:focus { transform:translateY(0); }
.site-header { background:color-mix(in srgb,var(--paper) 92%,transparent); border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent); backdrop-filter:blur(14px); }.navbar { min-height:4.75rem; }
.navbar-brand { color:var(--ink); font-size:1.4rem; font-weight:800; letter-spacing:-.04em; text-decoration:none; }.navbar-brand img { object-fit:contain; }.nav-link { color:var(--muted); font-size:.94rem; font-weight:650; padding:.5rem .7rem !important; }.nav-link:hover,.nav-link:focus { color:var(--accent); }
.navbar-toggler { border-color:var(--line); color:var(--ink); }.navbar-toggler:focus { box-shadow:0 0 0 .2rem rgb(189 90 40 / .22); }[data-theme="dark"] .navbar-toggler-icon { filter:invert(1); }
.btn { border-radius:.5rem; font-weight:750; padding:.7rem 1.1rem; transition:transform .2s ease,background-color .2s ease,border-color .2s ease; }.btn:hover { transform:translateY(-2px); }.btn-primary { background:var(--accent); border-color:var(--accent); }.btn-primary:hover,.btn-primary:focus { background:var(--accent-dark); border-color:var(--accent-dark); }.btn-outline-primary { color:var(--accent); border-color:var(--accent); }.btn-outline-primary:hover { background:var(--accent); border-color:var(--accent); }.btn-link,.text-link { color:var(--ink); font-weight:750; text-decoration:none; }.btn-link:hover,.text-link:hover { color:var(--accent); }
.theme-toggle { width:2.5rem; height:2.5rem; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:var(--card); display:inline-grid; place-items:center; transition:all .2s ease; }.theme-toggle:hover { color:var(--accent); border-color:var(--accent); transform:rotate(12deg); }
.reveal { opacity:0; transform:translateY(1.5rem); transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms); }.reveal.is-visible { opacity:1; transform:translateY(0); }.hero-image-wrap.reveal { transform:translateX(1.5rem) scale(.98); }.hero-image-wrap.reveal.is-visible { transform:translateX(0) scale(1); }.menu-card.reveal { transform:translateY(1.25rem); }.menu-card.reveal.is-visible { transform:translateY(0); }.btn i { display:inline-block; transition:transform .2s ease; }.btn:hover i { transform:translateX(.2rem); }
.hero { overflow:hidden; padding:clamp(4.5rem,9vw,8.5rem) 0 clamp(5rem,10vw,9rem); background:linear-gradient(110deg,var(--surface) 0%,var(--paper) 68%); }.hero-copy { position:relative; z-index:1; }.eyebrow { display:flex; align-items:center; gap:.55rem; color:var(--accent); font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.eyebrow span { width:2rem; height:1px; background:currentColor; }
h1,h2,h3 { color:var(--ink); font-weight:800; letter-spacing:-.055em; line-height:1.06; }h1 { max-width:11ch; margin:0 0 1.5rem; font-size:clamp(3rem,6vw,5.45rem); }h1 em { color:var(--accent); font-family:Georgia,serif; font-weight:400; }h2 { font-size:clamp(2.2rem,4vw,3.55rem); }h3 { font-size:1.25rem; }
.hero-lead,.section-lead { max-width:38rem; color:var(--muted); font-size:1.15rem; }.hero-meta { display:flex; flex-wrap:wrap; gap:2rem; margin-top:2.6rem; }.hero-meta div { display:grid; gap:.05rem; }.hero-meta strong { font-size:1.12rem; }.hero-meta span { color:var(--muted); font-size:.87rem; }.hero-meta i { color:#df861f; }
.hero-image-wrap { position:relative; isolation:isolate; }.hero-image-wrap::before { position:absolute; z-index:-1; top:-7%; right:-7%; width:78%; height:75%; border-radius:45% 45% 8% 45%; background:var(--cream); content:""; }.hero-image { display:block; width:100%; min-height:460px; object-fit:cover; border-radius:42% 8% 42% 8%; box-shadow:var(--shadow); }.hero-card { position:absolute; bottom:1.5rem; left:-1.5rem; display:flex; align-items:center; gap:.75rem; padding:.8rem 1rem; background:var(--card); border:1px solid var(--line); border-radius:.75rem; box-shadow:var(--shadow); }.hero-card i { display:grid; width:2.3rem; height:2.3rem; place-items:center; border-radius:50%; color:#fff; background:var(--accent); }.hero-card span { display:grid; color:var(--muted); font-size:.74rem; }.hero-card strong { color:var(--ink); font-size:.84rem; }
.section-space { padding:clamp(4.5rem,9vw,8rem) 0; }.content-image { display:block; width:100%; aspect-ratio:1 / 1.05; object-fit:cover; border-radius:35% 35% 6% 35%; box-shadow:var(--shadow); }.feature-list { display:grid; gap:1.2rem; margin:2rem 0; padding:0; list-style:none; }.feature-list li { display:flex; gap:.8rem; color:var(--muted); }.feature-list i { flex:0 0 auto; display:grid; width:1.7rem; height:1.7rem; place-items:center; color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,transparent); border-radius:50%; }.feature-list span { display:grid; gap:.1rem; }.feature-list strong { color:var(--ink); }
.menu-section { background:var(--surface); }.section-heading { max-width:44rem; }.section-heading > p:last-child { color:var(--muted); }.menu-card { position:relative; display:flex; height:100%; flex-direction:column; gap:1.7rem; padding:1.65rem; background:var(--card); border:1px solid var(--line); border-radius:1rem; transition:transform .25s ease,box-shadow .25s ease; }.menu-card:hover { box-shadow:var(--shadow); transform:translateY(-6px); }.menu-card.featured { border-color:var(--accent); }.card-tag { position:absolute; top:1rem; right:1rem; margin:0; padding:.2rem .55rem; color:var(--accent); background:color-mix(in srgb,var(--accent) 12%,transparent); border-radius:10rem; font-size:.7rem; font-weight:800; text-transform:uppercase; }.menu-icon { display:grid; width:3rem; height:3rem; place-items:center; color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,transparent); border-radius:.8rem; font-size:1.4rem; }.menu-title { display:flex; justify-content:space-between; gap:.75rem; align-items:baseline; }.menu-title h3 { margin:0; }.menu-title span { color:var(--accent); font-weight:800; }.menu-card p:not(.card-tag) { margin:.5rem 0 0; color:var(--muted); font-size:.94rem; }
.visit-section { background:linear-gradient(180deg,var(--paper) 50%,var(--surface) 50%); }.visit-panel { overflow:hidden; padding:clamp(1.25rem,4vw,3.5rem); background:var(--card); border:1px solid var(--line); border-radius:1.4rem; box-shadow:var(--shadow); }.visit-image { width:100%; height:100%; min-height:360px; object-fit:cover; border-radius:.9rem; }.hours { display:grid; gap:1rem; margin:1.8rem 0; }.hours div { display:flex; align-items:center; gap:.8rem; }.hours i { color:var(--accent); font-size:1.3rem; }.hours span { display:grid; color:var(--muted); font-size:.9rem; }.hours strong { color:var(--ink); }
.journal-card { display:block; height:100%; padding-bottom:1rem; color:inherit; background:var(--card); border:1px solid var(--line); border-radius:.8rem; overflow:hidden; text-decoration:none; transition:transform .25s ease,box-shadow .25s ease; }.journal-card:hover { color:inherit; box-shadow:var(--shadow); transform:translateY(-5px); }.journal-card img { width:100%; aspect-ratio:1.43 / 1; object-fit:cover; }.journal-card span,.journal-card h3,.journal-card p { display:block; margin-right:1.25rem; margin-left:1.25rem; }.journal-card span { margin-top:1.2rem; color:var(--accent); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.journal-card h3 { margin-top:.4rem; font-size:1.32rem; }.journal-card p { color:var(--muted); font-size:.92rem; }
.contact-section { background:var(--surface); }.contact-detail { display:flex; align-items:center; gap:.75rem; width:max-content; margin-top:1rem; color:var(--ink); font-weight:700; text-decoration:none; }.contact-detail:hover { color:var(--accent); }.contact-detail i { color:var(--accent); }.contact-form { padding:clamp(1.25rem,4vw,2.25rem); background:var(--card); border:1px solid var(--line); border-radius:1rem; box-shadow:var(--shadow); }.contact-form label { display:block; margin-bottom:.4rem; color:var(--ink); font-size:.88rem; font-weight:750; }.contact-form input,.contact-form textarea { display:block; width:100%; padding:.75rem .85rem; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:.45rem; outline:none; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--accent); box-shadow:0 0 0 .2rem rgb(189 90 40 / .15); }.contact-form input:invalid:not(:placeholder-shown),.contact-form.was-validated input:invalid,.contact-form.was-validated textarea:invalid { border-color:#b42318; }.form-status { font-size:.9rem; }.form-success { color:#157347; }.form-error { color:#b42318; }
.site-footer { padding:4rem 0 1.5rem; color:var(--muted); background:var(--footer); }.site-footer .navbar-brand,.site-footer a { color:var(--paper); }.footer-links,.social-links { display:flex; flex-wrap:wrap; gap:.9rem 1.25rem; }.footer-links a { color:var(--muted); text-decoration:none; }.footer-links a:hover { color:var(--paper); }.social-links { justify-content:flex-end; }.social-links a { display:grid; width:2.2rem; height:2.2rem; place-items:center; color:var(--ink); background:var(--paper); border-radius:50%; text-decoration:none; }.social-links a:hover { color:#fff; background:var(--accent); }.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-top:3rem; padding-top:1.25rem; border-top:1px solid color-mix(in srgb,var(--paper) 18%,transparent); font-size:.85rem; }.footer-bottom a { text-decoration:none; }.footer-bottom a:hover { color:var(--cream); }
@media (max-width:991.98px) { .navbar-collapse { padding:1rem 0; }.navbar-nav { align-items:flex-start !important; }.theme-toggle { margin-top:.5rem; }.hero-image { min-height:360px; }.hero-card { left:1rem; }.section-space { padding:4rem 0; }.social-links { justify-content:flex-start; } }
@media (max-width:575.98px) { h1 { font-size:3rem; }.hero { padding-top:3.5rem; }.hero-meta { gap:1rem; }.hero-card { bottom:1rem; font-size:.8rem; }.visit-panel { padding:1rem; }.footer-bottom { margin-top:2rem; }.footer-links { gap:.7rem 1rem; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
