html{background:#2d2019}

:root{--cream:#fff8ef;--white:#fff;--ink:#3a2a20;--soft:#6e5a4c;--orange:#f07a2d;--orange2:#d9601a;--teal:#1f9e94;--peach:#ffe9d6}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Nunito,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.65}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.15;margin:0 0 .5em}
a{color:var(--teal)}img{max-width:100%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 30px;border-radius:999px;font-weight:800;text-decoration:none;font-size:17px;border:2px solid transparent;transition:.2s;cursor:pointer}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 22px rgba(240,122,45,.35)}.btn-primary:hover{background:var(--orange2);transform:translateY(-2px)}
.btn-ghost{background:rgba(255,255,255,.9);color:var(--ink)}.btn-ghost:hover{background:#fff}
.btn-sm{padding:10px 22px;font-size:15px}
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);box-shadow:0 2px 14px rgba(58,42,32,.08)}
.bar{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:Fraunces,serif;font-weight:800;font-size:24px}.brand img{height:88px;border-radius:12px;background:#fff;padding:3px;box-shadow:0 3px 12px rgba(58,42,32,.18)}
.brand small{display:block;font-family:Nunito;font-weight:600;font-size:12px;color:var(--soft)}
nav{display:flex;gap:22px}nav a{color:var(--ink);text-decoration:none;font-weight:600}nav a:hover{color:var(--orange)}
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:center;background:url(media/party-characters.jpg) center 40%/cover}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,22,10,.72),rgba(40,22,10,.25) 65%,transparent)}
.hero .in{position:relative;max-width:1180px;margin:auto;padding:80px 24px;width:100%;color:#fff}
.tag{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);padding:6px 14px;border-radius:999px;font-weight:600;font-size:14px;margin-bottom:18px}
.hero h1{font-size:clamp(40px,7vw,76px);max-width:640px}.hero p{font-size:clamp(19px,2.4vw,24px);max-width:520px;margin:0 0 30px}
.ctas{display:flex;gap:14px;flex-wrap:wrap}
section{padding:90px 22px}.wrap{max-width:1180px;margin:auto}
.eyebrow{color:var(--orange);font-weight:800;letter-spacing:2px;text-transform:uppercase;font-size:13px}
.head{text-align:center;max-width:720px;margin:0 auto 46px}.head h2{font-size:clamp(30px,4vw,44px)}
.who{background:var(--white)}.who .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.who img{border-radius:28px;aspect-ratio:4/3.4;object-fit:cover;width:100%;box-shadow:0 20px 40px rgba(58,42,32,.15)}
.who p.lead{font-size:20px;color:var(--soft)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(58,42,32,.08);transition:.25s}.card:hover{transform:translateY(-6px)}
.card .img{position:relative}.card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.icon{position:absolute;left:22px;bottom:-26px;width:56px;height:56px;border-radius:18px;background:var(--orange);display:grid;place-items:center;box-shadow:0 8px 18px rgba(240,122,45,.4)}
.card:nth-child(2) .icon{background:var(--teal);box-shadow:0 8px 18px rgba(31,158,148,.4)}.card:nth-child(3) .icon{background:#e9a23b}
.icon svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.card h3{padding:42px 24px 28px;font-size:21px;margin:0}
.give{background:linear-gradient(135deg,var(--peach),#fff3e4)}
.levels{max-width:760px;margin:auto;background:#fff;border-radius:28px;padding:36px;box-shadow:0 14px 36px rgba(58,42,32,.1);text-align:center}
.amts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 26px}
.amt{display:block;text-align:center;text-decoration:none;padding:20px 6px;border:2px solid #f1dcc8;border-radius:18px;font-size:26px;font-weight:800;font-family:Fraunces,serif;background:var(--cream);color:var(--ink);cursor:pointer}
.amt[aria-pressed=true],.amt:hover{border-color:var(--orange);background:#fff1e6;color:var(--orange2)}
.small{font-size:14px;color:var(--soft)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.slot{position:relative;border-radius:22px;overflow:hidden;background:var(--peach);aspect-ratio:1;box-shadow:0 8px 22px rgba(58,42,32,.08)}
.slot.wide{grid-column:span 2;aspect-ratio:16/9}
.slot img,.slot video{width:100%;height:100%;object-fit:cover;display:block}
.slot .lbl{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.92);color:var(--orange2);font-size:12px;font-weight:800;padding:5px 12px;border-radius:999px;letter-spacing:.5px}
.banner{padding:0 22px 90px}.banner .box{max-width:1180px;margin:auto;border-radius:34px;padding:70px 30px;text-align:center;color:#fff;background:linear-gradient(120deg,rgba(217,96,26,.92),rgba(31,158,148,.88)),url(media/tent-gathering.jpg) center/cover}
.banner h2{font-size:clamp(30px,5vw,52px)}.banner p{font-size:20px;max-width:620px;margin:0 auto 28px}
.banner .btn-primary{background:#fff;color:var(--orange2)}
.contact{background:#fff}.contact .grid{display:grid;grid-template-columns:1fr 1.2fr;gap:50px}
.hours{width:100%;border-collapse:collapse;margin-top:12px}.hours td{padding:9px 0;border-bottom:1px solid #f1e4d6}.hours td:last-child{text-align:right;font-weight:600}
form{display:grid;gap:14px;background:var(--cream);padding:30px;border-radius:24px}
input,textarea{width:100%;padding:14px 16px;border:2px solid #f1dcc8;border-radius:14px;font:inherit;background:#fff}input:focus,textarea:focus{outline:none;border-color:var(--teal)}
footer{background:#2d2019;color:#e9dccf;text-align:center;padding:40px 22px;font-size:15px}footer a{color:#ffb98a}
@media(max-width:900px){.cards,.who .grid,.contact .grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}nav{display:none}.who .grid{gap:30px}}
@media(max-width:520px){.amts{grid-template-columns:1fr 1fr}.brand small{display:none}section{padding:64px 18px}.levels{padding:26px 18px}.hero .in{padding:60px 20px}}

nav a.active{color:var(--orange);border-bottom:2px solid var(--orange)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}.burger span{display:block;width:26px;height:3px;background:var(--ink);margin:5px 0;border-radius:2px;transition:.2s}
.hdr-right{display:flex;align-items:center;gap:10px}
.pagehero{padding:80px 22px 60px;text-align:center;background:linear-gradient(135deg,var(--peach),#fff3e4)}.pagehero h1{font-size:clamp(34px,5vw,56px)}.pagehero p{color:var(--soft);font-size:19px;max-width:640px;margin:auto}
.more{display:inline-block;margin-top:24px}
@media(max-width:900px){.burger{display:block}nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;gap:0;box-shadow:0 10px 20px rgba(0,0,0,.08)}
nav.open{display:flex}nav a{padding:14px 24px;border-bottom:1px solid #f3e7da}nav a.active{border-bottom:1px solid #f3e7da;background:#fff1e6}
.open-b span:nth-child(1){transform:translateY(8px) rotate(45deg)}.open-b span:nth-child(2){opacity:0}.open-b span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}}

.feature{background:#fff}.feature .pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
figure{margin:0}figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px;display:block;box-shadow:0 10px 26px rgba(58,42,32,.12)}
figcaption{font-size:14px;color:var(--soft);margin-top:8px;text-align:center}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.pgrid button{all:unset;cursor:zoom-in;display:block;border-radius:18px;overflow:hidden;position:relative;box-shadow:0 8px 22px rgba(58,42,32,.08)}
.pgrid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;transition:.3s}.pgrid button:hover img{transform:scale(1.05)}
.pgrid button:focus-visible{outline:3px solid var(--teal)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px}
.vgrid video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#2d2019;border-radius:18px;display:block}
.vgrid figcaption{text-align:left}
#lb{position:fixed;inset:0;background:rgba(20,12,6,.92);display:none;align-items:center;justify-content:center;z-index:200;flex-direction:column;padding:20px}
#lb.on{display:flex}#lb img{max-width:94vw;max-height:80vh;border-radius:12px}#lb p{color:#fff;margin:12px 0 0}
#lb .x,#lb .nav{position:absolute;background:rgba(255,255,255,.15);color:#fff;border:0;font-size:28px;width:52px;height:52px;border-radius:50%;cursor:pointer}
#lb .x{top:16px;right:16px}#lb .prev{left:12px;top:50%}#lb .next{right:12px;top:50%}
@media(max-width:640px){.feature .pair{grid-template-columns:1fr}.pgrid{grid-template-columns:1fr 1fr;gap:10px}}
@media(max-width:520px){.brand img{height:54px}}
.herologo{display:block;width:220px;max-width:60vw;background:#fff;border-radius:20px;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,.35);margin-bottom:22px}
@media(max-width:520px){.brand img{height:64px}.herologo{width:160px}}
.social a{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:inherit}.social svg{color:#1877F2;background:#fff;border-radius:50%}
.langsw{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;white-space:nowrap}
.langsw a{color:var(--soft);text-decoration:none;padding:4px 8px;border-radius:999px}.langsw a:hover{color:var(--orange)}
.langsw a.on{background:var(--peach);color:var(--orange2)}.langsw .sep{color:#d8c6b6}.langsw .ls{display:none}
@media(max-width:520px){.langsw .lf{display:none}.langsw .ls{display:inline}.langsw{gap:2px;font-size:13px}.langsw a{padding:4px 6px}.hdr-right{gap:6px}.hdr-right .btn-sm{padding:9px 14px}}
@media(max-width:520px){.bar{padding:10px 12px;gap:8px}.brand{font-size:20px;gap:6px;min-width:0}.brand img{height:56px}.hdr-right{flex-shrink:0;gap:4px}.burger{padding:6px}.hdr-right .btn-sm{padding:8px 12px;font-size:14px}}
@media(max-width:360px){.brand span{display:none}}
