.public-page{--ea-navy:#233e32;--ea-paper:#f7f2e8;--ea-saddle:#ad542e;--ea-muted:#596457;--ea-line:#d4d8ca;background:#f7f2e8}
.public-page .public-contact-bar,.public-page .public-footer{background:#233e32}.public-page .public-button{background:#233e32;color:#fffaf0}.public-page .public-kicker{color:#a34b2d}
.photo-carousel{min-width:0;width:100%;overflow:hidden}.photo-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#7f9075 #e5e7dd;touch-action:pan-x pan-y;outline-offset:4px}.photo-slide{flex:0 0 100%;width:100%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:always}.photo-slide img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.photo-slide figcaption{padding:12px 4px;font-size:.875rem;color:#596457}.photo-controls{display:flex;align-items:center;gap:12px;padding:14px 0}.photo-controls[hidden]{display:none}.photo-label{margin-right:auto;font-size:.8125rem;letter-spacing:.04em}.photo-controls button{width:48px;height:48px;min-width:48px;border:1px solid #87967e;background:transparent;color:#233e32;cursor:pointer;font-size:1.3rem}.photo-controls button:hover{background:#e2e7d9}.photo-controls button[aria-disabled=true]{opacity:.4}.photo-position{font-size:.8125rem;min-width:40px;text-align:center}.photo-track:focus-visible,.photo-controls button:focus-visible{outline:3px solid #ad542e}
.visual-home-hero{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:48px}.visual-home-hero h1{font-size:clamp(3.1rem,5vw,5.5rem);line-height:1.06}.visual-home-hero .photo-slide img{aspect-ratio:4/5;max-height:640px}.visual-intro{max-width:64ch}.visual-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.visual-service-grid a{color:inherit;text-decoration:none}.visual-service-grid img{width:100%;aspect-ratio:3/2;object-fit:cover}.visual-service-grid h3{font-size:2rem;margin:18px 0 10px}.visual-service-grid p{max-width:42ch}.visual-program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.visual-program-grid h3{font-size:1.8rem}.visual-sage{background:#e4e9dc}.visual-camp-card{background:#fffaf2;border:1px solid #d4d8ca;padding:28px}.visual-camp-card h3{font-size:2.1rem}.visual-camp-card img{aspect-ratio:3/2;object-fit:cover;width:100%}.visual-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.visual-facts p{margin:0}.visual-facts dt{font-weight:600}.visual-facts dd{margin:4px 0 0}.visual-availability{border-left:4px solid #ad542e;padding:24px;background:#e4e9dc;margin-top:28px}.visual-event-hero img{width:100%;aspect-ratio:16/9;object-fit:cover}.public-page .public-navigation{min-width:0}.public-page .public-navigation>nav{gap:16px}.public-page .public-navigation>nav a{font-size:.8125rem;white-space:nowrap}
@media(max-width:1100px) and (min-width:1001px){.public-page .public-header{padding-inline:20px;gap:20px}.public-page .brand-logo{width:160px}.public-page .public-navigation>nav{gap:10px}.public-page .public-navigation>nav a{font-size:.75rem}.public-page .public-account{gap:10px;margin-left:14px}}
@media(max-width:700px){.visual-home-hero{grid-template-columns:1fr;gap:26px}.visual-home-hero .photo-slide img{aspect-ratio:4/3;height:auto}.photo-slide img{aspect-ratio:4/3}.visual-service-grid,.visual-program-grid{grid-template-columns:1fr;gap:28px}.visual-facts{gap:20px;font-size:.9375rem}.visual-camp-card{padding:22px}.photo-label{max-width:46%;line-height:1.5}.photo-controls{gap:8px}.public-page .public-navigation>nav a{white-space:normal}.visual-event-hero img{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.photo-track{scroll-behavior:auto}.photo-slide{animation:none;transition:none}}
.public-page .visual-camp-cover img{height:auto;aspect-ratio:3/2;object-fit:cover}.page-camps .event-list .public-card-grid{grid-template-columns:1fr}.page-camps .event-card{display:grid;grid-template-columns:1fr 1fr}.page-camps .visual-camp-cover img{height:100%;max-height:640px}.public-page .camp-event-facts{background:#e4e9dc;border-color:#d4d8ca}
@media(max-width:700px){.page-camps .event-card{display:block}.page-camps .visual-camp-cover img{height:auto;aspect-ratio:4/3}}
.public-page .visual-event-hero{margin:24px 0;width:100%;max-width:none}.public-page .visual-event-hero img{display:block;width:100%;max-width:none;height:auto;aspect-ratio:16/9;object-fit:cover}.boarding-intro .boarding-gallery{padding-top:0;padding-bottom:24px;max-width:1200px}.boarding-intro .photo-slide img{height:auto;aspect-ratio:3/2}.page-camps .photo-slide img{object-position:50% 25%}
@media(max-width:700px){.public-page .visual-event-hero img,.boarding-intro .photo-slide img{aspect-ratio:4/3}.public-page .visual-event-hero img{object-position:50% 30%}}

.public-page .photo-slide.is-portrait img{object-fit:contain;background:#e4e9dc}

.photo-controls{flex-wrap:wrap}.photo-controls [data-rotation]{font-size:1rem}.photo-controls [data-rotation]:disabled{opacity:.45;cursor:default}@media(max-width:430px){.photo-label{flex-basis:100%;max-width:none}.photo-controls [data-rotation]{margin-right:auto}}
.account-choice{padding:26px;background:#e4e9dc;margin:28px 0;border-left:3px solid #ad542e}.account-choice h2{font-size:1.6rem}.waiver-document{white-space:pre-wrap;line-height:1.7;padding:24px;background:#fffaf2}.camper-waiver-status{font-weight:600;color:#233e32}.waiver-rider-status{padding:20px;background:#e4e9dc}
.public-page .official-camp-flyer{display:block;background:#f7f2e8;margin:0;padding:18px}.public-page .official-camp-flyer img{display:block;width:100%;height:auto;max-height:680px;aspect-ratio:auto;object-fit:contain}.event-card .public-button{margin:14px 0 0 18px}.event-detail>.official-camp-flyer{margin:28px 0}.event-detail>.official-camp-flyer img{max-height:720px}.page-camps .official-camp-flyer img{height:100%;max-height:620px;object-fit:contain}@media(max-width:700px){.event-card .public-button{margin-left:0;display:inline-flex}.page-camps .official-camp-flyer img{height:auto;max-height:520px}}
.page-events .featured-camp{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}@media(max-width:700px){.page-events .featured-camp{display:block}}
.section-fixed-photo{margin:0 0 22px;min-width:0}.section-fixed-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;border-radius:8px}.visual-program-grid .section-fixed-photo img{aspect-ratio:4/3;max-height:340px}.lesson-contact .section-fixed-photo img{aspect-ratio:4/3}.contact-intro .section-fixed-photo img{max-height:380px}
.event-detail-artwork{margin:40px 0}.event-detail-artwork img{display:block;width:100%;max-height:800px;object-fit:contain}
