:root { --ink:#251713; --wine:#641f1c; --wine-dark:#3d1514; --terracotta:#bd5138; --saffron:#e7a938; --cream:#f6edda; --paper:#fffaf0; --line:rgba(77,35,27,.18); --shadow:0 18px 50px rgba(52,20,14,.13); --font-heading:'Fraunces',Georgia,serif; --font-body:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:var(--font-body); line-height:1.65; background-color:var(--cream); background-image:radial-gradient(circle at 15% 10%,rgba(189,81,56,.06),transparent 22rem),repeating-linear-gradient(0deg,transparent 0 27px,rgba(91,51,36,.025) 28px); }
a { color:var(--wine); text-decoration:none; transition:.2s ease; }
a:hover { color:var(--terracotta); }
.container { width:min(1160px,calc(100% - 40px)); margin-inline:auto; }
.container.narrow { max-width:680px; }
h1,h2,h3 { font-family:var(--font-heading); line-height:1.08; color:var(--wine-dark); }
h1 { font-size:clamp(3.25rem,8vw,6.8rem); letter-spacing:-.055em; margin:0; }
h2 { font-size:clamp(2.25rem,5vw,4.2rem); letter-spacing:-.04em; margin:0 0 22px; }
h3 { font-size:1.38rem; margin:0 0 8px; }
.section { padding:clamp(76px,10vw,124px) 0; }
.section-title { text-align:center; margin-bottom:46px; }
.section-eyebrow { text-align:center; }
.eyebrow { color:var(--terracotta); font-size:.75rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.site-header { position:sticky; z-index:50; top:0; background:rgba(255,250,240,.95); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:flex; align-items:center; gap:12px; color:var(--wine-dark); }
.brand-logo { width:48px; height:48px; object-fit:cover; border-radius:50%; border:2px solid var(--wine); }
.brand-copy { display:grid; line-height:1; }
.brand-copy small { margin-top:5px; color:#7b6259; font-size:.65rem; letter-spacing:.09em; text-transform:uppercase; }
.brand-text { font:700 1.7rem/1 var(--font-heading); color:var(--wine-dark); }
.brand-text.small { font-size:2rem; }
.main-nav { display:flex; align-items:center; gap:28px; }
.main-nav a { color:#4d3932; font-size:.88rem; font-weight:600; }
.main-nav a.active:not(.nav-reserve),.main-nav a:hover { color:var(--terracotta); }
.main-nav .nav-reserve { padding:10px 19px; color:var(--paper); background:var(--wine); border-radius:3px; }
.main-nav .nav-reserve:hover { background:var(--terracotta); color:white; }
.nav-toggle { display:none; padding:8px; border:0; background:transparent; cursor:pointer; }
.nav-toggle span { width:24px; height:2px; display:block; margin:5px; background:var(--wine-dark); }
.hero { min-height:660px; display:grid; align-items:center; overflow:hidden; position:relative; color:var(--paper); background:linear-gradient(90deg,rgba(44,13,13,.96) 0%,rgba(71,19,17,.89) 53%,rgba(62,22,15,.65) 100%),url('/images/hero.jpg') center/cover; }
.hero::before { content:''; position:absolute; inset:0; opacity:.16; background-image:repeating-linear-gradient(45deg,transparent 0 18px,#fff 18px 19px),repeating-linear-gradient(-45deg,transparent 0 18px,#fff 18px 19px); mask-image:linear-gradient(90deg,transparent 45%,#000); }
.hero::after { content:''; position:absolute; right:-110px; top:-90px; width:440px; height:440px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 35px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.025); }
.hero-content { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) 260px; align-items:center; gap:80px; padding-block:90px; }
.hero-copy { max-width:780px; }
.hero h1 { color:var(--paper); }
.hero h1 em { color:var(--saffron); font-weight:600; }
.hero .eyebrow { color:#f1c969; }
.hero-text { max-width:620px; margin:25px 0 34px; color:#eadbce; font-size:1.12rem; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.hero-seal { aspect-ratio:1; display:grid; place-content:center; text-align:center; border:1px solid rgba(255,255,255,.42); border-radius:50%; transform:rotate(5deg); box-shadow:inset 0 0 0 8px rgba(255,255,255,.05),0 0 0 1px rgba(255,255,255,.08); }
.hero-seal::before,.hero-seal::after { content:'✦'; color:var(--saffron); font-size:1.1rem; }
.hero-seal span { text-transform:uppercase; letter-spacing:.22em; font-size:.62rem; }
.hero-seal strong { font:700 3rem/1.15 var(--font-heading); color:var(--paper); }
.welcome-strip { color:var(--cream); background:var(--terracotta); }
.welcome-strip-inner { min-height:54px; display:flex; align-items:center; justify-content:center; gap:24px; font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.welcome-strip i { width:5px; height:5px; transform:rotate(45deg); background:var(--saffron); }
.intro-section { position:relative; background:var(--paper); }
.intro-section::before { content:''; position:absolute; left:0; top:0; bottom:0; width:16px; background:repeating-linear-gradient(0deg,var(--wine) 0 16px,var(--saffron) 16px 32px,#244f63 32px 48px,var(--cream) 48px 64px); }
.intro-grid { max-width:860px; text-align:center; }
.intro-text p:not(.eyebrow) { color:#665149; font-size:1.04rem; }
.text-link { display:inline-flex; gap:12px; align-items:center; margin-top:18px; padding-bottom:5px; border-bottom:1px solid var(--wine); font-weight:700; }
.text-link span { font-size:1.3rem; }
.highlights-section { background:#eee0c9; }
.highlights-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.highlight-card,.menu-item { position:relative; padding:28px 24px; overflow:hidden; background:var(--paper); border:1px solid rgba(100,31,28,.14); border-radius:4px; box-shadow:var(--shadow); }
.highlight-card::after,.menu-item::after { content:''; position:absolute; right:-22px; bottom:-22px; width:70px; height:70px; border:10px double rgba(189,81,56,.08); transform:rotate(45deg); }
.highlight-card p { min-height:78px; color:#715d55; font-size:.9rem; }
.dish-number { display:block; margin-bottom:28px; color:var(--terracotta); font-size:.7rem; font-weight:700; letter-spacing:.14em; }
.price { position:relative; z-index:1; color:var(--wine); font-weight:700; white-space:nowrap; }
.cta-section { text-align:center; color:var(--paper); background:var(--wine); }
.cta-section h2 { color:var(--paper); }
.cta-section p:not(.eyebrow) { margin:-8px auto 30px; color:#ead6cc; }
.cta-section .eyebrow { color:var(--saffron); }
.cta-section .hero-actions { justify-content:center; }
.btn { display:inline-block; padding:13px 24px; border:1px solid transparent; border-radius:3px; font:700 .9rem/1.4 var(--font-body); cursor:pointer; transition:transform .2s ease,background .2s ease,color .2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { color:var(--wine-dark); background:var(--saffron); }
.btn-primary:hover { color:var(--wine-dark); background:#f5c557; }
.btn-outline { color:var(--wine); border-color:var(--wine); }
.btn-outline:hover { color:var(--paper); background:var(--wine); }
.hero .btn-outline,.cta-section .btn-outline { color:var(--paper); border-color:rgba(255,255,255,.55); }
.hero .btn-outline:hover,.cta-section .btn-outline:hover { color:var(--wine-dark); background:var(--paper); }
.btn-secondary { color:var(--paper); background:var(--wine); }
.btn-secondary:hover { color:white; background:var(--terracotta); }
.btn-block { display:block; width:100%; text-align:center; }
.btn-small { padding:7px 13px; font-size:.78rem; }
.page-header { position:relative; overflow:hidden; padding:82px 0 68px; text-align:center; color:var(--cream); background:var(--wine-dark); }
.page-header::after { content:''; position:absolute; inset:0; opacity:.08; background-image:linear-gradient(45deg,transparent 45%,white 45% 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,white 45% 55%,transparent 55%); background-size:40px 40px; }
.page-header .container { position:relative; z-index:1; }
.page-header h1 { color:var(--paper); font-size:clamp(3.2rem,7vw,5.8rem); }
.page-header p { color:#e7d4c8; }
.menu-category { margin-bottom:64px; }
.category-title { display:flex; align-items:center; gap:18px; margin-bottom:26px; font-size:2.35rem; }
.category-title::after { content:''; height:1px; flex:1; background:var(--line); }
.menu-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:14px; }
.menu-item { padding:22px; box-shadow:0 8px 25px rgba(52,20,14,.07); }
.menu-item-header { display:flex; justify-content:space-between; gap:18px; align-items:baseline; }
.menu-item-desc { margin:7px 0 0; color:#755f55; font-size:.9rem; }
.form-card,.order-summary,.admin-block,.stat-card,.login-card { padding:32px; background:var(--paper); border:1px solid var(--line); border-top:4px solid var(--terracotta); border-radius:4px; box-shadow:var(--shadow); }
.form-row { margin-bottom:18px; }
.form-row label { display:block; margin-bottom:7px; color:#5d463e; font-size:.88rem; font-weight:700; }
.form-row-split { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
input,select,textarea { width:100%; padding:12px 13px; color:var(--ink); font:1rem var(--font-body); background:#fffdf8; border:1px solid #d9c9b8; border-radius:3px; }
input:focus,select:focus,textarea:focus { outline:3px solid rgba(231,169,56,.3); border-color:var(--wine); }
.alert { padding:14px 18px; margin-bottom:20px; border-radius:3px; }
.alert-success { color:#245333; background:#e3f0df; border:1px solid #8ab27d; }
.alert-error { color:#722520; background:#f6dfdb; border:1px solid #cf8179; }
.order-layout { display:grid; grid-template-columns:2fr 1fr; gap:30px; align-items:start; }
.qty-label { display:flex; justify-content:space-between; align-items:center; margin-top:10px; color:#755f55; font-size:.9rem; }
.qty-input { width:70px; margin-left:10px; }
.order-summary { position:sticky; top:100px; }
.summary-list,.order-items-list { list-style:none; padding:0; }
.summary-list li { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px dashed #d7c6b4; }
.summary-list .empty { color:#846f66; border:0; }
.summary-total { margin:18px 0; color:var(--wine); font-size:1.2rem; font-weight:700; }
.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:start; }
.contact-map iframe { border-radius:4px; box-shadow:var(--shadow); filter:sepia(18%) saturate(.8); }
.note { color:#765e54; font-style:italic; }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.gallery-item { overflow:hidden; aspect-ratio:4/3; border-radius:4px; }
.gallery-item img { width:100%; height:100%; object-fit:cover; }
.site-footer { padding-top:60px; color:#d9c3b7; background:#281513; border-top:8px solid var(--terracotta); }
.footer-inner { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:55px; padding-bottom:42px; }
.footer-col h4 { margin-top:0; color:var(--saffron); text-transform:uppercase; font-size:.75rem; letter-spacing:.16em; }
.footer-col .brand-text { color:var(--paper); }
.site-footer a { color:#f0d4c2; }
.site-footer a:hover { color:var(--saffron); }
.footer-bottom { padding:18px 0; color:#a88f84; text-align:center; font-size:.78rem; border-top:1px solid rgba(255,255,255,.1); }
.inline-form { display:inline; }
.link-button { padding:0; color:var(--wine); font:inherit; background:none; border:0; cursor:pointer; }
.link-button.danger { color:#a4312a; }
.admin-body { background:#eee6d7; }
.admin-section { padding-top:35px; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; }
.stat-card { display:block; text-align:center; }
.stat-number { display:block; color:var(--wine); font-size:2.5rem; font-weight:700; }
.stat-label { color:#755f55; }
.admin-block { margin-bottom:24px; }
.admin-block-header { display:flex; justify-content:space-between; align-items:center; }
.inline-add-form { display:flex; flex-wrap:wrap; gap:10px; }
.inline-add-form input,.inline-add-form select { width:auto; flex:1; min-width:140px; }
.admin-table { width:100%; margin-top:14px; border-collapse:collapse; }
.admin-table th,.admin-table td { padding:10px; text-align:left; border-bottom:1px solid #dfd1c1; }
.admin-table th { color:var(--wine); }
.status-form select { width:auto; }
.login-page { min-height:100vh; display:grid; place-items:center; background:var(--wine-dark); }
.login-card { width:min(390px,calc(100% - 32px)); text-align:center; }
.back-link { display:inline-block; margin-top:16px; }
@media(max-width:900px) { .hero-content{grid-template-columns:1fr}.hero-seal{display:none}.highlights-grid{grid-template-columns:repeat(2,1fr)}.order-layout,.contact-grid,.footer-inner{grid-template-columns:1fr}.order-summary{position:static} }
@media(max-width:760px) { .header-inner{min-height:72px}.brand-copy small{display:none}.nav-toggle{display:block}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:22px;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.main-nav.open{display:flex}.main-nav a{padding:11px 6px}.main-nav .nav-reserve{margin-top:8px;text-align:center}.hero{min-height:610px}.hero-content{padding-block:75px}.welcome-strip-inner{gap:12px;font-size:.6rem;letter-spacing:.08em}.welcome-strip-inner span:last-child,.welcome-strip-inner i:last-of-type{display:none}.form-row-split{grid-template-columns:1fr} }
@media(max-width:560px) { .container{width:min(100% - 28px,1160px)}.highlights-grid{grid-template-columns:1fr}.highlight-card p{min-height:0}.hero-actions .btn{width:100%;text-align:center}.intro-section::before{width:7px}.footer-inner{gap:28px} }
@media(prefers-reduced-motion:reduce) { *{scroll-behavior:auto!important;transition:none!important} }
