:root {
    --forest:#0d4e39;
    --forest-deep:#08382b;
    --leaf:#1f7756;
    --orange:#e36d2e;
    --gold:#e7b766;
    --cream:#f6f1e7;
    --paper:#fffdf8;
    --ink:#17221d;
    --muted:#657169;
    --line:#d8dfda;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Segoe UI",Arial,sans-serif; line-height:1.55; }
a { color:inherit; text-decoration:none; }
.public-header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; min-height:82px; padding:14px max(26px,calc((100% - 1220px)/2)); border-bottom:1px solid rgba(13,78,57,.12); background:rgba(255,253,248,.96); backdrop-filter:blur(12px); }
.public-brand { color:var(--forest-deep); font-size:1.55rem; font-weight:900; letter-spacing:-.055em; line-height:.9; }
.public-brand span { color:var(--orange); }
.public-brand small { display:block; margin-top:5px; color:var(--forest); font-size:.54rem; font-weight:750; letter-spacing:.16em; text-transform:uppercase; }
.public-nav { display:flex; align-items:center; gap:26px; color:#254237; font-size:.92rem; font-weight:700; }
.public-nav>a:not(.nav-cta):hover { color:var(--orange); }
.nav-cta,.public-button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:12px 20px; border:0; border-radius:4px; color:white; background:var(--forest); font:inherit; font-weight:800; cursor:pointer; }
.nav-cta:hover,.public-button:hover { background:var(--forest-deep); }
.language-switch { display:flex; gap:4px; padding:3px; border:1px solid var(--line); border-radius:999px; background:white; }
.language-switch a { min-width:31px; padding:4px 6px; border-radius:999px; text-align:center; font-size:.72rem; }
.language-switch a.is-active { color:white; background:var(--forest); }
.nav-toggle { display:none; }
.public-message { width:min(1180px,calc(100% - 36px)); margin:18px auto 0; padding:13px 16px; border:1px solid #87bb9d; border-radius:6px; color:#155233; background:#e8f5ec; }
.public-hero { display:grid; grid-template-columns:1.03fr .97fr; min-height:calc(100vh - 82px); background:var(--cream); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:80px max(40px,calc((100vw - 1220px)/2)); padding-right:6vw; }
.public-eyebrow { margin:0 0 18px; color:var(--orange); font-size:.73rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.public-hero h1,.public-page-hero h1 { margin:0; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.5rem,7vw,7.1rem); font-weight:500; letter-spacing:-.065em; line-height:.86; }
.public-hero h1 em { color:var(--orange); font-weight:500; }
.hero-lead { max-width:610px; margin:30px 0; color:#46594f; font-size:clamp(1.05rem,1.6vw,1.35rem); }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.public-link { color:var(--forest); font-weight:800; }
.hero-visual { position:relative; min-height:560px; overflow:hidden; }
.hero-visual>img { width:100%; height:100%; object-fit:cover; }
.hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(4,33,24,.45)); }
.hero-note { position:absolute; right:28px; bottom:28px; z-index:1; max-width:300px; padding:17px 20px; color:white; border-left:4px solid var(--gold); background:rgba(8,56,43,.9); }
.hero-note strong,.hero-note span { display:block; }
.hero-note span { margin-top:3px; font-size:.84rem; opacity:.85; }
.public-section { width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:100px 0; }
.split-heading { display:grid; grid-template-columns:1.05fr .95fr; gap:90px; align-items:start; }
.split-heading h2,.public-callout h2,.event-scope-heading h2,.event-brief h2 { margin:0; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.3rem,4vw,4.4rem); font-weight:500; letter-spacing:-.045em; line-height:1.02; }
.split-heading p { max-width:560px; margin:5px 0 0; color:var(--muted); font-size:1.13rem; }
.service-showcase { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding-top:10px; }
.showcase-card { display:block; overflow:hidden; border-bottom:3px solid var(--forest); background:var(--cream); transition:transform .2s ease,box-shadow .2s ease; }
.showcase-card:hover { transform:translateY(-5px); box-shadow:0 20px 40px rgba(20,53,38,.13); }
.showcase-card img { width:100%; height:260px; object-fit:cover; }
.showcase-card>span { display:block; margin:20px 22px 6px; color:var(--orange); font-size:.72rem; font-weight:900; }
.showcase-card h3 { margin:0 22px; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:1.65rem; font-weight:500; }
.showcase-card p { margin:9px 22px 24px; color:var(--muted); }
.public-callout { display:flex; justify-content:space-between; align-items:end; gap:40px; padding:70px max(28px,calc((100% - 1180px)/2)); color:white; background:var(--forest-deep); }
.public-callout h2 { max-width:850px; color:white; }
.public-button.light { flex:0 0 auto; color:var(--forest-deep); background:var(--gold); }
.public-page-hero { min-height:500px; padding:105px max(28px,calc((100% - 1180px)/2)); color:white; background:var(--forest-deep); }
.public-page-hero h1 { max-width:1000px; color:white; font-size:clamp(3.3rem,6vw,6.4rem); }
.public-page-hero>p:last-child { max-width:720px; margin:28px 0 0; color:#d8e7df; font-size:1.18rem; }
.editorial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.editorial-grid article { min-height:290px; padding:38px; background:var(--paper); }
.editorial-grid article>span { color:var(--orange); font-weight:900; }
.editorial-grid h2 { margin:35px 0 10px; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:2rem; font-weight:500; }
.editorial-grid p { color:var(--muted); }
.image-text-band { display:grid; grid-template-columns:1fr 1fr; background:var(--cream); }
.image-text-band>img { width:100%; height:100%; min-height:650px; object-fit:cover; }
.image-text-band>div { padding:80px max(40px,7vw); }
.process-list { margin:30px 0; padding:0; list-style:none; counter-reset:steps; }
.process-list li { position:relative; padding:0 0 25px 55px; counter-increment:steps; }
.process-list li::before { content:"0" counter(steps); position:absolute; left:0; color:var(--orange); font-weight:900; }
.process-list strong,.process-list span { display:block; }
.process-list strong { color:var(--forest-deep); font-size:1.1rem; }
.process-list span { margin-top:4px; color:var(--muted); }
.events-hero { background:linear-gradient(115deg,#08382b,#155b43); }
.event-scope { display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.event-scope-heading { position:sticky; top:130px; align-self:start; }
.event-scope-heading h2 { font-size:clamp(2.5rem,4vw,4rem); }
.event-scope-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.event-scope-grid article { min-height:230px; padding:28px; border:1px solid var(--line); background:white; }
.event-scope-grid article:nth-child(1) { border-top:5px solid var(--orange); }
.event-scope-grid article:nth-child(2) { border-top:5px solid var(--gold); }
.event-scope-grid article:nth-child(3) { border-top:5px solid var(--leaf); }
.event-scope-grid article:nth-child(4) { border-top:5px solid #3c8292; }
.event-scope-grid h3 { color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; font-weight:500; }
.event-scope-grid p { color:var(--muted); }
.event-brief { display:grid; grid-template-columns:1.1fr .9fr; gap:50px 90px; padding:85px max(28px,calc((100% - 1180px)/2)); background:var(--cream); }
.event-brief ul { margin:0; padding:0; list-style:none; }
.event-brief li { padding:13px 0; border-bottom:1px solid #ccd6cf; color:#3f5248; font-weight:700; }
.event-brief>.public-button { justify-self:start; }
.menu-hero { min-height:430px; background:linear-gradient(115deg,#7f3516,#d2652c); }
.menu-index { position:sticky; top:82px; z-index:10; display:flex; gap:8px; overflow:auto; padding:13px max(20px,calc((100% - 1180px)/2)); border-bottom:1px solid var(--line); background:rgba(255,253,248,.96); }
.menu-index a { flex:0 0 auto; padding:8px 13px; border:1px solid var(--line); border-radius:999px; color:var(--forest); font-size:.84rem; font-weight:800; background:white; }
.menu-index a:hover { color:white; background:var(--forest); }
.menu-sections { display:grid; gap:42px; }
.menu-section { scroll-margin-top:150px; overflow:hidden; border:1px solid var(--line); background:white; }
.menu-section>header { display:grid; grid-template-columns:1fr; min-height:200px; background:var(--cream); }
.menu-section.has-image>header { grid-template-columns:1fr 1fr; }
.menu-section>header>div { padding:38px; }
.menu-section>header span { color:var(--orange); font-weight:900; }
.menu-section h2 { margin:12px 0 8px; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.2rem,4vw,4rem); font-weight:500; }
.menu-section header p { margin:0; color:var(--muted); }
.menu-section header img { width:100%; height:100%; min-height:260px; object-fit:cover; }
.menu-items { display:grid; grid-template-columns:1fr 1fr; }
.menu-items details { padding:0 28px; border-top:1px solid var(--line); }
.menu-items details:nth-child(even) { border-left:1px solid var(--line); }
.menu-items summary { padding:22px 28px 22px 0; color:var(--forest-deep); font-weight:850; cursor:pointer; }
.menu-items summary::marker { color:var(--orange); }
.menu-items details p { margin:-5px 0 24px; color:var(--muted); }
.dietary-note { width:min(1180px,calc(100% - 40px)); margin:0 auto 100px; padding:32px; border-left:6px solid var(--orange); background:var(--cream); }
.dietary-note strong { color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:1.6rem; }
.dietary-note p { color:var(--muted); }
.dietary-note a { color:var(--forest); font-weight:850; }
.contact-hero { min-height:430px; }
.contact-layout { display:grid; grid-template-columns:.65fr 1.35fr; gap:70px; }
.contact-layout aside { padding:35px; color:white; background:var(--forest); }
.contact-layout aside h2 { font-family:Georgia,"Times New Roman",serif; font-size:2rem; font-weight:500; }
.contact-layout aside p { color:#d5e5dc; }
.contact-layout aside ul { margin:30px 0 0; padding:0; list-style:none; }
.contact-layout aside li { padding:12px 0; border-top:1px solid rgba(255,255,255,.25); }
.public-contact-form { padding:5px 0; }
.contact-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:24px; }
.contact-form-grid .wide { grid-column:1/-1; }
.public-contact-form label,.login-panel label { display:block; margin-bottom:6px; color:var(--forest-deep); font-size:.82rem; font-weight:800; }
.public-contact-form input,.public-contact-form textarea,.login-panel input { width:100%; padding:13px 14px; border:1px solid #aebdb4; border-radius:3px; color:var(--ink); background:white; font:inherit; }
.public-contact-form input:focus,.public-contact-form textarea:focus,.login-panel input:focus { outline:3px solid rgba(31,119,86,.14); border-color:var(--leaf); }
.field-error { display:block; margin-top:5px; color:#a33727; }
.public-form-errors { margin-bottom:20px; padding:13px 15px; border-left:4px solid #b53a27; color:#78281d; background:#fff0ec; }
.quote-confirmation-note { max-width:760px; margin:18px 0 14px; color:#5f6d66; font-size:.92rem; line-height:1.55; }
.login-panel { width:min(520px,calc(100% - 36px)); margin:80px auto; padding:42px; border:1px solid var(--line); background:var(--cream); }
.login-panel h1 { margin:0; color:var(--forest-deep); font-family:Georgia,"Times New Roman",serif; font-size:2.5rem; font-weight:500; }
.login-panel>p:not(.public-eyebrow) { color:var(--muted); }
.login-panel form { margin-top:25px; }
.login-panel input { margin-bottom:18px; }
.public-footer { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:55px max(28px,calc((100% - 1180px)/2)); color:#dce9e2; background:#062c22; }
.footer-brand { color:white; }
.public-footer p { max-width:480px; color:#aebfb6; }
.footer-links { display:flex; justify-content:flex-end; align-items:start; gap:25px; flex-wrap:wrap; font-weight:700; }
.footer-links a:hover { color:var(--gold); }
@media (max-width:900px) {
    .nav-toggle { display:block; padding:9px 12px; border:1px solid var(--forest); border-radius:4px; color:var(--forest); background:white; font-weight:800; }
    .public-nav { position:absolute; top:81px; right:0; left:0; display:none; align-items:stretch; flex-direction:column; gap:0; padding:12px 22px 22px; border-bottom:1px solid var(--line); background:var(--paper); }
    .public-nav.is-open { display:flex; }
    .public-nav>a { padding:12px 0; border-bottom:1px solid var(--line); }
    .language-switch { align-self:flex-start; margin:12px 0; }
    .nav-cta { margin-top:8px; }
    .public-hero { grid-template-columns:1fr; }
    .hero-copy { min-height:600px; padding:70px 30px; }
    .hero-visual { min-height:520px; }
    .split-heading,.event-scope,.event-brief,.contact-layout { grid-template-columns:1fr; gap:38px; }
    .event-scope-heading { position:static; }
    .service-showcase,.editorial-grid { grid-template-columns:1fr; }
    .showcase-card img { height:330px; }
    .image-text-band { grid-template-columns:1fr; }
    .image-text-band>img { min-height:480px; }
}
@media (max-width:620px) {
    .public-header { min-height:70px; padding:12px 18px; }
    .public-nav { top:69px; }
    .public-hero { min-height:auto; }
    .hero-copy { min-height:540px; padding:55px 22px; }
    .public-hero h1 { font-size:3.7rem; }
    .hero-visual { min-height:430px; }
    .hero-note { right:14px; bottom:14px; left:14px; }
    .public-section { width:min(100% - 28px,1180px); padding:70px 0; }
    .public-page-hero { min-height:410px; padding:75px 20px; }
    .public-page-hero h1 { font-size:3.3rem; }
    .public-callout { align-items:start; flex-direction:column; padding:55px 22px; }
    .image-text-band>div { padding:55px 22px; }
    .image-text-band>img { min-height:380px; }
    .event-scope-grid { grid-template-columns:1fr; }
    .event-brief { padding:65px 20px; }
    .menu-index { top:70px; }
    .menu-section.has-image>header { grid-template-columns:1fr; }
    .menu-section>header>div { padding:28px 22px; }
    .menu-items { grid-template-columns:1fr; }
    .menu-items details:nth-child(even) { border-left:0; }
    .contact-form-grid { grid-template-columns:1fr; }
    .contact-form-grid .wide { grid-column:auto; }
    .contact-layout aside { padding:28px 22px; }
    .login-panel { margin:45px auto; padding:28px 22px; }
    .public-footer { grid-template-columns:1fr; gap:30px; padding:45px 22px; }
    .footer-links { justify-content:flex-start; flex-direction:column; gap:12px; }
}

/* Public editorial refresh: original menu photography, restrained scale and mobile rhythm. */
img { display:block; max-width:100%; }
:focus-visible { outline:3px solid #b95321; outline-offset:5px; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:100; padding:12px 20px; background:white; color:var(--forest); }
.skip-link:focus { top:12px; }
.public-hero { min-height:640px; max-width:1440px; margin:auto; padding:48px 40px; gap:40px; align-items:center; }
.hero-copy { padding:35px 0 35px max(0px,calc((100vw - 1320px)/2)); }
.public-hero h1 { font-size:clamp(3.6rem,6.2vw,6.1rem); line-height:1.02; }
.hero-lead { font-size:1.12rem; max-width:460px; }
.hero-visual { min-height:0; aspect-ratio:1.05; border-radius:48% 48% 4px 4px; }
.hero-visual>img { position:absolute; inset:0; }
.hero-note { left:24px; right:24px; bottom:24px; max-width:none; }
.public-section { padding-top:76px; padding-bottom:76px; }
.split-heading { gap:55px; }
.split-heading h2,.hosting-guide h2 { font-size:clamp(2.2rem,3.3vw,3.6rem); line-height:1.12; }
.service-showcase { padding-top:0; gap:28px; }
.showcase-card { background:transparent; border-bottom:1px solid var(--line); }
.showcase-card img { height:auto; aspect-ratio:1.2; }
.showcase-card>span,.showcase-card h3,.showcase-card p { margin-left:0; margin-right:0; }
.hosting-guide { display:grid; grid-template-columns:1fr 1fr; gap:80px; border-top:1px solid var(--line); }
.hosting-guide h2 { font-family:Georgia,serif; color:var(--forest-deep); font-weight:500; margin:0 0 20px; letter-spacing:-.035em; }
.hosting-guide p:not(.public-eyebrow) { color:var(--muted); max-width:420px; }
.hosting-guide .process-list { margin:0; }
.public-page-hero { min-height:0; padding-top:76px; padding-bottom:76px; }
.public-page-hero h1 { font-size:clamp(3rem,5.3vw,5.3rem); line-height:1.04; max-width:970px; }
.menu-hero { background:var(--cream); }
.menu-hero h1 { color:var(--forest-deep); }
.menu-hero>p:last-child { color:var(--muted); }
.menu-tools { display:flex; align-items:center; justify-content:space-between; gap:24px; color:var(--muted); }
.menu-tools .public-button { flex-shrink:0; font-size:.85rem; }
.menu-section.has-image>header { grid-template-columns:1fr 260px; }
.menu-section header img { height:260px; min-height:0; }
.menu-section h2 { font-size:2.7rem; line-height:1.15; }
.image-text-band>img { min-height:0; object-fit:cover; }
.public-footer small { display:block; max-width:470px; color:#aebfb6; }
.event-examples { grid-column:1/-1; padding-bottom:32px; border-bottom:1px solid var(--line); }
.event-examples p:last-child { max-width:850px; color:var(--muted); font-size:1.1rem; }
.public-contact-form select { width:100%; padding:13px 14px; border:1px solid #aebdb4; border-radius:3px; color:var(--ink); background:white; font:inherit; }
.phone-combined-control { display:grid; grid-template-columns:minmax(190px,.8fr) minmax(180px,1.2fr); overflow:hidden; border:1px solid #aebdb4; border-radius:3px; background:white; }
.public-contact-form .phone-combined-control select,.public-contact-form .phone-combined-control input { min-width:0; border:0; border-radius:0; }
.public-contact-form .phone-combined-control select { border-right:1px solid #aebdb4; background:#f7f4ec; }
.public-contact-form .phone-combined-control:focus-within { outline:3px solid rgba(31,119,86,.14); border-color:var(--leaf); }
.public-contact-form .phone-combined-control select:focus,.public-contact-form .phone-combined-control input:focus { outline:0; }
.public-contact-form [data-field="service_time"] { display:grid; grid-template-columns:minmax(110px,160px) minmax(90px,110px) 1fr; gap:8px; align-items:start; }
.public-contact-form [data-field="service_time"]>label,.public-contact-form [data-field="service_time"]>#schedule-help,.public-contact-form [data-field="service_time"]>.field-error { grid-column:1/-1; }
.meal-extras { margin:0; padding:20px; border:1px solid var(--line); background:var(--cream); }
.meal-extras legend { padding:0 8px; color:var(--forest-deep); font-weight:850; }
.meal-extras>p { margin:0 0 14px; color:var(--muted); font-size:.88rem; }
.meal-extras-options { display:flex; gap:26px; flex-wrap:wrap; }
.meal-extras-options>div { display:flex; align-items:center; gap:9px; }
.meal-extras-options label { margin:0; }
.coverage-note { padding:18px; background:var(--cream); border-left:4px solid var(--orange); margin:0 0 24px; }
#schedule-help { font-size:.86rem; color:var(--muted); }
#schedule-help.outside-hours { padding:12px; color:#81370e; background:#fff1df; border-left:3px solid var(--orange); }
[hidden] { display:none !important; }
.public-contact-form input[type="checkbox"] { width:22px; height:22px; accent-color:var(--forest); }
.service-terms h2 { color:var(--forest); font-family:Georgia,serif; font-weight:500; }
.whatsapp-float { position:fixed; right:22px; bottom:22px; z-index:30; display:flex; align-items:center; gap:9px; min-height:50px; padding:11px 16px; border-radius:999px; color:white; background:#1f9d55; box-shadow:0 10px 30px rgba(0,0,0,.22); font-weight:850; }
.whatsapp-float:hover { background:#167a41; }
.whatsapp-float svg { width:27px; height:27px; }
@media(max-width:620px) { .phone-combined-control { grid-template-columns:minmax(135px,.9fr) minmax(120px,1.1fr); } }
@media(max-width:900px) {
    .public-hero { grid-template-columns:1fr 1fr; padding:40px 24px; gap:22px; min-height:500px; }
    .hero-copy { min-height:0; padding:20px 0; }
    .public-hero h1 { font-size:3.5rem; }
    .hero-visual { min-height:390px; }
    .service-showcase { grid-template-columns:repeat(3,1fr); gap:18px; }
    .showcase-card h3 { font-size:1.4rem; }
    .hosting-guide { gap:35px; }
}
@media(max-width:620px) {
    .public-hero { grid-template-columns:1fr; padding:34px 20px 24px; }
    .hero-copy { padding:8px 0 15px; }
    .public-hero h1 { font-size:clamp(3.1rem,13vw,4rem); }
    .hero-lead { margin:22px 0; }
    .hero-actions { gap:18px; }
    .hero-visual { min-height:0; aspect-ratio:1.1; border-radius:40% 40% 4px 4px; }
    .hero-note { left:14px; right:14px; bottom:14px; padding:12px 15px; }
    .hero-note span { font-size:.74rem; }
    .public-section { padding-top:48px; padding-bottom:48px; width:calc(100% - 40px); }
    .service-showcase { grid-template-columns:1fr; padding-top:0; gap:32px; }
    .showcase-card img { aspect-ratio:1.3; }
    .hosting-guide { grid-template-columns:1fr; gap:24px; }
    .public-page-hero { padding:50px 20px; }
    .menu-tools { align-items:start; flex-direction:column; gap:8px; }
    .menu-section.has-image>header { grid-template-columns:1fr; }
    .menu-section header img { height:220px; }
    .image-text-band>img { height:auto; min-height:0; aspect-ratio:1.2; }
    .whatsapp-float { right:14px; bottom:14px; padding:12px; }
    .whatsapp-float span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
