/* HalloChef CMS – public restaurant site. Theme via --primary / --accent / fonts. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.6;color:#3d3d3d;background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--font-heading);color:#222;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(2rem,5vw,3.4rem)}
h2{font-size:clamp(1.5rem,3vw,2.1rem)}
h3{font-size:1.2rem}
.wrap{max-width:1200px;margin:0 auto;padding-inline:20px}
.center{text-align:center}
.narrow{max-width:560px}
.muted{color:#777}
.small{font-size:.85rem}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:8px 12px}
hr.accent{width:80px;height:3px;border:0;background:var(--accent);margin:0 auto 2rem}
hr.accent.left{margin-left:0}
ul.plain{list-style:none;padding:0;margin:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.75em 1.4em;border-radius:4px;font-weight:600;font-size:.95rem;text-decoration:none;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;border:2px solid transparent;font-family:inherit;transition:filter .15s,background .15s,color .15s}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{filter:brightness(1.1)}
.btn-outline{border-color:var(--accent);color:var(--accent);background:transparent}
.btn-outline:hover{background:var(--accent);color:#fff}
.btn-outline-light{border-color:#fff;color:#fff;background:transparent}
.btn-link{background:none;color:#555;text-decoration:underline;text-transform:none;letter-spacing:0;padding-inline:.5em}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.center .ctas,.hero .ctas{justify-content:center}

/* Announcement + header */
.announcement{background:#EF4E4B;color:#fff;text-align:center;padding:8px 16px;font-weight:600;font-size:.95rem}
.site-header{position:sticky;top:0;z-index:50;background:var(--primary);color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--font-heading);font-size:1.4rem;font-weight:700}
.site-nav{display:flex;align-items:center;gap:24px}
.site-nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.site-nav a:not(.btn){color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;padding:4px 0;border-bottom:2px solid transparent}
.site-nav a:not(.btn):hover,.site-nav a[aria-current=page]{border-bottom-color:var(--accent)}
.site-nav .btn-outline,.hero .btn-outline,.site-footer .btn-outline{border-color:#fff;color:#fff}
.site-nav .btn-outline:hover,.hero .btn-outline:hover,.site-footer .btn-outline:hover{background:#fff;color:var(--primary)}
.burger{display:none;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:26px;height:3px;background:#fff;margin:5px 0;border-radius:2px;transition:transform .2s,opacity .2s}
@media(max-width:1023px){
  .burger{display:block}
  .site-nav{position:absolute;left:0;right:0;top:100%;background:var(--primary);flex-direction:column;align-items:stretch;padding:12px 20px 24px;display:none}
  .site-nav.open{display:flex}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav ul a{display:block;padding:12px 0!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
  .burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .burger[aria-expanded=true] span:nth-child(2){opacity:0}
  .burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}

/* Language switch */
.lang-switch{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.lang-switch a{display:inline-block;padding:4px 7px;border-radius:4px;color:#fff;text-decoration:none;font-size:.8rem;font-weight:700;letter-spacing:.05em;opacity:.7;border:0!important}
.lang-switch a:hover,.lang-switch a[aria-current]{opacity:1;background:rgba(255,255,255,.15)}
@media(max-width:1023px){.lang-switch{padding:12px 0}}

/* Hero */
.hero,.page-hero{position:relative;color:#fff;text-align:center;background:var(--primary) var(--hero,none) center/cover no-repeat}
.hero::before,.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.55))}
.hero-inner,.page-hero .wrap{position:relative}
.hero{min-height:min(78vh,720px);display:flex;align-items:center}
.hero-inner{padding-block:80px}
.hero h1,.page-hero h1{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.tagline{font-size:clamp(1.1rem,2.2vw,1.45rem);margin:0 auto 2rem;max-width:720px}
.page-hero{padding:72px 0 56px}
.page-hero h1{margin:0}
.page-body{padding-block:48px 64px}

/* Bands */
.band{padding:64px 0}
.band-light{background:#F5F5F5}
.band-dark{background:var(--primary);color:#fff}
.band-dark h3,.band-dark a{color:#fff}
.prose{max-width:760px}
.prose.center{margin:0 auto 2rem}
.prose img{border-radius:6px}
.split{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}
.split>img{border-radius:8px;box-shadow:0 12px 40px -12px rgba(0,0,0,.35)}
.split-single{grid-template-columns:1fr}
@media(max-width:800px){.split{grid-template-columns:1fr;gap:28px}}

/* Section alignment (admin choice): title, accent rule and text */
.align-left .section-title,.align-left .prose{text-align:left}
.align-left hr.accent{margin-left:0}
.align-center .section-title,.align-center .prose{text-align:center}
.align-center .prose{margin-inline:auto}
.align-right .section-title,.align-right .prose{text-align:right}
.align-right hr.accent{margin-right:0}
.align-right .split-single .prose{margin-left:auto}
.align-center .prose ul,.align-center .prose ol,.align-right .prose ul,.align-right .prose ol{list-style-position:inside;padding-left:0}
.section-intro{margin-bottom:2rem}
.align-center .ctas{justify-content:center}
.align-right .ctas{justify-content:flex-end}
.align-right .split:not(.split-single) .prose{margin-left:auto}
.align-center .cards{grid-template-columns:repeat(auto-fit,minmax(260px,300px));justify-content:center}
.align-right .cards{grid-template-columns:repeat(auto-fit,minmax(260px,300px));justify-content:end}
.align-center .gallery{grid-template-columns:repeat(auto-fit,minmax(220px,280px));justify-content:center}
.align-right .gallery{grid-template-columns:repeat(auto-fit,minmax(220px,280px));justify-content:end}
.align-center .card,.align-center .gallery figcaption{text-align:center}
.align-right .card,.align-right .gallery figcaption{text-align:right}
.align-center .split-single{justify-items:center}

/* Offers + gallery */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 4px 20px -8px rgba(0,0,0,.2);border-top:4px solid var(--accent)}
.card img{border-radius:6px;margin-bottom:14px;aspect-ratio:16/10;object-fit:cover;width:100%}
.card p{margin:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gallery figure{margin:0}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:6px}
.gallery figcaption{font-size:.85rem;color:#666;padding-top:4px}

/* Hours + status */
table.hours{margin:0 auto 1rem;border-collapse:collapse;min-width:min(100%,360px)}
table.hours th,table.hours td{padding:8px 12px;border-bottom:1px solid #ddd;text-align:left}
table.hours td{text-align:right;font-variant-numeric:tabular-nums}
.status{display:inline-block;padding:6px 14px;border-radius:999px;font-weight:600;font-size:.9rem}
.status-open{background:#e7f6e8;color:#237a2a}
.status-closed{background:#fdecec;color:#b92b28}

/* Delivery zones */
.zones{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:start}
.zone-map{height:420px;border-radius:8px;overflow:hidden;background:#e9e9e9;z-index:0}
.zone-table-wrap{overflow-x:auto}
.zone-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}
.zone-table th,.zone-table td{padding:10px 8px;border-bottom:1px solid #ddd;text-align:left}
.zone-table td:not(:first-child),.zone-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.zone-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}
.payments{padding-left:1.2em}
@media(max-width:900px){.zones{grid-template-columns:1fr}.zone-map{height:320px}}

/* Menu page */
.menu-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;position:sticky;top:72px;background:#fff;padding:12px 0;z-index:5}
.menu-cats a{padding:6px 14px;border:1px solid #ddd;border-radius:999px;text-decoration:none;color:#333;font-size:.9rem}
.menu-cats a:hover{border-color:var(--accent);color:var(--accent)}
.menu-cat{margin-bottom:40px;scroll-margin-top:140px}
.menu-items{list-style:none;padding:0;margin:0}
.menu-items li{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1px dashed #ddd}
.menu-items p{margin:.2em 0 0;color:#666;font-size:.92rem}
.price{white-space:nowrap;font-weight:600;color:var(--primary);font-variant-numeric:tabular-nums}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr}}
.contact-list dt{font-weight:600;margin-top:12px}
.contact-list dd{margin:0}
.contact-form{display:flex;flex-direction:column;gap:12px}
.contact-form label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.92rem}
.contact-form input,.contact-form textarea{font:inherit;padding:10px 12px;border:1px solid #ccc;border-radius:4px;font-weight:400}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--accent);border-color:transparent}
.contact-form .err{color:#b92b28;font-size:.85rem;margin-top:-8px}
.hp{position:absolute;left:-10000px}

/* Legal */
.legal table{border-collapse:collapse;margin-bottom:1.5rem}
.legal th,.legal td{border-bottom:1px solid #e3e3e3;padding:6px 12px 6px 0;text-align:left;vertical-align:top}
.legal h2{font-size:1.3rem;margin-top:2rem}

/* Footer */
.site-footer{background:#1e1e1e;color:#bbb;padding:56px 0 calc(24px + var(--mobile-cta-h,0px))}
.site-footer h3{color:#fff;font-size:1.05rem}
.site-footer a{color:#ddd}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.footer-grid .ctas{margin-top:16px}
.social{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0 0 8px}
.center .social{justify-content:center}
.social a{display:inline-block;padding:6px 14px;border:1px solid currentColor;border-radius:999px;text-decoration:none;font-size:.9rem}
.footer-legal{display:flex;flex-wrap:wrap;gap:8px 20px;border-top:1px solid #333;margin-top:40px;padding-top:20px;font-size:.85rem}
.footer-legal .powered{margin-left:auto}

/* Mobile sticky CTA */
.mobile-cta{display:none}
@media(max-width:700px){
  body{--mobile-cta-h:68px}
  .mobile-cta{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--primary);box-shadow:0 -4px 16px rgba(0,0,0,.2)}
  .mobile-cta .btn{flex:1;padding:.7em .6em;font-size:.85rem}
}

/* Cookie banner */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:2147482000;display:flex;justify-content:center}
.cookie-banner[hidden]{display:none}
.cookie-inner{background:#fff;max-width:640px;width:100%;border-radius:10px;padding:20px 22px;box-shadow:0 20px 60px -10px rgba(0,0,0,.45);font-size:.92rem}
.cookie-inner h2{font-size:1.15rem}
.cookie-settings{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.cookie-settings[hidden]{display:none}
.cookie-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cookie-actions .btn{font-size:.82rem;padding:.6em 1em}
.cookie-actions [hidden]{display:none}
@media(max-width:700px){.cookie-banner{bottom:calc(16px + var(--mobile-cta-h,0px))}}
