@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=DM+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap");:root{--color-bg:#faf9f6;--color-surface:#fff;--color-text:#1a1a1a;--color-text-muted:#5c5c5c;--color-border:#e8e6e1;--color-accent:#2d2d2d;--color-accent-hover:#1a1a1a;--font-heading:"Cormorant Garamond",Georgia,serif;--font-body:"DM Sans",system-ui,sans-serif;--radius:8px;--shadow:0 2px 12px rgba(0,0,0,.06);--max-width:1320px}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg);min-height:100vh}main{background:#94a588}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit;font-size:inherit}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.2}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 .75rem}@media (min-width:768px){.container{padding:0 1.25rem}}.header .container{padding-left:1.25rem;padding-right:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;border-radius:var(--radius);transition:background .2s,color .2s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover)}.btn-outline{background:transparent;color:var(--color-text);border:1.5px solid var(--color-border)}.btn-outline:hover{border-color:var(--color-text-muted);background:rgba(0,0,0,.02)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.input{width:100%;padding:.75rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.input:focus{outline:none;border-color:var(--color-text-muted)}.input::placeholder{color:var(--color-text-muted);opacity:.8}.label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text);margin-bottom:.375rem}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-inner{display:flex;align-items:center;justify-content:space-between;padding-block:1rem}.logo{display:inline-flex;align-items:center;line-height:1}.logo-image{height:44px;width:auto}.nav{display:flex;align-items:center;gap:1.5rem}.nav-link{font-size:.9375rem;font-weight:500;color:var(--color-text-muted);transition:color .2s}.nav-link:hover{color:var(--color-text)}.cart-link{position:relative}.cart-badge{position:absolute;top:-6px;right:-10px;min-width:1.25rem;height:1.25rem;padding:0 5px;font-size:.75rem;font-weight:600;color:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.cart-badge,.footer{background:var(--color-accent)}.footer{color:#f5f5f0;margin-top:auto;padding:2.5rem 0}.footer-inner{display:grid;grid-gap:1.5rem;gap:1.5rem;text-align:center;justify-items:center}@media (min-width:640px){.footer-inner{grid-template-columns:repeat(4,1fr);text-align:center;justify-items:center}}.footer-heading{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#fff}.footer-text{font-size:.9375rem;color:hsla(0,0%,100%,.85);line-height:1.6}.footer-link{color:hsla(0,0%,100%,.9);text-decoration:underline;text-underline-offset:2px}.footer-link:hover{color:#fff}.footer-copy{grid-column:1/-1;font-size:.875rem;color:hsla(0,0%,100%,.7);margin-top:.5rem}.menu-item{background:var(--color-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr}@media (min-width:640px){.menu-item{grid-template-columns:200px 1fr}}.menu-item-media{aspect-ratio:16/10;background:var(--color-border);position:relative}.menu-item-badge{position:absolute;top:.5rem;left:.5rem;min-width:1.5rem;height:1.5rem;padding:0 .4rem;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:#fff;font-weight:700;font-size:.875rem;line-height:1;box-shadow:0 6px 16px rgba(0,0,0,.18)}@media (min-width:640px){.menu-item-media{aspect-ratio:auto;min-height:140px}}.menu-item-image{width:100%;height:100%;object-fit:cover}.menu-item-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8e6e1,#d4d2cc)}.menu-item-placeholder-text{font-family:var(--font-heading);font-size:2.5rem;font-weight:600;color:rgba(0,0,0,.15)}.menu-item-content{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.menu-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.menu-item-name{font-size:1.25rem;font-weight:600}.menu-item-price{font-weight:600;color:var(--color-text);white-space:nowrap}.menu-item-description{font-size:.9375rem;color:var(--color-text-muted);flex:1 1}.menu-item-add{align-self:flex-start;margin-top:.5rem}.menu-item--sold-out .menu-item-media{opacity:.88}.menu-item-sold-out-badge{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:rgba(15,15,16,.42);color:#fff;font-weight:700;font-size:.9375rem;letter-spacing:.02em;text-transform:uppercase;pointer-events:none}.menu-item-add:disabled{opacity:.55;cursor:not-allowed}.menu-item-add.btn-primary:disabled:hover{background:var(--color-accent)}.item-options-modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:1rem calc(1rem + env(safe-area-inset-right, 0px)) calc(1rem + env(safe-area-inset-bottom, 0px)) calc(1rem + env(safe-area-inset-left, 0px));box-sizing:border-box}.item-options-modal{width:100%;max-width:440px;max-height:min(88vh,720px);background:var(--color-surface);border-radius:var(--radius);box-shadow:0 8px 40px rgba(0,0,0,.15);display:flex;flex-direction:column;overflow:hidden}.item-options-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1rem .5rem;flex-shrink:0;border-bottom:1px solid var(--color-border)}.item-options-modal-title{font-family:var(--font-heading);font-size:1.35rem;font-weight:600;margin:0;line-height:1.25;padding-bottom:.5rem}.item-options-modal-close{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;color:var(--color-text-muted);border-radius:var(--radius);transition:background .2s,color .2s}.item-options-modal-close:hover{background:rgba(0,0,0,.06);color:var(--color-text)}.item-options-modal-desc{font-size:.9rem;color:var(--color-text-muted);padding:.75rem 1rem 0;margin:0;flex-shrink:0}.item-options-modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:1rem;-webkit-overflow-scrolling:touch}.item-options-fieldset{border:none;margin:0;padding:0}.item-options-fieldset+.item-options-fieldset{margin-top:1.25rem}.item-options-legend{font-family:var(--font-heading);font-size:1.05rem;font-weight:600;padding:0;margin-bottom:.35rem}.item-options-hint{font-size:.8125rem;color:var(--color-text-muted);margin:0 0 .5rem}.item-options-list{list-style:none;margin:0;padding:0}.item-options-row+.item-options-row{margin-top:.35rem}.item-options-label{display:flex;align-items:center;gap:.65rem;width:100%;padding:.5rem .65rem;border-radius:var(--radius);cursor:pointer;transition:background .15s;border:1px solid var(--color-border);background:var(--color-bg)}.item-options-label:hover{background:#f0efe9}.item-options-input{flex-shrink:0;width:1.1rem;height:1.1rem;accent-color:var(--color-accent)}.item-options-label-text{flex:1 1;font-size:.9375rem;text-align:left}.item-options-label-price{font-size:.875rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.item-options-modal-footer{flex-shrink:0;padding:1rem;border-top:1px solid var(--color-border);background:var(--color-surface)}.item-options-error{font-size:.875rem;color:#8b2942;margin:0 0 .65rem}.item-options-footer-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem;font-size:1rem}.item-options-total-label{color:var(--color-text-muted)}.item-options-total-value{font-family:var(--font-heading);font-size:1.25rem;font-weight:600}.item-options-add-btn{width:100%}.item-options-add-btn:disabled{opacity:.45;cursor:not-allowed}.basket-empty{text-align:center;padding:3rem 1.5rem;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow)}.basket-empty-text{margin-bottom:1rem;color:var(--color-text-muted)}.basket-list{list-style:none}.basket-item{padding:1rem 0;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.75rem}.basket-item:last-child{border-bottom:0}.basket-item:first-child{padding-top:.5rem}.basket-item-info{display:grid;grid-template-columns:minmax(0,1fr) auto auto;justify-content:space-between;align-items:center;grid-gap:.75rem;gap:.75rem}.basket-item-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.basket-item-name{font-weight:500;min-width:0;word-break:break-word}.basket-item-options{font-size:.8125rem;line-height:1.35;color:var(--color-text-muted);word-break:break-word}.basket-item-price{font-weight:600;white-space:nowrap;justify-self:end}.quantity-control{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;justify-self:end}.quantity-btn{width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;color:var(--color-text);transition:background .2s}.quantity-btn:hover{background:rgba(0,0,0,.05)}.quantity-value{min-width:1.35rem;text-align:center;font-weight:500;font-size:.8125rem}.basket-summary{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.basket-total{display:flex;justify-content:space-between;align-items:center;font-size:1.125rem;margin-bottom:1rem}.basket-checkout-btn{width:100%;padding:1rem}.checkout-empty{padding:2rem;background:var(--color-surface);border-radius:var(--radius);text-align:center;color:var(--color-text-muted)}.checkout-empty a{color:var(--color-accent);text-decoration:underline}.checkout-form{max-width:28rem;display:flex;flex-direction:column;gap:1.25rem}.checkout-error{background:#fef2f2;color:#b91c1c}.checkout-error,.contact-success{padding:.75rem 1rem;border-radius:var(--radius);font-size:.9375rem}.contact-success{background:#ecfdf5;color:#047857}.checkout-field{display:flex;flex-direction:column;gap:.375rem}.payment-methods{border:none;padding:0}.payment-methods legend{margin-bottom:.5rem}.payment-option{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;cursor:pointer;font-size:.9375rem}.payment-option input{width:1.125rem;height:1.125rem}.checkout-total{font-size:1.125rem;padding-top:.5rem}.checkout-submit{width:100%;padding:1rem;font-size:1rem}.checkout-page-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:1.5rem;gap:1.5rem;align-items:start}.checkout-page-layout .checkout-basket-sidebar{order:1;min-width:0;width:100%}.checkout-page-layout .checkout-form{order:2;max-width:none;width:100%}.checkout-basket-sidebar{min-width:0}.checkout-summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;width:100%}.checkout-summary-item-label{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.2rem;font-size:.9375rem}.checkout-summary-item-title-row{display:inline;font-weight:500}.checkout-summary-item-title{font-weight:500}.checkout-summary-item-options{display:block;font-size:.8125rem;line-height:1.35;font-weight:400;color:var(--color-text-muted);word-break:break-word}.checkout-summary-qty{font-weight:400;color:var(--color-text-muted);font-size:.875rem}.checkout-basket-sidebar .basket-total{margin-bottom:0}@media (min-width:1024px){.checkout-page-layout{grid-template-columns:minmax(0,1fr) minmax(340px,620px);gap:2rem}.checkout-page-layout .checkout-form{order:1;max-width:28rem}.checkout-page-layout .checkout-basket-sidebar{order:2}}.hero{padding:2rem;text-align:center}.hero-title{font-size:clamp(2rem,5vw,2.75rem);font-weight:600;margin-bottom:.5rem}.hero-subtitle{font-size:1rem;color:var(--color-text-muted);max-width:32rem;margin:0 auto}.section-title{font-size:1.5rem;font-weight:600;margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.container.contact-page,.container.home-gallery,.container.menu-page{padding-left:1.25rem;padding-right:1.25rem}.gallery-header{text-align:center;font-size:30px}.gallery-grid{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem}@media (min-width:769px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}}.gallery-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.gallery-media{position:relative;aspect-ratio:16/10;background:var(--color-border)}.gallery-image{width:100%;height:100%;object-fit:cover}.menu-grid{display:grid;grid-gap:1.25rem;gap:1.25rem}@media (min-width:640px){.menu-grid{gap:1.5rem}}.page-title{font-size:clamp(1.75rem,4vw,2.25rem);margin-bottom:1.5rem}.main-content{padding-block:2rem;min-height:60vh}.menu-page-layout{display:grid;grid-gap:1.5rem;gap:1.5rem}.menu-main-column{min-width:0}.dietary-tags{display:flex;gap:.85rem;flex-wrap:wrap;margin:0 0 .5rem}.dietary-tag{display:inline-flex;align-items:baseline;gap:.35rem;line-height:1.2}.dietary-code{color:#78b56d}.dietary-notice{margin-bottom:1rem}.dietary-note-text{margin:0;line-height:1.35}.basket-sidebar{align-self:start}.basket-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.basket-title{font-size:1.5rem;text-align:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.basket-empty{color:var(--color-text-muted);font-size:.9375rem;padding:.25rem 0}.basket-summary{margin-top:0}@media (min-width:1024px){.menu-page-layout{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:2rem}.basket-sidebar{position:-webkit-sticky;position:sticky;top:5rem;max-height:calc(100dvh - 5rem - 1.5rem);overflow:hidden;display:flex;flex-direction:column;min-height:0}.basket-sidebar .basket-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.basket-sidebar .basket-title{flex-shrink:0}.basket-sidebar .basket-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.basket-sidebar .basket-summary{flex-shrink:0}}@media (max-width:1023px){.menu-basket-desktop{display:none!important}.menu-page.main-content{padding-bottom:calc(2rem + 4.5rem + env(safe-area-inset-bottom, 0px))}}.menu-basket-fab{display:none}@media (max-width:1023px){.menu-basket-fab{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;position:fixed;z-index:45;bottom:calc(1rem + env(safe-area-inset-bottom, 0px));right:calc(1.3rem + env(safe-area-inset-right, 0px));min-height:3.25rem;padding:.65rem 1rem .65rem .85rem;font-size:.9375rem;font-weight:600;color:#fff;background:var(--color-accent);border:none;border-radius:9999px;box-shadow:0 4px 14px rgba(0,0,0,.2);cursor:pointer;transition:background .2s,transform .1s}.menu-basket-fab:hover{background:var(--color-accent-hover)}.menu-basket-fab:active{transform:scale(.98)}.menu-basket-fab-icon{width:1.35rem;height:1.35rem;flex-shrink:0}.menu-basket-fab-label{line-height:1}.menu-basket-fab-badge{min-width:1.35rem;height:1.35rem;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--color-accent);background:#fff;border-radius:999px}}.menu-basket-backdrop{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;padding-left:calc(1.25rem + env(safe-area-inset-left, 0px));padding-right:calc(1.25rem + env(safe-area-inset-right, 0px));padding-bottom:env(safe-area-inset-bottom,0);box-sizing:border-box}@media (min-width:1024px){.menu-basket-backdrop{display:none!important}}.menu-basket-sheet{width:100%;max-width:100%;max-height:min(90vh,640px);background:var(--color-surface);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -8px 32px rgba(0,0,0,.12);display:flex;flex-direction:column;overflow:hidden;padding:1rem}.menu-basket-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 0 .75rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.menu-basket-sheet-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;margin:0}.menu-basket-sheet-close{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--color-text-muted);border-radius:var(--radius);cursor:pointer;transition:background .2s}.menu-basket-sheet-close:hover{background:rgba(0,0,0,.06);color:var(--color-text)}.menu-basket-sheet-body{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden;padding:0 0 1rem}.menu-basket-sheet-body .basket-panel{border:none;box-shadow:none;background:transparent;padding:1rem 0 0;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.menu-basket-sheet-body .basket-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.menu-basket-sheet-body .basket-summary{flex-shrink:0}.menu-category-nav-wrapper{position:-webkit-sticky;position:sticky;top:calc(3.5rem + 15px);z-index:40;margin-bottom:1.5rem;margin-left:0;margin-right:0;width:100%;background:#94a588}@media (min-width:768px){.menu-category-nav-wrapper{margin-left:0;margin-right:0;padding-left:0;padding-right:0}}.menu-category-nav{display:flex;align-items:center;gap:.5rem;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.25rem 0}.menu-category-nav::-webkit-scrollbar{display:none}.menu-category-nav-btn{flex-shrink:0;scroll-snap-align:start;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:9999px;white-space:nowrap;transition:color .2s,background .2s,border-color .2s}.menu-category-nav-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.menu-category-nav-btn.active{color:#fff;background:var(--color-accent);border-color:var(--color-accent)}.menu-category-nav-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.contact-hero{text-align:center;margin-bottom:2rem}.contact-intro{color:var(--color-text-muted);max-width:36rem;margin:0 auto;font-size:1.0625rem;line-height:1.65}.contact-section-heading{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.contact-section-intro{color:var(--color-text-muted);font-size:.9375rem;margin-bottom:1rem}.contact-cards{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:1fr}@media (min-width:640px){.contact-cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.contact-cards{grid-template-columns:repeat(3,1fr)}}.contact-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.75rem}.contact-card-title{font-size:1.125rem;font-weight:600;margin:0}.contact-card-text{color:var(--color-text-muted);font-size:.9375rem;line-height:1.55;margin:0;flex:1 1}.contact-card-detail{font-size:.875rem;color:var(--color-text);margin:.25rem 0 0;padding-top:.75rem;border-top:1px solid var(--color-border)}.contact-message-area{margin-top:2.5rem;background:#0f0f10;border:1px solid hsla(0,0%,100%,.08);border-radius:var(--radius);padding:2.25rem 1.5rem}.contact-message-layout{display:flex;flex-direction:column;gap:1.75rem}.contact-message-form{width:100%;display:flex;justify-content:center}.contact-message-copy{display:flex;flex-direction:column;align-items:center;text-align:center}@media (min-width:900px){.contact-message-layout{flex-direction:row;align-items:center;gap:3rem}.contact-message-form{flex:1 1}.contact-message-copy{flex:1 1;align-items:center;text-align:center}}.contact-message-area .contact-section-heading{color:#fff;font-size:clamp(1.9rem,4vw,2.4rem);margin-bottom:.75rem}.contact-message-area .contact-section-intro{color:hsla(0,0%,100%,.78);font-size:1rem;line-height:1.7;max-width:26rem}.contact-message-area .checkout-form{max-width:30rem;width:100%;margin:0 auto}.contact-message-area .checkout-field{gap:.25rem;position:relative}.contact-message-area .label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-message-area .input,.contact-message-area textarea.input{background:transparent;border:none;border-bottom:1.5px solid hsla(0,0%,100%,.45);border-radius:0;color:#fff;padding:.6rem .25rem}.contact-message-area .input:focus{border-color:hsla(0,0%,100%,.75)}.contact-message-area .input::placeholder{color:hsla(0,0%,100%,.55);opacity:1}.contact-message-area textarea.input{min-height:120px}.contact-message-area .checkout-error{background:rgba(190,18,60,.14);color:#fb7185;border:1px solid rgba(190,18,60,.3)}.contact-message-area .contact-success{background:rgba(16,185,129,.14);color:#34d399;border:1px solid rgba(16,185,129,.3)}.contact-message-area .btn-primary{background:#fff;color:#0f0f10}.contact-message-area .btn-primary:hover{background:#f3f4f6}