:root{--green:#24594d;--ink:#243b35;--muted:#64736b;--paper:#f7f8f2;--line:#dde4d9;--orange:#edc185;--white:#fff;--soft:#edf2e8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--green)}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}header{max-width:1140px;margin:auto;padding:25px 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;text-decoration:none;align-items:center;font-weight:750;font-size:20px;line-height:1.3}.brand small{display:block;font-weight:450;font-size:12px;color:var(--muted);margin-top:6px}.mark{width:45px;height:45px;border-radius:15px;background:var(--green);color:#fff;text-align:center;font-size:34px;line-height:43px}.year,.tag{font-size:12px;background:var(--soft);padding:5px 12px;border-radius:20px;white-space:nowrap}main{max-width:1080px;padding:35px 30px;margin:auto;min-height:65vh}h1{font-size:clamp(28px,4vw,44px);font-weight:650;line-height:1.2;letter-spacing:-1.2px;margin:8px 0 15px}h2{font-size:22px;line-height:1.35;margin:0 0 15px}h3{font-size:18px;margin:8px 0}p{margin:8px 0 16px}.eyebrow{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:700}.intro{max-width:640px;color:var(--muted)}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:35px;align-items:center;margin-bottom:30px}.hero-art{background:#e6eddf;border-radius:80px 25px 80px 25px;min-height:190px;display:grid;place-items:center;position:relative;overflow:hidden}.school{font-size:95px;filter:grayscale(.35)}.hero-art:before,.hero-art:after{content:'✳';position:absolute;font-size:60px;color:#d2ab6c;top:5px;right:25px}.hero-art:after{color:#91ac8b;top:auto;bottom:0;left:20px;font-size:90px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.two{grid-template-columns:repeat(2,1fr)}.card{padding:23px;background:var(--white);border:1px solid var(--line);border-radius:20px}.card p:last-child{margin-bottom:0}.feature{text-decoration:none;display:block;transition:transform .15s,border-color .15s}.feature:hover{transform:translateY(-3px);border-color:var(--green)}.feature .icon{display:block;font-size:27px;margin-bottom:15px}.feature p,.muted{color:var(--muted);font-size:14px}.arrow{float:right}.section-head{display:flex;justify-content:space-between;align-items:center;margin:32px 0 15px;gap:15px}.section-head h2{margin:0}.section-head a{font-size:14px}.notice{background:#f4ead7;border:1px solid #e6d3ae;padding:16px 20px;border-radius:15px;margin:20px 0;font-size:14px}.notice p{margin:0}.today{background:var(--green);color:#fff}.today .muted{color:#d4e2d9}.today a{color:white}.dateblock{font-size:13px;letter-spacing:.3px;color:var(--muted)}.dateblock strong{color:var(--green);font-size:24px;margin-right:10px}.event{padding:15px 0;border-bottom:1px solid var(--line)}.event:last-child{border:0}.event p{margin:0}.btn{border:1px solid var(--line);background:white;color:var(--green);border-radius:12px;padding:10px 16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-weight:600}.btn:hover{background:var(--soft)}.btn.primary{background:var(--green);color:white}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0}.toolbar button{min-width:45px}select,input{min-height:46px;border:1px solid #bdcbbf;border-radius:12px;padding:9px 13px;background:white;color:var(--ink);max-width:100%}input{width:min(100%,400px)}.mealgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.meal{padding:17px;border-radius:16px;border:1px solid var(--line);background:white;min-width:0}.meal .day{font-size:13px;color:var(--muted)}.meal .num{font-size:24px;font-weight:700}.meal h3{font-size:16px;font-weight:600}.meal.current{border:2px solid var(--green);background:#eef4e9}.meal.holiday{background:#eeeede}.meal .dessert{border-top:1px solid var(--line);padding-top:12px;margin-top:16px;font-size:13px;color:var(--muted)}details{border:1px solid var(--line);border-radius:14px;background:white;margin:12px 0;padding:16px 20px}summary{cursor:pointer;font-weight:650;min-height:30px}details p{margin-top:15px}.teacher{display:flex;gap:18px}.avatar{width:48px;height:48px;border-radius:15px;background:var(--soft);display:grid;place-items:center;font-weight:700;flex-shrink:0}.hours{font-size:20px;font-weight:650;color:var(--green)}.pill{display:inline-block;background:var(--soft);padding:4px 10px;border-radius:7px;font-size:13px;margin:5px 0}.fee{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;gap:15px}.fee:last-child{border:0}.timeline .event{display:flex;gap:20px}.time{font-size:14px;color:var(--green);font-weight:700;min-width:95px}.source{display:inline-block;font-size:13px;margin-top:14px}.empty{text-align:center;padding:35px;color:var(--muted)}.back{display:inline-block;margin-bottom:15px;font-size:14px}nav{display:flex;justify-content:center;gap:20px;background:#fff;border-top:1px solid var(--line);padding:10px 15px;position:sticky;bottom:0;z-index:5}nav a{min-width:85px;text-decoration:none;text-align:center;font-size:22px;padding:3px 12px;border-radius:12px;color:var(--muted);line-height:1.4}nav a span{display:block;font-size:11px;font-weight:650}nav a.active{background:var(--soft);color:var(--green)}footer{text-align:center;font-size:12px;color:var(--muted);padding:25px 20px 30px}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;padding:10px;z-index:9}:focus-visible{outline:3px solid #d5993c;outline-offset:4px}dialog{max-width:95vw;width:950px;border:0;border-radius:18px;padding:20px}dialog::backdrop{background:#182d26bb}dialog img{width:100%;height:auto}dialog .btn{position:sticky;top:0;float:right}.preview{font-size:12px;color:#775c2e;margin-bottom:20px}@media(min-width:801px){nav{position:static;max-width:1080px;margin:0 auto 20px;border:1px solid var(--line);border-radius:18px}body{padding-bottom:0}}@media(max-width:800px){header{padding:18px 20px}.year{display:none}.brand{font-size:17px}.brand small{font-size:10px;max-width:240px}main{padding:25px 20px}.hero{gap:15px;grid-template-columns:1fr}.hero-art{display:none}.grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}.mealgrid{grid-template-columns:1fr}.meal{display:grid;grid-template-columns:60px 1fr;column-gap:15px}.meal .dessert{grid-column:2;padding-top:8px;margin-top:5px}.meal h3{align-self:center;margin:0}.meal .num{display:block}.card{padding:20px}.section-head{margin-top:28px}nav{gap:0;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom))}nav a{min-width:0;padding:4px 8px;flex:1;font-size:23px}nav a span{font-size:10px}.toolbar{justify-content:space-between}.toolbar .week-label{font-size:14px}.time{min-width:90px}.hero h1{max-width:320px}.intro{font-size:15px}}

.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:22px}.calendar-weekday{text-align:center;font-size:12px;color:var(--muted);padding:8px 0}.calendar-day{border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);min-height:54px;position:relative;font-size:16px;padding:8px 2px 15px}.calendar-day.has-event{background:var(--soft);font-weight:750}.calendar-day.is-today{outline:2px solid var(--green);outline-offset:-2px}.calendar-day[aria-pressed=true]{background:var(--green);color:white}.event-dot{position:absolute;bottom:6px;width:5px;height:5px;background:currentColor;border-radius:50%;left:calc(50% - 2px)}.calendar-title{margin:0;font-size:20px;text-transform:capitalize}.calendar-day:hover{border-color:var(--green)}@media(max-width:800px){.calendar-grid{gap:3px}.calendar-day{min-height:44px;border-radius:8px}.calendar-title{font-size:17px}nav a{padding:4px 2px}nav a span{font-size:9px}}


.today a.btn{background:#e5eddf;color:var(--green);border-color:#c9d8c6}.today a.btn:hover{background:#d4e2cd;color:var(--green)}




.data-status{max-width:1020px;margin:12px auto 0;padding:0 20px;font-size:12px;color:var(--muted)}.data-status .btn{margin-left:12px;padding:4px 10px;font-size:12px;min-height:32px}

/* Warm, quiet school palette. All fonts and artwork are served locally. */
:root{--paper:#fbf8f1;--green:#285c50;--ink:#293f36;--muted:#657267;--line:#e4e5d9;--soft:#edf1e4;--orange:#edc185}
body{background:radial-gradient(ellipse at 95% 12%,#f4ead850,transparent 40%),var(--paper)}
header{padding-top:22px;padding-bottom:22px;border-bottom-color:#e7e4d7}
.brand{letter-spacing:-.4px}.brand small{letter-spacing:0;line-height:1.5}
.mark{border-radius:16px 16px 7px 16px;background:#e4ead8;color:var(--green);display:grid;place-items:center}
.ui-icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0}
.mark .ui-icon{width:29px;height:29px}
.year{background:#f3e5cb;color:#775d34;font-weight:600}
main{padding-top:24px}
.hero{grid-template-columns:1.3fr 1fr;gap:20px;margin-bottom:22px}
.hero h1{font-size:clamp(28px,3.8vw,40px);line-height:1.22;letter-spacing:-1px;max-width:450px}
.hero .eyebrow{font-size:10px;letter-spacing:1.3px}
.hero .intro{max-width:380px;margin-bottom:0}
.hero-art{min-height:0;background:transparent;border-radius:0;overflow:visible}
.hero-art:before,.hero-art:after{display:none}
.hero-art img{width:100%;height:auto;max-height:215px;object-fit:contain}
.card{border-radius:22px;border-color:var(--line);box-shadow:0 3px 12px #4a553104}
.feature{position:relative}.feature:hover{box-shadow:0 8px 20px #33543a0b}
.feature .icon{display:grid;place-items:center;width:46px;height:46px;background:#eaf0df;color:#3c6354;border-radius:14px;margin-bottom:14px}
.feature:nth-child(2) .icon{background:#faebda;color:#906947}
.feature .icon .ui-icon{width:25px;height:25px}
.feature .arrow{color:#738a76}.feature .arrow .ui-icon{width:21px;height:21px}
.feature h2{font-size:21px;margin-bottom:8px}.feature p{margin-top:0}
.lunch-card{position:relative;overflow:hidden;padding:27px 30px;border:0;background:#285c50;background-image:radial-gradient(circle at 102% 110%,#487760 0,#487760 85px,transparent 86px),radial-gradient(circle at 96% 110%,#396956 0,#396956 160px,transparent 161px)}
.lunch-card h2{font-size:clamp(23px,3vw,30px);line-height:1.3;max-width:80%;margin:12px 0 7px;letter-spacing:-.4px}
.lunch-card .eyebrow{font-size:11px;letter-spacing:1.4px}
.lunch-icon{position:absolute;right:30px;top:29px;display:grid;place-items:center;width:55px;height:55px;border-radius:18px;background:#ffffff12;color:#e7d39e}
.lunch-icon .ui-icon{width:31px;height:31px}
.today a.btn{background:#f4e3bc;color:#284d40;border-color:#f4e3bc;margin-top:4px;min-height:46px;border-radius:13px;font-size:14px}
.today a.btn:hover{background:#ebd5a5;color:#284d40}
.section-head h2{font-size:20px;font-weight:650;letter-spacing:-.3px}
.notice{background:#f7ecd6;border-color:#ecddbb;border-radius:17px}
.meal{border-radius:18px}.meal.current{background:#edf3e5}.meal.holiday{background:#f3eddf}
.calendar-day.has-event{background:#edf1e4}.calendar-day[aria-pressed=true]{background:var(--green)}
nav{background:#fffef9;box-shadow:0 -4px 18px #314b3005}
nav a{font-size:16px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 12px}
nav a .ui-icon{width:22px;height:22px}nav a.active{background:#eaf0df}nav a span{font-size:11px}
footer{line-height:1.8}
@media(max-width:800px){
 header{padding:16px 18px}.brand{font-size:17px}.mark{width:41px;height:41px;border-radius:14px 14px 6px 14px}
 main{padding:18px 18px 26px}.hero{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:5px;align-items:center;margin-bottom:20px}
 .hero-art{display:block}.hero-art img{width:135px;max-width:none;transform:translateX(-7px);height:100px;object-fit:contain}
 .hero .eyebrow{font-size:9px;letter-spacing:.8px}.hero h1{font-size:28px;max-width:250px;margin:7px 0 9px}.hero .intro{font-size:13px;line-height:1.5}
 .lunch-card{padding:23px 22px}.lunch-card h2{max-width:85%;font-size:24px}.lunch-icon{right:20px;top:22px;width:42px;height:42px;border-radius:14px}.lunch-icon .ui-icon{width:25px;height:25px}
 .lunch-card>.muted{font-size:13px}.lunch-card>.eyebrow{display:block;max-width:calc(100% - 48px);font-size:10px}
 .feature .icon{width:42px;height:42px;margin-bottom:12px}.section-head{margin:25px 0 14px}
 nav{padding:8px 3px calc(8px + env(safe-area-inset-bottom))}nav a{padding:6px 2px;gap:4px}nav a span{font-size:9px}nav a .ui-icon{width:21px;height:21px}
 .data-status{font-size:10px;margin-top:10px;line-height:1.5}
}
@media(max-width:360px){.hero{grid-template-columns:minmax(0,1fr) 85px}.hero-art img{width:110px}.hero h1{font-size:25px}.lunch-card h2{font-size:22px}.brand small{font-size:9px}}
.lunch-day-nav{display:flex;align-items:center;gap:12px;margin:16px 0 10px;max-width:480px}.lunch-day-nav p{margin:0;flex:1;text-align:center;color:#d4e2d9;font-size:14px}.day-arrow{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid #ffffff55;border-radius:13px;background:#ffffff0d;color:#fff}.day-arrow:hover{background:#ffffff22}.reverse-arrow{display:flex;transform:rotate(180deg)}.lunch-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}.lunch-reset{min-height:44px;background:transparent;border:1px solid #ffffff70;border-radius:12px;color:#fff;padding:8px 15px;font:inherit;font-size:14px}.lunch-reset:hover{background:#ffffff15}.lunch-card .lunch-day-nav{max-width:100%}@media(max-width:800px){.lunch-day-nav{gap:8px;margin-top:18px}.lunch-day-nav p{font-size:13px}.lunch-card h2{max-width:100%}.day-arrow{width:44px;height:44px}}


.contact-email{overflow-wrap:anywhere;display:inline-block;padding:8px 0;min-height:44px}

.committee-contact h3{margin:8px 0 16px}.committee-contact .btn{min-height:44px}

.lunch-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.lunch-heading .eyebrow{flex:1;min-width:0}.lunch-heading .lunch-icon{position:static;flex-shrink:0}@media(max-width:800px){.lunch-heading .eyebrow{font-size:10px}}
