:root{--pine:#1f4a33;--pine-d:#143222;--sand:#f7f0df;--paper:#fffbf1;--river:#2d7fa8;--sun:#f0a21b;--bark:#6b4a2b;--ink:#1c2a22;--line:rgba(31,74,51,.2)}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:'Nunito Sans',system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:1.07rem;line-height:1.65;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Bevan',Georgia,serif;font-weight:400;line-height:1.08;color:var(--pine)}
img{max-width:100%;height:auto}
a{color:var(--river)}
.eyebrow{font-weight:800;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;color:var(--river);display:block;margin-bottom:.6rem}
.btn-sun{background:var(--sun);color:#1c1608;font-weight:800;border:0;border-radius:6px;padding:.8rem 1.6rem}
.btn-sun:hover{background:#ffb83a;color:#1c1608}
.btn-ghost{border:2px solid currentColor;color:inherit;font-weight:800;border-radius:6px;padding:.75rem 1.5rem}
/* utility bar */
.util{background:var(--pine-d);color:#e8efe6;font-size:.84rem;padding:.35rem 0}
.util a{color:#fff;text-decoration:none;font-weight:700}
.util .sep{opacity:.4;margin:0 .6rem}
.navbar{background:var(--paper);border-bottom:2px solid var(--pine);padding:.5rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;font-family:'Bevan',serif;color:var(--pine);font-size:1.45rem;line-height:1}
.navbar-brand img{width:64px;height:auto}
.navbar-brand small{display:block;font-family:'Nunito Sans',sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bark);font-weight:800;margin-top:.3rem}
.nav-link{font-weight:800;color:var(--ink);font-size:.86rem;letter-spacing:.08em;text-transform:uppercase}
.nav-link:hover{color:var(--river)}
/* hero */
.hero{background:var(--pine);color:#fff;position:relative;overflow:hidden}
.hero .row{min-height:min(78vh,620px)}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.4vw,5rem)}
.hero h1 em{font-style:normal;color:var(--sun)}
.hero .lead{max-width:34rem;color:#e6efe4}
.hero-photo{border-radius:8px;border:6px solid var(--sand);width:100%;aspect-ratio:3/2;object-fit:cover;object-position:35% 45%;max-height:min(66vh,480px);transform:rotate(1.2deg)}
.hero .eyebrow{color:var(--sun)}
.facts{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-weight:800;font-size:.9rem;margin-top:1.4rem;color:#cfe0cf}
/* signature: pine line + river wave dividers (from the camp logo) */
.pines{height:46px;background:var(--pine);-webkit-mask:none}
.pines svg,.wave svg{display:block;width:100%;height:100%}
.wave{height:30px}
/* sections */
section{padding:84px 0}
.bg-sand{background:var(--sand)}
.bg-pine{background:var(--pine);color:#fff}
.bg-pine h2,.bg-pine h3{color:#fff}
h2{font-size:clamp(2rem,4.2vw,3.1rem);margin-bottom:1rem}
/* pricing ticket */
.ticket{background:#fff;border:3px solid var(--pine);border-radius:10px;padding:2rem;position:relative}
.ticket .price{font-family:'Bevan',serif;font-size:4.4rem;color:var(--pine);line-height:1}
.ticket .price small{font-family:'Nunito Sans';font-size:1.1rem;color:var(--bark);font-weight:800}
.ticket ul{list-style:none;padding:0;margin:1rem 0 1.4rem}
.ticket li{padding:.45rem 0;border-bottom:1px dashed var(--line);font-weight:700}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;text-align:center}
.stats div{border-top:4px solid var(--sun);padding-top:.6rem}
.stats b{display:block;font-family:'Bevan';font-size:1.9rem;color:var(--pine)}
.stats span{font-size:.85rem;font-weight:800;color:var(--bark);text-transform:uppercase;letter-spacing:.08em}
/* gallery */
.gal{columns:3 260px;column-gap:14px}
.gal figure{margin:0 0 14px;break-inside:avoid;position:relative}
.gal img{width:100%;display:block;border-radius:6px}
.gal figcaption{position:absolute;left:10px;bottom:10px;background:var(--sand);color:var(--pine);font-weight:800;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .6rem;border-radius:3px}
/* people */
.person img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;border:4px solid var(--sand);box-shadow:6px 6px 0 var(--river)}
.person h3{font-size:1.5rem;margin-top:1.2rem}
.person .role{font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--bark)}
.award{max-width:150px}
/* contact */
.map{width:100%;height:100%;min-height:340px;border:0;border-radius:8px}
.loc{padding:.9rem 0;border-bottom:1px solid var(--line)}
.loc b{display:block}
footer{background:var(--pine-d);color:#cfe0cf;padding:48px 0 26px;font-size:.95rem}
footer a{color:#fff}
.chip{background:var(--sand);display:inline-block;padding:.4rem .7rem;border-radius:8px}
.chip img{width:90px;display:block}
@media(max-width:991px){section{padding:60px 0}.hero .row{min-height:0}.hero-photo{transform:none;max-height:300px}}
@media(max-width:575px){.stats{grid-template-columns:1fr}.navbar-brand{font-size:1.2rem}.navbar-brand img{width:52px}.util .hide-sm{display:none}}
