:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--brand-background); color: var(--brand-text); font-family: "DM Sans", sans-serif; line-height: 1.6; }
.prospect-notice { padding: .48rem 0; background: #161b22; color: #f5f7fa; font-size: .78rem; letter-spacing: .01em; text-align: center; }
.prospect-notice strong { color: #fff; }
h1, h2, h3, .display-serif { font-family: "Playfair Display", Georgia, serif; }
a { color: var(--brand-primary); }
.site-header { background: color-mix(in srgb, var(--brand-surface) 94%, transparent); backdrop-filter: blur(16px); border-bottom: 1px solid color-mix(in srgb, var(--brand-border) 75%, transparent); }
.navbar { min-height: 82px; }
.navbar-brand img { display: block; width: min(250px, 58vw); height: auto; }
.navbar-toggler { border: 1px solid var(--brand-border); color: var(--brand-primary); font-size: 1.55rem; }
.navbar .nav-link { color: var(--brand-text); font-weight: 600; padding: .8rem .9rem !important; }
.navbar .nav-link:hover, .navbar .nav-link:focus { color: var(--brand-secondary); }
.btn-brand, .btn-brand:visited { border: 1px solid var(--brand-primary); background: var(--brand-primary); color: #fff; border-radius: 999px; font-weight: 700; padding: .7rem 1.25rem; }
.btn-brand:hover, .btn-brand:focus { background: var(--brand-primary-hover); border-color: var(--brand-primary-hover); color: #fff; transform: translateY(-1px); }
.btn-outline-brand { border: 1px solid var(--brand-primary); color: var(--brand-primary); border-radius: 999px; font-weight: 700; padding: .7rem 1.25rem; }
.btn-outline-brand:hover { background: var(--brand-primary); color: #fff; }
.btn-accent { border: 1px solid var(--brand-secondary); background: var(--brand-secondary); color: #fff; border-radius: 999px; font-weight: 700; padding: .7rem 1.25rem; }
.btn-accent:hover { background: var(--brand-secondary-hover); color: #fff; }
.cart-count { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; margin-left: .25rem; border-radius: 999px; background: var(--brand-secondary); color: #fff; font-size: .72rem; }
.flash-wrap { position: fixed; z-index: 1100; top: 92px; left: 50%; transform: translateX(-50%); max-width: 680px; }
.flash-wrap .alert { box-shadow: 0 15px 45px rgba(0,0,0,.15); border: 0; }
.eyebrow { color: var(--brand-secondary); font-size: .76rem; letter-spacing: .2em; font-weight: 700; text-transform: uppercase; }
.section-heading { font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.05; color: var(--brand-primary); }
.page-hero { padding: 5.5rem 0 4rem; background: var(--brand-primary); color: var(--brand-background); }
.page-hero .eyebrow { color: #e8c9c1; }
.page-hero h1 { font-size: clamp(3rem, 8vw, 6rem); line-height: .96; }
.page-hero p { max-width: 650px; color: color-mix(in srgb, var(--brand-background) 82%, transparent); }
.site-footer { padding: 5rem 0 1.5rem; background: var(--brand-primary); color: color-mix(in srgb, var(--brand-background) 85%, transparent); }
.footer-logo { width: min(300px, 100%); margin-bottom: 1.6rem; }
.site-footer h2 { color: var(--brand-background); font-family: "DM Sans", sans-serif; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1rem; }
.site-footer a, .site-footer span { display: block; color: inherit; text-decoration: none; margin: .4rem 0; }
.site-footer a:hover { color: #fff; }
.powered { font-size: .78rem; opacity: .7; }
.footer-form { display: flex; border-bottom: 1px solid color-mix(in srgb, var(--brand-background) 45%, transparent); }
.footer-form input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #fff; padding: .75rem 0; }
.footer-form input::placeholder { color: color-mix(in srgb, var(--brand-background) 60%, transparent); }
.footer-form button { border: 0; background: transparent; color: #fff; padding: .75rem; }
.socials { display: flex; gap: .7rem; margin-top: 1rem; }
.socials a { font-size: 1.2rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 3rem; margin-top: 3rem; border-top: 1px solid color-mix(in srgb, var(--brand-background) 18%, transparent); font-size: .76rem; opacity: .72; }
.whatsapp-float { position: fixed; z-index: 1050; right: 1.2rem; bottom: 1.2rem; width: 3.35rem; height: 3.35rem; display: grid; place-items: center; border-radius: 50%; background: #25d366; color: #fff; font-size: 1.5rem; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.surface-card { background: var(--brand-surface); border: 1px solid var(--brand-border); border-radius: 1.1rem; }
.form-control, .form-select { border-color: var(--brand-border); border-radius: .7rem; padding: .75rem .9rem; background-color: var(--brand-surface); }
.form-control:focus, .form-select:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand-primary) 15%, transparent); }
.form-label { font-weight: 700; font-size: .9rem; }
.text-brand { color: var(--brand-primary) !important; }
.text-accent { color: var(--brand-secondary) !important; }
.bg-surface { background: var(--brand-surface); }
.home-hero { overflow: hidden; padding: 5.5rem 0 6.5rem; background: radial-gradient(circle at 10% 15%, color-mix(in srgb, var(--brand-surface) 85%, transparent), transparent 38%), var(--brand-background); }
.home-hero h1 { margin: 1rem 0 1.5rem; font-size: clamp(3.6rem, 7.5vw, 7.6rem); line-height: .88; letter-spacing: -.045em; color: var(--brand-primary); }
.home-hero h1 em { color: var(--brand-secondary); font-weight: 600; }
.hero-lead { max-width: 570px; margin-bottom: 2rem; color: var(--brand-muted); font-size: 1.12rem; }
.hero-visual { position: relative; padding: 1.1rem 0 0 2rem; }
.hero-visual::before { content: ""; position: absolute; inset: -2rem 2rem 2rem -1rem; border-radius: 49% 51% 42% 58% / 58% 35% 65% 42%; background: var(--brand-primary); }
.hero-visual img { position: relative; width: 100%; aspect-ratio: 1.12; border-radius: 48% 52% 45% 55% / 45% 40% 60% 55%; object-fit: cover; box-shadow: 0 25px 70px color-mix(in srgb, var(--brand-primary) 24%, transparent); }
.hero-stamp { position: absolute; z-index: 2; right: -.5rem; bottom: -.8rem; display: grid; place-items: center; width: 9.2rem; aspect-ratio: 1; border-radius: 50%; background: var(--brand-secondary); color: #fff; text-align: center; text-transform: uppercase; letter-spacing: .12em; font-size: .68rem; font-weight: 700; line-height: 1.5; transform: rotate(8deg); }
.intro-band { padding: 6rem 0; background: var(--brand-surface); border-block: 1px solid var(--brand-border); }
.intro-band h2 { max-width: 900px; }
.intro-band > .container > p:last-child { max-width: 690px; color: var(--brand-muted); }
.category-section { background: var(--brand-background); }
.text-link { color: var(--brand-primary); font-weight: 700; text-decoration: none; }
.text-link:hover { color: var(--brand-secondary); }
.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--brand-border); border-left: 1px solid var(--brand-border); }
.category-tile { min-height: 220px; display: flex; flex-direction: column; justify-content: space-between; padding: 1.7rem; color: var(--brand-text); text-decoration: none; border-right: 1px solid var(--brand-border); border-bottom: 1px solid var(--brand-border); transition: .2s ease; }
.category-tile > span, .category-tile small { color: var(--brand-muted); }
.category-tile h3 { margin: auto 0 .2rem; color: var(--brand-primary); font-size: 2rem; }
.category-tile:hover { background: var(--brand-primary); color: #fff; transform: translateY(-3px); }
.category-tile:hover h3, .category-tile:hover span, .category-tile:hover small { color: #fff; }
.featured-menu { background: var(--brand-primary); }
.featured-menu .section-heading { color: var(--brand-background); }
.featured-menu .eyebrow { color: #e7bfc4; }
.dish-card { display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; padding: 1.6rem; border-radius: 1.2rem; background: color-mix(in srgb, var(--brand-background) 96%, white); }
.dish-card small { color: var(--brand-secondary); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dish-card h3 { margin: .65rem 0; color: var(--brand-primary); font-size: 1.65rem; }
.dish-card p { color: var(--brand-muted); font-size: .92rem; }
.dish-bottom { display: flex; justify-content: space-between; align-items: center; }
.dish-bottom strong { color: var(--brand-secondary); }
.dish-bottom form { margin: 0; }
.dish-bottom button { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--brand-primary); color: #fff; font-size: 1.3rem; }
.story-section { background: var(--brand-surface); }
.story-image { width: 100%; border-radius: 1.25rem; }
.story-section p:not(.eyebrow) { color: var(--brand-muted); font-size: 1.08rem; }
.visit-section { padding: 5rem 0; background: var(--brand-background); }
.visit-panel { display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem; padding: clamp(2rem, 6vw, 5rem); border-radius: 1.5rem; background: var(--brand-secondary); color: #fff; }
.visit-panel .eyebrow { color: #f2d7d9; }
.visit-panel h2 { font-size: clamp(3rem, 6vw, 5.5rem); line-height: .93; }
.visit-details { align-self: end; }
.visit-details strong { font-size: .75rem; text-transform: uppercase; letter-spacing: .15em; }
.menu-tools { display: flex; gap: 1rem; align-items: center; margin-bottom: 4rem; padding: .8rem; border-radius: 1rem; background: color-mix(in srgb, var(--brand-surface) 96%, transparent); border: 1px solid var(--brand-border); }
.sticky-tools { position: sticky; z-index: 20; top: 94px; }
.menu-search { min-width: 270px; display: flex; align-items: center; gap: .65rem; padding: .65rem .8rem; border-right: 1px solid var(--brand-border); }
.menu-search input { width: 100%; border: 0; outline: 0; background: transparent; }
.category-pills { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: .1rem; }
.category-pills a { flex: 0 0 auto; padding: .5rem .8rem; border-radius: 999px; color: var(--brand-muted); text-decoration: none; font-size: .82rem; font-weight: 700; }
.category-pills a:hover { background: var(--brand-primary); color: #fff; }
.menu-category { padding: 2rem 0 5rem; scroll-margin-top: 180px; }
.menu-category-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 2rem; padding-bottom: 1.5rem; border-bottom: 2px solid var(--brand-primary); }
.menu-category-heading h2, .order-category > h2 { margin: 0; color: var(--brand-primary); font-size: clamp(2.5rem, 5vw, 4.5rem); }
.menu-category-heading > p { color: var(--brand-muted); }
.menu-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; padding: 1.6rem .2rem; border-bottom: 1px solid var(--brand-border); }
.menu-row[hidden] { display: none; }
.menu-row h3 { margin: 0; color: var(--brand-text); font-family: "DM Sans", sans-serif; font-size: 1.05rem; font-weight: 700; }
.menu-row p { max-width: 780px; margin: .45rem 0 0; color: var(--brand-muted); font-size: .91rem; }
.menu-price { text-align: right; white-space: nowrap; }
.menu-price strong, .menu-price del { display: block; }
.menu-price del { color: var(--brand-muted); font-size: .8rem; }
.dietary-tag, .sold-tag { padding: .2rem .48rem; border-radius: 999px; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.dietary-tag { color: var(--brand-primary); background: color-mix(in srgb, var(--brand-primary) 12%, transparent); }
.sold-tag { color: var(--brand-secondary); background: color-mix(in srgb, var(--brand-secondary) 12%, transparent); }
.sold-out { opacity: .58; }
.order-category { margin-bottom: 4.5rem; }
.order-card { display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; padding: 1.35rem; border: 1px solid var(--brand-border); border-radius: 1rem; background: var(--brand-surface); }
.order-card h3 { font-family: "DM Sans", sans-serif; font-size: 1.05rem; font-weight: 700; }
.order-card p { color: var(--brand-muted); font-size: .86rem; }
.cart-panel { top: 110px !important; padding: 1.7rem; border-radius: 1.2rem; background: var(--brand-primary); color: #fff; }
.cart-panel .eyebrow { color: #e7bfc4; }
.cart-panel h2 { color: var(--brand-background); }
.cart-line { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: .9rem; }
.cart-line small { display: block; opacity: .7; }
.cart-total { display: flex; justify-content: space-between; padding: 1.5rem 0; }
.table-chip { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.25rem; padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; font-weight: 700; }
.checkout-line { padding: 1.1rem 0; border-bottom: 1px solid var(--brand-border); }
.checkout-line > div { display: flex; justify-content: space-between; gap: 1rem; }
.quantity-form { display: flex; gap: .5rem; margin-top: .7rem; }
.quantity-form input { width: 4.5rem; padding: .3rem .5rem; border: 1px solid var(--brand-border); border-radius: .4rem; }
.checkout-total { display: flex; justify-content: space-between; padding-top: 1.3rem; font-size: 1.15rem; }
.confirmation-section { min-height: 70vh; display: grid; place-items: center; padding: 5rem 0; }
.confirmation-card { max-width: 720px; margin: auto; padding: clamp(2rem, 6vw, 4.5rem); border: 1px solid var(--brand-border); border-radius: 1.5rem; background: var(--brand-surface); text-align: center; }
.confirmation-card h1 { color: var(--brand-primary); font-size: clamp(2.5rem, 6vw, 4.5rem); }
.confirmation-icon { width: 4.5rem; height: 4.5rem; display: grid; place-items: center; margin: 0 auto 1.5rem; border-radius: 50%; background: var(--brand-primary); color: #fff; font-size: 2rem; }
.confirmation-summary, .confirmation-card li { display: flex; justify-content: space-between; gap: 1rem; }
.confirmation-summary { margin: 2rem 0 1rem; padding: 1rem; border-radius: .7rem; background: var(--brand-background); }
.confirmation-card ul { list-style: none; margin: 0 0 2rem; padding: 0; text-align: left; }
.confirmation-card li { padding: .65rem 0; border-bottom: 1px solid var(--brand-border); }
.contact-list { display: grid; gap: .7rem; margin-top: 2rem; }
.contact-list a { display: flex; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--brand-border); border-radius: .8rem; color: var(--brand-text); text-decoration: none; background: var(--brand-surface); }
.contact-list i { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; background: var(--brand-primary); color: #fff; }
.contact-list small { display: block; color: var(--brand-muted); text-transform: uppercase; letter-spacing: .1em; font-size: .65rem; }
@media (max-width: 991px) { .hero-visual { margin-top: 2rem; } .category-grid { grid-template-columns: repeat(2, 1fr); } .visit-panel { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .menu-tools { display: block; } .sticky-tools { top: 78px; } .menu-search { min-width: 0; border-right: 0; border-bottom: 1px solid var(--brand-border); margin-bottom: .5rem; } .menu-category-heading { grid-template-columns: 1fr; } }
@media (max-width: 575px) { .home-hero { padding: 3.8rem 0 5rem; } .home-hero h1 { font-size: 3.65rem; } .hero-visual { padding-left: 0; } .hero-stamp { width: 7.4rem; right: 0; } .category-grid { grid-template-columns: 1fr; } .category-tile { min-height: 170px; } .visit-section { padding: 2.5rem 0; } .menu-row { gap: .8rem; } .menu-row p { font-size: .82rem; } .menu-price { font-size: .86rem; } }
@media (max-width: 991px) { .navbar-collapse { padding: 1rem 0 1.4rem; } .navbar .btn-brand { display: inline-block; margin-top: .4rem; } }
@media (max-width: 575px) { .navbar { min-height: 72px; } .navbar-brand img { width: 205px; } .page-hero { padding: 4rem 0 3rem; } .site-footer { padding-top: 3.5rem; } .footer-bottom { flex-direction: column; } }
@media print { .site-header, .site-footer, .whatsapp-float, .flash-wrap, .confirmation-actions, .confirmation-icon { display: none !important; } body { background: #fff; } .confirmation-section { min-height: 0; padding: 0; } .confirmation-card { max-width: none; border: 0; box-shadow: none; } }
