:root{color-scheme:light;--ink:#242132;--paper:#ffffff;--line:#e5e1ef;--brand:#6745F5;--brand-hover:#5434d6;--brand-soft:#f2eeff;font-family:system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}a,button,input,select{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--brand);outline-offset:5px}#skip{position:absolute;top:-100px;left:16px;padding:12px;background:white;z-index:10}#skip:focus{top:12px}header,main{max-width:1280px;margin:auto;padding-inline:22px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:25px;border-bottom:1px solid var(--line)}header>a{font-size:25px;font-weight:850;letter-spacing:-1.3px}header>a span{font-weight:450}header b{display:inline-block;margin-left:8px;color:var(--brand)}nav{display:flex;gap:24px;align-items:center;font-size:14px;font-weight:650}nav a:not(:last-child){display:none}nav a:last-child{background:var(--brand);color:#fff;padding:12px 16px;border-radius:8px;white-space:nowrap}nav a:not(:last-child):hover{color:var(--brand)}section{padding-block:55px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,6vw,76px);line-height:1.08;letter-spacing:-2.5px;margin-bottom:24px}h1 em{font-style:normal;color:var(--brand)}h2{font-size:clamp(30px,4vw,46px);line-height:1.16;letter-spacing:-1.4px;margin-bottom:18px}h3{font-size:22px;letter-spacing:-.5px;margin-bottom:8px}p{line-height:1.65}p[data-eyebrow]{font-size:11px;font-weight:750;letter-spacing:1.6px;text-transform:uppercase;margin-bottom:22px;color:var(--brand)}#hero>div>p:not([data-eyebrow]){max-width:540px;font-size:17px;color:#666174}form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;display:grid;gap:10px;margin:30px 0 12px}label{font-size:11px;font-weight:700;padding:8px 10px;display:grid;gap:7px}input,select{width:100%;min-width:0;border:0;background:transparent;color:var(--ink);font-size:15px;padding:6px 0}button{border:0;border-radius:8px;background:var(--brand);color:white;padding:18px;cursor:pointer;font-weight:650}button span{margin-left:15px}small{font-size:12px;color:#6b6578;line-height:1.6}#hero-gallery{margin:35px 0 0;min-width:0}#hero-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:18px}#hero-gallery figcaption{font-size:12px;color:#6b6578;line-height:1.6;margin-top:10px}#categories,#how{border-top:1px solid var(--line)}[data-heading]>p{color:#6b6578;font-size:15px}#categories ul{display:grid;gap:14px;list-style:none;padding:0;margin:28px 0 0}#categories ul a{display:block;background:var(--brand-soft);border:1px solid transparent;border-radius:14px;padding:24px;position:relative;transition:transform .2s,border-color .2s}#categories ul li:nth-child(2) a{background:#f5f2ff}#categories ul li:nth-child(3) a{background:#eeebfa}#categories ul li:nth-child(4) a{background:#f6f4fc}#categories ul a:hover{transform:translateY(-4px);border-color:var(--brand)}#categories ul a>span{font-size:11px;color:#6b6578}#categories ul a>div{font-size:65px;line-height:1.5;font-weight:350;margin-block:8px}#categories ul p{font-size:14px;color:#6b6578;margin-bottom:0}#categories ul b{position:absolute;right:24px;bottom:25px;font-size:23px}ol{list-style:none;padding:0;margin:20px 0 0}ol li{display:flex;gap:20px;padding-block:22px;border-bottom:1px solid var(--line)}ol li>span{font-size:13px;color:var(--brand);padding-top:5px}ol p{font-size:15px;color:#6b6578;max-width:420px;margin-bottom:0}#results{padding:28px;background:var(--brand-soft);border-radius:14px;margin-bottom:35px}#results h2{font-size:28px}#results p:last-child{margin:0}#closing{background:var(--ink);color:var(--paper);border-radius:18px;text-align:center;padding:50px 20px;margin-bottom:45px}#closing p[data-eyebrow]{color:#c7baff}#closing h2{font-size:clamp(28px,4vw,46px)}#closing a{display:inline-block;background:var(--brand);color:#fff;padding:16px 23px;border-radius:8px;font-weight:650;margin-top:10px} @media(min-width:540px){#categories ul{grid-template-columns:repeat(2,minmax(0,1fr))}nav a:not(:last-child){display:block}}
@media(min-width:1000px){header,main{padding-inline:48px}#hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:45px;align-items:center;padding-block:70px}#hero-gallery{margin:0}#hero-gallery img{max-height:520px}form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:0}label+label{border-left:1px solid var(--line)}button{font-size:13px;padding-inline:15px}[data-heading]{display:flex;justify-content:space-between;align-items:end}#categories ul{grid-template-columns:repeat(3,minmax(0,1fr))}#how{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding-block:70px}ol{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#categories ul a{transition:none}}

nav a:last-child:hover,button:hover,#closing a:hover{background:var(--brand-hover)}#categories ul a>div,#categories ul b{color:var(--brand)}

/* Section navigation highlight */
main>section{transition:opacity .25s ease,box-shadow .25s ease}
main>section[data-section-dimmed]{opacity:.3}
main>section[data-section-active]{opacity:1}
@media(prefers-reduced-motion:reduce){main>section{transition:none}}

/* Pilates directory preview */
[data-directory] #directory-intro{padding-bottom:35px}
#directory-intro h1{font-size:clamp(42px,6vw,68px)}
#directory-intro>p:not([data-eyebrow]){max-width:620px;color:#666174}
#directory-intro p[data-preview]{font-size:12px;background:var(--brand-soft);padding:12px 16px;border-radius:8px;max-width:fit-content}
#directory-results{padding-top:0}
#directory-filters{border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:36px;background:#fff}
#directory-filters [data-filter-heading]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#directory-filters h2{font-size:20px;letter-spacing:-.5px;margin:0}
#directory-filters [data-filter-heading]>a{font-size:12px;color:var(--brand);text-decoration:underline;text-underline-offset:3px}
#directory-filters form{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;border:0;padding:0;margin:20px 0 0;background:transparent}
#directory-filters label{border:1px solid var(--line);border-radius:9px;background:var(--paper);min-width:0;padding:10px 12px}
#directory-filters button{align-self:stretch;white-space:nowrap}
#directory-results [data-heading]>span{font-size:12px;color:#6b6578;display:block;margin-bottom:22px}
#listing-grid{display:grid;gap:22px}
#listing-grid article{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white}
[data-listing-photo]{height:220px;background-image:url('/assets/images/hero-fitness.jpg');background-size:200% auto;background-position:var(--photo-position);position:relative}
[data-listing-photo]>span{position:absolute;bottom:12px;left:14px;background:#ffffffed;padding:5px 9px;border-radius:5px;font-size:10px;color:#494355}
[data-listing-body]{padding:22px}
[data-listing-body] p[data-eyebrow]{margin-bottom:10px;font-size:10px}
[data-listing-body]>p:not([data-eyebrow]){font-size:14px;color:#6b6578}
[data-tags]{display:inline-block;background:var(--brand-soft);color:var(--brand);border-radius:6px;padding:7px 10px;font-size:11px}
[data-listing-body] p[data-listing-note]{font-size:11px;border-top:1px solid var(--line);padding-top:14px;margin:18px 0 0}
@media(min-width:650px){#listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:650px){#directory-filters form{grid-template-columns:repeat(2,minmax(0,1fr))}#directory-filters button{grid-column:1/-1}}
@media(min-width:1000px){#directory-filters form{grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr)) auto;align-items:stretch}#directory-filters button{grid-column:auto}#directory-results [data-heading]{align-items:center}}
@media(min-width:1150px){#listing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Listing detail preview */
[data-listing] #listing-intro{padding-bottom:30px}
#listing-intro h1{font-size:clamp(42px,6vw,72px);overflow-wrap:anywhere}
#listing-intro>p:not([data-eyebrow]){color:#6b6578}
p[data-preview]{font-size:12px;background:var(--brand-soft);padding:10px 14px;border-radius:8px;max-width:fit-content}
#listing-gallery{margin:30px 0 0}
#listing-gallery img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover;object-position:center 35%;border-radius:18px}
#listing-gallery figcaption{font-size:11px;color:#6b6578;margin-top:10px}
#listing-details{padding-top:20px;display:grid;gap:30px}
#listing-details>div>p{color:#6b6578;max-width:660px}
#listing-details>div>h3{margin-top:32px}
#listing-location{margin-block:32px;padding-block:28px;border-block:1px solid var(--line)}
#listing-location p{font-size:14px;color:#6b6578}
#listing-details>div>a,[data-listing-note] a{color:var(--brand);font-weight:650}
#listing-contact{background:var(--brand-soft);border:1px solid var(--line);border-radius:16px;padding:26px;align-self:start}
#listing-contact h2{font-size:28px}
#listing-contact>p:not([data-eyebrow]){font-size:14px;color:#6b6578}
#listing-contact dl{margin-block:24px}#listing-contact dt{font-size:11px;color:#6b6578;margin-top:16px}#listing-contact dd{margin:5px 0 0;font-size:14px;font-weight:650}
#listing-contact p[data-booking-note]{border-top:1px solid #d9d0fa;padding-top:18px;font-size:12px;margin-bottom:0}
@media(min-width:1000px){#listing-details{grid-template-columns:minmax(0,1fr) 330px;gap:60px}#listing-gallery img{height:480px}#listing-contact{position:sticky;top:24px}}

/* Shared site footer */
#site-footer{display:block;width:100%;padding:48px 22px 24px;border-top:1px solid var(--line);background:linear-gradient(180deg,var(--brand-soft),#fff)}
#site-footer [data-footer-grid]{max-width:1184px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:34px 24px}
#site-footer [data-footer-brand]{grid-column:1/-1}
#site-footer [data-footer-brand]>a:first-child{display:inline-flex;align-items:center;font-size:27px;font-weight:850;letter-spacing:-1.3px}
#site-footer [data-footer-brand]>a:first-child span{font-weight:450}
#site-footer [data-footer-brand] b{margin-left:8px;color:var(--brand)}
#site-footer p{margin:14px 0;font-size:14px;max-width:300px;color:#6b6578}
#site-footer [data-footer-brand]>p:first-of-type{font-size:19px;font-weight:650;line-height:1.45;color:var(--ink)}
#site-footer [data-footer-cta]{display:inline-flex;align-items:center;gap:24px;margin-top:6px;padding:12px 16px;border:1px solid var(--brand);border-radius:8px;color:var(--brand);font-size:14px;font-weight:700}
#site-footer [data-footer-cta]:hover{background:var(--brand);color:white}
#site-footer h2{font-size:14px;line-height:1.5;letter-spacing:0;margin:0 0 14px;font-weight:750}
#site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
#site-footer li a{display:inline-block;padding-block:7px;font-size:14px;line-height:1.5;color:#5c566c}
#site-footer li a:hover,#site-footer [data-footer-bottom]>a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:4px}
#site-footer [data-footer-bottom]{max-width:1184px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}
#site-footer [data-footer-bottom]>a{font-size:12px;line-height:1.6;padding-block:7px;font-weight:650}
@media(min-width:540px){#site-footer [data-footer-grid]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){#site-footer{padding-inline:48px}}
@media(min-width:900px){#site-footer{padding-top:56px}#site-footer [data-footer-grid]{grid-template-columns:1.5fr repeat(3,1fr);gap:40px}#site-footer [data-footer-brand]{grid-column:auto}#site-footer [data-footer-bottom]>a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

#categories ul a{height:100%}
#categories ul h3{overflow-wrap:anywhere;padding-right:8px}

/* Compact primary categories */
#categories ul{gap:12px;margin-top:24px}
#categories ul a{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;column-gap:12px;row-gap:4px;align-content:center;padding:18px 16px;border-radius:12px;min-height:100px}
#categories ul a>span{display:none}
#categories ul a>div{grid-column:1;grid-row:1/3;align-self:center;font-size:30px;line-height:1;margin:0;text-align:center}
#categories ul h3{grid-column:2;grid-row:1;font-size:16px;line-height:1.35;letter-spacing:-.2px;margin:0;padding:0;overflow-wrap:normal}
#categories ul p{grid-column:2;grid-row:2;font-size:12px;line-height:1.5;margin:0}
#categories ul b{position:static;grid-column:3;grid-row:1/3;align-self:center;font-size:18px}
#categories ul a:hover{transform:translateY(-2px)}
@media(min-width:1000px){#categories ul a{padding:20px;min-height:104px}}
@media(prefers-reduced-motion:reduce){#categories ul a:hover{transform:none}}

/* Informational pages */
[data-information]{padding-bottom:56px}
[data-information-intro]{max-width:880px;padding-bottom:36px}
[data-information-intro] h1{font-size:clamp(36px,5vw,60px);letter-spacing:-1.8px}
[data-information-intro]>p:last-child{max-width:680px;font-size:18px;color:#666174}
[data-information] article{max-width:760px}
[data-information] article section{padding-block:28px;border-top:1px solid var(--line)}
[data-information] article h2{font-size:24px;line-height:1.3;letter-spacing:-.5px;margin-bottom:12px}
[data-information] article p{color:#666174;margin-bottom:0}
#site-footer [data-footer-bottom]>a{margin-left:0}
@media(min-width:900px){#site-footer [data-footer-bottom]>a:last-child{margin-left:auto}}

/* Draft map preview, ready for a future Google Maps integration. */
#directory-map{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:36px;background:#fff}
#directory-map [data-map-heading]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:22px 22px 0}
#directory-map [data-eyebrow]{margin-bottom:6px}
#directory-map h2{font-size:24px;letter-spacing:-.6px;margin:0}
#directory-map [data-map-note]{font-size:12px;color:#6b6578;margin:12px 22px 20px;max-width:760px}
[data-map-preview]{height:340px;position:relative;isolation:isolate;overflow:hidden;background:#f3f1eb}
[data-map-preview] svg{position:absolute;inset:0;width:100%;height:100%}
[data-map-area]{position:absolute;font-size:10px;letter-spacing:1.2px;color:#78766c;transform:translateX(-50%);pointer-events:none}
[data-map-pin]{position:absolute;display:grid;place-items:center;width:36px;height:36px;transform:translate(-50%,-100%);border:3px solid white;border-radius:50% 50% 50% 4px;background:var(--brand);box-shadow:0 3px 12px #24213230;color:white;font-size:13px;font-weight:750;z-index:1}
[data-map-pin]>span{display:none;position:absolute;bottom:42px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:6px;padding:8px 10px;white-space:nowrap;font-size:12px}
[data-map-pin]:hover,[data-map-pin]:focus-visible{z-index:2;background:var(--brand-hover)}
[data-map-pin]:hover>span,[data-map-pin]:focus-visible>span{display:block}
#directory-map [data-map-legend]{display:grid;gap:0;margin:0;padding:8px 22px}
#directory-map [data-map-legend] li{display:flex;align-items:center;gap:12px;padding:14px 0}
#directory-map [data-map-legend] li:last-child{border-bottom:0}
#directory-map [data-map-legend] li>span{padding:0;display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:11px}
#directory-map [data-map-legend] li>div{min-width:0}
#directory-map [data-map-legend] li>div>a{font-size:13px;font-weight:700}
#directory-map [data-map-legend] small{display:block;font-size:11px}
#directory-map [data-google-link]{margin-left:auto;flex-shrink:0;font-size:11px;color:var(--brand);padding-block:10px}
@media(min-width:700px){#directory-map [data-map-legend]{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}}
@media(max-width:400px){#directory-map [data-map-legend] li{flex-wrap:wrap}#directory-map [data-google-link]{margin-left:38px;padding-block:0}}

/* Directory list / map selection */
[data-results-toolbar]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;margin-bottom:24px}
[data-results-toolbar] p[data-eyebrow]{margin-bottom:8px}
[data-results-toolbar] h2{margin-bottom:0}
[data-view-switch]{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--brand-soft)}
[data-view-switch] a{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:7px;font-size:13px;font-weight:650;color:#6b6578}
[data-view-switch] a[aria-current]{background:var(--brand);color:#fff;box-shadow:0 2px 5px #24213212}
[data-view-switch] a:not([aria-current]):hover{background:#fff;color:var(--brand)}
[data-view-switch] span{font-size:20px;line-height:1}

/* Compact Pilates introduction */
[data-directory] #directory-intro{padding-block:32px 24px}
#directory-intro p[data-eyebrow]{margin-bottom:12px}
#directory-intro h1{font-size:clamp(32px,4vw,46px);line-height:1.12;letter-spacing:-1.4px;margin-bottom:14px}
#directory-intro h1 br{display:none}
#directory-intro h1 em::before{content:' '}
#directory-intro>p:not([data-eyebrow]){font-size:14px;line-height:1.6;margin-bottom:12px;max-width:650px}
#directory-intro p[data-preview]{font-size:11px;padding:8px 12px;margin-bottom:0}

/* Persistent light / dark appearance */
:root{--muted:#6b6578;--surface:#fff;--action:#6745f5;--action-hover:#5434d6;--closing:#242132}
:root[data-theme=dark]{color-scheme:dark;--ink:#f1edf9;--paper:#14121b;--surface:#201c2b;--line:#393145;--brand:#b5a0ff;--brand-hover:#c8b8ff;--brand-soft:#2b2340;--muted:#beb5ce;--action:#7453ed;--action-hover:#6342d9;--closing:#262031}
body{background:var(--paper);color:var(--ink)}
header{flex-wrap:wrap;gap:14px}
header nav{margin-left:auto}
#theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--brand-soft);color:var(--ink);font-size:12px;white-space:nowrap}
#theme-toggle[hidden]{display:none}
#theme-toggle span{margin:0}
#theme-toggle [data-theme-icon]{font-size:20px;line-height:1}
#theme-toggle:hover{border-color:var(--brand);background:var(--brand-soft)}
nav a:last-child,button,#closing a,[data-view-switch] a[aria-current]{background:var(--action)}
nav a:last-child:hover,button:hover,#closing a:hover{background:var(--action-hover)}
#closing{background:var(--closing);color:#fff}
form,#directory-filters,#directory-filters label,#listing-grid article,#directory-map{background:var(--surface)}
small,#hero>div>p:not([data-eyebrow]),#hero-gallery figcaption,[data-heading]>p,#categories ul p,ol p,#directory-intro>p:not([data-eyebrow]),#directory-results [data-heading]>span,[data-listing-body]>p:not([data-eyebrow]),#listing-intro>p:not([data-eyebrow]),#listing-gallery figcaption,#listing-details>div>p,#listing-location p,#listing-contact>p:not([data-eyebrow]),#listing-contact dt,#site-footer p,#site-footer li a,[data-information-intro]>p:last-child,[data-information] article p,#directory-map [data-map-note],[data-view-switch] a{color:var(--muted)}
:root[data-theme=dark] #categories ul a{background:var(--brand-soft)}
#site-footer{background:linear-gradient(180deg,var(--brand-soft),var(--paper))}
#site-footer [data-footer-brand]>p:first-of-type{color:var(--ink)}
#site-footer li a:hover{color:var(--brand)}
#skip{background:var(--surface)}
#listing-contact p[data-booking-note]{border-color:var(--line)}
[data-view-switch] a:not([aria-current]):hover{background:var(--surface)}
[data-map-pin],[data-map-pin]:hover,[data-map-pin]:focus-visible{background:var(--action)}
[data-map-pin]>span{background:var(--closing)}
:root[data-theme=dark] [data-map-preview] svg>rect{fill:#27252e}
:root[data-theme=dark] [data-map-preview] svg>path:first-of-type{fill:#29392e}
:root[data-theme=dark] [data-map-preview] svg g{stroke:#423e49}
:root[data-theme=dark] [data-map-preview] svg>path:nth-last-of-type(2){stroke:#5b4b76}
:root[data-theme=dark] [data-map-preview] svg>path:last-of-type{stroke:#8b79ad}
:root[data-theme=dark] [data-map-area]{color:#c7c0cf}
@media(max-width:539px){header>a{font-size:23px}header nav{order:3;flex-basis:100%;justify-content:flex-end}#theme-toggle{margin-left:auto}}

/* Full-width header with content aligned to the page. */
header{max-width:none;width:100%;margin:0;padding-inline:max(22px,calc((100% - 1236px)/2));background:var(--paper)}
@media(min-width:1000px){header{padding-inline:max(48px,calc((100% - 1184px)/2))}}
