:root{--blue:#1268e8;--deep:#12325c;--yellow:#ffd94d;--ink:#14213a;--muted:#63718a;--paper:#fff;--wash:#f4f8ff;--line:#dbe5f3;--green:#16865b}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Inter,Arial,sans-serif;background:var(--wash)}h1,h2,h3{font-family:Poppins,Arial,sans-serif;line-height:1.15}a{color:inherit}.site-header{height:82px;padding:0 max(5vw,28px);background:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 14px #16396412;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:Poppins;font-weight:800;line-height:1.03;color:var(--deep)}.brand img{width:46px;height:46px;object-fit:contain}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{text-decoration:none;font-weight:600;font-size:.92rem}.nav-links a:hover,.nav-links .active{color:var(--blue)}.nav-cta{background:var(--blue);color:#fff!important;padding:12px 18px;border-radius:999px}.menu-button{display:none;background:none;border:0;font-size:1.7rem}.planner-page{padding-bottom:70px}.planner-hero{background:linear-gradient(115deg,#0f4eaa,#1678ef);color:#fff;text-align:center;padding:58px 20px 64px}.planner-hero h1{font-size:clamp(2.1rem,5vw,3.8rem);margin:8px 0 13px}.planner-hero p:last-child{max-width:570px;margin:auto;font-size:1.05rem;line-height:1.65}.eyebrow,.step-kicker,.summary-eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:800;margin:0;color:var(--yellow)}.progress-wrap{background:#fff;max-width:1080px;margin:-22px auto 34px;padding:18px 26px;border-radius:16px;box-shadow:0 12px 30px #1e4c8530}.progress-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:800;color:var(--deep);margin-bottom:10px}.progress-track{height:9px;background:#e5ecf7;border-radius:10px;overflow:hidden}.progress-track span{display:block;height:100%;width:20%;background:var(--yellow);border-radius:inherit;transition:.35s}.planner-layout{max-width:1130px;margin:auto;padding:0 20px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.party-step{display:none;background:#fff;padding:clamp(24px,4vw,43px);border-radius:20px;box-shadow:0 10px 32px #1a436b13}.party-step.is-active{display:block;animation:fadeUp .35s ease}.party-step .step-kicker{color:var(--blue)}.party-step h2{font-size:clamp(1.55rem,3vw,2.15rem);margin:8px 0}.step-intro{color:var(--muted);margin:0 0 25px;line-height:1.55}.service-grid{display:grid;gap:13px}.choice-card,.castle-choice{position:relative;display:flex;align-items:center;gap:17px;border:2px solid var(--line);border-radius:14px;padding:17px;cursor:pointer;transition:.2s;background:#fff}.choice-card:hover,.castle-choice:hover{border-color:#90b7fa;transform:translateY(-2px)}.choice-card input,.castle-choice input{position:absolute;opacity:0}.choice-card:has(input:checked),.castle-choice:has(input:checked){border-color:var(--blue);background:#eef5ff}.choice-icon{font-size:2rem}.choice-card strong,.castle-choice strong{display:block;font-family:Poppins;font-size:1rem}.choice-card small,.castle-choice small{display:block;color:var(--muted);line-height:1.45;margin-top:3px}.choice-state{margin-left:auto;color:var(--blue);font-size:.78rem;white-space:nowrap}.choice-card:has(input:checked) .choice-state{color:var(--green)}.choice-card:has(input:checked) .choice-state::before{content:'✓ ';}.button{border:0;cursor:pointer;background:var(--blue);color:#fff;border-radius:999px;padding:14px 23px;margin-top:25px;font:700 .94rem Inter;text-decoration:none;display:inline-block;box-shadow:0 8px 15px #1268e834}.button span{font-size:1.2rem;margin-left:7px}.button:hover{background:#0757cc}.step-actions{display:flex;justify-content:space-between;align-items:center;margin-top:19px}.step-actions .button{margin-top:0}.text-button{background:none;border:0;font:700 .9rem Inter;color:var(--blue);cursor:pointer;padding:12px 0}.castle-options{display:grid;gap:16px}.castle-choice{align-items:stretch;padding:0;overflow:hidden}.castle-choice img{width:180px;object-fit:cover}.castle-choice span{padding:17px 0;flex:1}.castle-choice b{display:block;font-size:1.25rem;color:var(--blue);margin-top:9px}.castle-choice i{align-self:center;font-style:normal;font-weight:700;font-size:.78rem;color:var(--blue);padding:12px}.castle-choice:has(input:checked) i{color:var(--green)}.castle-choice:has(input:checked) i::before{content:'✓ '}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid label{font-size:.84rem;font-weight:700;color:var(--deep)}.form-grid .wide{grid-column:1/-1}.form-grid em{font-style:normal;color:var(--muted);font-weight:400}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #cbd8e8;border-radius:9px;padding:13px;font:400 1rem Inter;color:var(--ink);background:#fff}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #a9c9fb;border-color:var(--blue)}.invalid{border-color:#d64242}.form-error{color:#be2525;font-size:.84rem;font-weight:600;margin:10px 0 0}.party-summary{position:sticky;top:105px;background:var(--deep);color:#fff;border-radius:20px;padding:27px 24px;box-shadow:0 12px 32px #12325c35}.party-summary h2{font-size:1.55rem;margin:6px 0 22px}.summary-items{border-top:1px solid #ffffff30;padding:16px 0}.summary-items p{margin:0 0 11px;font-size:.91rem;line-height:1.4}.summary-empty{opacity:.75}.summary-detail{border-top:1px solid #ffffff30;padding:15px 0;display:flex;flex-direction:column;gap:4px}.summary-detail span,.summary-total span{color:#c5d6ee;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.summary-detail strong{font-size:.9rem}.summary-total{border-top:1px solid #ffffff30;padding-top:17px;display:grid;gap:5px}.summary-total strong{font:800 2.25rem Poppins;color:var(--yellow)}.summary-total small{color:#c5d6ee;font-size:.72rem}.review-details{border:1px solid var(--line);border-radius:12px;background:var(--wash);padding:5px 18px;margin:18px 0}.review-details p{line-height:1.6}.terms{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}.terms input{width:auto;margin:2px 0 0}.terms a{color:var(--blue)}.success-step{text-align:center;padding:70px 30px}.success-step>span{font-size:4rem}.success-step p{color:var(--muted);max-width:440px;margin:15px auto}.site-footer{background:#102441;color:#fff;padding:32px 5vw;display:flex;gap:22px;justify-content:center;flex-wrap:wrap;font-size:.88rem}.site-footer strong{font-family:Poppins}.site-footer span{opacity:.85}
@import url('pages.css');

/* Deliberate image framing: shows the attraction, not empty sky or hair. */
.service-media.has-image { overflow: hidden; background: #eaf3ff; }
.service-media.has-image img { width: 100%; height: 100%; object-fit: cover !important; }
.service-preview:nth-child(1) .service-media img { object-position: center 74%; }
.service-preview:nth-child(2) .service-media img { object-position: 38% 55%; }
.service-preview:nth-child(3) .service-media img { object-position: center 54%; }
.product-card > img { object-fit: cover !important; object-position: center 74%; }
.detail-hero > img, .image-showcase img, .cropped-castle-image, .disco-gallery img { object-fit: cover !important; }
.detail-hero > img, .cropped-castle-image { object-position: center 74% !important; }
.image-showcase img { object-position: center 65% !important; }
.image-frame { overflow: hidden; }
.image-frame img, .photo-rail img { object-fit: cover !important; object-position: center 72%; }
.castle-choice img { object-fit: cover; object-position: center 74%; }
.payment-grid label:has(input[value="deposit"]) { border-color: #1268e8; background: #eef5ff; }
.submit-button:disabled { cursor: wait; opacity: .72; }
.payment-result { min-height: 100vh; max-width: 760px; margin: 0 auto; padding: 18vh 28px; text-align: center; }
.payment-result h1 { font-size: clamp(2rem, 5vw, 3.4rem); margin: 12px 0; }
.payment-result > p:not(.section-tag) { max-width: 580px; margin: 0 auto; color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
