:root{--color-charcoal:#171717;--color-ivory:#f7f2e8;--color-burgundy:#762a36;--color-gold:#b08d57;--color-gray:#6b6b6b;--color-gray-on-dark:#9a9a9a;--color-white:#fff;--color-error:#9a2f2f;--font-heading:Georgia, "Times New Roman", serif;--font-body:Inter, Arial, Helvetica, sans-serif;--space-xs:.5rem;--space-sm:.75rem;--space-md:1.25rem;--space-lg:2rem;--space-xl:3rem;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-round:50%;--container-width:1100px;--container-padding:1.5rem;--transition-fast:.15s ease;--transition-base:.2s ease;--shadow-sm:0 1px 2px #17171714;--shadow-md:0 4px 16px #1717171f;--shadow-lg:0 12px 32px #1717173d;--header-height:4.25rem}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--color-ivory);color:var(--color-charcoal);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.skip-link{background:var(--color-ivory);color:var(--color-charcoal);padding:var(--space-sm) var(--space-md);z-index:200;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-sm);top:var(--space-sm)}header{z-index:50;background-color:var(--color-charcoal);color:var(--color-ivory);position:sticky;top:0}.header-bar{justify-content:space-between;align-items:center;gap:var(--space-md);max-width:var(--container-width);min-height:var(--header-height);padding:0 var(--container-padding);margin:0 auto;display:flex}.site-title{font-family:var(--font-heading);color:var(--color-ivory);white-space:nowrap;font-size:1.5rem;text-decoration:none}.nav-toggle{width:2.5rem;height:2.5rem;color:var(--color-ivory);cursor:pointer;background:0 0;border:none;display:none;position:relative}.nav-toggle-icon,.nav-toggle-icon:before,.nav-toggle-icon:after{width:1.5rem;height:2px;transition:transform var(--transition-fast);background-color:currentColor;position:absolute;left:50%;transform:translate(-50%)}.nav-toggle-icon{top:50%;transform:translate(-50%,-50%)}.nav-toggle-icon:before{content:"";top:-.45rem}.nav-toggle-icon:after{content:"";top:.45rem}.nav-toggle[aria-expanded=true] .nav-toggle-icon{background-color:#0000}.nav-toggle[aria-expanded=true] .nav-toggle-icon:before{top:0;transform:translate(-50%)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-icon:after{top:0;transform:translate(-50%)rotate(-45deg)}.primary-nav{align-items:center;gap:var(--space-lg);display:flex}.primary-nav ul{gap:var(--space-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.primary-nav a{color:var(--color-ivory);border-bottom:2px solid #0000;padding:.25rem .1rem;text-decoration:none}.primary-nav a:hover,.primary-nav a.active{border-bottom-color:var(--color-gold)}.nav-cta{white-space:nowrap}@media (width<=768px){.nav-toggle{display:block}.primary-nav{top:var(--header-height);align-items:stretch;gap:var(--space-md);background-color:var(--color-charcoal);padding:var(--space-md) var(--container-padding) var(--space-lg);box-shadow:var(--shadow-lg);flex-direction:column;display:none;position:absolute;left:0;right:0}.primary-nav.nav-open{display:flex}.primary-nav ul{gap:var(--space-sm);flex-direction:column}.nav-cta{text-align:center}}footer{background-color:var(--color-charcoal);color:var(--color-ivory);padding:var(--space-xl) var(--container-padding) var(--space-lg)}.footer-grid{max-width:var(--container-width);gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0 auto;display:grid}.footer-title{margin:0 0 var(--space-sm);font-family:var(--font-heading);font-size:1.25rem}footer address{font-style:normal}footer address p{margin:0 0 .35rem}footer a{color:var(--color-ivory)}.footer-hours{margin:var(--space-sm) 0 0;padding:0;list-style:none}.footer-hours li{justify-content:space-between;gap:var(--space-sm);border-bottom:1px solid #f7f2e826;padding:.2rem 0;display:flex}.footer-heading{margin:0 0 var(--space-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--color-gold);font-size:.8rem;font-weight:600}.footer-nav ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.footer-newsletter .newsletter-form{max-width:360px}.footer-copyright{max-width:var(--container-width);margin:var(--space-lg) auto 0;padding-top:var(--space-md);text-align:center;color:var(--color-gray-on-dark);border-top:1px solid #f7f2e826;font-size:.9rem}.button{border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);border:2px solid #0000;min-height:2.75rem;padding:.65rem 1.5rem;font-weight:600;text-decoration:none;display:inline-block}.button-primary{background-color:var(--color-burgundy);color:var(--color-ivory)}.button-primary:hover{background-color:#611f29}.button-secondary{border-color:var(--color-burgundy);color:var(--color-burgundy);background-color:#0000}.button:disabled{opacity:.6;cursor:not-allowed}.hero{position:relative;overflow:hidden}.hero-image{object-fit:cover;width:100%;height:auto;max-height:70vh;display:block}.hero-overlay{justify-content:center;align-items:flex-start;gap:var(--space-sm);padding:var(--space-lg);color:var(--color-ivory);background:linear-gradient(#17171740,#171717cc);flex-direction:column;display:flex;position:absolute;inset:0}.hero-overlay h1{margin:0;font-size:clamp(2rem,5vw,3.5rem)}.hero-overlay p{max-width:40ch;margin:0;font-size:clamp(1rem,2vw,1.25rem)}.hero-actions{gap:var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.hero-actions .button-secondary{border-color:var(--color-ivory);color:var(--color-ivory);background-color:#0000}.intro-section{gap:var(--space-lg);grid-template-columns:1fr 1fr;align-items:center;display:grid}.intro-image{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-md);width:100%;height:auto}@media (width<=768px){.intro-section{grid-template-columns:1fr}}.award-grid,.review-grid,.founder-grid,.commitment-grid,.featured-dish-grid{gap:var(--space-md);margin:var(--space-md) 0;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0;list-style:none;display:grid}.award-card,.review-card,.commitment-card{background-color:var(--color-white);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-sm);border:1px solid #1717171a}.award-card-title,.commitment-title{font-family:var(--font-heading);color:var(--color-burgundy);margin:0 0 .35rem}.award-card-meta{color:var(--color-gray);margin:0}.review-card-quote{margin:0 0 .5rem;font-style:italic}.review-card-source{color:var(--color-gray);margin:0}.founder-card{text-align:center}.founder-image{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-md);width:100%;max-width:280px;height:auto;margin:0 auto var(--space-sm);display:block}.founder-name{font-family:var(--font-heading);margin:0;font-size:1.1rem}.founder-role{margin:0 0 var(--space-sm);color:var(--color-gray);font-size:.9rem}.founder-bio{text-align:left}.featured-dish-card{text-align:center}.featured-dish-image{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-md);width:100%;height:auto;margin-bottom:var(--space-xs);display:block}.featured-dish-name{margin:0;font-weight:600}.featured-dish-price{color:var(--color-burgundy);margin:0}.menu-item-grid{gap:var(--space-md);margin:var(--space-md) 0 var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));padding:0;list-style:none;display:grid}.menu-item-card{border-radius:var(--radius-md);background-color:var(--color-white);border:1px solid #1717171a;flex-direction:column;display:flex;overflow:hidden}.menu-item-image{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto;display:block}.menu-item-details{padding:var(--space-md)}.menu-item-heading{justify-content:space-between;gap:var(--space-md);font-weight:600;display:flex}.menu-item-name{margin:0}.menu-item-price{color:var(--color-burgundy);white-space:nowrap;margin:0}.menu-item-description{color:var(--color-gray);margin:.5rem 0 0}.menu-cta{text-align:center;padding:var(--space-lg);background-color:var(--color-white);border-radius:var(--radius-md);border:1px solid #1717171a}.gallery-filters{gap:var(--space-xs);margin:var(--space-md) 0;flex-wrap:wrap;display:flex}.filter-button{border:2px solid var(--color-burgundy);color:var(--color-burgundy);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background-color:#0000;border-radius:999px;padding:.5rem 1rem;font-weight:600}.filter-button.active,.filter-button:hover{background-color:var(--color-burgundy);color:var(--color-ivory)}.gallery-grid{gap:var(--space-md);margin:var(--space-md) 0 var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0;list-style:none;display:grid}.gallery-item{flex-direction:column;display:flex}.gallery-thumb{cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;width:100%;padding:0;display:block;overflow:hidden}.gallery-thumb img{object-fit:cover;width:100%;height:180px;transition:transform var(--transition-base);display:block}.gallery-thumb:hover img,.gallery-thumb:focus-visible img{transform:scale(1.03)}.gallery-item-caption{padding:.4rem .1rem 0}.gallery-item-title{margin:0;font-size:.95rem;font-weight:600}.gallery-item-category{color:var(--color-gray);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.8rem}.lightbox-backdrop{padding:var(--space-md);z-index:1000;background-color:#171717eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-content{align-items:center;gap:var(--space-sm);max-width:min(90vw,1100px);max-height:90vh;display:flex;position:relative}.lightbox-figure{flex-direction:column;align-items:center;max-height:90vh;margin:0;display:flex}.lightbox-image{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:68vh}.lightbox-close{border-radius:var(--radius-round);background-color:var(--color-ivory);width:2.5rem;height:2.5rem;color:var(--color-charcoal);cursor:pointer;z-index:1;border:none;font-size:1.5rem;line-height:1;position:absolute;top:-1rem;right:-1rem}.lightbox-nav{border-radius:var(--radius-round);width:3rem;height:3rem;color:var(--color-ivory);cursor:pointer;background-color:#f7f2e826;border:none;flex:none;font-size:1.75rem;line-height:1}.lightbox-nav:hover{background-color:#f7f2e84d}.lightbox-figure figcaption{margin-top:var(--space-sm);color:var(--color-ivory);text-align:center}.lightbox-title{font-family:var(--font-heading);margin:0;font-size:1.1rem}.lightbox-caption{margin:.2rem 0 0}.lightbox-category{text-transform:uppercase;letter-spacing:.05em;color:var(--color-gold);margin-bottom:.25rem;font-size:.8rem;display:block}.lightbox-position{color:var(--color-gray);margin:.3rem 0 0;font-size:.85rem}@media (width<=640px){.lightbox-content{flex-direction:column}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:.25rem}.lightbox-next{right:.25rem}}.about-figure{margin:var(--space-lg) 0 0}.about-figure-image{object-fit:cover;border-radius:var(--radius-md);width:100%;height:auto;max-height:480px;display:block}.about-figure figcaption{margin-top:var(--space-xs);color:var(--color-gray);text-align:center}.form-row{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.form-field{margin-bottom:var(--space-md);flex-direction:column;gap:.3rem;display:flex}.form-field label{font-weight:600}.form-field input,.form-field select,.form-field textarea{font:inherit;border-radius:var(--radius-sm);background-color:var(--color-white);color:var(--color-charcoal);border:1px solid #17171740;padding:.6rem .75rem}.form-field input:disabled,.form-field select:disabled{color:var(--color-gray);background-color:#1717170d}.form-field input[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:var(--color-error)}.required-indicator{color:var(--color-burgundy)}.form-field-hint{color:var(--color-gray);margin:0;font-size:.85rem}.form-field-error{color:var(--color-error);margin:0;font-size:.85rem}.form-field-checkbox{margin-bottom:var(--space-md)}.form-field-checkbox label{align-items:flex-start;gap:.5rem;font-weight:400;display:flex}.form-field-checkbox input{margin-top:.2rem}.form-status{margin:var(--space-sm) 0 0;min-height:1.2em;color:var(--color-burgundy);font-weight:600}.form-status-error{color:var(--color-error)}.form-status-success{color:#2f6a3f}.availability-status{margin:-.5rem 0 var(--space-md);color:var(--color-gray);font-size:.9rem}.reservation-confirmation{margin-bottom:var(--space-lg);padding:var(--space-md);border-radius:var(--radius-md);background-color:#f1f7f2;border:1px solid #2f6a3f}.reservation-confirmation-title{margin:0 0 var(--space-sm);font-family:var(--font-heading);color:#2f6a3f;font-size:1.1rem}.reservation-confirmation dl{gap:var(--space-sm) var(--space-md);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0;display:grid}.reservation-confirmation dl div{flex-direction:column;display:flex}.reservation-confirmation dt{text-transform:uppercase;letter-spacing:.03em;color:var(--color-gray);font-size:.8rem}.reservation-confirmation dd{margin:0;font-weight:600}.newsletter-form,.reservation-form{max-width:640px}.reservations-intro{gap:var(--space-lg);margin-bottom:var(--space-lg);grid-template-columns:1fr 1fr;align-items:center;display:grid}.reservations-image{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-md);width:100%;height:auto}@media (width<=768px){.reservations-intro{grid-template-columns:1fr}}.reservation-policy{margin-top:var(--space-lg);padding:var(--space-md);background-color:var(--color-white);border-radius:var(--radius-md);border:1px solid #1717171a}.reservation-policy ul{margin:0;padding-left:1.25rem}.reservation-policy li+li{margin-top:.35rem}.section{max-width:var(--container-width);padding:var(--space-xl) var(--container-padding);margin:0 auto}.section h2{margin-top:0}.hours-list{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0;display:grid}.hours-list div{justify-content:space-between;gap:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid #1717171a;display:flex}.hours-list dt,.hours-list dd{margin:0}.about-history{max-width:70ch;font-size:1.1rem}.menu-section+.menu-section{margin-top:var(--space-lg)}.gallery-category{margin-bottom:var(--space-xl)}@media (width<=480px){.section{padding:var(--space-lg) 1rem}}
