:root{--ink:#162527;--muted:#5e6e71;--teal:#00a7a7;--teal-dark:#067477;--mint:#dffffa;--lime:#b8ec5a;--coral:#ff8066;--sky:#dff5ff;--paper:#fffdf7;--line:#c7dde0;--shadow:0 20px 70px rgba(11,68,72,0.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:linear-gradient(120deg,rgba(223,245,255,.85),rgba(255,253,247,.94) 38%,rgba(223,255,250,.9)),var(--paper);font-family:ui-rounded,Avenir Next,Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.site-shell{min-height:100vh}.topbar{justify-content:space-between;gap:16px;width:min(1120px,calc(100% - 32px));margin:0 auto;padding:18px 0 10px}.brand-area,.topbar{display:flex;align-items:center}.brand-area{gap:12px;min-width:0}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900}.brand img{width:46px;height:46px}.brand span{font-size:clamp(1.1rem,4vw,1.45rem)}.top-tab{display:inline-flex;align-items:center;min-height:38px;border:2px solid var(--ink);border-radius:999px;background:white;box-shadow:3px 3px 0 var(--ink);color:var(--ink);font-size:.88rem;font-weight:950;padding:7px 12px;text-decoration:none;white-space:nowrap}.top-tab.active{background:var(--lime)}.nav-links{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.94rem;font-weight:800}.nav-links a{text-decoration:none;padding:9px 10px}.hero{width:min(1120px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);grid-gap:clamp(24px,5vw,52px);gap:clamp(24px,5vw,52px);align-items:start;padding:22px 0 46px}.hero-copy{padding-top:clamp(8px,6vw,46px)}.kid-badge{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--ink);border-radius:999px;padding:8px 12px;background:var(--lime);box-shadow:4px 4px 0 var(--ink);font-weight:900;font-size:.92rem}.hero h1{margin:24px 0 14px;font-size:clamp(2.35rem,9vw,5.4rem);line-height:.92;letter-spacing:0;max-width:760px}.hero p{color:var(--muted);font-size:clamp(1.05rem,3vw,1.3rem);line-height:1.5;max-width:640px}.admin-panel,.booking-card{background:rgba(255,255,255,.9);border:2px solid rgba(22,37,39,.9);border-radius:8px;box-shadow:var(--shadow),7px 7px 0 rgba(22,37,39,.9);overflow:hidden}.booking-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:linear-gradient(135deg,#e9ffff,#ffffff);border-bottom:2px solid var(--ink)}.booking-header strong{display:block;font-size:1.15rem}.booking-header small{color:var(--muted);font-weight:800}.shine-pill{background:linear-gradient(135deg,#14d6d6,#067477);color:white;border-radius:999px;padding:8px 11px;font-size:.82rem;font-weight:900;white-space:nowrap}.booking-body{padding:16px}.step-tabs{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin-bottom:16px}.step-tab{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#f7fbfb;color:var(--muted);font-weight:900}.step-tab.active{background:var(--ink);color:white;border-color:var(--ink)}.field{display:grid;grid-gap:7px;gap:7px;margin-bottom:14px}.field label,.group-label{color:#263f42;font-size:.92rem;font-weight:900}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:white;padding:12px;color:var(--ink);min-height:46px}.field textarea{min-height:82px;resize:vertical}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px;margin:8px 0 14px}.service-option{display:flex;align-items:center;gap:9px;min-height:58px;border:1px solid var(--line);border-radius:8px;background:#ffffff;padding:10px;text-align:left;font-weight:900}.service-option small{display:block;color:var(--muted);font-weight:700}.service-option.selected{border-color:var(--teal-dark);background:var(--mint);box-shadow:inset 0 0 0 2px rgba(0,167,167,.24)}.service-check{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:2px solid var(--teal-dark);border-radius:999px;color:var(--teal-dark)}.file-input{border:2px dashed var(--teal);border-radius:8px;padding:14px;background:#f2ffff}.admin-photo-grid,.photo-preview-grid,.uploaded-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;margin:10px 0 14px}.photo-preview{position:relative;aspect-ratio:1;margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f2ffff}.admin-photo-grid img,.photo-preview img,.uploaded-preview-grid img{width:100%;height:100%;object-fit:cover;display:block}.photo-remove{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:28px;height:28px;border:2px solid var(--ink);border-radius:999px;background:white;color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.uploaded-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-photo-grid a,.uploaded-preview-grid img{aspect-ratio:4/3;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f2ffff}.admin-photo-grid{grid-template-columns:repeat(3,minmax(70px,110px));margin:10px 0 0}.photo-note,.privacy-note{margin:-4px 0 14px;color:var(--muted);font-size:.9rem;line-height:1.35}.icon-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;min-height:48px;border:2px solid var(--ink);font-weight:950;text-decoration:none}.primary-button{width:100%;background:linear-gradient(135deg,#18d6d6,#067477);color:white;box-shadow:4px 4px 0 var(--ink)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.56;box-shadow:none}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.secondary-button{background:white;color:var(--ink);padding:0 14px}.button-row{display:flex;gap:10px;margin-top:14px}.estimate-box{display:grid;grid-gap:12px;gap:12px;padding:14px;border-radius:8px;border:1px solid var(--line);background:#f9ffff;margin-bottom:16px}.price-line{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.price-line strong{font-size:clamp(2rem,10vw,3.5rem);line-height:1}.estimate-detail{border:1px solid var(--line);border-radius:8px;background:white;padding:10px}.estimate-detail span{display:block;color:var(--teal-dark);font-size:.8rem;font-weight:950;text-transform:uppercase}.estimate-detail p{margin:4px 0 0;color:var(--ink);line-height:1.35}.mini-stats{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:9px;gap:9px}.mini-stat{background:white;border:1px solid var(--line);border-radius:8px;padding:10px}.mini-stat span{display:block;color:var(--muted);font-size:.8rem;font-weight:900}.mini-stat strong{display:block;margin-top:3px}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px;margin:10px 0 16px}.slot-button{min-height:46px;border:1px solid var(--line);border-radius:8px;background:white;font-weight:900}.slot-button.selected{background:var(--lime);border-color:var(--ink);box-shadow:inset 0 0 0 2px white}.slot-button:disabled{opacity:.45;text-decoration:line-through;cursor:not-allowed}.error{background:#ffe9e4;border:1px solid #ffb3a4;color:#78301f;border-radius:8px}.error,.success{padding:10px;margin-bottom:12px;font-weight:800}.success{background:#e9fff6;border:1px solid #92e9cd;color:#164b3d;border-radius:8px}.section{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:42px 0}.section h2{font-size:clamp(2rem,6vw,3.6rem);line-height:1;margin:0 0 14px;letter-spacing:0}.about-grid{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1fr);grid-gap:28px;gap:28px;align-items:center}.jackson-photo{position:relative;min-height:340px;border:2px solid var(--ink);border-radius:8px;background:linear-gradient(135deg,#dffffa,#dff5ff);box-shadow:7px 7px 0 var(--ink);display:flex;align-items:flex-end;padding:18px;overflow:hidden}.jackson-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.jackson-photo span{position:relative;z-index:1;display:inline-flex;background:white;border:2px solid var(--ink);border-radius:999px;padding:8px 11px;font-weight:950}.about-copy p,.gallery-copy{color:var(--muted);line-height:1.55;font-size:1.06rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:20px}.job-card{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden}.job-image{aspect-ratio:4/3;background:linear-gradient(135deg,rgba(0,167,167,.85),rgba(184,236,90,.8)),repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 12px,rgba(255,255,255,.05) 12px 24px)}.job-card:nth-child(2) .job-image{background:linear-gradient(135deg,rgba(69,215,255,.88),rgba(255,128,102,.76)),repeating-linear-gradient(0deg,rgba(255,255,255,.36) 0 10px,rgba(255,255,255,.05) 10px 22px)}.job-card:nth-child(3) .job-image{background:linear-gradient(135deg,rgba(22,214,168,.84),rgba(255,253,247,.9)),repeating-linear-gradient(45deg,rgba(22,37,39,.1) 0 7px,rgba(255,255,255,.1) 7px 18px)}.job-card strong{display:block;padding:12px 12px 2px}.job-card span{display:block;padding:0 12px 12px;color:var(--muted);font-size:.9rem}.footer{padding:24px 0 36px;color:var(--muted);font-weight:800}.admin-shell,.footer{width:min(1120px,calc(100% - 32px));margin:0 auto}.admin-shell{padding:24px 0 56px}.admin-list{display:grid;grid-gap:12px;gap:12px;padding:16px}.admin-item{display:grid;grid-template-columns:1fr auto;grid-gap:16px;gap:16px;border:1px solid var(--line);border-radius:8px;padding:12px;background:white}.admin-item h3{margin:0 0 6px}.admin-item p{margin:4px 0;color:var(--muted)}.admin-actions{display:flex;flex-direction:column;gap:8px;min-width:190px}.admin-actions select{min-height:42px;border-radius:8px;border:1px solid var(--line);padding:0 8px}@media (max-width:860px){.about-grid,.hero{grid-template-columns:1fr}.hero{padding-top:10px}.hero-copy{padding-top:4px}.nav-links{display:none}.gallery-grid{grid-template-columns:1fr}}@media (max-width:560px){.admin-shell,.footer,.hero,.section,.topbar{width:min(100% - 20px,1120px)}.admin-list,.booking-body,.booking-header{padding:12px}.brand-area,.topbar{align-items:flex-start}.brand-area{flex-direction:column;gap:8px}.top-tab{min-height:36px;font-size:.84rem;padding:6px 10px}.mini-stats,.photo-preview-grid,.service-grid,.slot-grid{grid-template-columns:1fr}.uploaded-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-item,.button-row{grid-template-columns:1fr;flex-direction:column}.button-row .secondary-button{width:100%}.jackson-photo{min-height:280px}}