/* Shirley Dunn visual refresh. Layout and type change; approved copy stays in the HTML. */
:root {
  --ghost-white:#f8f7f2;
  --electric-sapphire:#4548a8;
  --razzmatazz:#c91863;
  --carrot:#d69b66;
  --ink-900:#242839;
  --ink-800:#30364a;
  --ink-700:#4a5264;
  --ink-600:#596273;
  --ink-500:#667080;
  --surface-100:#f0f0f8;
  --surface-200:#e7e8f1;
  --surface-300:#d9dce5;
  --card-border:#dedfe5;
  --card-shadow:0 14px 42px -36px rgba(30,35,55,.35);
  --grad-hero:none;
  --grad-footer:none;
  --grad-primary:none;
  --grad-surface:none;
  --grad-section-alt:none;
  --grad-section-soft:none;
}
html{scroll-behavior:smooth}
body{font-family:"Segoe UI",Arial,sans-serif;line-height:1.6;background:var(--ghost-white);color:var(--ink-900)}
h1,h2,h3{letter-spacing:-.025em}
h1,h2,.footer-cta h2{font-family:Georgia,"Times New Roman",serif;font-weight:400}
a{color:var(--electric-sapphire)}
.container,.site-nav-inner,.footer-grid{max-width:1160px}
.site-nav{padding:.88rem 1rem;background:rgba(255,255,255,.96);border-color:var(--card-border);box-shadow:none}
.site-brand strong{font-family:Georgia,"Times New Roman",serif;font-size:1.4rem;letter-spacing:-.03em;color:var(--ink-900)}
.site-brand span{font-size:.75rem;letter-spacing:.035em;color:var(--ink-600)}
.site-nav .links{gap:.55rem}
.site-nav .links a{font-size:.88rem;padding:.55rem .85rem}
.site-nav .links a.nav-cta,.btn-primary{background:var(--razzmatazz);box-shadow:none;color:#fff;border:1px solid var(--razzmatazz)}
.site-nav .links a.nav-cta:hover,.btn-primary:hover{background:#a91651;box-shadow:none;filter:none}
.btn,.site-nav .links a.nav-cta{border-radius:999px;min-height:46px}
.btn{font-size:.88rem;padding:.7rem 1.3rem}
.btn-secondary{color:var(--ink-900);border:1px solid var(--card-border);background:#fff}
.btn-secondary:hover{color:var(--ink-900);background:var(--surface-100);border-color:#bfc2d0}
.hero{background:var(--ghost-white);color:var(--ink-900);padding:clamp(3.6rem,7vw,7rem) 1rem;border-bottom:1px solid var(--card-border)}
.hero::before{display:none}
.hero p,.hero .eyebrow{color:var(--ink-700)}
.hero .eyebrow{color:var(--electric-sapphire);letter-spacing:.12em}
.hero .eyebrow.hero-kicker{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:700;color:var(--electric-sapphire);max-width:610px;margin:0 0 1.1rem;line-height:1.25;text-transform:none}
.hero h1{font-size:clamp(2.8rem,5.7vw,5.1rem);line-height:1.04;max-width:790px;margin:.2rem 0 1.25rem;color:var(--ink-900)}
.hero h1+p{font-size:clamp(1.05rem,1.7vw,1.23rem);line-height:1.6;max-width:630px}
.hero .cta-row{margin-top:1.7rem}
.page-home .hero>.container,.page-about .hero>.container{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);column-gap:clamp(2rem,5vw,5rem);align-items:center}
.page-home .hero>.container>*,.page-about .hero>.container>*{grid-column:1}
.page-home .hero>.container::after,.page-about .hero>.container::after{content:"";grid-column:2;grid-row:1/span 5;display:block;width:100%;aspect-ratio:520/560;background:url('/assets/img/learning-still-life.svg') center/contain no-repeat}
.page-about .hero{padding-block:4rem}
.page-about .hero>.container::after{max-height:390px}
.page-booking .hero{padding-block:3.3rem;background:#eeeefa}
.page-booking .hero h1{font-size:clamp(2.65rem,5vw,4.2rem)}
.page-booking .hero #bookingWindowNote{color:var(--electric-sapphire)!important;font-size:.76rem;line-height:1.5}
.section{padding:clamp(3.5rem,6vw,5.8rem) 1rem}
.section.alt{background:#eeeff8;border-color:var(--card-border)}
.section.soft{background:#fff}
.section h2{font-size:clamp(2.2rem,3.4vw,3.15rem);line-height:1.15;color:var(--ink-900)}
.section-intro{font-size:1rem;line-height:1.65;margin:.7rem 0 1.65rem}
.grid{gap:0;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--card-border);border-left:1px solid var(--card-border);margin-top:2rem}
.grid>.card{border:0;border-bottom:1px solid var(--card-border);border-right:1px solid var(--card-border);border-radius:0;box-shadow:none;background:transparent;padding:1.65rem 1.55rem;min-height:185px}
.grid>.card::before{display:none}
.grid>.card:hover{transform:none;box-shadow:none;border-color:var(--card-border);background:rgba(255,255,255,.4)}
.grid>.card strong{font-family:Georgia,"Times New Roman",serif;font-size:1.4rem;font-weight:400;color:var(--ink-900)}
.grid>.card p{font-size:.95rem;line-height:1.65;margin-top:.65rem}
.page-home .section.alt .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.page-home .section.alt .grid>.card{min-height:165px}
.note-box{border:1px solid var(--card-border);border-radius:12px;background:#fff;color:var(--ink-700);box-shadow:none;padding:1.1rem 1.3rem}
.subject-pills{justify-content:flex-start!important;gap:.58rem;margin:1.1rem auto 2rem;max-width:800px}
.subject-pills span{border:1px solid var(--card-border);background:#fff;border-radius:8px;color:var(--ink-900);font-size:.86rem;letter-spacing:0;padding:.58rem .85rem}
.subject-pills span:hover{transform:none;box-shadow:none;border-color:var(--electric-sapphire)}
.pricing-shell{max-width:880px;background:transparent;border:0;box-shadow:none;padding:0;margin-top:2rem}
.pricing-grid{gap:.7rem!important}
.pricing-tier,.pricing-tier.accent{border:1px solid var(--card-border);background:#fff;border-radius:12px;box-shadow:none;padding:1.45rem;min-height:210px}
.pricing-tier.accent{border-color:var(--electric-sapphire);background:#f5f5fd}
.pricing-tier.accent::before{display:none}
.pricing-tier:hover{transform:none;box-shadow:var(--card-shadow)}
.pricing-tier h3{font-size:.8rem;letter-spacing:.08em}
.pricing-tier .amount{font-family:Georgia,"Times New Roman",serif;font-size:2.65rem;font-weight:400;color:var(--ink-900)}
.split-grid{gap:1.2rem}
.meta-card{background:#fff;border:1px solid var(--card-border);border-radius:12px;box-shadow:none;padding:1.5rem}
.meta-card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.6rem;font-weight:400}
.meta-list{font-size:.96rem;line-height:1.8}
.footer{margin-top:0;background:#242839}
.footer::before{display:none}
.footer-cta{padding:4rem 1rem 3.4rem}
.footer-cta h2{font-size:clamp(2rem,3.5vw,3.15rem)}
.footer-grid{padding-block:2.3rem;gap:2rem}
.footer p,.footer li,.footer a{color:#dfe2eb;line-height:1.75}
.footer-bottom{color:#c8cdd9}
.footer .btn-secondary{color:#fff;background:transparent;border-color:#8d94a8}
.footer .btn-secondary:hover{color:#fff;background:#ffffff19}
.site-menu-toggle{display:none;border:1px solid var(--card-border);border-radius:999px;background:#fff;color:var(--ink-900);min-width:44px;min-height:44px;padding:.45rem .85rem;font-family:inherit;font-weight:700;font-size:.85rem;cursor:pointer}
/* Booking flow */
#bookingForm.section.soft{background:var(--ghost-white)}
#bookingForm .stacked-form{max-width:1160px;min-width:0;grid-template-columns:minmax(0,1fr) 290px;gap:1.1rem 2rem;align-items:start}
#bookingForm .stacked-form>section,#bookingForm .stacked-form>#globalError,#bookingForm .stacked-form>.cta-row{grid-column:1}
#bookingForm .stacked-form>section{background:#fff;border:1px solid var(--card-border);border-radius:13px;padding:1.6rem;min-width:0}
#bookingForm .stacked-form>section h2{font-size:1.85rem!important}
#bookingSummaryPanel{grid-column:2;grid-row:1/span 5;position:sticky;top:6rem;border:1px solid var(--card-border);background:#fff;border-radius:13px;padding:1.4rem}
.booking-summary-title{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:1.5rem}
.booking-summary-row{gap:.6rem;font-size:.86rem;line-height:1.45}
.booking-week-grid{display:block;min-width:0;max-width:100%}
.booking-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;min-width:0;max-width:100%}
.booking-day-button{border:1px solid var(--card-border);border-radius:9px;background:#f7f7f9;color:var(--ink-900);padding:.7rem .35rem;min-height:86px;cursor:pointer;text-align:center;line-height:1.25}
.booking-day-button strong,.booking-day-button span,.booking-day-button small{display:block}
.booking-day-button strong{font-size:.88rem}.booking-day-button span{font-size:.76rem;margin:.2rem 0}.booking-day-button small{font-size:.69rem;color:var(--ink-500)}
.booking-day-button.active{background:var(--electric-sapphire);border-color:var(--electric-sapphire);color:#fff}.booking-day-button.active small{color:#fff}
.booking-day-button:hover:not(.active){border-color:var(--electric-sapphire);background:#eff0fb}
.booking-active-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:1rem}
.booking-slot{min-height:50px;border:1px solid var(--card-border);border-radius:8px;background:#fff;color:var(--ink-900);font-size:.88rem;padding:.6rem .4rem;cursor:pointer}
.booking-slot:hover{border-color:var(--electric-sapphire);color:var(--electric-sapphire)}
.booking-slot.selected,.booking-slot.selected:hover{background:var(--electric-sapphire);border-color:var(--electric-sapphire);color:#fff}
.booking-no-slots{grid-column:1/-1;font-size:.92rem;padding:1rem;background:#f7f7f9;border-radius:8px}
.booking-before-submit{background:#f1f1f8;border-color:var(--card-border);border-radius:9px;padding:1rem;margin-bottom:1.1rem}
.booking-before-submit summary{cursor:pointer;margin:0;min-height:30px;display:list-item;list-style-position:inside}
.booking-before-submit ul{font-size:.9rem;line-height:1.65}
.form-field label,.form-field input,.form-field select,.form-field textarea{font-size:.91rem}
.form-field input,.form-field select,.form-field textarea{border-color:var(--card-border);border-radius:8px;padding:.65rem .75rem}
.form-field input:not([type="checkbox"]):not([type="radio"]),.form-field select{min-height:48px}
.terms-panel{background:#fff;border:1px solid var(--card-border);border-radius:13px;padding:1.6rem}
.terms-panel p,.checkbox-row{font-size:.91rem;line-height:1.6}
.checkbox-row{align-items:flex-start;padding:.5rem 0}
.checkbox-row input[type="checkbox"]{width:22px;height:22px;flex-basis:22px;margin-top:.1rem}
.booking-success h1{font-family:Georgia,"Times New Roman",serif;font-size:2.6rem;font-weight:400}
.booking-ref-card,.booking-next-steps,.booking-sessions{border-color:var(--card-border);border-radius:12px;box-shadow:none}
@media(max-width:1050px){.booking-day-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.page-home .hero>.container,.page-about .hero>.container{grid-template-columns:1fr}.page-home .hero>.container::after,.page-about .hero>.container::after{grid-column:1;grid-row:auto;max-width:400px;margin:2rem auto 0}.page-home .section.alt .grid{grid-template-columns:1fr}#bookingForm .stacked-form{grid-template-columns:1fr}#bookingSummaryPanel{grid-column:1;grid-row:2;position:static}}
@media(max-width:760px){.hero{padding:3.2rem 1rem}.hero h1{font-size:clamp(2.55rem,10vw,4rem)}.section{padding:3rem 1rem}.grid{grid-template-columns:1fr}.grid>.card{min-height:0;padding:1.3rem}.pricing-grid{grid-template-columns:1fr!important}.pricing-tier,.pricing-tier.accent{min-height:0}.footer-grid{grid-template-columns:1fr}.booking-active-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.site-nav-inner{flex-wrap:wrap}.site-brand{flex:1 1 auto}.site-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.js-nav-ready .site-nav .links{display:none;flex:1 0 100%;flex-direction:column;align-items:stretch;gap:.3rem;padding:.6rem 0}.js-nav-ready .site-nav .links.is-open{display:flex}.site-nav .links a{justify-content:flex-start;min-height:46px}.site-nav .links a.nav-cta{justify-content:center}.booking-day-picker{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.3rem}.booking-day-button{flex:0 0 100px;scroll-snap-align:start}.booking-active-slots{grid-template-columns:1fr 1fr}#bookingForm .stacked-form>section{padding:1.1rem}.form-grid-2{grid-template-columns:1fr}.form-grid-2>.form-field[style]{grid-column:auto!important}}
@media(max-width:380px){.booking-active-slots{grid-template-columns:1fr}.hero h1{font-size:2.35rem}}

/* Keep the footer call-to-action copy centered after the base footer paragraph reset. */
.footer .footer-cta > p{max-width:540px;margin:.62rem auto 0;text-align:center}
.footer .footer-grid{align-items:start}
.footer .footer-grid > div{min-width:0;text-align:left}
.footer .footer-grid h3,.footer .footer-grid p,.footer .footer-grid li,.footer .footer-grid a{text-align:left}
.footer .footer-bottom{text-align:center}
