/* Photographs are the layout, not decorations under every paragraph. */
:root{--field-ink:#163632;--field-paper:#f5f1e7;--field-orange:#e7a03c}
.field-feature{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;background:var(--field-ink);color:#fff9ec;padding:0;isolation:isolate}
.field-feature__media{min-width:0;line-height:0}
.field-feature__media picture,.field-feature__media img{display:block;width:100%;height:auto;object-fit:contain}
.field-feature__copy{padding:clamp(32px,5vw,88px);position:relative}
.field-feature .eyebrow{color:#ffc568;font-size:11px;letter-spacing:.15em}
.field-feature h2{font-size:clamp(36px,4.4vw,70px);line-height:1.03;letter-spacing:-.04em;margin:22px 0}
.field-feature p{font-size:clamp(16px,1.35vw,20px);line-height:1.7;max-width:36ch;margin:0 0 30px;color:#f4f1e7}
.field-feature .btn{white-space:normal;text-align:left;gap:20px}
.field-feature .btn span{margin-left:12px}
/* Alternating editorial spreads, retaining existing copy and destinations. */
.editorial-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,80px);width:min(1440px,calc(100% - 64px));margin:auto;text-align:left}
.editorial-pair__copy{min-width:0}
.editorial-pair__copy>.container{width:100%;max-width:none;margin:0;padding:0}
.editorial-pair__photo{min-width:0;position:relative}
.editorial-pair__photo picture,.editorial-pair__photo img{display:block;width:100%;height:auto;object-fit:contain;border-radius:0}
.editorial-pair--reverse .editorial-pair__photo{order:-1}
.editorial-pair .intro__grid{display:block}
.editorial-pair .intro__body{margin-top:24px}
.editorial-pair .stats{grid-template-columns:repeat(2,1fr);gap:20px}
.editorial-pair--cta .cta__ctas{justify-content:flex-start;flex-wrap:wrap}
.editorial-pair--cta h2{font-size:clamp(34px,4vw,60px);max-width:17ch;margin-left:0;margin-right:0}
.editorial-pair--cta p{margin-left:0;margin-right:0}
/* Wide, touch-friendly filmstrip. Arrows enhance native scrolling. */
.photo-reel{padding:clamp(48px,7vw,100px) 0;background:var(--field-paper);color:var(--field-ink);overflow:hidden}
.photo-reel__head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:36px}
.photo-reel h2{font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:-.04em;margin:14px 0 0}
.photo-reel__controls{display:flex;gap:10px}
.photo-reel__controls[hidden]{display:none}
.photo-reel button{width:50px;height:50px;background:transparent;border:1px solid #163632;border-radius:50%;font-size:24px;cursor:pointer;color:var(--field-ink);transition:background .2s,color .2s}
.photo-reel button:hover{background:var(--field-ink);color:#fff}
.photo-reel button:disabled{opacity:.3;cursor:default}
.photo-reel__track{display:flex;gap:24px;padding:0 max(24px,calc((100vw - 1320px)/2));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#759184 transparent;align-items:center;overscroll-behavior-x:contain}
.photo-reel__item{display:block;flex:0 0 auto;scroll-snap-align:center;line-height:0;max-width:80vw}
.photo-reel__item picture{display:block}
.photo-reel__item img{display:block;width:auto;height:clamp(280px,38vw,560px);max-width:80vw;object-fit:contain;transform:none}
.photo-reel__footer{display:flex;justify-content:space-between;gap:20px;margin-top:24px;font-size:13px;line-height:1.5}
.photo-reel__footer p{margin:0;color:#42564c}
.photo-reel__footer a{display:inline-block;padding:6px 0;font-weight:700;text-underline-offset:5px}
/* Looser service spreads: two large invitations, then three destinations. */
.service-paths{padding:clamp(50px,7vw,110px) 0;background:#f6f2e9}
.service-card{border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.service-card:hover{box-shadow:none}
.service-card__photo{aspect-ratio:auto;background:none}
.service-card__photo picture,.service-card__photo img{height:auto;object-fit:contain}
.service-card__body{padding:24px 0 14px}
.service-card h3{font-size:clamp(28px,3vw,44px);margin:0 0 16px}
.service-card:nth-child(2){margin-top:76px}
.service-card:nth-child(n+3){margin-top:20px}
.service-card__link{border-top:1px solid #16363240}
.service-card__link>span{transition:transform .2s}
.service-card:hover .service-card__link>span{transform:translate(3px,-3px)}
.service-paths__grid{gap:38px}
.camp-opening--cinema h1{font-size:clamp(60px,7vw,112px);line-height:.98}
.camp-opening__intro{padding-top:64px;padding-bottom:48px}
/* Activity mosaic: names are navigation, not repeated motivational captions. */
.camp-life{background:#e6eadf;padding:clamp(56px,7vw,100px) 0}
.camp-life h2{font-size:clamp(38px,5vw,70px);max-width:15ch;line-height:1.02}
.camp-life__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.camp-life__grid figure{position:relative;margin:0;background:none;border-radius:0;overflow:visible}
.camp-life__grid picture,.camp-life__grid img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:0;transform:none!important}
.camp-life__grid figcaption{font-size:clamp(24px,3vw,40px);font-weight:800;line-height:1.1;letter-spacing:-.03em;padding:16px 0 28px;color:var(--field-ink);background:none}
.camphero__media img{height:auto;max-height:none;object-fit:contain;border-radius:0}
.split__media img,.venue__media img{border-radius:0}
.camphero h1{letter-spacing:-.045em}
.band h2,.split__body h2{letter-spacing:-.025em}
/* One short entrance per feature, never continuous motion or hidden content. */
@keyframes field-arrive{from{opacity:.65;transform:translateY(24px)}to{opacity:1;transform:none}}
.field-arrive{animation:field-arrive .7s cubic-bezier(.2,.7,.2,1) both}
.btn{transition:transform .18s,background-color .18s}
.btn:hover{transform:translateY(-2px)}
:where(.photo-reel a,.photo-reel button,.photo-reel__track):focus-visible{outline:3px solid #a75114;outline-offset:4px}
@media(max-width:1000px){.field-feature{grid-template-columns:1.25fr 1fr}.field-feature__copy{padding:30px}.editorial-pair{gap:32px}.service-card:nth-child(2){margin-top:40px}}
@media(max-width:800px){
 .field-feature{display:flex;flex-direction:column}
 .field-feature__media{width:100%}
 .field-feature__copy{width:100%;padding:38px 24px 46px}
 .field-feature h2{font-size:44px;max-width:18ch}
 .field-feature p{max-width:50ch}
 .editorial-pair{grid-template-columns:1fr;width:calc(100% - 40px);gap:32px}
 .editorial-pair__photo{order:-1}
 .editorial-pair__copy>.container{width:100%}
 .camp-life__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .photo-reel__track{gap:16px;padding:0 20px}
 .photo-reel__item img{width:auto;height:auto;max-width:80vw;max-height:420px}
 .photo-reel__head{gap:16px}.photo-reel button{width:42px;height:42px}
 .photo-reel__footer{display:block}.photo-reel__footer a{display:inline-block;margin-top:12px}
 .service-card:nth-child(2),.service-card:nth-child(n+3){margin-top:0}
 .service-paths__grid{gap:36px}
}
@media(prefers-reduced-motion:reduce){.field-arrive{animation:none}.btn,.service-card__link>span{transition:none}.btn:hover,.service-card:hover .service-card__link>span{transform:none}}
/* Camp openings give the photo an edge-to-edge canvas. */
.camphero{padding:0;background:var(--field-ink);color:#fff9ec}
.camphero>.container{width:100%;max-width:1600px}
.camphero .camphero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:0;align-items:center}
.camphero .camphero__grid>div:first-child{padding:clamp(30px,4vw,64px)}
.camphero .camphero__media{border-radius:0;box-shadow:none;aspect-ratio:auto;height:auto;overflow:visible}
.camphero .camphero__media img{display:block;height:auto;width:100%;object-fit:contain;border-radius:0;box-shadow:none}
.camphero .camphero__media picture{display:block}
.camphero h1{font-size:clamp(44px,5.4vw,80px);line-height:1.01}
/* Long single words (Engineering, Leadership) overflow a 320px screen at 44px. */
@media(max-width:420px){.camphero h1,.field-feature h2{font-size:11vw}}
@media(max-width:900px){.camphero .camphero__grid{display:flex;flex-direction:column-reverse}.camphero .camphero__media{width:100%}.camphero .camphero__grid>div:first-child{padding:32px 24px 44px;width:100%}}

.camp-life__grid figure{display:block}
.camp-life__grid picture{position:static;height:auto;aspect-ratio:auto}
.camp-life__grid img{position:static;inset:auto;width:100%;height:auto;object-fit:contain}
.camp-life__grid figcaption{position:static;inset:auto}
/* Camp page header: hand-cropped 16:9 photo; key facts over it on wide screens, below it on phones. */
.camphead{display:grid;background:var(--field-ink);color:#fff9ec}
.camphead__media img{display:block;width:100%;height:auto;aspect-ratio:16/9}
.camphead__overlay{padding:30px 0 40px}
.camphead__grid{display:grid;gap:26px}
.camphead h1{font-size:clamp(38px,5.6vw,76px);line-height:1;letter-spacing:-.04em;margin:12px 0 14px;color:#fff}
.camphead__lede{max-width:54ch;font-size:17px;line-height:1.6;margin:0 0 22px;color:rgba(255,249,236,.92)}
.camphead__panel{background:#fff9ec;color:var(--field-ink);border-radius:14px;padding:22px 24px;scroll-margin-top:110px}
.camphead__facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:0}
.camphead__facts div{margin:0}
.camphead__facts dt{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#5a6b63}
.camphead__facts dd{margin:2px 0 0;font-size:17px;font-weight:700}
.camphead__fees{grid-column:1/-1}
.camphead__panel .camp-session-summary{margin:16px 0 0;border-top-color:#c9d1c8}
.camphead__note{font-size:13px;line-height:1.5;margin:12px 0 0;color:#42564c}
.camphead__note a{color:inherit}
.venue__list--cols{columns:2;column-gap:40px;display:block}
.venue__list--cols li{break-inside:avoid;margin-bottom:12px}
@media(max-width:700px){.venue__list--cols{columns:1}.camphead__facts{grid-template-columns:1fr}}
@media(min-width:1100px){
 .camphead>*{grid-area:1/1}
 .camphead__overlay{align-self:end;padding:120px 0 48px;background:linear-gradient(90deg,rgba(10,30,30,.72) 0%,rgba(10,30,30,.42) 30%,rgba(10,30,30,0) 52%)}
 .camphead__intro{text-shadow:0 1px 3px rgba(0,0,0,.55),0 0 18px rgba(0,0,0,.35)}
 .camphead__grid{grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);align-items:end;column-gap:56px}
 .camphead__panel{background:rgba(255,249,236,.95)}
}
/* Sample week and How we teach on camp pages */
.itin{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.itin li{background:#fff;border-radius:14px;padding:20px 22px;border:1px solid #dfe3da}
.itin__day{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8a4a22}
.itin h3{font-size:20px;margin:6px 0 8px}
.itin p{margin:0;line-height:1.6;color:#42564c}
.teach__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.teach__grid h3{font-size:19px;margin:0 0 8px}
.teach__grid p{margin:0;line-height:1.65;color:#42564c}
@media(max-width:900px){.teach__grid{grid-template-columns:1fr}}
/* Camping & lodging: photo rows under each lodge and the property maps */
.stay-gallery{padding:0 0 clamp(36px,5vw,64px)}
.stay-gallery ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:14px}
.stay-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:10px}
@media(max-width:620px){.stay-gallery ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
.stay-maps{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}
.stay-maps figure{margin:0}.stay-maps img{display:block;width:100%;height:auto;border-radius:10px}
.stay-maps figcaption{font-size:14px;margin-top:8px;color:#42564c}
@media(max-width:960px){.stay-maps{grid-template-columns:1fr}}
/* Homepage video: caption and pause button sit on the footage, so it reads as a background, not a player. */
.camp-opening--cinema{position:relative}
.camp-opening--cinema .camp-opening__caption{position:absolute;left:0;right:0;bottom:0;max-width:none;width:100%;padding:28px max(24px,calc((100vw - 1320px)/2)) 18px;background:linear-gradient(rgba(10,30,30,0),rgba(10,30,30,.6));text-shadow:0 1px 3px rgba(0,0,0,.5);pointer-events:none}
.camp-opening--cinema .camp-opening__caption button{pointer-events:auto;background:rgba(10,30,30,.45)}
/* Service cards sit in an even row (no stagger). */
.service-card:nth-child(2),.service-card:nth-child(n+3){margin-top:0}
/* Safari lets a 1fr column grow to a photo's full width; keep grid children shrinkable. */
.service-card,.service-card__photo,.service-card__body{min-width:0}
.service-card h3,.service-card__body p{overflow-wrap:break-word}
.fest-map{margin:0}.fest-map img{display:block;width:100%;height:auto;border-radius:12px}.fest-map figcaption{font-size:14px;margin-top:8px;color:#42564c}
/* Camp pages: photo pair beside "What campers do" */
.campbody__layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.campbody__photo{margin:0;min-width:0;display:flex;justify-content:center}
.campbody__photo img{display:block;width:auto;height:auto;max-width:100%;max-height:560px;border-radius:14px;box-shadow:0 18px 40px -18px rgba(10,30,30,.45)}
@media(max-width:900px){.campbody__layout{grid-template-columns:1fr;gap:32px}}
.teach__grid article{background:#fff;border:1px solid #dfe3da;border-radius:16px;padding:26px 26px 28px}
.teach__icon{display:block;color:#a75114;margin-bottom:14px}
/* Events page: one feature per main event */
.event-facts{list-style:none;margin:18px 0 26px;padding:0;border-top:1px solid #16363226}
.event-facts li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #16363226;font-size:15px}
.event-facts strong{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8a4a22;padding-top:2px}

