:root { font-size:19px; --brand:#174c3c; --ink:#203e32; --muted:#627169; --paper:#fafbf6; --line:#dce3d8; font-family:Arial,Tahoma,sans-serif; color:var(--ink); background:var(--paper); color-scheme:light; }
* { box-sizing:border-box; }
body { margin:0; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
img { max-width:100%; display:block; }
p { line-height:1.8; margin:0 0 20px; }
h1,h2,h3 { margin:0; font-weight:750; letter-spacing:-.035em; overflow-wrap:anywhere; }
h1 { font-size:clamp(52px,6vw,88px); line-height:1.08; }
h2 { font-size:clamp(30px,3.6vw,47px); line-height:1.2; }
h3 { font-size:24px; line-height:1.4; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #698947; outline-offset:5px; }
.wrap { width:min(1180px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:80px; }
.eyebrow { display:block; font-size:15px; font-weight:700; letter-spacing:.14em; margin-bottom:20px; color:var(--brand); }
.quiet { font-size:16px; color:var(--muted); }
.text-link { font-weight:700; border-bottom:1px solid; padding-bottom:5px; }
.skip-link { position:fixed; top:-100px; inset-inline-start:20px; padding:15px; background:#fff; z-index:100; }
.skip-link:focus { top:15px; }
.site-header { position:sticky; top:0; z-index:20; background:#fafbf6f7; border-bottom:1px solid var(--line); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:22px; min-height:94px; }
.brand { display:flex; align-items:center; gap:12px; font-size:27px; font-weight:800; letter-spacing:-.05em; }
.brand b { color:#88a84c; }
.brand img { flex-shrink:0; }
.brand span { overflow-wrap:anywhere; }
.site-header nav { display:flex; align-items:center; gap:28px; font-size:16px; }
.locale-link { font-weight:700; }
.nav-toggle { display:none; border:1px solid var(--line); background:#fff; border-radius:12px; padding:10px; align-items:center; gap:8px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:17px 25px; background:var(--brand); color:#fff; border-radius:12px; border:1px solid var(--brand); font-size:17px; font-weight:700; line-height:1.5; text-align:center; }
.button:hover { background:#285c46; }
.button.small { padding:12px 19px; }
.button.secondary { background:transparent; color:var(--ink); border-color:#a5b5a6; }
.button.light { background:#d3e69c; color:var(--ink); border-color:#d3e69c; }
.hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; padding-block:64px 80px; }
.hero-copy { min-width:0; }
.hero-intro { font-size:20px; color:var(--muted); margin-top:26px; max-width:490px; }
.actions { display:flex; flex-wrap:wrap; gap:13px; margin-block:28px 18px; }
.hero-image { position:relative; margin:0; background:#e8ecd9; border-radius:32px; overflow:hidden; aspect-ratio:5/5.1; }
.hero-image>img { width:100%; height:100%; object-fit:cover; }
.hero-image figcaption { position:absolute; inset-inline:20px; bottom:20px; background:#fffffff0; padding:22px 25px; border-radius:20px; }
.hero-image figcaption span { display:block; font-size:13px; letter-spacing:.15em; margin-bottom:9px; }
.hero-image figcaption strong { font-size:24px; line-height:1.3; }
.session-notice { padding:16px; border:1px solid #cddcbd; border-radius:14px; background:#f0f5e7; font-size:16px; display:grid; gap:8px; }
.session-notice a { font-weight:700; text-decoration:underline; }
.steps-band { background:#edf1e7; padding-block:62px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:36px; margin-bottom:32px; }
.section-heading>p { max-width:365px; color:var(--muted); font-size:17px; margin:0; }
.steps-grid,.plans-grid,.menu-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.steps-grid article { border-top:1px solid #c7d2bf; padding-top:27px; }
.step-number { display:block; color:#6a8261; font-size:16px; margin-bottom:20px; }
.steps-grid h3 { font-size:22px; margin-bottom:10px; }
.steps-grid p { color:var(--muted); font-size:17px; margin:0; }
.catalog-note { border-inline-start:3px solid #a4b874; background:#f2f4e9; padding:15px 20px; font-size:16px; color:#556748; }
.plan-card { border:1px solid var(--line); border-radius:22px; padding:30px; background:#fff; display:flex; flex-direction:column; gap:13px; min-width:0; }
.plan-card.featured { background:#ecf1e3; border-color:#91a776; }
.plan-number { color:#809866; font-size:16px; }
.plan-card p { color:var(--muted); font-size:17px; margin:0; }
.plan-price { margin-top:12px; font-size:32px; font-weight:700; }
.plan-price small { font-size:16px; font-weight:500; }
.plan-card p.quiet { font-size:15px; }
.plan-card .button { margin-top:auto; padding-inline:12px; gap:12px; }
.menu-section { background:#f0f3eb; }
.meal-card { border-radius:22px; overflow:hidden; background:#fff; border:1px solid #e3e9df; }
.meal-card>img { width:100%; aspect-ratio:1.45; height:auto; object-fit:cover; }
.meal-card>div { padding:25px; }
.meal-card h3 { font-size:21px; margin-bottom:12px; }
.meal-card p { font-size:16px; color:var(--muted); }
.meal-card a { font-size:16px; }
.account-banner { padding:55px; border-radius:28px; background:var(--brand); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:36px; }
.account-banner .eyebrow { color:#d3e69c; }
.account-banner p { max-width:570px; margin:25px 0 0; color:#d3e0d5; }
.account-banner .button { flex-shrink:0; }
.faq { padding-top:0; max-width:900px; }
.faq h2 { margin-bottom:30px; }
.faq details { border-bottom:1px solid var(--line); padding:21px 0; }
.faq summary { font-size:19px; font-weight:600; cursor:pointer; line-height:1.7; }
.faq details p { padding-top:15px; color:var(--muted); font-size:17px; margin:0; }
.site-footer { border-top:1px solid var(--line); padding-block:36px; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.site-footer nav { display:flex; gap:28px; font-size:16px; }
.site-footer small { color:var(--muted); }
.navigation-loader { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); display:flex; gap:12px; align-items:center; background:var(--brand); color:#fff; border-radius:14px; padding:16px 23px; z-index:50; max-width:calc(100% - 30px); font-size:16px; }
.spinner { width:18px; height:18px; border:2px solid #ffffff66; border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; flex-shrink:0; }
@keyframes spin { to { transform:rotate(360deg); } }
html[dir=rtl] h1,html[dir=rtl] h2,html[dir=rtl] h3,html[dir=rtl] .brand,html[dir=rtl] .eyebrow { letter-spacing:0; }
html[dir=rtl] h1 { line-height:1.32; }
html[dir=rtl] h2 { line-height:1.45; }
@media(max-width:1000px) { .wrap { width:calc(100% - 42px); } .hero { gap:30px; } .site-header nav { gap:16px; } .plan-card { padding:22px; } .brand { font-size:24px; } .account-banner { padding:38px; } }
@media(max-width:700px) {
 .wrap { width:calc(100% - 32px); } .section { padding-block:48px; }
 .header-inner { flex-wrap:wrap; min-height:78px; padding-block:14px; gap:15px; }
 .brand { font-size:23px; } .brand img { width:35px; height:35px; }
 .site-header nav { width:100%; flex-wrap:wrap; gap:16px; padding:12px 0 4px; }
 .js .nav-toggle { display:flex; } .js .site-header nav { display:none; }
 .js .site-header nav.open { display:flex; } .site-header nav>.button { margin-inline-start:auto; }
 .hero { grid-template-columns:1fr; padding-block:44px; gap:30px; }
 .hero-intro { font-size:18px; } .hero h1 { font-size:clamp(43px,12vw,65px); }
 .hero-image { aspect-ratio:1.3; } .hero-image figcaption { padding:17px; }
 .hero-image figcaption strong { font-size:22px; }
 .actions .button { flex:1; padding:15px 12px; gap:10px; }
 .steps-band { padding-block:40px; }
 .section-heading { align-items:start; flex-direction:column; gap:18px; }
 .section-heading>p { max-width:none; }
 .steps-grid,.plans-grid,.menu-grid { grid-template-columns:1fr; gap:20px; }
 .steps-grid article { padding-top:20px; } .step-number { margin-bottom:12px; }
 .plan-card .button { margin-top:10px; }
 .account-banner { padding:27px; flex-direction:column; align-items:start; gap:26px; }
 .account-banner .button { width:100%; }
 .footer-inner { align-items:start; flex-direction:column; }
 .site-footer nav { flex-wrap:wrap; gap:20px; } .faq { padding-top:0; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }
}

.site-footer nav{flex-wrap:wrap;justify-content:center;gap:16px}.site-footer [data-admin-login]{white-space:nowrap}

.meal-card>.meal-no-photo{width:100%;aspect-ratio:1.45;display:grid;place-items:center;background:#edf4eb;color:#547365;padding:20px}

/* Accessible bilingual mobile navigation drawer. */
@media(max-width:700px) {
 .site-header { z-index:80; }
 .header-inner { flex-wrap:nowrap; min-height:72px; }
 .nav-toggle { min-height:44px; }
 .mobile-nav-head { display:flex; justify-content:space-between; align-items:center; padding:8px 4px 20px; border-bottom:1px solid var(--line); font-size:22px; font-weight:700; }
 .nav-close { border:0; background:#edf2e8; color:var(--ink); border-radius:12px; width:44px; height:44px; font-size:30px; line-height:1; }
 .nav-backdrop:not([hidden]) { position:fixed; inset:0; background:rgba(12,34,28,.54); z-index:85; }
 .js .site-header #site-nav, .js .site-header #site-nav.open { display:flex; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:7px; position:fixed; inset-block:0; inset-inline-start:0; width:min(350px,88vw); max-height:100dvh; overflow-y:auto; overscroll-behavior:contain; z-index:86; background:#fafbf6; padding:22px 20px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 12px 45px #102b1f40; visibility:hidden; pointer-events:none; transform:translateX(-105%); transition:transform .24s ease,visibility .24s ease; }
 html[dir=rtl] .js .site-header #site-nav { transform:translateX(105%); }
 .js .site-header #site-nav.open { visibility:visible; pointer-events:auto; transform:translateX(0); }
 .site-header #site-nav>a:not(.button) { display:flex; align-items:center; width:100%; min-height:52px; padding:12px 14px; border-radius:12px; font-size:18px; line-height:1.45; }
 .site-header #site-nav>a:not(.button):hover,.site-header #site-nav>a:not(.button):focus-visible { background:#edf2e8; }
 .site-header #site-nav>.locale-link { margin-block-start:auto; border-top:1px solid var(--line); border-radius:0; }
 .site-header #site-nav>.button { display:flex; width:100%; min-height:50px; margin:6px 0 0; }
 body.mobile-nav-open { overflow:hidden; }
}
@media(min-width:701px) { .mobile-nav-head,.nav-backdrop { display:none!important; } }
@media(prefers-reduced-motion:reduce) { .js .site-header #site-nav { transition:none; } }


/* Consistent reading size across the public site. */
@media(max-width:390px){.public-menu-cards{grid-template-columns:1fr}.public-menu-card>img,.public-menu-card>.meal-no-photo{height:185px}.wrap{width:calc(100% - 28px)}}
@media(max-width:700px){.site-header #site-nav>a:not(.button){font-size:19px}.button{min-height:48px}}

.session-notice .session-plans-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;justify-self:start;background:#245b3a;color:#fff;border-radius:10px;padding:11px 18px;text-decoration:none;min-height:44px}.session-notice .session-plans-button:hover{background:#19452b}.session-notice .session-plans-button:focus-visible{outline:3px solid #649d74;outline-offset:3px}

.site-header #site-nav.header-actions{position:static;transform:none;display:flex;align-items:center;gap:12px;flex-direction:row;width:auto;height:auto;padding:0;background:transparent;box-shadow:none;visibility:visible}.hero .actions{flex-wrap:wrap}.header-inner{gap:12px;flex-wrap:wrap}@media(max-width:600px){.site-header .brand{font-size:16px}.header-actions .button{padding:10px 14px}.hero .actions .button{flex:1 1 160px;text-align:center;justify-content:center}}
/* Public menu groups are derived from published cycle choices and deduplicated by meal. */
.public-menu-groups{display:grid;gap:36px}.public-menu-group>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:15px}.public-menu-group>header h3{font-size:clamp(23px,3vw,32px);margin:0;color:#174c3c}.public-menu-group>header span{color:#657b6e;font-size:16px}.public-menu-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.public-menu-card{appearance:none;border:1px solid #dce8df;border-radius:17px;padding:0;background:#fff;color:#193c31;text-align:start;cursor:pointer;overflow:hidden;box-shadow:0 8px 22px #1b423112;transition:transform .2s,border-color .2s,box-shadow .2s;min-width:0}.public-menu-card:hover{transform:translateY(-3px);border-color:#91b7a0;box-shadow:0 13px 30px #1b423126}.public-menu-card:focus-visible{outline:3px solid #428768;outline-offset:3px}.public-menu-card>img,.public-menu-card>.meal-no-photo{display:block;width:100%;height:170px;object-fit:cover;background:#edf4ec}.public-menu-card-content{display:grid;gap:7px;padding:15px 17px}.public-menu-card-content strong{font-size:19px;line-height:1.35}.public-menu-card-content small{font-size:16px;color:#62776b}.public-menu-card-link{color:#236146;font-weight:700;font-size:16px;margin-top:5px}.public-menu-dialog-open{overflow:hidden}.public-meal-dialog{padding:0;border:0;border-radius:20px;width:min(740px,calc(100vw - 28px));max-height:min(90vh,900px);overflow:auto;box-shadow:0 25px 80px #071b1390;color:#193c31;background:#fff}.public-meal-dialog::backdrop{background:#071b13a8}.public-meal-close{position:sticky;top:12px;inset-inline-start:calc(100% - 53px);z-index:2;display:grid;place-items:center;width:39px;height:39px;border:1px solid #d5e4d8;border-radius:50%;background:#fff;color:#174c3c;font-size:26px;line-height:1;cursor:pointer;margin:12px 12px -51px auto;box-shadow:0 3px 10px #0b261033}.public-meal-close:focus-visible{outline:3px solid #428768}.public-meal-detail-image{display:block;width:100%;max-height:300px;object-fit:cover}.public-meal-detail-body{padding:clamp(19px,4vw,32px)}.public-meal-detail-body h2{font-size:clamp(25px,4vw,36px);line-height:1.2;margin:7px 0 13px}.public-meal-detail-body h3{font-size:19px;margin:23px 0 9px;color:#174c3c}.public-meal-detail-body p{line-height:1.75;margin:8px 0}.public-meal-nutrition{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0}.public-meal-nutrition>div{background:#f1f7ef;border:1px solid #e2ece2;border-radius:11px;padding:11px 13px}.public-meal-nutrition dt{font-size:15px;color:#5d7463}.public-meal-nutrition dd{font-size:18px;font-weight:750;margin:5px 0 0}@media(max-width:650px){.public-menu-groups{gap:26px}.public-menu-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.public-menu-card>img,.public-menu-card>.meal-no-photo{height:118px}.public-menu-card-content{padding:10px;gap:5px}.public-menu-card-content strong{font-size:16px}.public-menu-card-content small,.public-menu-card-link{font-size:14px}.public-meal-nutrition{gap:7px}}
.service-info-content{max-width:950px;margin-inline:auto;background:#f8fbf8;border:1px solid #e0e9e0;border-radius:18px;padding:clamp(20px,4vw,42px);line-height:1.8}.service-info-content section+section{border-top:1px solid #dce9de;margin-top:22px;padding-top:22px}.service-info-content h2,.service-info-content h3,.service-info-content h4{color:#194e3b;margin:0 0 12px}.service-info-content p{margin:8px 0}.service-info-content li{margin:6px 0}.service-info-content blockquote{border-inline-start:3px solid #75aa8b;margin:18px 0;padding-inline-start:16px}.service-info-content a{color:#156448;text-decoration:underline;overflow-wrap:anywhere}
