
.preview-note{font-size:10px;padding:4px;letter-spacing:1px}
header{padding:16px 5%}header .brand{font-size:31px}
.hero h1{margin:0}.hero .intro{font-size:16px;line-height:1.6}
.hero-photo{margin:0;aspect-ratio:auto;min-height:0;border-radius:0;background:none}
.hero-photo img{width:100%;max-width:none;height:100%;position:static;object-fit:cover;border-radius:0;margin:0}
.section{padding:48px 5%}.schedule.section{margin-top:0;padding-top:26px}.schedule.section::before{display:none}
.experience article h3{font-size:28px}.experience .class-photo{border-radius:0}
.button,.nav-book{border-radius:0}.filter-bar>button{border-radius:3px}
@media(max-width:760px){.hero h1{font-size:52px}.hero-copy{padding:28px 6%}.hero-photo{width:100%;margin:0}.section{padding:36px 6%}}

:root{--paper:#f3f7f4;--ink:#163e49;--teal:#007e8c;--plum:#163e49;--muted:#60727a;--line:#c6d9d9;--sunset:#f2a482}
header{background:#f3f7f4;border-bottom:1px solid var(--line)}header .brand{font:700 29px/1 Arial,sans-serif;letter-spacing:-1.5px}
.studio-opening{max-width:1440px;margin:auto;display:grid;grid-template-columns:.85fr 1.3fr}
.hero{display:flex;flex-direction:column;min-height:0;background:#086f7c;color:#fff7ec;padding:0;position:relative;justify-content:flex-start}
.hero-copy{align-self:stretch;padding:32px 10%}.hero-copy>.eyebrow{color:#bfe8e8;font-size:10px;letter-spacing:1.7px;margin-bottom:25px}.hero h1{font:700 clamp(39px,4.8vw,66px)/1.01 Arial,sans-serif;letter-spacing:-2.5px}.hero h1 em{font:italic 400 1.12em Georgia,serif;color:#ffbd96}.hero .intro{color:#e0efed;font-size:14px;margin:23px 0 0}.hero-photo{height:auto;flex:1;min-height:420px;width:100%;align-self:stretch;position:relative}.hero-photo img{position:absolute;inset:0;object-fit:cover;object-position:center 40%}.photo-caption{display:none}
.studio-opening .schedule.section{width:100%;padding:28px 6%;margin:0}.schedule .section-heading h2{font:600 26px/1.2 Arial,sans-serif;letter-spacing:-1px}.schedule .section-heading .calendar-intro{font-size:13px}.schedule-toolbar{padding:10px 0}.month-nav{gap:8px}.month-nav h3{font-size:14px}.month-nav button{width:28px;height:28px}.view-toggle button{padding:4px 9px}.filter-bar{padding-top:15px;gap:5px}.filter-bar>button{font-size:12px;padding:4px 9px}.schedule-note{font-size:11px}
.class-row{grid-template-columns:43px 1fr 92px;gap:10px;padding:17px 0}.class-time,.class-meta{display:none}.class-name h3{font:24px/1.2 Georgia,serif}.class-name p{font-size:12px}.class-name .mobile-time{display:block}.date-tile{padding-right:8px}.date-tile strong{font-size:27px}.class-row .button{font-size:12px;padding:9px 6px}.schedule-bottom{display:block;text-align:left;font-size:13px}.schedule-bottom .text-button{display:block;margin-top:4px;font-size:13px}.week-grid{grid-template-columns:1fr}.week-day{min-height:0;border-bottom:1px solid var(--line);border-right:0}.week-day>p{text-align:left}
.experience{background:#f3f7f4}.experience h2{font:600 37px Arial,sans-serif;letter-spacing:-1.5px}.experience-grid article{display:flex;flex-direction:column}.experience-grid article .class-photo{order:2;margin:20px 0 0}.experience-grid article .text-button{text-align:left}.experience-grid article .number{color:#077d87}.about{background:#163e49}.private{background:#f3d5be}
@media(max-width:900px){.studio-opening{grid-template-columns:.85fr 1.3fr}.hero-copy{padding:30px 9%}.hero h1{font-size:40px}.class-name h3{font-size:21px}.class-row{grid-template-columns:35px 1fr}.class-row .button{grid-column:2;justify-self:start}.view-toggle{display:none}}
@media(max-width:650px){.studio-opening{grid-template-columns:1fr}.hero{display:grid;grid-template-columns:1.2fr 1fr}.hero-copy{padding:27px 8%}.hero h1{font-size:40px}.hero-photo{height:100%;min-height:290px}.hero-photo img{object-position:48% center}.hero .intro{font-size:13px}.studio-opening .schedule.section{padding:30px 6%}.class-row{grid-template-columns:42px 1fr 105px}.class-row .button{grid-column:auto}.view-toggle{display:block}}

.studio-opening>.hero{margin:0;width:100%;align-self:stretch}

/* Local identity leads; the instructor's brand stays secondary. */
header{padding:10px 4%;gap:18px;min-height:76px}
header .local-brand{display:flex;align-items:center;gap:12px;letter-spacing:0;font:inherit;min-width:0}
header .local-brand .identity-text{margin:0;display:block;white-space:normal;font:inherit;letter-spacing:0}
header .local-brand strong{display:block;font:700 26px/1.05 Arial,sans-serif;letter-spacing:-.7px}
header .local-brand .identity-text>span{font:500 12px/1.4 Arial,sans-serif;letter-spacing:1px;margin-top:5px;white-space:normal}
.brand-mark{display:block;width:56px;height:56px;object-fit:contain;flex:none}
@media(max-width:650px){header{padding:9px 5%;min-height:70px}.brand-mark{width:46px;height:46px}header .local-brand strong{font-size:23px}header .local-brand .identity-text>span{font-size:11px;letter-spacing:.4px}}

/* Keep the introduction and portrait together at every schedule height. */
header .local-brand strong{font-size:clamp(18px,2.7vw,30px);letter-spacing:-.6px}
header .local-brand .identity-text>span{font-size:11px;letter-spacing:1.8px}
header .brand-mark{width:64px;height:64px}
.hero-copy{flex:none;padding-bottom:28px}
@media(max-width:650px){header .brand-mark{width:48px;height:48px}header .local-brand{gap:8px}header .local-brand strong{font-size:18px}header .local-brand .identity-text>span{font-size:9px;letter-spacing:1px}.hero-photo{min-height:290px;height:100%}.hero-photo img{object-position:center center}}

/* Reversible photo grading: soften contrast and balance the three shoots. */
.experience-grid article:nth-child(1) .class-photo{filter:sepia(.12) saturate(.78) brightness(1.06) contrast(.9)}
.experience-grid article:nth-child(2) .class-photo{filter:saturate(.52) brightness(.98) contrast(.88)}
.experience-grid article:nth-child(3) .class-photo{filter:sepia(.16) saturate(.65) brightness(1.12) contrast(.82)}

/* One welcoming line, with the emblem given its own space. */
header.studio-header{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;gap:16px;padding:10px 4%}
.studio-welcome{margin:0;text-align:center;font:400 clamp(18px,2.5vw,29px)/1.25 Georgia,serif;color:var(--ink)}
@media(max-width:650px){header.studio-header{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:12px 5%}.studio-welcome{font-size:20px;text-align:center;text-wrap:balance}}

/* A welcoming introduction, followed by a glimpse of the schedule. */
.studio-opening{display:block}
.studio-opening>.hero{display:grid;grid-template-columns:1.12fr 1fr;min-height:440px;height:clamp(440px,calc(100svh - 270px),620px);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:32px 8%;min-width:0}
.hero-copy>.eyebrow{font-size:12px;margin-bottom:26px}
.hero h1{font-size:clamp(42px,5vw,68px);line-height:1.08;letter-spacing:-2px}
.hero h1 em{display:block;font-size:1.07em}
.hero .intro{font-size:17px;line-height:1.55;max-width:420px;margin:26px 0 0}
.hero-detail{font-size:16px;line-height:1.6;color:#e0efed;max-width:420px;margin:16px 0 0}
.hero-photo{height:100%;min-height:0;flex:none;width:100%}
.hero-photo img{object-position:50% 37%}
.studio-opening .schedule.section{padding:26px 5% 42px}
.schedule .section-heading{margin-bottom:16px}
.schedule .section-heading h2{font-size:32px}
.schedule .section-heading .calendar-intro{font-size:16px;margin-bottom:0}
@media(min-width:901px){.class-row{grid-template-columns:60px 1fr 125px}.class-name h3{font-size:26px}}
@media(max-width:650px){.studio-opening>.hero{grid-template-columns:1.35fr 1fr;height:auto;min-height:410px}.hero-copy{padding:28px 7%}.hero h1{font-size:clamp(32px,7vw,43px);letter-spacing:-1.2px}.hero-copy>.eyebrow{font-size:11px;letter-spacing:1px;margin-bottom:20px}.hero .intro{font-size:15px;margin-top:21px}.hero-detail{font-size:14px;margin-top:13px}.hero-photo{height:100%;min-height:0}.hero-photo img{object-position:48% center}.schedule .section-heading h2{font-size:28px}.studio-opening .schedule.section{padding:24px 6% 36px}}

/* Typography and coastal colour carry the introduction. */
.studio-opening>.hero{grid-template-columns:1fr 1fr;min-height:410px;height:clamp(410px,calc(100svh - 285px),580px)}
.instruction-panel{background:#f3b58e;color:#163e49;padding:32px 9%;display:flex;flex-direction:column;justify-content:center}
.panel-location{font-size:12px;letter-spacing:1.6px;font-weight:600;margin:0 0 22px}
.instruction-panel h2{font:400 clamp(32px,3.6vw,48px)/1.1 Georgia,serif;letter-spacing:-1px;margin:0 0 26px}
.instruction-options{border-top:1px solid #163e4940;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.instruction-options h3{font:600 17px/1.3 Arial,sans-serif;margin:0 0 8px}
.instruction-options p{font-size:15px;line-height:1.5;margin:0}
@media(max-width:650px){.studio-opening>.hero{grid-template-columns:1fr;height:auto;min-height:0}.hero-copy{padding:30px 7%}.hero h1{font-size:44px}.hero h1 em{display:inline}.hero .intro{max-width:none;margin-top:18px}.instruction-panel{padding:25px 7%}.panel-location{margin-bottom:14px;font-size:11px}.instruction-panel h2{font-size:30px;margin-bottom:18px}.instruction-options{padding-top:16px;gap:18px}.instruction-options h3{font-size:16px}.instruction-options p{font-size:14px}}

/* A quiet brand signature beneath the movement emblem. */
header.studio-header{grid-template-columns:86px minmax(0,1fr) 86px}
header.studio-header .local-brand{display:flex;flex-direction:column;gap:0;justify-content:center;align-items:center}
header.studio-header .studio-wordmark{display:block;margin:0;font:italic 18px/1 Georgia,serif;letter-spacing:-.7px;color:var(--ink)}
@media(max-width:650px){header.studio-header{grid-template-columns:68px minmax(0,1fr)}header.studio-header .studio-wordmark{font-size:15px}}

/* Open, sweeping curves echo the movement emblem. */
.hero-copy,.instruction-panel,.about{position:relative;overflow:hidden;isolation:isolate}
.hero-copy>* ,.instruction-panel>* ,.about>*{position:relative;z-index:1}
.hero-copy::after{content:"";position:absolute;z-index:0;pointer-events:none;width:490px;height:240px;right:-100px;bottom:-170px;border:2px solid #ffbd9666;border-radius:50%;transform:rotate(-22deg);box-shadow:0 -18px 0 -16px #ffbd9640}
.instruction-panel::after{content:"";position:absolute;z-index:0;pointer-events:none;width:330px;height:480px;right:-270px;top:-150px;border:3px solid #086f7c45;border-radius:50%;transform:rotate(-30deg);box-shadow:-24px 0 0 -21px #086f7c33}
.about::after{content:"";position:absolute;pointer-events:none;width:540px;height:250px;right:-220px;bottom:-190px;border:2px solid #f3b58e80;border-radius:50%;transform:rotate(-25deg);box-shadow:0 -24px 0 -22px #f3b58e40}
@media(max-width:650px){.hero-copy::after{width:340px;height:180px;bottom:-140px;right:-70px}.instruction-panel::after{right:-285px;top:-210px}}

/* Class emblems give each row a recognisable movement signature. */
.class-row{grid-template-columns:60px minmax(0,1fr) 140px 125px;column-gap:24px}
.class-icon{display:block;width:130px;height:130px;object-fit:contain;justify-self:center;grid-column:3;grid-row:1}
.class-row>.button{grid-column:4;grid-row:1}
@media(max-width:900px){.class-row{grid-template-columns:40px minmax(0,1fr) 140px;column-gap:16px}.class-row>.button{grid-column:2;grid-row:2;justify-self:start}.class-icon{grid-column:3;grid-row:1 / 3;width:135px;height:135px}}
@media(max-width:500px){.class-row{grid-template-columns:32px minmax(0,1fr) 70px;gap:12px}.class-icon{width:70px;height:90px}.class-name h3{font-size:21px}}

@media(min-width:651px){.hero-copy,.instruction-panel{justify-content:flex-start;padding-top:clamp(44px,7vh,78px)}.hero-copy>.eyebrow,.panel-location{font-size:12px;line-height:1.6;margin:0 0 24px;min-height:20px}}

.fresh-intro{padding:38px 5% 30px;text-align:center;background:#086f7c;color:#fff7ec}.fresh-intro .eyebrow{color:#bfe8e8;font-size:13px;margin-bottom:16px}.fresh-intro h1{font:700 clamp(40px,4.7vw,64px)/1.05 Arial,sans-serif;letter-spacing:-2px;margin:0 0 18px}.fresh-intro h1 em{font-family:Georgia,serif;font-weight:400;color:#ffbd96}.fresh-intro>p:last-child{font-size:17px;line-height:1.5;margin:0}.offerings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:30px 5%}.offerings article{min-width:0}.offerings img{display:block;width:100%;aspect-ratio:1.8;object-fit:cover}.offerings article>div{padding-top:17px}.offerings h2{font:600 27px/1.15 Arial,sans-serif;letter-spacing:-.8px;margin:0 0 12px}.offerings p{font-size:16px;line-height:1.55;min-height:75px;margin:0 0 14px}.offerings .text-button{font-size:15px}.offerings article:nth-child(1) img{filter:sepia(.12) saturate(.78) brightness(1.06) contrast(.9)}.offerings article:nth-child(2) img{filter:saturate(.52) brightness(.98) contrast(.88)}.offerings article:nth-child(3) img{filter:sepia(.16) saturate(.65) brightness(1.12) contrast(.82)}.ways-to-learn{background:#f3b58e;padding:20px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.ways-to-learn p{font-size:15px;margin:0}.ways-to-learn strong{display:block}.ways-to-learn .text-button{font-size:15px}.studio-opening .schedule.section{padding-top:36px}@media(max-width:650px){.fresh-intro{padding:30px 6%}.fresh-intro h1{font-size:42px}.fresh-intro>p:last-child{font-size:16px}.offerings{grid-template-columns:1fr;padding:24px 6%;gap:30px}.offerings article{display:grid;grid-template-columns:1fr 1.2fr;gap:16px}.offerings img{height:100%;min-height:190px;aspect-ratio:auto}.offerings article>div{padding:0}.offerings h2{font-size:23px}.offerings p{font-size:15px;min-height:0}.ways-to-learn{display:block;padding:22px 6%}.ways-to-learn p{margin-bottom:14px}}

header.studio-header{grid-template-columns:86px minmax(0,1fr) 130px}.schedule-shortcut{font-size:15px;color:var(--teal);text-decoration:underline;text-underline-offset:5px;text-align:right}.offerings article:nth-child(3) img{object-position:center 38%;filter:none}@media(max-width:650px){header.studio-header{grid-template-columns:68px minmax(0,1fr)}.studio-welcome{font-size:18px}.schedule-shortcut{grid-column:2;font-size:14px;text-align:center}.offerings article:nth-child(3) img{object-position:center center}}

.offerings article:nth-child(3) img{object-fit:contain;background:#fff;object-position:center}

/* A flowing signature and quiet curves frame the clear introduction. */
.studio-welcome{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.studio-welcome>span{font:500 .82em/1.2 Arial,sans-serif;letter-spacing:-.5px}
.studio-welcome>em{font:italic 400 1.25em/1.2 Georgia,serif;color:#007e8c;display:inline-block;transform:rotate(-3deg);position:relative}
.studio-welcome>em::after{content:"";position:absolute;left:5%;right:-3%;bottom:-6px;height:12px;border-bottom:2px solid #eaa078;border-radius:50%;transform:rotate(-3deg)}
.fresh-intro{position:relative;overflow:hidden;isolation:isolate}
.fresh-intro>*{position:relative;z-index:1}
.fresh-intro::before,.fresh-intro::after{content:"";position:absolute;z-index:0;pointer-events:none;border-radius:50%;border:2px solid #ffbd9666}
.fresh-intro::before{width:490px;height:230px;left:-240px;bottom:-105px;transform:rotate(-32deg);box-shadow:0 -22px 0 -20px #ffbd9655}
.fresh-intro::after{width:310px;height:490px;right:-225px;top:-250px;transform:rotate(-32deg);box-shadow:-24px 0 0 -22px #bfe8e855}
@media(max-width:650px){.studio-welcome{gap:3px 8px}.fresh-intro::before{left:-350px}.fresh-intro::after{right:-280px}.studio-welcome>em{font-size:1.15em}}

@media(min-width:651px){.offerings img{aspect-ratio:1.35}.offerings article:nth-child(3) img{object-fit:cover;object-position:center 18%}}

/* Compact schedule: date, time, details, emblem, action. */
.class-row{grid-template-columns:52px 100px minmax(0,1fr) 64px 126px;gap:18px;padding:22px 0;align-items:center}
.class-row .date-tile{grid-column:1;grid-row:1}
.class-row .class-time{display:block;grid-column:2;grid-row:1;font-size:16px}
.class-row .class-time small{font-size:13px}
.class-row .class-name{grid-column:3;grid-row:1}
.class-row .class-name .mobile-time{display:none}
.class-row .class-name h3{font-size:27px;margin:7px 0}
.class-row .class-name p{font-size:14px;margin:0}
.class-row .class-icon{grid-column:4;grid-row:1;width:64px;height:72px}
.class-row>.button{grid-column:5;grid-row:1;justify-self:stretch;text-align:center;font-size:14px;padding:12px 8px}
@media(max-width:700px){.class-row{grid-template-columns:36px 72px minmax(0,1fr) 96px;gap:10px;padding:19px 0}.class-row .class-icon{display:none}.class-row>.button{grid-column:4;font-size:12px;padding:10px 5px}.class-row .class-name h3{font-size:21px}.class-row .class-name p{font-size:12px}.class-row .class-time{font-size:14px}.class-row .class-time small{font-size:12px}}
@media(max-width:430px){.class-row{grid-template-columns:30px minmax(0,1fr) 86px;gap:10px}.class-row .class-time{display:none}.class-row .class-name{grid-column:2}.class-row .class-name .mobile-time{display:block;margin-top:5px}.class-row>.button{grid-column:3}.class-row .class-name h3{font-size:20px}}

.studio-welcome>em{transform:none}.studio-welcome>em::after{display:none}

.ways-to-learn{justify-content:center;gap:32px;padding:25px 5%}.ways-to-learn p{font-size:19px;margin:0}.ways-to-learn .text-button{font-size:16px}@media(max-width:650px){.ways-to-learn{display:flex;flex-wrap:wrap;gap:12px 24px}.ways-to-learn p{margin:0;font-size:18px}}

/* Keep schedule navigation and filters centered above the listings. */
.schedule .schedule-toolbar{justify-content:center;flex-wrap:wrap;gap:16px}
.schedule .filter-bar{justify-content:center}
.schedule .schedule-note{text-align:center}

/* Bring Hannah’s original studio portrait into her introduction. */
#hannah.about{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:center}
.about-photo{display:block;width:100%;height:100%;max-height:570px;min-height:420px;object-fit:cover;object-position:center;border-radius:90px 0 0 0}
#hannah .about-lead{font-size:23px;margin:20px 0}
@media(max-width:700px){#hannah.about{grid-template-columns:1fr;gap:28px}.about-photo{height:360px;min-height:0;max-height:none;object-position:center 40%;border-radius:65px 0 0 0}}

.ways-invitation{text-align:center}.ways-to-learn .ways-invitation p+p{font-size:16px;margin-top:5px}.ways-to-learn .text-button{flex-shrink:0}
.studio-welcome>em{font-size:.82em}

/* A clear schedule action, with a simpler single-row phone header. */
header.studio-header{grid-template-columns:86px minmax(0,1fr) auto;align-items:center}
.schedule-shortcut{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;background:var(--teal);border:1px solid var(--teal);border-radius:3px;color:white;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;text-align:center}
.schedule-shortcut:hover{background:#086f7c;border-color:#086f7c}
@media(max-width:650px){header.studio-header{grid-template-columns:68px auto;justify-content:space-between;gap:16px;padding:12px 5%}.studio-header .studio-welcome{display:none}.schedule-shortcut{grid-column:2;grid-row:1;font-size:14px}}

.form-trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
#form-security{margin:1rem 0;min-width:0}

/* Weekly list is the default; calendar is a full month. */
.public-month-scroll{overflow-x:auto;margin:24px 0}.public-month{border-collapse:collapse;table-layout:fixed;width:100%;min-width:700px}.public-month th{padding:10px;font-size:14px;border:1px solid var(--line);background:#e5eeee}.public-month td{vertical-align:top;height:120px;padding:8px;border:1px solid var(--line)}.public-month time{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-size:14px;margin-bottom:7px}.public-month .is-today time{border-radius:50%;background:var(--ink);color:white}.month-outside{background:#eaf0ee}.month-class{display:block;width:100%;margin:0 0 8px;padding:9px 7px;background:white;border:1px solid #a9c8c9;border-left:3px solid var(--teal);border-radius:3px;text-align:left;color:var(--ink);line-height:1.4;font-size:12px;overflow-wrap:anywhere}.month-class span,.month-class strong,.month-class small{display:block}.month-class strong{font-size:14px;margin:4px 0}.month-class:hover{background:#e1f0ee}.month-scroll-hint{display:none}.view-toggle button{min-height:44px}.view-toggle button[aria-pressed=true]{background:var(--teal);color:white}@media(max-width:760px){.month-scroll-hint{display:block;font-size:13px;color:var(--muted);margin-bottom:0}.public-month-scroll{margin-top:10px}}

.availability,.class-row .class-name p.availability{font-size:13px;font-weight:650;color:#236246}.availability.is-full,.class-row .class-name p.availability.is-full{color:#9c352b}

.schedule .view-toggle{display:flex;gap:0}

.class-name .class-price,.class-price{font-size:.875rem;line-height:1.4;font-weight:500;margin:.35rem 0;color:inherit}.public-month .class-price{font-size:.75rem;display:block}

/* Compact schedule view switch; keep generous touch targets on phones. */
.schedule .view-toggle{display:inline-flex;flex:0 0 auto;width:max-content;align-items:center;padding:2px;border-radius:5px}.schedule .view-toggle button{min-height:32px;padding:5px 10px;font-size:13px;line-height:1.2;white-space:nowrap}.schedule .schedule-toolbar{padding:6px 0;gap:12px}@media(pointer:coarse){.schedule .view-toggle button{min-height:44px}}

.testing-banner{padding:9px 16px;background:#f5c98d;color:#173f49;font-size:13px;text-align:center;font-weight:600}.testing-banner a{text-decoration:underline}.management-app:has(.testing-banner) .management-layout{min-height:calc(100vh - 96px)}
