/* Clearer type, spacious controls, and a short, guided booking flow. */
:root{--ink:#163b59;--blue:#2c6692;--muted:#597182;--line:#d5e1e8}
.site-header{height:112px}.site-header nav{font-size:14px;gap:30px}.button{font-size:14px;min-height:52px}.button-small{min-height:44px;font-size:13px}.hero{padding-top:32px;padding-bottom:80px;gap:6%}.hero .eyebrow{font-size:11px;letter-spacing:1.6px}.hero-description{font-size:21px}.hero-detail{font-size:15px;max-width:420px}.under-cta{font-size:12px;color:var(--muted)}.hero-notes{font-size:11px;gap:10px 18px}.hero-visual{height:590px;box-shadow:0 24px 50px #10395115}.art-top{font-size:9px;letter-spacing:1.1px}.sample-badge{padding:21px 23px}.sample-badge span{font-size:8px}.strip-inner{min-height:124px;gap:24px}.strip-inner>span:first-child{font-size:17px}.strip-item{font-size:13px;gap:12px}.strip-item b{font-size:29px}.section-heading .eyebrow,.package-header .eyebrow{font-size:11px}.section-heading>p,.package-header>p{font-size:14px;color:var(--muted)}.dance-card{padding:31px 34px;min-height:292px;border-radius:8px}.dance-card>p{font-size:14px;max-width:420px}.dance-card .eyebrow{font-size:10px}.dance-chips button{font-size:13px;min-height:42px;padding:9px 16px}.dance-card>p.dance-note{font-size:11px;color:var(--muted)}.dance-card h3{font-size:33px}.audience-tabs button{font-size:15px;padding:17px 29px;gap:38px}.audience-tabs button span{font-size:11px}.kids-card{border-radius:8px}.kids-card p{font-size:15px}.kids-tags span{font-size:12px}.kids-aside p{font-size:13px}.package-header{padding-top:54px;margin-bottom:25px}.package-card{border-radius:8px;padding:28px 25px;min-height:380px}.package-kicker{font-size:9px;letter-spacing:1px}.package-card h4{font-size:25px;margin-bottom:20px}.package-card p,.package-card li{font-size:13px}.package-card .price{font-size:40px}.price span{font-size:12px;color:var(--muted)}.package-card .text-link{font-size:13px;min-height:37px;align-items:center}.featured-package{background:linear-gradient(135deg,#153e5f,#244f70)}.featured-package .price span{color:#cadce6}.calculator-controls{grid-template-columns:.8fr 1.4fr;gap:9px}.calculator-controls label{font-size:11px}.calculator-controls select{font-size:12px;min-height:41px;padding:8px 5px}.price-context{font-size:11px!important}.package-fineprint{font-size:11px;color:var(--muted);max-width:1000px;margin-top:19px}.quiet-label{font-size:12px}.booking-section{background:#eaf0f3;padding:88px 0}.booking-grid{gap:7%;grid-template-columns:.83fr 1.17fr}.booking-copy>p:not(.eyebrow){font-size:15px;max-width:360px;color:var(--muted)}.booking-copy .eyebrow{font-size:11px}.visit-details{gap:28px}.visit-details h3{font-size:14px}.visit-details p{font-size:14px}.visit-details p span{font-size:12px;color:var(--muted)}.what-to-expect>h3{font-size:24px}.what-to-expect p{font-size:14px;color:var(--muted)}.what-to-expect details{font-size:13px;padding:17px 0}.what-to-expect details p{font-size:13px}.form-card{padding:32px;border-radius:10px}.form-top{margin-bottom:23px}.form-top .eyebrow{font-size:10px}.form-status{font-size:10px}.booking-progress{display:flex;align-items:center;gap:14px;padding-bottom:24px;border-bottom:1px solid #e2eaf0;margin-bottom:25px}.booking-progress button{display:flex;gap:9px;align-items:center;background:none;padding:0;color:#697f8f;font-size:12px;text-align:left;min-height:34px}.booking-progress button>span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #bccdda;border-radius:50%;font-size:12px;flex-shrink:0}.booking-progress button[aria-current=step]{color:#163f60;font-weight:600}.booking-progress button[aria-current=step]>span{background:#163f60;color:#fff;border-color:#163f60}.progress-line{height:1px;flex:1;background:#d4e0e8}.step-title{font-size:27px;line-height:1.2;letter-spacing:-.5px;margin-bottom:9px}.step-intro{font-size:12px;color:var(--muted);margin-bottom:24px}.form-card label:not(.choice),.form-card legend{font-size:12px}.form-card input:not([type=radio]),.form-card select,.form-card textarea{min-height:46px;font-size:14px;padding:12px}.choice>span{min-height:46px;font-size:13px;padding:12px 8px}.time-fieldset .choice>span{font-size:12px}.choice input:disabled+span{opacity:.55;cursor:not-allowed}.optional{font-size:10px}.field-hint{font-size:11px!important;color:var(--muted)!important}.interest-line{font-size:12px;padding:15px 0;gap:7px 15px}.interest-line a{font-size:11px;padding:5px 0;min-height:28px}.interest-line strong{line-height:1.6}.booking-package{background:#f3f7fa;padding:17px;border:1px solid #d9e6ee;border-radius:5px;margin:1px 0 20px}.booking-package>p{font-size:12px;margin-bottom:12px;color:#2a5270}.booking-package .field-row{gap:10px}.booking-package label:not(.choice){font-size:11px;margin-bottom:9px}.booking-package small{font-size:10px;color:var(--muted);display:block;line-height:1.6}.request-summary{margin-top:22px;gap:5px 10px;padding:17px}.request-summary>span{font-size:13px}.request-summary>small{font-size:11px;line-height:1.7}.request-summary>strong{font-size:29px}.request-summary #summary-visit:empty{display:none}.request-summary #summary-visit{color:#244e6b}.form-navigation{display:flex;gap:16px;align-items:center}.back-button{background:none;font-size:12px;padding:12px 3px;white-space:nowrap;min-height:44px}.submit-button{font-size:13px;padding:13px 17px;min-height:48px}.submit-button #continue-label{font-size:13px;line-height:1.4;text-align:left}.privacy-note{font-size:11px;color:var(--muted)}.form-error{font-size:12px;line-height:1.6}.dialog-inner .eyebrow{font-size:10px}.review-intro{font-size:14px}.dialog-inner dl,.saved-panel dl{font-size:13px;grid-template-columns:105px 1fr}.review-notice{font-size:12px}.dialog-inner .button{font-size:13px}.dialog-inner>.text-link{font-size:12px;padding:8px 0}.saved-panel p{font-size:14px}.saved-panel .button{font-size:14px}.saved-actions .text-link{font-size:12px;padding:6px 0}.draft-warning{padding:13px;border:1px solid #ddc994;background:#fff9e8;color:#715728!important;border-radius:4px}.mobile-visit{display:none}.noscript{font-size:14px}footer>span{font-size:11px}footer p{font-size:16px}
@media(min-width:1101px){.booking-copy{position:sticky;top:35px;align-self:start}}
@media(max-width:1100px){.hero{gap:5%}.hero-visual{height:555px}.hero .eyebrow{font-size:9px}.hero-description{font-size:19px}.hero-detail{font-size:14px}.hero-notes{font-size:10px}.strip-inner{gap:15px}.strip-inner>span:first-child{font-size:15px}.strip-item{font-size:11px;gap:10px}.package-card{padding:23px 20px}.package-card h4{font-size:23px}.package-card p,.package-card li{font-size:12px}.package-card .price{font-size:35px}.calculator-controls select{font-size:11px}.booking-grid{gap:5%;grid-template-columns:.85fr 1.15fr}.form-card{padding:27px}.form-card input:not([type=radio]),.form-card select,.form-card textarea{font-size:13px;padding:11px 9px}.form-top .eyebrow{font-size:9px}.time-fieldset .choice>span{font-size:11px}.booking-progress{gap:10px}.booking-progress button{font-size:11px}.form-status{font-size:9px}.field-hint{font-size:10px!important}}
@media(max-width:800px){.site-header{height:94px}.site-header nav{gap:17px}.site-header nav>a:not(.button){display:inline;font-size:12px}.site-header .button-small{font-size:12px;padding:10px 13px;gap:16px}.hero{gap:5%;padding-top:22px;padding-bottom:51px}.hero-visual{height:495px}.hero-description{font-size:17px}.hero-detail{font-size:13px}.hero .eyebrow{font-size:8px;letter-spacing:1px}.hero-notes{font-size:9px}.hero-cta{font-size:12px;padding:14px 16px;gap:20px}.under-cta{font-size:10px}.strip-inner{min-height:0;gap:18px 25px;padding:25px 0}.strip-item{font-size:12px}.section-heading>p,.package-header>p{font-size:13px}.dance-card{padding:25px}.dance-card>p{font-size:13px}.dance-card h3{font-size:30px}.dance-chips button{font-size:12px;padding:8px 14px}.packages-grid{gap:18px}.package-card{padding:25px;min-height:365px}.group-package,.kids-extra{min-height:0}.package-card p,.package-card li{font-size:13px}.package-card .price{font-size:38px}.booking-section{padding:60px 0}.booking-grid{grid-template-columns:1fr;gap:35px}.booking-copy>p:not(.eyebrow){max-width:560px}.booking-copy h2 br{display:none}.booking-copy h2{max-width:560px}.what-to-expect{margin-top:19px}.form-card{padding:31px;max-width:660px;width:100%;justify-self:center}.form-card input:not([type=radio]),.form-card select,.form-card textarea{font-size:16px;min-height:48px;padding:12px}.form-card label:not(.choice),.form-card legend{font-size:13px}.form-top .eyebrow{font-size:10px}.form-status{font-size:10px}.booking-progress button{font-size:13px}.time-fieldset .choice>span{font-size:12px}.field-hint{font-size:11px!important}.booking-package label:not(.choice){font-size:12px}.booking-package small{font-size:11px}.calculator-controls select{font-size:14px}.price-context{font-size:11px!important}.step-intro{font-size:13px}}
@media(max-width:540px){body{padding-bottom:85px}.wrap{width:calc(100% - 36px)}.preview-bar{font-size:8px;letter-spacing:.4px}.preview-bar>span:last-child{font-size:9px}.site-header{height:103px;position:relative;align-items:flex-start;padding-top:19px}.site-header .brand-joy{font-size:44px}.site-header nav{display:flex;gap:17px;align-items:center;justify-content:flex-end;padding-top:2px;flex-wrap:wrap}.site-header nav>a:not(.button){position:absolute;bottom:7px;font-size:12px}.site-header nav>a:first-child{left:0}.site-header nav>a:nth-child(2){left:78px}.site-header nav>a:not(.button):after{bottom:-1px}.site-header .button-small{font-size:11px;min-height:40px;gap:12px;padding:8px 11px}.hero{padding-top:25px;padding-bottom:38px;gap:35px}.hero .eyebrow{font-size:9px;letter-spacing:1.2px;margin-bottom:20px}.hero-description{font-size:19px}.hero-detail{font-size:14px;max-width:360px;line-height:1.8}.hero-cta{font-size:14px;min-height:52px;padding:15px 20px;gap:27px}.under-cta{font-size:11px;max-width:330px;line-height:1.7}.hero-notes{font-size:10px;gap:8px 16px}.hero-visual{height:445px;margin-left:10px}.art-top{font-size:8px;left:57px;right:20px;letter-spacing:.8px}.art-top>span:last-child{display:none}.sample-badge{padding:16px 18px}.sample-badge span{font-size:7px}.sample-badge strong{font-size:31px}.art-bottom>span:first-child{font-size:24px}.strip-inner{gap:21px 15px;padding:24px 0;grid-template-columns:1fr 1fr}.strip-inner>span:first-child{font-size:14px}.strip-item{font-size:11px;line-height:1.5;gap:10px}.strip-item b{font-size:25px}.section-heading .eyebrow,.package-header .eyebrow{font-size:10px;letter-spacing:1.4px}.section-heading h2{font-size:37px}.section-heading>p{font-size:13px;max-width:330px}.audience-tabs button{font-size:14px;padding:15px 16px;gap:16px}.dance-card{padding:25px}.dance-card .eyebrow{font-size:9px}.dance-card h3{font-size:30px}.dance-card>p{font-size:14px}.dance-chips button{font-size:13px;min-height:44px}.dance-card>p.dance-note{font-size:11px}.kids-card{padding:24px}.kids-card p{font-size:14px}.kids-tags span{font-size:11px}.kids-aside p{font-size:12px}.package-header{padding-top:38px}.package-header h3{font-size:29px}.package-header>p{font-size:13px}.package-card{padding:26px;min-height:0}.package-card h4{font-size:26px}.package-card p,.package-card li{font-size:14px}.package-kicker{font-size:10px}.package-card .price{font-size:42px}.price span{font-size:13px}.package-card .text-link{font-size:14px}.calculator-controls label{font-size:12px}.calculator-controls select{font-size:16px;min-height:44px}.package-fineprint{font-size:11px}.booking-section{padding:47px 0}.booking-copy h2{font-size:45px;max-width:320px}.booking-copy>p:not(.eyebrow){font-size:14px}.visit-details{grid-template-columns:1fr;gap:20px}.visit-details>div{gap:14px}.detail-icon{width:32px;height:32px;font-size:19px}.visit-details h3{font-size:13px}.visit-details p{font-size:13px}.visit-details p span{font-size:11px;max-width:280px}.what-to-expect>h3{font-size:25px}.what-to-expect p{font-size:13px}.what-to-expect details{font-size:13px}.form-card{padding:23px 18px;border-radius:8px}.form-top .eyebrow{font-size:9px;letter-spacing:.8px}.form-status{font-size:9px}.booking-progress{gap:11px;padding-bottom:20px;margin-bottom:22px}.booking-progress button{font-size:12px;gap:7px}.booking-progress button>span{width:27px;height:27px}.step-title{font-size:27px}.step-intro{font-size:12px}.form-card label:not(.choice),.form-card legend{font-size:12px}.form-card input:not([type=radio]),.form-card select,.form-card textarea{padding:11px 9px;font-size:16px}.form-card .field-row{grid-template-columns:1fr;gap:0}.form-card #child-fields,.form-card #time-fields,.booking-package .field-row{grid-template-columns:1fr 1fr;gap:10px}.form-card #time-fields label{font-size:11px}.form-card .booking-package .field-row{grid-template-columns:1fr;gap:0}.choice>span{font-size:13px}.time-fieldset .choice>span{font-size:11px}.optional{font-size:10px}.interest-line{font-size:12px;grid-template-columns:1fr}.interest-line strong{text-align:left}.interest-line a{justify-self:start;font-size:12px}.request-summary>small{font-size:10px}.request-summary>span{font-size:12px}.submit-button #continue-label{font-size:12px}.privacy-note{font-size:10px}.form-navigation{gap:12px}.back-button{font-size:12px}.mobile-visit{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;align-items:center;justify-content:space-between;gap:12px;background:#fafcfaf5;backdrop-filter:blur(16px);padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #ccdbe5;box-shadow:0 -5px 22px #153e5f0a}.mobile-visit>div{display:flex;flex-direction:column;gap:2px;min-width:0}.mobile-visit strong{font-size:11px;font-weight:500}.mobile-visit>div>span{font-size:9px;color:var(--muted)}.mobile-visit .button{font-size:12px;min-height:43px;padding:10px 13px;gap:17px;white-space:nowrap}.mobile-visit.is-booking{display:none}.dialog-inner{padding:30px 22px}.dialog-inner h2{font-size:32px}.dialog-inner dl,.saved-panel dl{font-size:12px;grid-template-columns:85px 1fr;gap:10px 12px}.dialog-inner .button{font-size:12px;padding:14px 10px;gap:10px}.review-intro{font-size:13px}.review-notice{font-size:11px}footer{padding:28px 0}footer>span{font-size:9px}}
@media(max-width:360px){.site-header .button-small{font-size:10px;gap:8px}.site-header .brand-name{font-size:6px}.hero .eyebrow{font-size:8px}.hero-cta{font-size:13px;gap:20px}.mobile-visit{padding-left:12px;padding-right:12px;gap:8px}.mobile-visit strong{font-size:10px}.mobile-visit>div>span{font-size:8px}.mobile-visit .button{font-size:11px;gap:10px;padding:10px}.booking-progress button{font-size:11px}.time-fieldset .choice>span{font-size:10px}.form-card #time-fields{grid-template-columns:1fr;gap:0}}
