:root{--ink:#2F3E66;--orange:#F2A33A;--coral:#FF6B3D;--purple:#7A4FB8;--pink:#FCE8F1;--cream:#FFF8EA;--sky:#DFF3FB;--sun:#FFD25A;--r:22px}
*{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.6;font-size:17px}
h1,h2,h3,h4,.brand{font-family:"Baloo 2",Nunito,sans-serif;line-height:1.15;margin:.2em 0 .4em}
a{color:var(--purple)}img{max-width:100%;height:auto;display:block}
.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 5vw;background:rgba(255,248,234,.94);backdrop-filter:blur(6px);border-bottom:3px dashed #F4D9A6}
.brand{font-size:1.5rem;font-weight:800;text-decoration:none;color:var(--ink)}.brand small{font-size:.95rem;color:var(--coral);font-weight:600}
.nav nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}.nav nav a{text-decoration:none;font-weight:700;color:var(--ink)}
.btn{display:inline-block;background:var(--coral);color:#fff!important;font-weight:800;text-decoration:none;padding:.85rem 1.5rem;border-radius:999px;border:0;font-size:1.05rem;box-shadow:0 5px 0 #C9481F;cursor:pointer;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}.btn-small{padding:.45rem 1rem;font-size:.95rem;box-shadow:0 3px 0 #C9481F}
.btn-ghost{background:#fff;color:var(--ink)!important;box-shadow:0 5px 0 #E3CFA7;border:2px solid var(--ink)}
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center;padding:4rem 5vw 3rem;background:radial-gradient(circle at 85% 20%,#FFE7A8 0,transparent 40%),radial-gradient(circle at 10% 90%,#F8D3E5 0,transparent 35%)}
.hero h1{font-size:clamp(2.3rem,5vw,3.8rem);font-weight:800}.hero h1 span{color:var(--purple)}
.lead{font-size:1.2rem}.pill{display:inline-block;background:var(--sun);padding:.3rem .9rem;border-radius:999px;font-weight:800}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}
.hero-art img{border-radius:var(--r);box-shadow:0 18px 40px rgba(47,62,102,.18);transform:rotate(1.5deg)}
.fine{font-size:.92rem;opacity:.85}
.section{padding:4rem 5vw}.section.alt{background:var(--sky)}
.section h2{text-align:center;font-size:clamp(1.9rem,3.5vw,2.7rem);font-weight:800}
.center{text-align:center}.note{text-align:center;font-style:italic;margin-top:1.5rem}
.cards{display:grid;gap:1.6rem;max-width:1150px;margin:2rem auto 0}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border-radius:var(--r);padding:1.4rem;box-shadow:0 10px 26px rgba(47,62,102,.1);border-top:8px solid var(--orange)}
.card.royals{border-top-color:var(--purple)}.card img{border-radius:16px;margin-bottom:1rem}.card h3{font-size:1.8rem}
.ticks{list-style:none;padding:0}.ticks li{padding-left:1.6rem;position:relative;font-weight:700}.ticks li:before{content:"★";position:absolute;left:0;color:var(--orange)}
.royals .ticks li:before{color:var(--purple)}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;max-width:1150px;margin:2rem auto 0}
.steps li{background:#fff;border-radius:var(--r);padding:1.5rem;position:relative}
.steps span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sun);font-family:"Baloo 2";font-weight:800;font-size:1.4rem}
.tile{background:#fff;border-radius:var(--r);padding:1.4rem;text-align:center;border:3px solid #F4D9A6}.tile span{font-size:2.6rem}
.pricing{max-width:1150px;margin:3.5rem auto 0;background:#fff;border-radius:var(--r);padding:2rem;border:3px dashed var(--orange)}
.pricing h3{text-align:center;font-size:1.9rem}.pricing>.fine{text-align:center}
.price{background:var(--cream);border-radius:18px;padding:1.4rem;text-align:center}.price.featured{background:var(--pink)}
.price h4{font-size:1.3rem}.amt{font-family:"Baloo 2";font-size:2.1rem;font-weight:800;color:var(--coral);margin:.2rem 0}
.towns{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;max-width:900px;margin:1.5rem auto}
.towns li{background:#fff;padding:.5rem 1.1rem;border-radius:999px;font-weight:700;box-shadow:0 3px 0 #B8DCEB}
.faq{max-width:800px;margin:2rem auto 0}
details{background:#fff;border-radius:16px;padding:1rem 1.3rem;margin-bottom:.8rem;box-shadow:0 4px 14px rgba(47,62,102,.08)}
summary{font-weight:800;cursor:pointer;font-size:1.1rem}
.waitlist{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;background:linear-gradient(135deg,#FCE8F1,#FFF1CF);align-items:start}
.waitlist h2{text-align:left}.contact{font-size:1.15rem;font-weight:700}
.form{background:#fff;border-radius:var(--r);padding:1.8rem;box-shadow:0 14px 32px rgba(47,62,102,.14)}
.form label{display:block;font-weight:700;margin-bottom:.9rem}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:.3rem;padding:.75rem;border:2px solid #E3D6BF;border-radius:12px;font:inherit;background:#FFFDF8}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid var(--sun);border-color:var(--orange)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.footer{text-align:center;padding:2rem 5vw;background:var(--ink);color:#fff}.footer .fine{opacity:.7}
@media (max-width:900px){.hero,.waitlist,.two{grid-template-columns:1fr}.four,.steps{grid-template-columns:1fr 1fr}.three{grid-template-columns:1fr}.nav nav a:not(.btn){display:none}.hero{padding-top:2rem}}
@media (max-width:520px){.four,.steps,.row{grid-template-columns:1fr}.brand{font-size:1.2rem;white-space:nowrap}.crown-mark{width:30px}body{font-size:16px}.section{padding:3rem 5vw}}
.btn-small{white-space:nowrap}.card img{width:100%}
.hero-art{margin:0}.hero-art img{aspect-ratio:16/9;object-fit:cover;width:100%}
figcaption{font-size:.88rem;text-align:center;margin-top:.6rem;opacity:.8;font-style:italic}
.card img{aspect-ratio:16/10;object-fit:cover}
.gallery figure{margin:0;background:#fff;border-radius:var(--r);padding:1rem;box-shadow:0 10px 26px rgba(47,62,102,.1)}
.gallery figure img{border-radius:14px;aspect-ratio:3/2;object-fit:cover;width:100%}
.note.concept{font-weight:700;font-style:normal}

.crown-mark{display:inline-block;width:40px;height:auto;vertical-align:-6px;margin-right:.2rem}
.hero-art{position:relative;padding-bottom:2.5rem}
.hero-art .ha-back{width:80%;margin-left:auto;transform:rotate(2deg)}
.hero-art .ha-front{width:78%;margin-top:-12%;position:relative;transform:rotate(-1.5deg);border:6px solid #fff}
.card figure{margin:0 0 1rem}.card figure img{margin-bottom:.3rem}
.season{max-width:900px;margin:2.5rem auto 0;background:#fff;border-radius:var(--r);padding:1.5rem 2rem;border-left:8px solid var(--sun);box-shadow:0 8px 22px rgba(47,62,102,.08)}
.season h3{font-size:1.5rem}
.perk{background:#fff;border-radius:18px;padding:1rem 1.3rem;border:3px dashed var(--purple);margin:1rem 0}.perk p{margin:.3rem 0 0}
.rear-peek{margin:1.5rem 0 0}.rear-peek img{border-radius:18px;box-shadow:0 10px 26px rgba(47,62,102,.15)}
.footer a{color:#FFD25A}.footer-logo{margin:0 auto 1rem;background:#fff;padding:.6rem 1rem;border-radius:16px;width:280px}
@media (max-width:520px){.nav{padding:.6rem 4vw}.nav .btn-small{padding:.4rem .75rem;font-size:.82rem}.brand{font-size:1.1rem}}

.early-modal{position:fixed;inset:0;background:rgba(47,62,102,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}
.early-modal[hidden]{display:none}
.early-box{background:var(--cream);border-radius:var(--r);max-width:440px;width:100%;padding:1.8rem 1.6rem;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.25);border:3px solid var(--sun)}
.early-box h3{margin:.2rem 0 .6rem;color:var(--ink)}
.early-emoji{font-size:2.2rem;margin:0}
.early-btns{display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem}
.early-btns .btn{width:100%}

.center-text{text-align:center;max-width:720px;margin:0 auto 1rem}
.waiver-points{list-style:none;padding:0;max-width:560px;margin:1rem auto 1.5rem;display:grid;gap:.6rem}
.waiver-points li{background:#fff;border-radius:14px;padding:.8rem 1rem;box-shadow:0 6px 16px rgba(47,62,102,.08)}
.waiver-page{max-width:760px;margin:0 auto;padding:2.5rem 5vw}
.waiver-page h1{text-align:center;font-size:clamp(1.9rem,4vw,2.6rem)}
.child-block{border:2px dashed var(--orange);border-radius:16px;padding:1rem 1rem .2rem;margin-bottom:1rem;background:var(--cream)}
.child-block h3{margin:.1rem 0 .7rem}
.waiver-terms{background:var(--cream);border-radius:14px;padding:1rem 1.2rem;font-size:.95rem;max-height:300px;overflow:auto;border:2px solid #E3D6BF;margin-bottom:1rem}
.check{display:flex!important;gap:.6rem;align-items:flex-start;font-weight:600!important}
.check input{width:auto!important;margin-top:.25rem!important}
.draft-note{background:var(--sun);border-radius:12px;padding:.6rem 1rem;font-weight:700;text-align:center}

.royals-views{margin:2.5rem auto 0;max-width:1200px}
.royals-views h3{text-align:center;font-size:1.6rem}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.rv-grid figure{margin:0;background:#fff;border-radius:var(--r);padding:.7rem;box-shadow:0 10px 26px rgba(47,62,102,.1)}
.rv-grid img{width:100%;height:auto;border-radius:14px;display:block}
.rv-grid figcaption{text-align:center;font-weight:700;margin-top:.4rem}
@media (max-width:900px){.rv-grid{grid-template-columns:1fr}}
