/* Forest, river and a little campfire warmth. */
:root { --cream:#f6f2e9; --navy:#142f31; --ridge:#325653; --amber:#f3af52; --sun:#f8d89c; --terracotta:#995332; --ink:#192e2c; --ink-2:#4f625e; --radius:12px; --radius-lg:18px; }
.topbar { font-size:12px; padding:8px 16px; }
.nav__inner { padding-top:16px; padding-bottom:16px; }
.nav__logo { font-size:19px; }
.nav__links { gap:22px; }
.nav__links a { font-size:14px; }
@media(min-width:961px) { .nav__item > a, .nav__cta { white-space:nowrap; } }
/* Seven menu items: tighten spacing just above each breakpoint so the header fits. */
@media(min-width:1181px) and (max-width:1320px) { .nav__links { gap:14px; } .nav__links a { font-size:13px; } }
.eyebrow { color:#935229; font-size:11px; letter-spacing:.16em; }
.eyebrow--light { color:var(--sun); }
h2 { letter-spacing:-.045em; }
.btn { letter-spacing:0; border-radius:8px; font-size:14px; }
.btn--primary { background:var(--amber); }
.nav__cta { border-radius:8px; }
.band, .split { padding:76px 0; }
.band__head { max-width:760px; }
.band__head h2, .split__body h2 { font-size:clamp(30px,3.8vw,48px); }
.prose { font-size:17px; }
.pagehero__inner { padding:100px var(--gutter) 90px; }
.sess__wrap { grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.sess { min-width:0; }
.pagehero h1 { max-width:18ch; letter-spacing:-.04em; }
/* Darken only behind the text so the rest of the photo keeps its true colour. */
.pagehero__scrim { background:linear-gradient(90deg,rgba(8,30,28,.74) 0%,rgba(8,30,28,.46) 34%,rgba(8,30,28,0) 60%); }
.pagehero__inner { text-shadow:0 1px 3px rgba(0,0,0,.5),0 0 18px rgba(0,0,0,.3); }
.pagehero__inner .btn { text-shadow:none; }
@media(max-width:700px){ .pagehero__scrim { background:rgba(8,30,28,.5); } }
.intro { padding:90px 0; }
.intro__grid { gap:56px; }
.intro h2 { font-size:clamp(36px,4.3vw,58px); }
.offerings { padding:90px 0; }
.card { border-radius:12px; }
.card__body { padding:26px; }
.card__title { letter-spacing:-.03em; }
.card__scrim { background:linear-gradient(180deg,transparent 20%,rgba(9,29,28,.94)); }
.card__desc { color:#f6f2e9; }
.stats { margin-top:48px; padding-top:32px; }
.stat__num { font-size:clamp(32px,4vw,48px); }
.stat__label { letter-spacing:.08em; }
.moments { background:#e8ede5; }
.moment { border-radius:12px; }
.moment__caption strong { letter-spacing:-.04em; }
.venue { padding:90px 0; }
.venue__media picture, .fest__poster picture { display:block; width:100%; height:100%; }
.venue__badge { padding:18px 20px; }
.foot__brand p { line-height:1.8; }
/* Photography is framed independently of a source image's HTML dimensions. */
.photo-story { padding:78px 0; background:#e8ede5; }
.photo-story__head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:32px; }
.photo-story__head h2 { font-size:clamp(30px,4vw,52px); max-width:22ch; margin-top:12px; }
.photo-story__count { color:var(--ridge); font-size:12px; letter-spacing:.14em; white-space:nowrap; }
.photo-story__grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:20px; }
.photo-story figure { margin:0; min-width:0; }
.photo-story picture { display:block; aspect-ratio:4/3; overflow:hidden; border-radius:12px; background:var(--ridge); }
.photo-story img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.photo-story figure:hover img { transform:scale(1.035); }
.photo-story figcaption { padding:15px 0 0; color:var(--navy); font-size:14px; font-weight:500; }
.photo-story__grid figure:first-child picture { aspect-ratio:4/3; }
.photo-story__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.split__media img[src*="dining-table"] { object-fit:contain; aspect-ratio:auto; }
/* Flight scene: real photo layers in a perspective scene, driven by scroll. */
.flight { position:relative; background:#142f31; color:var(--cream); }
.flight__stage { position:relative; height:calc(100svh - var(--nav-height,76px)); min-height:660px; overflow:hidden; isolation:isolate; perspective:1100px; }
.flight.is-enhanced { height:245svh; }
.flight.is-enhanced .flight__stage { position:sticky; top:var(--nav-height,76px); }
.flight__landscape,.flight__near,.flight__mist,.flight__shade { position:absolute; inset:0; pointer-events:none; }
.flight__landscape { transform:scale(1.06); transform-origin:50% 50%; will-change:transform; }
.flight__landscape picture,.flight__landscape img { display:block; width:100%; height:100%; }
.flight__landscape img { object-fit:cover; object-position:50% 52%; }
.flight__near { background:url('/assets/img/ridge-flight.webp') center 52% / cover; clip-path:polygon(0 76%,12% 70%,25% 80%,40% 86%,54% 78%,69% 70%,83% 60%,100% 57%,100% 100%,0 100%); transform:scale(1.06); transform-origin:50% 50%; will-change:transform; }
.flight__mist { background:radial-gradient(ellipse at 70% 75%,rgba(226,234,226,.5),transparent 48%); opacity:.18; mix-blend-mode:screen; }
.flight__shade { background:linear-gradient(90deg,rgba(10,29,31,.65),transparent 75%),linear-gradient(0deg,rgba(10,29,31,.94),transparent 55%,rgba(10,29,31,.08)); }
.flight__eagle { position:absolute; top:37%; left:56%; width:clamp(250px,34vw,570px); transform:translate(-50%,-50%) rotate(-6deg); transform-style:preserve-3d; will-change:transform; filter:drop-shadow(0 12px 18px rgba(0,0,0,.2)); }
.flight__eagle img { width:100%; height:auto; }
.flight__intro,.flight__arrival { position:absolute; bottom:140px; left:0; right:0; z-index:2; }
.flight__intro h1 { font-size:clamp(54px,7.4vw,108px); line-height:.94; letter-spacing:-.055em; margin:22px 0; max-width:13ch; text-shadow:0 3px 35px rgba(0,0,0,.18); }
.flight em { color:var(--sun); font-style:normal; }
.flight__intro p { max-width:48ch; font-size:16px; line-height:1.7; }
.flight__arrival { opacity:0; pointer-events:none; }
.flight__arrival p { font-family:var(--font-display); font-weight:900; font-size:clamp(54px,7vw,100px); line-height:1; letter-spacing:-.05em; margin:20px 0; }
.flight__bottom { position:absolute; bottom:44px; left:0; right:0; display:flex; align-items:end; justify-content:space-between; gap:24px; z-index:3; }
.flight__controls { display:flex; align-items:center; gap:18px; font-size:11px; }
.flight__hint { text-transform:uppercase; letter-spacing:.15em; }
.flight__motion { color:var(--cream); background:rgba(12,31,30,.5); border:1px solid rgba(255,255,255,.4); border-radius:6px; padding:10px 12px; cursor:pointer; min-height:44px; }
.flight__motion[hidden] { display:none; }
.flight__track { position:absolute; bottom:0; left:0; right:0; height:3px; background:rgba(255,255,255,.12); }
.flight__track span { display:block; width:100%; height:100%; background:var(--amber); transform:scaleX(0); transform-origin:left; }
.flight.is-paused .flight__hint { visibility:hidden; }
#adventures { scroll-margin-top:100px; }
@media(min-width:961px) and (max-width:1180px) { .nav__inner { gap:14px; } .nav__links { gap:12px; } .nav__links a { font-size:12px; } .nav__logo { font-size:16px; } }
@media(max-width:960px) {
 .flight__stage { min-height:640px; }
 .flight__intro h1 { font-size:clamp(58px,10vw,88px); }
 .flight__eagle { left:65%; top:31%; width:42vw; }
 .flight__controls { flex-direction:column; gap:8px; align-items:end; }
 .photo-story { padding:54px 0; }
 .photo-story__grid { gap:14px; }
 .photo-story__count { display:none; }
}
@media(max-width:620px) {
 .flight__stage { min-height:690px; height:calc(100svh - 72px); }
 .flight.is-enhanced { height:185svh; }
 .flight__intro,.flight__arrival { bottom:205px; }
 .flight__intro h1 { font-size:clamp(53px,13vw,76px); }
 .flight__intro .eyebrow { font-size:10px; letter-spacing:.08em; max-width:28ch; }
 .flight__intro p { font-size:14px; max-width:32ch; }
 .flight__intro p br { display:none; }
 .flight__eagle { width:65vw; left:62%; top:23%; }
 .flight__bottom { bottom:24px; display:block; }
 .flight__bottom .hero__ctas { gap:8px; }
 .flight__controls { flex-direction:row; justify-content:space-between; align-items:center; margin-top:12px; }
 .flight__motion { padding:4px 10px; }
 .photo-story__grid { grid-template-columns:1fr; gap:26px; }
 .photo-story picture { aspect-ratio:3/2; }
 .photo-story__head h2 { font-size:34px; }
 .intro,.venue,.offerings { padding:60px 0; }
 .pagehero__inner { padding-top:64px; padding-bottom:56px; }
 .sess__table th,.sess__table td { padding:12px 8px; }
 .sess__date { white-space:normal; }
 .card { min-height:410px; }
 .band,.split { padding:52px 0; }
 .flight__arrival p { font-size:58px; }
}
@media(prefers-reduced-motion:reduce) {
 .flight.is-enhanced { height:auto; }
 .flight.is-enhanced .flight__stage { position:relative; top:auto; }
 .flight__hint { display:none; }
 .photo-story img { transition:none; }
}

/* Keep retreat and wedding photo frames aligned across screen sizes. */
.venue-photo-gallery .shot picture { display:block; aspect-ratio:16/9; overflow:hidden; border-radius:var(--radius); }
.venue-photo-gallery .shot picture img { width:100%; height:100%; object-fit:cover; }
.venue-photo-gallery .shots--1 .shot picture { aspect-ratio:16/9; }
@media(max-width:620px) { .venue-photo-gallery .shots--2 { grid-template-columns:1fr; } }

/* Real WAEL photography and practical camp information, October 2026. */
.camp-opening{position:relative;isolation:isolate;background:#102d40;color:#fff8ee;min-height:700px;display:flex;align-items:center;overflow:hidden}
.camp-opening__photo{position:absolute;inset:0;z-index:-2}
.camp-opening__photo picture,.camp-opening__photo img{display:block;width:100%;height:100%}
.camp-opening__photo img{object-fit:cover;object-position:65% 55%}
.camp-opening:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,30,38,.92),rgba(8,30,38,.7) 36%,rgba(8,30,38,.08) 76%)}
.camp-opening__content{padding-top:80px;padding-bottom:80px}
.camp-opening h1{font-size:clamp(48px,6vw,88px);line-height:1.03;max-width:10.5ch;letter-spacing:-.045em;margin:24px 0;color:inherit}
.camp-opening h1 em{color:#ffc865;font-style:normal}
.camp-opening__content>p{max-width:36ch;font-size:20px;line-height:1.6;color:inherit}
.camp-opening__note{display:block;margin-top:24px;font-size:14px}
.camp-life{padding:88px 0;background:#fff8ee}
.camp-life h2,.parent-guide h2{font-size:clamp(32px,4vw,54px);line-height:1.1;letter-spacing:-.03em;margin:18px 0}
.camp-life .band__lede{max-width:65ch}
.camp-life__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:32px 0}
.camp-life figure{margin:0;position:relative;overflow:hidden;border-radius:18px;background:#102d40;aspect-ratio:4/3;color:white}
.camp-life picture,.camp-life img{display:block;width:100%;height:100%;object-fit:cover}
.camp-life figcaption{position:absolute;inset:auto 0 0;padding:60px 24px 24px;background:linear-gradient(transparent,rgba(0,20,28,.9));display:flex;flex-direction:column;gap:5px}
.camp-life figcaption strong{font-size:30px;line-height:1.1}
.camp-life figcaption span{font-size:15px;line-height:1.5}
.parent-guide{padding:72px 0;background:#183e38;color:#fff8ee}
.parent-guide__grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.parent-guide p{max-width:45ch;line-height:1.7}.parent-guide a{color:inherit}.parent-guide .eyebrow{color:#ffc865}
.parent-guide__links{display:grid;gap:12px}.parent-guide__links a{display:flex;flex-direction:column;padding:23px;border:1px solid #6d8c80;border-radius:12px;text-decoration:none;gap:8px}.parent-guide__links a:hover{background:#245347}.parent-guide__links strong{font-size:20px}.parent-guide__links span{font-size:14px;line-height:1.5}
.camp-session-summary{border-top:1px solid currentColor;padding-top:14px;margin:18px 0;font-size:14px;line-height:1.6}.camp-session-summary>span{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800}.camp-session-summary p{margin:8px 0}.camphero .camp-session-summary{max-width:55ch}.campcard .camp-session-summary{color:#29453d}
.faq-search{max-width:760px;margin:0 auto 30px}.faq-search label{display:block;font-weight:700;margin-bottom:12px}.faq-search input{box-sizing:border-box;width:100%;padding:16px;border:2px solid #61796f;border-radius:10px;font:inherit;background:white;color:#102d40}.faq-search p{min-height:1.5em;margin-top:8px}.faq-search [hidden],.faq[hidden]{display:none!important}
@media(min-width:1600px){.camp-opening{min-height:780px}}
@media(max-width:900px){.camp-life__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-guide__grid{gap:30px}.camp-opening:after{background:linear-gradient(90deg,rgba(8,30,38,.9),rgba(8,30,38,.4))}}
@media(max-width:600px){.camp-opening{display:block;min-height:0}.camp-opening__photo{position:relative;height:300px;z-index:0}.camp-opening__photo img{object-position:65% 60%}.camp-opening:after{display:none}.camp-opening__content{padding-top:32px;padding-bottom:38px}.camp-opening h1{font-size:46px;max-width:12ch;margin:20px 0}.camp-opening__content>p{font-size:18px}.camp-opening .eyebrow{font-size:10px}.camp-life{padding:48px 0}.camp-life__grid{grid-template-columns:1fr;gap:16px}.camp-life figure{aspect-ratio:4/3}.parent-guide{padding:48px 0}.parent-guide__grid{grid-template-columns:1fr}.camp-session-summary{font-size:13px}.photo-story__grid{gap:20px}}

/* Photo-led destination pages and the combined camp guide. */
.photo-story__view{display:block;border-radius:12px;outline-offset:5px}
.photo-story__full picture{background:#d8dfd3}
.photo-story__full img{object-fit:contain}
.photo-story__full:hover img{transform:none}
.photo-story__grid figure{background:rgba(255,255,255,.5);padding:10px 10px 16px;border-radius:16px;box-shadow:0 5px 20px rgba(17,49,40,.045)}
.photo-story figcaption{padding:14px 6px 0}
.photo-story__grid figure:nth-child(3n+2){background:#f7eedc}
.retreat-reel{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:64px}
.retreat-reel h2{font-size:clamp(32px,4vw,52px);line-height:1.1;margin:20px 0}.retreat-reel p{line-height:1.8;max-width:48ch}.retreat-reel figure{margin:0 auto;max-width:360px;width:100%}.retreat-reel video{display:block;width:100%;aspect-ratio:9/16;border-radius:20px;background:#102d40;box-shadow:0 20px 50px #102d4026}.retreat-reel figcaption{font-size:13px;margin:12px 0;line-height:1.5}
.camp-jump{background:#f4dca7;border-bottom:1px solid #dac28c}.camp-jump .container{display:flex;flex-wrap:wrap;gap:10px 28px;padding-top:16px;padding-bottom:16px}.camp-jump a{min-height:44px;display:inline-flex;align-items:center;font-weight:700;font-size:14px;color:#183e38;text-underline-offset:5px}
.camp-included-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.camp-included-grid article{border-top:4px solid #dc9d3d;padding:26px;background:#fff;border-radius:12px}.camp-included-grid h3{font-size:24px}.camp-included-grid p{line-height:1.75}.camp-included-grid a{font-weight:700;text-underline-offset:5px}
.pagehero__bg img[src*="festival-crowd"]{object-position:center 65%}
@media(max-width:960px) and (min-width:621px){.photo-story__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.retreat-reel,.camp-included-grid{grid-template-columns:1fr}.retreat-reel{gap:28px}.camp-jump .container{gap:4px 20px}.photo-story__count{display:none}}

/* A visual guide to the actual lodging buildings. */
.stay-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:32px}
.stay-options a{display:block;border-radius:18px;overflow:hidden;background:var(--cream,#f6f1e7);color:inherit;text-decoration:none}
.stay-options picture{display:block}.stay-options img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.stay-options span{display:block;padding:20px}.stay-options strong,.stay-options small{display:block}.stay-options small{margin-top:8px;line-height:1.5}
.stay-options a:hover strong{text-decoration:underline}.stay-options a:focus-visible{outline:3px solid #ac541c;outline-offset:5px}
.lodging-detail .split__media{align-self:start;position:sticky;top:120px}
.lodging-detail .split__media img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
@media(max-width:960px){.stay-options{grid-template-columns:repeat(2,minmax(0,1fr))}.lodging-detail .split__media{position:static}}
@media(max-width:620px){.stay-options{grid-template-columns:1fr}}
.stay-book{margin:24px 0 0}.stay-book--center{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}

/* Full photos stay on the page, with room for faces and portrait images. */
.photo-story__view{position:relative;cursor:zoom-in}
.photo-story__view::after{content:'View photo ↗';position:absolute;right:10px;bottom:10px;background:#173530e8;color:#fff;padding:8px 12px;border-radius:30px;font-size:12px;pointer-events:none}
.photo-viewer{box-sizing:border-box;width:min(1100px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:20px;border:1px solid #698278;border-radius:18px;background:#102c2b;color:#fff8ee;overflow:auto}
.photo-viewer::backdrop{background:rgba(4,18,20,.9)}
.photo-viewer__toolbar,.photo-viewer__controls{display:flex;align-items:center;justify-content:space-between;gap:12px}
.photo-viewer__toolbar p{margin:0;font-size:14px}.photo-viewer button{font:inherit;min-height:44px;border:1px solid #91a49d;border-radius:8px;padding:8px 16px;background:#193d36;color:#fff;cursor:pointer}
.photo-viewer button:hover{background:#31594b}.photo-viewer button:focus-visible,.photo-viewer a:focus-visible{outline:3px solid #ffbd5b;outline-offset:3px}
.photo-viewer figure{margin:16px 0}.photo-viewer img{display:block;width:100%;height: min(65dvh,700px);object-fit:contain;background:#0b2020;border-radius:8px}.photo-viewer figcaption{text-align:center;margin:14px 0;line-height:1.5}
.photo-viewer__controls a{color:inherit;font-size:13px;text-underline-offset:4px;min-height:44px;display:flex;align-items:center}
@media(max-width:600px){.photo-viewer{padding:12px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.photo-viewer img{height:57dvh}.photo-viewer__controls{flex-wrap:wrap}.photo-viewer__controls a{order:3;flex-basis:100%;justify-content:center}.photo-viewer figcaption{font-size:14px}}

.camp-video{aspect-ratio:16/9;background:#102c2b;border-radius:18px;overflow:hidden}.camp-video iframe{display:block;width:100%;height:100%;border:0}

/* People must remain fully visible at every card size. Never crop or zoom these photos. */
.campcard__media{background:#dfe6dc}
.campcard__media picture{display:block;width:100%;height:100%}
.campcard__media img{object-fit:contain;object-position:center;transform:none!important}
.campcard:hover .campcard__media img{transform:none}
.camphero__media{align-self:center;background:#dfe6dc}
.camphero__media picture{display:block}
.camphero__media img{height:auto;object-fit:contain;aspect-ratio:auto}

/* Keep the supplied white mark beside the full venue name. */
.nav__logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.nav__logo .nav__logo-text{color:var(--cream);display:block}
.nav__logo-mark{display:block;width:76px;height:auto;flex-shrink:0;object-fit:contain}
@media(min-width:961px) and (max-width:1180px){.nav__logo-mark{width:54px}.nav__logo{gap:8px}}
@media(max-width:960px){.nav__logo-mark{width:64px}}
@media(max-width:480px){.nav__logo{font-size:15px;gap:8px}.nav__logo-mark{width:48px}.nav__inner{gap:12px}}
@media(max-width:360px){.nav__logo{font-size:13px}.nav__logo-mark{width:40px}}

/* Consistent activity cards: full photos above matching caption panels. */
.camp-life figure{aspect-ratio:auto;display:flex;flex-direction:column;background:#102d40}
.camp-life picture{display:block;position:relative;aspect-ratio:4/3;height:auto;flex:none}
.camp-life img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.camp-life figcaption{position:static;padding:18px 24px 24px;background:#102d40;flex:1}

/* Inquiry forms and contact routing. */
#inquiry,#contact-forms{scroll-margin-top:110px}
.inquiry-directory ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.inquiry-directory li{padding:28px;border:1px solid rgba(20,55,53,.18);border-radius:18px;background:white;display:flex;flex-direction:column;align-items:flex-start}
.inquiry-directory h3{margin:0 0 12px}
.inquiry-directory li p{flex:1}
.inquiry-directory li a{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.inquiry-directory__page{display:block;margin-top:10px;padding:6px 0;font-size:14px}
.inquiry-form .container{max-width:1000px}
.inquiry-form__frame{display:block;width:100%;border:0;border-radius:16px;background:#f0ebf8;margin:28px 0}
@media(max-width:900px){.inquiry-directory ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.inquiry-directory ul{grid-template-columns:1fr}.inquiry-directory li{padding:24px}.inquiry-form .container{padding-left:12px;padding-right:12px}}
/* Seven menu items: at 961-1060px shrink the logo and gaps so the header fits (must stay last). */
@media(min-width:961px) and (max-width:1060px){.nav__logo-mark{width:44px}.nav__logo{font-size:14px}.nav__links{gap:9px}.nav__inner{gap:10px}}
