/* Scoped additions. The class deck and photo wall keep their original rules. */
.wf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wf-nav button,.wf-section button,.wf-toolbar button{font:inherit;cursor:pointer}
.wf-nav button:focus-visible,.wf-nav a:focus-visible,.wf-section :is(a,button,summary):focus-visible,.wf-page :is(a,button):focus-visible{outline:3px solid var(--wf-ring,var(--aqua,#2ed3cc));outline-offset:5px}
/* Ember fails 3:1 on bone, so bone surfaces use the dark aqua ring. */
.wf-curriculum,.wf-flyers,.wf-dropdown,.wf-price-paper,.wf-policy,.wf-page{--wf-ring:var(--aqua-ink,#0a5b5a)}
.wf-page-header,.wf-page-footer,.wf-sheet-contacts,.wf-about-hero{--wf-ring:var(--aqua,#2ed3cc)}
.wf-nav .wf-links{display:flex;align-items:center;gap:30px}
.wf-nav .wf-links>div{position:static}
.wf-nav .wf-nav-trigger,.wf-nav .wf-nav-link{border:0;background:none;color:var(--bone);font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:12px 0;display:inline-flex;align-items:center;gap:8px}
.wf-nav-trigger::after{content:'+';color:var(--aqua);font-size:16px}
.wf-nav-trigger[aria-expanded=true]::after{content:'−'}
.wf-nav .wf-dropdown{position:absolute;top:100%;left:var(--gutter);right:var(--gutter);background:var(--bone);color:var(--ink);padding:32px 36px;box-shadow:0 24px 50px #0005;border-top:3px solid var(--aqua);display:grid;grid-template-columns:1fr 2.5fr;gap:40px;max-height:75vh;overflow:auto}
.wf-nav [hidden],.wf-section [hidden],.wf-page [hidden]{display:none!important}
.wf-dropdown .wf-menu-title{font-family:var(--serif);font-size:38px;font-style:italic;line-height:1.05;margin-bottom:14px}
.wf-dropdown p{max-width:25ch;font-size:15px;line-height:1.5}
.wf-dropdown .wf-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 22px;align-content:start}
.wf-dropdown a{font-size:15px;line-height:1.4;border-bottom:1px solid #06161b24;padding:10px 0;display:block}
.wf-dropdown a:hover{color:#0a5b5a;border-color:#0a5b5a}
.wf-dropdown small{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-top:18px}
.wf-nav-end{display:flex;align-items:center;gap:12px}
button.wf-lang{display:inline-flex;align-items:center;gap:8px;border:1px solid #2ed3cc99;border-radius:999px;background:transparent;color:var(--bone);padding:9px 14px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.wf-lang:hover{border-color:var(--aqua);color:var(--aqua)}
.wf-lang svg{width:15px;height:15px;fill:none;stroke:var(--aqua);stroke-width:1.3}
.wf-page-header .wf-lang{margin-left:auto}
html:not(.wf-js) .wf-lang{display:none}
.wf-es-note{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--aqua-ink);margin-top:22px}
.wf-toolbar-note{max-width:850px;margin:-12px auto 18px;padding:0 20px}
.wf-nav .wf-mobile-toggle{display:none;border:1px solid #f2e9d855;border-radius:50%;width:44px;height:44px;align-items:center;justify-content:center;background:var(--ink);color:var(--bone);font-size:22px}
.wf-section{position:relative;padding:112px var(--gutter);scroll-margin-top:85px}
.wf-inner{max-width:1280px;margin:0 auto}
.wf-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;display:flex;gap:14px;align-items:center;margin-bottom:24px}
.wf-kicker::before{content:'';width:30px;height:2px;background:currentColor}
/* Section titles stand on their own; the sidebar retains its navigation labels. */
section .eyebrow,.wf-curriculum .wf-kicker{display:none}
.wf-section .wf-heading{font-size:clamp(42px,5.7vw,84px);letter-spacing:-.04em;line-height:.98;font-weight:700;margin:0}
.wf-section .wf-heading em{font-family:var(--serif);color:inherit;font-weight:400;letter-spacing:0;font-size:1.08em}
.wf-curiosity{color:var(--aqua-ink)}
.wf-nav .brand svg{width:40px;height:40px;transform:translateY(-2px)}
@media(max-width:900px){.wf-nav .brand svg{width:34px;height:34px}}
.wf-curriculum .wf-heading em,.find h2 em{color:var(--aqua-ink)}
.deck-head h2 em,.gal-head h2 em,.cta h2 em{color:var(--aqua)}
.deck .card.end{background:var(--aqua)}
/* Keep faces in view inside the existing gallery frames. */
.gal .tile img{transform:none}
.gal .t1 img{object-position:40% 35%}
.gal .t2 img{object-position:50% 38%}
.gal .t4 img,.gal .t5 img{object-position:50% 22%}
.gal .t7 img,.gal .t8 img{object-position:50% 20%}
@media(max-width:900px){.gal .t1 img{object-position:40% 0}}
section:not(.deck):not(.gal) .eyebrow .n,.wf-curriculum .wf-perks li::before{color:var(--aqua-ink)}
.wf-pricing .eyebrow .n,.cta .eyebrow .n{color:var(--aqua)}
.ticker span::after{color:var(--aqua)}
#trail circle.lit,.map .pin circle.halo,.map .pin circle.core{fill:var(--aqua-deep)}
#trail circle.lit{stroke:var(--aqua-deep)}
.map .route{stroke:var(--aqua-deep)}
.wf-section .wf-intro{font-size:19px;line-height:1.55;max-width:44ch;margin-top:24px}
.wf-curriculum{background:var(--bone);color:var(--ink)}
.wf-curriculum .wf-kicker{color:var(--aqua-ink)}
.wf-course-layout{display:grid;grid-template-columns:4fr 6fr;gap:clamp(40px,6vw,100px);align-items:start}
.wf-course-aside{position:sticky;top:110px}
.wf-course-aside .wf-intro small{display:block;font-size:14px;line-height:1.5;color:#51636a;margin-top:12px}
.wf-course-photo{margin-top:36px;position:relative;max-width:420px}
.wf-course-photo img{width:100%;height:300px;object-fit:cover;border-radius:3px 64px 3px 3px}
.wf-course-photo-extra{margin-top:32px}
.wf-course-photo-extra img{height:340px;object-position:center 60%;border-radius:3px 3px 64px 3px}
@media(max-width:900px){.wf-course-photo-extra{display:none}}
.wf-course-photo figcaption{padding-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:#35545b}
.wf-course-list{border-top:1px solid #06161b}
.wf-course{border-bottom:1px solid #06161b33;scroll-margin-top:110px}
.wf-course summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:32px 1fr 30px;gap:12px;padding:23px 0;align-items:center}
.wf-course summary::-webkit-details-marker{display:none}
.wf-course summary:after{content:'+';font-family:var(--mono);font-size:24px;color:var(--aqua-ink);text-align:right}
.wf-course[open] summary:after{content:'−'}
.wf-course summary .wf-course-number{font-family:var(--mono);font-size:11px;align-self:start;margin-top:8px;color:#51636a}
.wf-course summary strong{font-size:clamp(21px,2vw,29px);font-weight:650;letter-spacing:-.03em;line-height:1.1}
.wf-course summary small{display:block;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;margin-top:9px;color:#51636a}
.wf-course-body{padding:0 40px 28px 44px;font-size:16px;line-height:1.65}
.wf-course-body ul{padding:18px 0 20px 18px}
.wf-course-body li{padding:2px 0}
.wf-text-link{display:inline-flex;gap:18px;align-items:center;border-bottom:1px solid currentColor;padding:5px 0;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.wf-text-link::after{content:'↗';font-size:18px}
.wf-pricing{background:var(--ink-2);color:var(--bone)}
.wf-pricing .eyebrow{margin-bottom:24px}
.wf-curriculum .eyebrow{margin-bottom:24px;color:var(--aqua-ink)}
.wf-price-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:45px}
.wf-price-head .wf-intro{font-size:17px;max-width:31ch;margin:0 0 3px}
.wf-tabs{display:flex;gap:4px;border-bottom:1px solid #f2e9d844;margin-bottom:24px;overflow:auto}
.wf-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--bone);font-family:var(--mono);font-size:12px;padding:16px 22px;white-space:nowrap}
.wf-tabs button[aria-selected=true]{color:var(--aqua);border-color:var(--aqua)}
.wf-price-paper{background:var(--bone);color:var(--ink);padding:28px 36px 20px;border-radius:3px}
.wf-price-format{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:24px}
.wf-price-format h3{font-size:26px;font-weight:650;letter-spacing:-.02em}
.wf-price-format p{font-size:14px;color:#35545b}
.wf-table-scroll{overflow:auto}
.wf-price-table{width:100%;border-collapse:collapse;min-width:530px;text-align:left;font-size:17px}
.wf-price-table th{font-family:var(--mono);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:13px 16px;border-block:1px solid #06161b55}
.wf-price-table td{padding:18px 16px;border-bottom:1px solid #06161b24;font-variant-numeric:tabular-nums}
.wf-price-table tbody tr:last-child td{border-bottom:0}
.wf-price-table td:first-child,.wf-price-table th:first-child{padding-left:0}
.wf-price-table td:not(:first-child),.wf-price-table th:not(:first-child){text-align:right}
/* Every price shows "pp" (client, 2026-11-11). The amount never splits; the smaller "pp" stays beside it,
   or drops under it on the narrowest phones instead of running into the next column. */
.wf-sheet-table td{white-space:nowrap}
.wf-amount,.wf-pp{white-space:nowrap}
.wf-pp{font-size:.72em;letter-spacing:.03em;color:#51636a}
/* Phones (the fixed-width price table at 580px and below): "pp" always sits under the amount, so every cell matches. */
@media(max-width:580px){.wf-price-table .wf-pp{display:block;margin-top:2px}}
.wf-price-table td small{display:block;font-size:12px;color:#51636a;margin-top:4px}
.wf-price-table td strong{font-weight:650}
.wf-price-foot{display:flex;justify-content:space-between;gap:30px;margin-top:22px;font-size:13px;color:var(--bone-3);line-height:1.6}
.wf-price-foot p{max-width:60ch}
.wf-price-foot a{color:var(--aqua);white-space:nowrap}
.wf-flyers{background:var(--bone);color:var(--ink)}
.wf-library-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}
.wf-flyers .wf-heading{font-size:clamp(38px,4.5vw,64px);line-height:1;letter-spacing:-.035em;color:var(--aqua-ink)}
.wf-flyers .wf-heading em{color:var(--aqua-ink)}
.wf-library-head .wf-intro{font-size:18px;max-width:43ch;margin:0}
.wf-library-head .wf-intro small{display:block;font-size:13px;color:#51636a;margin-top:12px}
.wf-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:38px 0 32px}
.wf-filter-row button{border:1px solid #06161b45;border-radius:50px;padding:10px 16px;background:transparent;font-family:var(--mono);font-size:11px}
.wf-filter-row button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bone)}
.wf-filter-row button:hover{border-color:var(--aqua-ink)}
.wf-flyer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
.wf-flyer{min-width:0;border-bottom:1px solid #06161b55;padding-bottom:24px}
.wf-flyer-image{position:relative;display:block;overflow:hidden;background:var(--ink);aspect-ratio:1.65}
.wf-flyer-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.wf-flyer-image:hover img{transform:scale(1.035)}
.wf-flyer .wf-flyer-category{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:20px 0 10px;color:#51636a}
.wf-flyer h3{font-size:27px;letter-spacing:-.035em;line-height:1.05;font-weight:650;min-height:2.1em}
.wf-flyer p:not(.wf-flyer-category){font-size:15px;margin-top:13px;min-height:3em}
.wf-flyer-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
.wf-flyer-actions a{font-family:var(--mono);font-size:10px;border-bottom:1px solid currentColor;padding-bottom:5px}
.wf-flyer-actions a[download]{color:var(--aqua-ink)}
.wf-flyers .wf-flyer-grid{row-gap:28px}
.wf-flyers .wf-flyer{display:flex;flex-direction:column;padding-bottom:16px}
.wf-flyers .wf-flyer h3{min-height:0;margin-top:10px}
.wf-flyers .wf-flyer p:not(.wf-flyer-category){font-size:17px;line-height:1.45;min-height:0;margin:10px 0 16px}
.wf-flyers .wf-flyer-actions{margin-top:auto}
.wf-flyers .wf-flyer-actions a{font-size:13px}
@media(max-width:580px){.wf-flyers .wf-flyer-grid{row-gap:24px}.wf-flyers .wf-flyer p:not(.wf-flyer-category){font-size:15px}.wf-flyers .wf-flyer-actions a{font-size:12px}}
.wf-packet{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0 0;margin-top:42px;border-top:2px solid var(--ink)}
.wf-packet p{font-size:16px;max-width:48ch}
.wf-packet .wf-download{display:inline-flex;background:var(--ink);color:var(--bone);padding:15px 22px;font-family:var(--mono);font-size:11px;white-space:nowrap;border-radius:50px;gap:20px}
.wf-page{margin:0;background:#f2e9d8;color:#06161b;font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;--ink:#06161b;--ink-2:#0b2730;--bone:#f2e9d8;--bone-3:#cdbf9f;--aqua:#2ed3cc;--aqua-ink:#0a5b5a;--ember:#ff6b3d;--sun:#ffc857;--display:'Bricolage Grotesque',sans-serif;--serif:'Instrument Serif',serif;--mono:'Space Mono',monospace;--gutter:clamp(20px,5vw,72px)}
.wf-page *{box-sizing:border-box}
.wf-page a{color:inherit;text-decoration:none}
.wf-page img{max-width:100%;display:block}
.wf-page h1,.wf-page h2,.wf-page h3,.wf-page p{margin:0}
.wf-page-header{display:flex;justify-content:space-between;align-items:center;padding:22px var(--gutter);gap:24px;background:var(--ink);color:var(--bone)}
.wf-page-brand{font-weight:700;text-transform:uppercase;letter-spacing:.15em;font-size:13px}
.wf-page-brand span{color:var(--aqua)}
.wf-page-header>a:last-child{font-family:var(--mono);font-size:11px;border-bottom:1px solid #f2e9d866;padding-bottom:3px}
.wf-page-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;padding:35px var(--gutter);background:var(--ink);color:var(--bone);font-size:12px}
.wf-about-hero{display:grid;grid-template-columns:1.1fr 1fr;background:var(--ink);color:var(--bone);min-height:650px}
.wf-about-copy{padding:85px 6vw 85px var(--gutter);align-self:center}
.wf-about-copy h1{font-size:clamp(50px,6.8vw,100px);line-height:.96;letter-spacing:-.04em}
.wf-about-copy h1 em{font-family:var(--serif);font-weight:400;color:var(--aqua)}
.wf-about-copy>p{font-size:20px;line-height:1.6;margin-top:30px;max-width:37ch;color:#e3d7bf}
.wf-about-hero>img{width:100%;height:100%;object-fit:cover;min-height:650px}
.wf-story{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;padding:100px var(--gutter);max-width:1424px;margin:auto}
.wf-story h2{font-size:54px;line-height:1.05;letter-spacing:-.04em}
.wf-story p{font-size:23px;line-height:1.6;max-width:40ch}
.wf-story p+p{margin-top:25px;font-size:18px;color:#35545b}
.wf-spaces{background:#e3d7bf}
.wf-spaces-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:45px}
.wf-space{border-top:1px solid #06161b66;padding-top:25px}
.wf-space h3{font-size:36px;letter-spacing:-.03em}
.wf-space address{font-style:normal;font-size:19px;line-height:1.7;margin:20px 0}
.wf-space a{display:block;width:fit-content;margin-top:8px;border-bottom:1px solid #06161b55}
.wf-about-contact{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end}
.wf-about-contact .wf-intro{margin:0}
.wf-about-contact a{margin-top:28px}
.wf-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;max-width:850px;margin:25px auto;padding:0 20px;font-family:var(--mono);font-size:11px}
.wf-toolbar button,.wf-toolbar a{border:1px solid #06161b66;padding:10px 15px;background:transparent;color:var(--ink);border-radius:30px;text-decoration:none}
.wf-sheet{max-width:794px;margin:0 auto 50px;background:#fffdf7;box-shadow:0 12px 60px #06161b20}
.wf-sheet-top{position:relative;height:275px;overflow:hidden;color:var(--bone);background:var(--ink)}
.wf-sheet-top img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6}
.wf-sheet-top img[src$=".svg"]{left:auto;right:6%;width:30%;object-fit:contain;opacity:.9}
.wf-sheet-top::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#06161bdd,#06161b00)}
.wf-sheet-top .wf-sheet-title{position:relative;z-index:1;padding:30px 40px}
.wf-sheet-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:25px!important}
.wf-sheet-title h1{font-size:48px;letter-spacing:-.035em;line-height:1.02;max-width:15ch;font-weight:700}
.wf-sheet-title .wf-sheet-tag{font-family:var(--serif);font-style:italic;font-size:26px;margin-top:13px;color:var(--aqua)}
.wf-sheet-content{padding:30px 40px 20px}
.wf-sheet-summary{font-size:17px;line-height:1.6}
.wf-sheet-columns{display:grid;grid-template-columns:1.35fr 1fr;gap:32px}
.wf-sheet-columns h2,.wf-sheet-path h2{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-top:2px solid var(--aqua-ink);padding-top:12px;margin-bottom:14px}
.wf-sheet-path{margin:0 0 22px}
.wf-sheet-steps{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:16px;counter-reset:step}
.wf-sheet-steps li{counter-increment:step;font-size:12px;line-height:1.45;color:#35545b}
.wf-sheet-steps li::before{content:counter(step,decimal-leading-zero);display:block;font-family:var(--mono);font-size:11px;color:var(--aqua-ink);margin-bottom:6px}
.wf-sheet-steps strong{display:block;font-size:15px;line-height:1.2;font-weight:650;color:var(--ink);margin-bottom:4px}
.wf-sheet-skills{padding-left:18px;margin:0;font-size:14px;line-height:1.6}
.wf-sheet-skills li{margin-bottom:8px}
.wf-sheet-rates{font-size:13px;line-height:1.7}
.wf-sheet-rates p+p{margin-top:9px}
.wf-sheet-note{font-size:11px;color:#51636a;border-top:1px solid #06161b33;padding-top:15px;line-height:1.6}
.wf-sheet-contacts{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:var(--ink);color:var(--bone);padding:22px 40px;font-size:11px;line-height:1.65}
.wf-sheet-contacts strong{display:block;font-size:14px;color:var(--aqua);margin-bottom:4px}
.wf-sheet-contacts a{display:block}
.wf-sheet-bottom{display:flex;justify-content:space-between;gap:18px;padding:12px 40px;font-size:9px;color:#51636a}
/* Flyer sheet: only the official flyer's own content. */
.wf-sheet-body p{font-size:14px;line-height:1.6}
.wf-sheet-body p+p{margin-top:10px}
.wf-sheet-body h2{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--aqua-ink);margin:16px 0 6px}
.wf-sheet-points{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;font-size:12.5px;line-height:1.5;color:#35545b}
.wf-sheet-points strong{color:var(--ink);font-weight:700;margin-right:4px}
.wf-sheet-facts{display:flex;flex-direction:column;gap:16px}
.wf-sheet-schedule{font-family:var(--mono);font-size:13px;letter-spacing:.04em}
.wf-sheet-schedule strong{display:block;font-size:15px}
.wf-sheet-price{font-weight:700;font-size:22px;letter-spacing:-.02em}
.wf-sheet-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.wf-sheet-table caption{caption-side:top;text-align:right;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#51636a;padding-bottom:4px}
.wf-sheet-table th,.wf-sheet-table td{padding:7px 4px;border-bottom:1px solid #06161b22;text-align:right;white-space:nowrap}
.wf-sheet-table thead th{font-family:var(--mono);font-size:9.5px;font-weight:400;letter-spacing:.04em;border-bottom:2px solid var(--aqua-ink)}
.wf-sheet-table th:first-child{text-align:left;padding-left:0}
.wf-sheet-table tbody th{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.02em;white-space:normal}
.wf-sheet-instructors{border-top:2px solid var(--aqua-ink);padding-top:10px}
.wf-sheet-instructors h2{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.wf-sheet-instructors p{font-family:var(--mono);font-size:12px;letter-spacing:.04em;line-height:1.6}
/* Pricing Policy, as published on /pricingpolicy. */
.wf-policy{background:var(--bone);color:var(--ink);padding:32px 36px;border-radius:3px;margin-top:40px;scroll-margin-top:85px}
.wf-policy h3{font-size:30px;font-weight:700;letter-spacing:-.03em;margin-bottom:14px}
.wf-policy h4{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;text-decoration:underline;margin:22px 0 8px}
.wf-policy p{font-size:16px;line-height:1.65;max-width:75ch}
.wf-policy p+p{margin-top:16px}
.wf-policy-contacts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:18px;font-size:14px;line-height:1.7}
.wf-policy-contacts strong{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--aqua-ink)}
.wf-policy-contacts a{display:block;width:fit-content}
.wf-policy-site{font-family:var(--mono);font-size:11px;letter-spacing:.1em;margin-top:18px}
.wf-pricing .wf-es-note{color:var(--aqua)}
.wf-es-banner{font-family:var(--mono);font-size:12px;letter-spacing:.03em;background:#2ed3cc22;border:1px solid #2ed3cc88;padding:10px 14px;border-radius:6px;margin:0 0 22px;max-width:60ch}
.wf-page>.wf-es-banner{margin:16px var(--gutter);color:var(--ink);border-color:var(--aqua-ink)}
.wf-es-banner[hidden],.wf-es-note[hidden]{display:none}
.hero-sub .wf-es-banner{margin:18px 0 0}
/* Closing section: each call button has that location's email under it. */
.wf-cta-loc{display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 14px}
.wf-cta-email{font-family:var(--display);font-size:16px;letter-spacing:0;color:var(--bone);border-bottom:1px solid #f2e9d888;padding-bottom:3px;overflow-wrap:anywhere}
.wf-cta-email:hover{color:var(--aqua);opacity:1;border-color:var(--aqua)}
.wf-copy-email{background:transparent;color:var(--aqua);border:1px solid #2ed3cc88;border-radius:999px;padding:8px 14px;font:600 13px var(--display);cursor:pointer;min-height:40px}
.wf-copy-email:hover{background:var(--aqua);color:var(--ink)}
.wf-copy-email:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}
.wf-copy-status:not(:empty){font-size:13px;color:var(--bone)}
/* No hero (operator, 2026-10-29): the class strip opens the page below the fixed nav, and Belonging carries the two buttons. */
.ticker#top{margin-top:83px;scroll-margin-top:83px}
.wf-belong-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.belong h2 em,.belong .eyebrow .n,.belong .stats b i{color:var(--aqua-ink)}
.belong .lead strong{color:var(--aqua-ink)}
.btn-ember{background:var(--aqua);color:var(--ink);box-shadow:0 10px 30px -10px rgba(19,154,150,.6)}
.btn-ember:hover{background:#5cddd6}
.belong .orb img{filter:none}
.belong .orb::after{opacity:0}
.belong .orb-wrap{margin-top:160px}
.belong .stamp{left:50%;top:-178px;bottom:auto;width:auto;min-width:190px;aspect-ratio:auto;display:flex;flex-direction:column;gap:3px;padding:14px 26px 16px;background:var(--bone);color:var(--aqua-ink);border:1px solid var(--aqua-ink);border-radius:8px;transform:translateX(-50%);box-shadow:0 8px 24px #06161b20;line-height:1.2}
.belong .stamp::before{display:none}
.belong .stamp svg{width:46px;height:33px;display:block;margin-bottom:3px;color:var(--aqua-deep)}
.belong .stamp b{font-size:26px;letter-spacing:.02em;margin:0}
.belong .btn-ghost{color:var(--ink);border-color:#06161b66}
.belong .btn-ghost:hover{border-color:var(--ink)}
.belong .wf-es-banner{color:var(--ink);border-color:var(--aqua-ink)}
@media(max-width:900px){.ticker#top{margin-top:69px}}
@media(max-width:900px){
 section.belong{padding-top:48px}
 .belong-grid{margin-top:24px}
 .belong .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .belong .stats div{font-size:9px;letter-spacing:.06em;text-align:center;min-width:0}
 .belong .stats b{font-size:clamp(28px,8vw,40px);letter-spacing:0;font-variation-settings:normal}
 .gal{padding:56px 0}
 .gal-head{display:block}
 .gal-head p{display:none}
 .gal .mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:160px;margin-top:28px}
 .gal .mosaic .tile{grid-column:span 1!important;grid-row:span 1!important}
}
@media(prefers-reduced-motion:reduce){.ticker{overflow-x:auto;scrollbar-width:thin}.ticker-track{animation:none}}
@media(hover:none){.gal .tile img{filter:none}.gal .tile::after{opacity:0}}
/* Open gym details live in the curriculum column (operator, 2026-10-29); the column no longer sticks, because it is taller than the screen. */
.wf-course-layout .wf-course-aside{position:static}
.wf-open-gym{margin-top:34px;border-top:1px solid #06161b33;padding-top:22px;scroll-margin-top:100px}
.wf-open-gym-title{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua-ink)}
.wf-open-gym-hours{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:12px}
.wf-open-gym-hours span{display:flex;flex-direction:column;font-size:14px;color:#35545b}
.wf-open-gym-hours b{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.wf-perks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:16px;counter-reset:perk;max-width:44ch}
.wf-perks li{counter-increment:perk;display:grid;grid-template-columns:34px 1fr;column-gap:12px;font-size:15px;line-height:1.55;color:#35545b}
.wf-perks li::before{content:counter(perk,decimal-leading-zero);grid-row:span 2;font-family:var(--mono);font-size:12px;color:var(--ember);padding-top:3px}
.wf-perks b{color:var(--ink);font-weight:650;font-size:16px}
.wf-perks .wf-open-gym-hours b{font-size:20px;font-weight:700}
#gym{scroll-margin-top:100px}
.wf-flyers .eyebrow{margin-bottom:24px;color:var(--aqua-ink)}
/* Less empty space between Belonging and the curriculum (operator, 2026-10-29). */
section.belong{padding-bottom:56px}
section.belong+.wf-curriculum{padding-top:56px}
@media(max-width:580px){section.belong{padding-bottom:36px}section.belong+.wf-curriculum{padding-top:36px}}
.wf-price-links{display:flex;flex-wrap:wrap;gap:12px 28px}
/* Pricing Policy has its own page. */
.wf-policy-page{max-width:1000px;margin:36px auto 80px;padding:0 var(--gutter)}
.wf-policy-page .wf-policy{background:#fffdf7;box-shadow:0 12px 60px #06161b18;margin-top:16px}
.wf-policy h1{font-size:36px;font-weight:700;letter-spacing:-.03em;margin-bottom:16px}
/* Packet download sits with the flyer intro; no strip below the grid (operator, 2026-10-29). */
.wf-library-head .wf-download{display:inline-flex;background:var(--ink);color:var(--bone);padding:15px 22px;font-family:var(--mono);font-size:11px;white-space:nowrap;border-radius:50px;gap:20px;margin-top:22px}
section.wf-flyers{padding-bottom:72px}
.wf-flyers .wf-library-head{margin-bottom:32px}
section.wf-pricing{padding-bottom:56px}
section.wf-flyers{padding-top:56px}
@media(max-width:580px){section.wf-flyers{padding-bottom:48px}}
@media(max-width:580px){section.wf-pricing{padding-bottom:36px}section.wf-flyers{padding-top:36px}.wf-flyers .wf-library-head{margin-bottom:32px}.wf-library-head .wf-intro{margin-top:16px}.wf-library-head .wf-download{margin-top:16px}}
@media(max-width:580px){.wf-flyers .wf-flyer h3,.wf-flyers .wf-flyer .wf-flyer-category,.wf-flyers .wf-flyer p:not(.wf-flyer-category){min-height:0}}
.wf-hours-title{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua-ink);margin:22px 0 10px}
/* Keep the map and location details together without extra vertical gaps. */
section.find{padding:clamp(56px,7vw,96px) 0}
.find-grid{align-items:start;margin-top:32px;gap:clamp(24px,4vw,64px)}
.find .locs{gap:12px}
.find .wf-hours-title{margin:12px 0 0}
.find .hours{margin-top:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.find .hours div{padding:14px 9px;letter-spacing:.02em;font-size:10px}
.find .hours span{white-space:nowrap}
.find .hours b{font-size:clamp(14px,1.2vw,18px);white-space:nowrap}
@media(min-width:901px) and (max-width:1050px){.find .hours{grid-template-columns:repeat(2,minmax(0,1fr))}.find .hours div:last-child{grid-column:1/-1}}
.find .loc h3 small{color:var(--aqua)}
@media(max-width:900px){.find-grid{gap:24px}.find .hours{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:580px){section.find{padding:48px 0}.find-grid{margin-top:24px;gap:20px}.find .loc::before{position:static;display:table;margin-bottom:10px}.find .hours{grid-template-columns:repeat(2,minmax(0,1fr))}.find .hours div:last-child{grid-column:1/-1}}
@media(max-width:580px){.wf-policy{padding:24px 20px}.wf-policy h3{font-size:26px}.wf-policy-contacts{grid-template-columns:1fr}}
@media(min-width:901px){.wf-nav .wf-links[hidden]{display:flex!important}html:not(.wf-js) .wf-links>div:focus-within>.wf-dropdown{display:grid!important}}
@media(max-width:1100px) and (min-width:901px){.wf-nav .brand{font-size:11px;letter-spacing:.12em}.wf-nav .wf-links{gap:20px}.wf-nav .btn{font-size:10px;padding:12px 14px}.wf-lang{padding:8px 10px;font-size:10px}}
@media(max-width:900px){
 .wf-nav{background:var(--ink)!important;padding:12px var(--gutter)!important;border-bottom:1px solid #f2e9d822;gap:12px}
 .wf-nav .wf-mobile-toggle{display:inline-flex;flex-shrink:0;order:2}
 .wf-nav .wf-nav-end{margin-left:auto;order:1}
 .wf-nav-end>.btn{display:none}
 .wf-nav .wf-links{position:absolute;top:100%;left:0;right:0;background:var(--ink);display:block;padding:12px var(--gutter) 24px;max-height:calc(100vh - 66px);max-height:calc(100dvh - 66px);overflow:auto;overscroll-behavior:contain;border-bottom:1px solid var(--aqua)}
 .wf-nav .wf-links[hidden]{display:none!important}
 .wf-nav .wf-nav-trigger,.wf-nav .wf-nav-link{font-family:var(--display);font-size:25px;text-transform:none;letter-spacing:-.02em;width:100%;justify-content:space-between;border-bottom:1px solid #f2e9d833;padding:15px 0}
 .wf-nav .wf-dropdown{position:static;padding:24px 20px;margin:8px 0 15px;display:block;max-height:none;box-shadow:none}
 .wf-dropdown .wf-menu-title{font-size:28px}
 .wf-dropdown p{max-width:100%;font-size:14px;margin-bottom:18px}
 .wf-dropdown .wf-menu-grid{grid-template-columns:1fr 1fr;gap:5px 22px}
 .wf-dropdown a{font-size:14px}
 .wf-section{padding:75px var(--gutter)}
 .wf-course-layout{grid-template-columns:1fr;gap:42px}
 .wf-course-aside{position:static;display:grid;grid-template-columns:1.2fr 1fr;gap:30px}
 .wf-course-aside .wf-heading{font-size:54px}
 .wf-course-photo{margin-top:0;align-self:end}
 .wf-course-photo img{height:260px;border-radius:3px 45px 3px 3px}
 .wf-course-aside .wf-intro{font-size:17px}
 html:not(.wf-js) .wf-nav .wf-links,html:not(.wf-js) .wf-nav .wf-mobile-toggle{display:none!important}
 .wf-course summary{padding:24px 0}
 .wf-price-head{align-items:start}
 .wf-price-head .wf-intro{font-size:16px;max-width:28ch}
 .wf-library-head{grid-template-columns:1fr 1fr;gap:30px}
 .wf-flyer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wf-about-hero{min-height:0}.wf-about-copy{padding-top:65px;padding-bottom:65px}.wf-about-hero>img{min-height:580px}
 .wf-story{gap:40px;padding-block:70px}.wf-story p{font-size:20px}
}
@media(max-width:580px){
 .wf-section{padding-block:60px}
 .wf-section .wf-heading{font-size:49px}
 .wf-kicker{font-size:10px;letter-spacing:.06em;margin-bottom:20px}
 .wf-course-aside{display:block}
 .wf-course-aside .wf-heading{font-size:54px}
 .wf-course-photo{margin-top:28px;max-width:none}
 .wf-course-photo img{height:220px}
 .wf-course summary{grid-template-columns:25px 1fr 24px;gap:8px;padding:22px 0}
 .wf-course summary strong{font-size:23px}
 .wf-course-body{padding-left:33px;padding-right:15px;font-size:15px}
 .wf-price-head{display:block;margin-bottom:25px}
 .wf-price-head .wf-intro{margin-top:25px;max-width:38ch}
 .wf-tabs button{padding:14px 13px;font-size:11px}
 .wf-price-paper{padding:23px 20px 14px;margin-inline:-4px}
 .wf-price-format{display:block}.wf-price-format p{margin-top:8px}
 .wf-price-table{font-size:15px;min-width:450px}
 .wf-price-table td,.wf-price-table th{padding-right:10px;padding-left:10px}
 .wf-price-table td small{font-size:11px}
 .wf-price-foot{display:block}.wf-price-foot a{margin-top:18px;display:inline-block}
 .wf-library-head{display:block}.wf-library-head .wf-intro{margin-top:12px;font-size:17px}
 .wf-filter-row{gap:7px;margin:28px 0}.wf-filter-row button{padding:10px 12px;font-size:10px}
 .wf-flyer-grid{gap:30px 16px}.wf-flyer-image{aspect-ratio:1.15}

 .wf-flyer h3{font-size:23px;min-height:3.15em;line-height:1.05}
 .wf-flyer .wf-flyer-category{font-size:9px;letter-spacing:0;min-height:2.8em;margin:14px 0 7px}
 .wf-flyer p:not(.wf-flyer-category){font-size:13px;min-height:4.5em;margin-top:10px}
 .wf-flyer-actions{display:block;margin-top:15px}.wf-flyer-actions a{font-size:9px;display:table;margin-top:14px}
 .wf-packet{display:block;padding-top:20px;margin-top:30px}.wf-packet p{font-size:15px}.wf-packet .wf-download{margin-top:20px}
 .wf-nav button.wf-lang{padding:8px 11px;gap:6px}
 .wf-nav .brand{min-width:0}
 .wf-page-header{padding-block:20px}.wf-page-brand{font-size:10px;letter-spacing:.08em}.wf-page-header>a:last-child{font-size:10px}
 .wf-about-hero{grid-template-columns:1fr}.wf-about-copy{padding:60px var(--gutter) 45px}.wf-about-copy h1{font-size:61px}.wf-about-copy>p{font-size:18px}
 .wf-about-hero>img{height:360px;min-height:0}.wf-story{grid-template-columns:1fr;gap:28px;padding-block:60px}.wf-story h2{font-size:44px}.wf-story p{font-size:20px}
 .wf-spaces-grid{grid-template-columns:1fr;gap:35px;margin-top:30px}.wf-about-contact{grid-template-columns:1fr;gap:28px}
 .wf-sheet{margin-inline:12px}.wf-sheet-top{height:300px}.wf-sheet-top .wf-sheet-title{padding:25px}.wf-sheet-title h1{font-size:39px}.wf-sheet-title .wf-sheet-tag{font-size:24px}
 .wf-sheet-content{padding:25px}.wf-sheet-summary{font-size:16px}.wf-sheet-columns{grid-template-columns:1fr;gap:20px}.wf-sheet-steps{grid-auto-flow:row;gap:14px}.wf-sheet-contacts{padding:25px;grid-template-columns:1fr;gap:20px}.wf-sheet-bottom{padding:15px 25px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.wf-flyer-image img{transition:none}.wf-flyer-image:hover img{transform:none}}
/* Functional labels stay readable on phones. */
.wf-dropdown small,.wf-course summary small,.wf-course-photo figcaption,.wf-price-table th,.wf-flyer .wf-flyer-category,.wf-flyer-actions a{font-size:11px}
.wf-flyer-actions a{min-height:32px;display:inline-flex;align-items:center}
@media(max-width:580px){
 .wf-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;border:1px solid #f2e9d844;gap:0}
 .wf-tabs button{font-size:12px;padding:13px 6px;min-height:46px}
 .wf-tabs button[aria-selected=true]{background:#123a45}
 .wf-price-table{min-width:0;font-size:14px;table-layout:fixed}
 .wf-price-table th{font-size:11px;letter-spacing:0;padding:12px 5px}
 .wf-price-table td{padding:17px 5px}
 .wf-price-table th:first-child{width:44%}
 .wf-price-table td small{font-size:12px;line-height:1.45}
 .wf-course summary small,.wf-course-photo figcaption,.wf-flyer .wf-flyer-category,.wf-filter-row button,.wf-kicker{font-size:11px}
 .wf-flyer .wf-flyer-category{min-height:3em}
 .wf-flyer-actions a{font-size:11px;min-height:44px;margin-top:4px}
 .wf-page-brand,.wf-page-header>a:last-child{font-size:11px}
 .wf-sheet-label,.wf-sheet-columns h2,.wf-sheet-path h2{font-size:11px}
 .wf-sheet-bottom{font-size:10px}
}
@media print{
 @page{size:A4;margin:0}
 .wf-page{background:white;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .wf-toolbar,.wf-page-header,.wf-page-footer{display:none!important}
 .wf-sheet{width:210mm;max-width:none;min-height:297mm;margin:0;box-shadow:none;display:flex;flex-direction:column;break-after:page}
 .wf-sheet-top{height:auto;min-height:56mm;flex:1 0 56mm}.wf-sheet-top .wf-sheet-title{padding:10mm 12mm}.wf-sheet-title h1{font-size:48px}.wf-sheet-title .wf-sheet-tag{font-size:26px}
 .wf-sheet-content{padding:8mm 12mm 7mm}.wf-sheet-columns{grid-template-columns:1.35fr 1fr;gap:9mm}.wf-sheet-body p{font-size:14.5px;line-height:1.6}.wf-sheet-points{font-size:12.5px}
 .wf-sheet-contacts{grid-template-columns:1fr 1fr;padding:7mm 12mm;gap:8mm}.wf-sheet-bottom{padding:4mm 12mm}.wf-sheet-summary{font-size:17px}
 .wf-sheet,.wf-sheet-content,.wf-sheet-contacts{break-inside:avoid}
}

/* A centered brand introduction anchors the first section. */
section.belong{padding-top:64px}
.wf-hero-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 auto 52px;color:var(--ink);font-size:clamp(24px,3vw,38px);font-weight:700;letter-spacing:.16em;line-height:1;white-space:nowrap}
.wf-hero-brand svg{width:clamp(44px,4vw,58px);height:auto;flex:none;color:var(--aqua-deep)}
.wf-hero-brand span span{color:var(--aqua-ink)}
@media(max-width:900px){section.belong{padding-top:36px}.wf-hero-brand{gap:10px;margin-bottom:36px;font-size:clamp(20px,5vw,30px);letter-spacing:.11em}.wf-hero-brand svg{width:40px}}

/* Keep the class deck heading compact on phones. */
@media(max-width:600px){
 .deck{padding-top:48px}
 .deck-head{gap:10px;align-items:flex-end}
 .deck-head h2{font-size:clamp(21px,6vw,29px);white-space:nowrap}
 .deck-count{font-size:8px;letter-spacing:.1em;line-height:1.3;flex:none;max-width:75px}
 .deck-count b{font-size:clamp(28px,8vw,36px)}
}

/* Tighten the offerings-to-gallery transition on phones. */
@media(max-width:580px){
 section.wf-flyers{padding-bottom:24px}
 section.gal{padding-top:32px}
 .gal-head h2{margin-top:0}
 .gal .mosaic{margin-top:20px}
}

/* Imagegen design study: a welcoming photo-led opening, using the existing brand. */
.wf-welcome{--wf-ring:var(--aqua-ink);padding:48px 0 0!important}
.wf-welcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:center}
.wf-welcome-copy{min-width:0}
.wf-welcome-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--aqua-ink);margin-bottom:24px}
.wf-welcome h1{font-size:clamp(44px,4.7vw,68px);font-weight:700;line-height:1.03;letter-spacing:-.055em;max-width:none}
.wf-welcome h1 em{font-family:var(--serif);font-weight:400;color:var(--aqua-ink);letter-spacing:-.03em}
.wf-welcome-lead{font-size:clamp(17px,1.45vw,21px);line-height:1.55;max-width:36ch;margin-top:24px;color:#35545b}
.wf-welcome .wf-belong-cta{margin-top:28px;gap:10px}
.wf-welcome .wf-belong-cta .btn{font-size:11px;padding:15px 22px;min-height:48px}
.wf-gym-link{margin-top:17px;color:var(--aqua-ink);font-size:10px}
.wf-welcome .stats{gap:32px;margin-top:28px;padding-top:22px;max-width:430px}
.wf-welcome .stats b{font-size:34px;line-height:1.1;margin-bottom:6px}
.wf-welcome .stats div{font-size:9px;letter-spacing:.06em}
.wf-welcome-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch;min-width:0}
.wf-photo{position:relative;margin:0;aspect-ratio:1.25;overflow:hidden;background:var(--ink-2);isolation:isolate}
.wf-photo-fitness{border-radius:72px 12px 12px 12px}
.wf-photo-music{border-radius:12px 72px 12px 12px;margin-top:28px;margin-bottom:-28px}
.wf-photo-art{border-radius:12px 12px 12px 72px}
.wf-photo-theater{border-radius:12px 12px 72px 12px;margin-top:28px;margin-bottom:-28px}
.wf-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.wf-photo-fitness img{object-position:45% 35%}
.wf-photo-music img{object-position:50% 42%}
.wf-photo-art img{object-position:40% 45%}
.wf-photo-theater img{object-position:58% 90%}
.wf-photo figcaption{position:absolute;inset:auto 0 0;padding:34px 16px 14px;color:#fff;background:linear-gradient(transparent,#06161bd9);font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:4px;line-height:1.3}
.wf-photo-status{display:none;font-weight:400;font-size:12px}
.wf-js .wf-photo-status{display:inline}
.wf-js .wf-photo[data-photo-state=loading] img,.wf-photo[data-photo-state=error] img{opacity:0}
.wf-photo[data-photo-state=error] figcaption{inset:0;justify-content:center;align-items:center;background:none;padding:24px;text-align:center}
.wf-photo[data-photo-state=error] figcaption>span:first-child{font-size:24px}
.wf-location-strip{background:var(--ink-2);color:var(--bone);padding:28px 0;margin-top:56px}
.wf-location-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.wf-location-shortcut{display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:20px;border:1px solid #f2e9d84d;border-radius:16px;padding:22px 26px;transition:background .2s,border-color .2s;--wf-ring:var(--aqua)}
.wf-location-shortcut:hover{background:var(--ink-3);border-color:var(--aqua)}
.wf-location-shortcut:focus-visible{outline:3px solid var(--aqua);outline-offset:4px}
.wf-location-number{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--aqua);border-radius:50%;color:var(--aqua);font-family:var(--mono);font-size:16px}
.wf-location-shortcut small{font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--aqua)}
.wf-location-shortcut strong{display:block;font-size:clamp(24px,2.5vw,38px);line-height:1.15;letter-spacing:-.03em;margin:4px 0 6px;overflow-wrap:anywhere}
.wf-location-shortcut>span>span{font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.wf-location-arrow{font-size:26px;color:var(--aqua)}
.wf-mission{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);padding-block:56px;border-bottom:1px solid #06161b26}
.wf-mission h2{font-size:30px;line-height:1.15;letter-spacing:-.03em;margin-bottom:18px}
.wf-mission .lead{font-size:16px;line-height:1.65;max-width:55ch}
.wf-mission .who{margin-top:0;gap:8px}
.wf-mission .who span{font-size:10px;padding:10px 13px}
.wf-mission .reveal{opacity:1;transform:none}
.wf-welcome+.wf-curriculum{padding-top:64px}
.loc[id]{scroll-margin-top:110px}
.wf-copy-email:disabled{opacity:.65;cursor:progress}
@media(max-width:1100px) and (min-width:901px){
 .wf-welcome-grid{gap:28px}.wf-welcome h1{font-size:56px}.wf-welcome .wf-belong-cta .btn{padding-inline:16px}
}
@media(max-width:900px){
 .wf-welcome{padding-top:40px!important}
 .wf-welcome-grid{grid-template-columns:1fr;gap:36px}
 .wf-welcome-copy{max-width:650px}
 .wf-welcome h1{font-size:clamp(46px,8vw,68px);max-width:15ch}
 .wf-welcome-lead{max-width:42ch}
 .wf-welcome-photos{gap:12px;padding-bottom:20px}
 .wf-photo{aspect-ratio:1.25}
 .wf-photo-music,.wf-photo-theater{margin-top:20px;margin-bottom:-20px}
 .wf-location-strip{margin-top:40px;padding-block:20px}
 .wf-location-shortcut{padding:20px 18px;gap:12px;grid-template-columns:36px minmax(0,1fr) 20px}
 .wf-location-number{width:36px;height:36px;font-size:14px}
 .wf-location-shortcut strong{font-size:28px}
 .wf-mission{gap:28px;padding-block:40px}
}
@media(max-width:580px){
 .wf-welcome{padding-top:32px!important}
 .wf-welcome-kicker{font-size:9px;letter-spacing:.05em;margin-bottom:18px}
 .wf-welcome h1{font-size:clamp(43px,10vw,58px);max-width:12ch}
 .wf-welcome-lead{font-size:17px;margin-top:20px}
 .wf-welcome .wf-belong-cta{display:grid;grid-template-columns:1fr;gap:10px;margin-top:22px}
 .wf-welcome .wf-belong-cta .btn{justify-content:center;font-size:12px}
 .wf-welcome .stats{margin-top:22px;gap:12px;max-width:none}
 .wf-welcome .stats b{font-size:30px}
 .wf-welcome-photos{gap:10px}
 .wf-photo{aspect-ratio:.95;border-radius:28px 8px 8px 8px}
 .wf-photo-music{border-radius:8px 28px 8px 8px}
 .wf-photo-art{border-radius:8px 8px 8px 28px}
 .wf-photo-theater{border-radius:8px 8px 28px 8px}
 .wf-photo figcaption{font-size:12px;padding:28px 12px 12px}
 .wf-location-shortcuts{grid-template-columns:1fr;gap:12px}
 .wf-location-shortcut{padding:18px;gap:16px}
 .wf-location-shortcut strong{font-size:30px}
 .wf-mission{grid-template-columns:1fr;padding-block:32px}
 .wf-mission h2{font-size:26px}
 .wf-welcome+.wf-curriculum{padding-top:40px}
}
@media(prefers-reduced-motion:reduce){.wf-photo img,.wf-location-shortcut{transition:none}}

/* Client edits, 2026-11-07: one cream background through pricing, matching heading colours, single-column mission. */
.wf-pricing{background:var(--bone);color:var(--ink);--wf-ring:var(--aqua-ink)}
.wf-pricing .wf-heading em{color:var(--aqua-ink)}
.wf-pricing .wf-price-head{margin-bottom:36px}
.wf-tabs{border-bottom-color:#06161b33}
.wf-tabs button{color:var(--ink)}
.wf-tabs button[aria-selected=true]{color:var(--aqua-ink);border-color:var(--aqua-ink)}
.wf-price-paper{background:#fbf6ec;border:1px solid #06161b1f}
.wf-price-foot{color:#35545b}
.wf-price-foot a{color:var(--aqua-ink)}
.wf-pricing .wf-es-note{color:var(--aqua-ink)}
.wf-mission{grid-template-columns:1fr}
.wf-course-body h3{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:22px 0 4px}
.wf-course-body p+p{margin-top:10px}
@media(max-width:580px){.wf-tabs{border-color:#06161b33}.wf-tabs button[aria-selected=true]{background:#e3d7bf}}
/* Long labels wrap instead of widening the page (40-character check, 2026-11-07). */
.wf-welcome .stats div,.wf-price-table td strong,.wf-price-table td small{overflow-wrap:anywhere}
@media(max-width:580px){.wf-tabs button{white-space:normal;overflow-wrap:anywhere;min-width:0}}
.wf-load-error{font-size:16px;line-height:1.6;padding:8px 0}
/* At 320px the curriculum heading could be wider than the screen while web fonts load. */
.wf-course-aside{min-width:0}
@media(max-width:400px){.wf-course-aside .wf-heading{font-size:clamp(38px,13.5vw,54px)}}
/* Brand palette only: teal, navy and cream (operator, 2026-11-08). Replaces the old orange, yellow and purple accents. */
::selection{background:var(--aqua,#2ed3cc);color:var(--ink,#06161b)}
#trail circle.lit{fill:var(--aqua);stroke:var(--aqua)}
/* Keep both curriculum columns inside small screens. */
.wf-course-layout>*{min-width:0}
/* Storefront photos in the location cards (operator, 2026-11-08). */
.wf-location-shortcut{grid-template-columns:44px minmax(0,1fr) 170px 24px}
/* Whole photo, no crop: height follows each photo's own shape. */
.wf-location-photo{width:170px;height:auto;object-fit:contain;border-radius:10px;border:1px solid #f2e9d84d;display:block}
@media(max-width:580px){.wf-location-shortcut{grid-template-columns:44px minmax(0,1fr) 24px;row-gap:16px}.wf-location-photo{grid-column:1/-1;grid-row:1;width:min(100%,260px);justify-self:center}}
@media(max-width:360px){.wf-location-shortcut strong{font-size:26px}.wf-location-shortcut{padding-inline:18px;gap:14px}}
/* Mission fills the width: heading left, text right (operator, 2026-11-08). */
.wf-mission>div{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.6fr);gap:clamp(24px,5vw,80px);align-items:start}
.wf-mission h2{font-size:clamp(30px,3.2vw,46px);line-height:1.05;margin:0}
.wf-mission .lead{font-size:clamp(17px,1.5vw,21px);line-height:1.6;max-width:none}
@media(max-width:900px){.wf-mission>div{grid-template-columns:1fr;gap:16px}}
/* Button and stats centered under the headline (operator, 2026-11-08). The copy block is as wide as the headline. */
.wf-welcome-copy{width:fit-content;max-width:100%;justify-self:start}
.wf-welcome .wf-belong-cta{justify-content:center}
.wf-welcome .stats{max-width:none;justify-content:space-evenly;text-align:center}
@media(max-width:900px){.wf-welcome-copy{width:auto;justify-self:stretch}}
/* One even gap between sections (operator, 2026-11-08): 56px + 56px on wide screens, 36px + 36px on phones. */
section.wf-curriculum{padding-bottom:56px}
section.wf-pricing{padding-top:56px}
section.wf-flyers{padding-bottom:56px}
section.find{padding-top:56px;padding-bottom:72px}
@media(max-width:580px){section.wf-curriculum{padding-bottom:36px}section.wf-pricing{padding-top:36px}section.wf-flyers{padding-bottom:36px}section.find{padding-top:36px;padding-bottom:48px}}
/* "The door is open" now holds the location details from the removed Our Locations section (operator, 2026-11-08). */
.cta .hero-cta{display:grid;grid-template-columns:repeat(2,minmax(0,340px));justify-content:center;gap:24px;margin-top:40px}
.cta .wf-cta-loc{background:#0b2730;border:1px solid #2ed3cc40;border-radius:18px;padding:28px 24px;gap:10px;scroll-margin-top:100px}
.wf-cta-name{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.wf-cta-name em{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--aqua);font-size:22px}
.cta .wf-cta-loc address{font-style:normal;color:var(--bone-2);font-size:16px;line-height:1.55;margin-bottom:6px}
.wf-cta-phone{font-family:var(--mono);font-size:13px;color:var(--aqua)}
.cta .wf-cta-loc .wf-text-link{color:var(--aqua);margin-top:4px}
.cta .wf-hours-title{margin-top:40px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--aqua)}
.cta .wf-cta-hours{max-width:704px;margin:14px auto 0;text-align:left}
.cta .wf-cta-hours div{border-color:#f2e9d855;color:var(--bone-2)}
.cta .wf-cta-hours b{color:var(--bone)}
@media(max-width:760px){.cta .hero-cta{grid-template-columns:minmax(0,1fr)}}
.wf-cta-photo{width:100%;height:auto;aspect-ratio:1171/1400;object-fit:contain;background:#06161b;display:block;border-radius:12px;border:1px solid #f2e9d84d;margin-bottom:10px}
/* UX checks, 2026-11-08: long words wrap, teal focus ring in the bottom section, cards without a photo close the gap. */
.wf-mission h2,.wf-cta-name,.cta .wf-cta-loc address{overflow-wrap:anywhere}
.cta :is(a,button):focus-visible,footer a:focus-visible{outline:3px solid var(--aqua,#2ed3cc);outline-offset:4px}
.wf-location-shortcut:has(.wf-location-photo[hidden]){grid-template-columns:44px minmax(0,1fr) 24px}
.wf-location-photo[hidden],.wf-cta-photo[hidden]{display:none}
/* Less scrolling (operator, 2026-11-08): tighter section gaps everywhere, tightest on phones. */
section.wf-curriculum,section.wf-pricing,section.wf-flyers{padding-top:44px;padding-bottom:44px}
section.cta{padding:72px 0}
footer{padding-bottom:40px}
.wf-mission{padding-block:40px}
.cta .hero-cta{margin-top:28px}
.cta .wf-hours-title{margin-top:28px}
@media(max-width:580px){
 section.wf-curriculum,section.wf-pricing,section.wf-flyers{padding-top:24px;padding-bottom:24px}
 section.cta{padding:44px 0}
 .cta h2{font-size:clamp(40px,12vw,56px)}
 .cta .lead{margin-top:14px}
 .wf-mission{padding-block:24px}
 footer{padding-top:28px;padding-bottom:28px}
}
@media(max-width:580px){
 .wf-flyer p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .wf-location-photo{width:min(100%,200px)}
 .cta .wf-cta-photo{max-width:230px;margin-inline:auto}
}
@media(max-width:580px){.wf-flyer h3{min-height:0}}
@media(max-width:580px){.wf-flyer-grid{row-gap:20px}.wf-flyer{padding-bottom:12px}.wf-flyer-actions{display:flex;margin-top:10px}}
/* Cards offer "View flyer" only (operator, 2026-11-11): view first, then download or print on the flyer page. */
/* Theme flow (operator, 2026-11-08): navy frames the page (menu bar at the top, "The door is open" and footer at the bottom);
   everything in between sits on cream with light cards, like the price table. */
.ticker{background:var(--ink)}
.wf-location-strip{background:var(--bone);color:var(--ink);padding-top:8px;margin-top:24px}
.wf-location-shortcut{background:#fbf6ec;border-color:#06161b1f;--wf-ring:var(--aqua-ink)}
.wf-location-shortcut:hover{background:#fffdf7;border-color:var(--aqua-ink)}
.wf-location-shortcut:focus-visible{outline-color:var(--aqua-ink)}
.wf-location-number{border-color:var(--aqua-ink);color:var(--aqua-ink)}
.wf-location-shortcut small,.wf-location-arrow{color:var(--aqua-ink)}
.wf-location-shortcut>span>span{color:#35545b}
.wf-location-photo{border-color:#06161b1f}
/* Hours centered in their boxes. */
.cta .wf-cta-hours div{text-align:center}
/* "The door is open" joins the cream body (operator, 2026-11-08). Navy now frames only the top (menu) and bottom (footer). */
section.cta{background:var(--bone);color:var(--ink)}
.cta .cta-glow{display:none}
.cta h2{color:var(--ink)}
.cta h2 em{color:var(--aqua-ink)}
.cta .lead{color:#35545b}
.cta .wf-cta-loc{background:#fbf6ec;border-color:#06161b1f}
.wf-cta-name{color:var(--ink)}
.wf-cta-name em{color:var(--aqua-ink)}
.cta .wf-cta-loc address{color:#35545b}
.wf-cta-phone,.cta .wf-cta-loc .wf-text-link{color:var(--aqua-ink)}
.wf-cta-email{color:var(--ink);border-bottom-color:#06161b55}
.wf-cta-email:hover{color:var(--aqua-ink);border-color:var(--aqua-ink)}
.wf-copy-email{color:var(--aqua-ink);border-color:#0a5b5a88}
.wf-copy-email:hover{background:var(--aqua-ink);color:var(--bone)}
.wf-copy-status:not(:empty){color:var(--ink)}
.cta .wf-hours-title{color:var(--aqua-ink)}
.cta .wf-cta-hours div{border-color:#06161b33;color:#35545b;background:#fbf6ec}
.cta .wf-cta-hours b{color:var(--ink)}
.wf-cta-photo{background:#f2e9d8;border-color:#06161b1f}
.cta :is(a,button):focus-visible,.wf-copy-email:focus-visible{outline-color:var(--aqua-ink)}
section.cta{border-top:1px solid #06161b1a}
/* Location cards back to dark (operator, 2026-11-08): menu-bar navy cards on the cream page. */
.wf-location-shortcut{background:var(--ink);color:var(--bone);border-color:var(--ink);--wf-ring:var(--aqua-ink)}
.wf-location-shortcut:hover{background:var(--ink-2);border-color:var(--aqua)}
.wf-location-number{border-color:var(--aqua);color:var(--aqua)}
.wf-location-shortcut small,.wf-location-arrow{color:var(--aqua)}
.wf-location-shortcut>span>span{color:var(--bone-2)}
.wf-location-photo{border-color:#f2e9d84d}
/* Bottom location cards and hours back to navy (operator, 2026-11-08), matching the top cards. */
.cta .wf-cta-loc{background:var(--ink);border-color:var(--ink);color:var(--bone)}
.wf-cta-name{color:var(--bone)}
.wf-cta-name em{color:var(--aqua)}
.cta .wf-cta-loc address{color:var(--bone-2)}
.wf-cta-phone,.cta .wf-cta-loc .wf-text-link{color:var(--aqua)}
.wf-cta-email{color:var(--bone);border-bottom-color:#f2e9d888}
.wf-cta-email:hover{color:var(--aqua);border-color:var(--aqua)}
.wf-copy-email{color:var(--aqua);border-color:#2ed3cc88}
.wf-copy-email:hover{background:var(--aqua);color:var(--ink)}
.wf-copy-status:not(:empty){color:var(--bone)}
.wf-cta-photo{background:var(--ink-2);border-color:#f2e9d84d}
.cta .wf-cta-loc :is(a,button):focus-visible{outline-color:var(--aqua)}
.cta .wf-cta-hours div{background:var(--ink);border-color:var(--ink);color:var(--bone-2)}
.cta .wf-cta-hours b{color:var(--bone)}
/* Softer navy cards (operator, 2026-11-08): a little see-through so the cream warms them. */
.wf-location-shortcut,.cta .wf-cta-loc,.cta .wf-cta-hours div{background:rgba(11,39,48,.84);border-color:rgba(11,39,48,.2);box-shadow:0 14px 30px -22px rgba(6,22,27,.55)}
.wf-location-shortcut:hover{background:rgba(11,39,48,.92)}
.wf-cta-photo{background:rgba(6,22,27,.35)}
/* Menu bar and class strip use the same softer navy as the cards (operator, 2026-11-08). #30464b = the card navy over cream. */
.wf-nav,.wf-nav.solid{background:rgba(48,70,75,.96)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ticker{background:#30464b;border-color:#f2e9d81f}
@media(max-width:900px){.wf-nav .wf-links,.wf-nav .wf-mobile-toggle{background:#30464b}}
/* Subtle separation for the class strip (operator, 2026-11-08): dark lines above and below, a shade darker than the menu bar. */
.ticker{background:#273c41;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);box-shadow:inset 0 1px 0 #f2e9d814}
/* One thin divider line at the top of each section (operator, 2026-11-08), aligned with the content width. */
.wf-mission{border-bottom:0}
section.cta{border-top:0}
#curriculum::before,#pricing::before,#flyers::before,section.cta::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(1280px,calc(100% - 2 * var(--gutter)));height:1px;background:#06161b33;pointer-events:none;z-index:1}
/* transitions.dev (operator, 2026-11-08): 05 menu dropdown, 16 tabs sliding, 21 accordion expand.
   Snippets adapted to the existing markup; reduced-motion guards kept. */
:root{
  --dropdown-open-dur:250ms;--dropdown-close-dur:150ms;--dropdown-ease:cubic-bezier(0.22,1,0.36,1);
  --dropdown-pre-scale:.97;--dropdown-closing-scale:.99;
  --tabs-dur:250ms;--tabs-ease:cubic-bezier(0.22,1,0.36,1);
  --acc-expand:250ms;--acc-collapse:250ms;--acc-ease:cubic-bezier(0.22,1,0.36,1);
}
/* 05 menu dropdown: wide screens only (the phone menu lists them inline). */
@media(min-width:901px){
 .wf-nav .t-dropdown{transform-origin:top center;transform:scale(var(--dropdown-pre-scale));opacity:0;pointer-events:none;transition:transform var(--dropdown-open-dur) var(--dropdown-ease),opacity var(--dropdown-open-dur) var(--dropdown-ease);will-change:transform,opacity}
 .wf-nav .t-dropdown.is-open{transform:scale(1);opacity:1;pointer-events:auto}
 .wf-nav .t-dropdown.is-closing{transform:scale(var(--dropdown-closing-scale));opacity:0;pointer-events:none;transition:transform var(--dropdown-close-dur) var(--dropdown-ease),opacity var(--dropdown-close-dur) var(--dropdown-ease)}
 .wf-nav .t-dropdown.is-closing[hidden]{display:grid!important}
}
/* 16 tabs sliding: one highlight travels between tabs. Underline on wide screens, filled box on phones. */
.wf-tabs.t-tabs{position:relative}
.wf-tabs.t-tabs button{position:relative;z-index:1;transition:color var(--tabs-dur) var(--tabs-ease)}
.wf-tabs.t-tabs button[aria-selected=true]{border-color:transparent;background:transparent}
.t-tabs-pill{position:absolute;top:0;left:0;width:0;height:0;border-bottom:3px solid var(--aqua-ink);transform:translate(0,0);transition:transform var(--tabs-dur) var(--tabs-ease),width var(--tabs-dur) var(--tabs-ease),height var(--tabs-dur) var(--tabs-ease);will-change:transform,width;z-index:0;pointer-events:none}
@media(max-width:580px){.t-tabs-pill{border-bottom:0;background:#e3d7bf}}
/* 21 accordion expand: height via grid rows, no measuring. Padding stays on the inner body. */
.t-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--acc-collapse) var(--acc-ease)}
.t-acc[data-open="true"] .t-acc-panel{grid-template-rows:1fr;transition:grid-template-rows var(--acc-expand) var(--acc-ease)}
.t-acc-panel-inner{overflow:hidden;min-height:0;opacity:0;filter:blur(2px);transition:opacity var(--acc-collapse) var(--acc-ease),filter var(--acc-collapse) var(--acc-ease)}
.t-acc[data-open="true"] .t-acc-panel-inner{opacity:1;filter:blur(0);transition:opacity var(--acc-expand) var(--acc-ease),filter var(--acc-expand) var(--acc-ease)}
.wf-course.t-acc summary:after{transition:transform var(--acc-expand) var(--acc-ease)}
.wf-course.t-acc[data-open="true"] summary:after{content:'−';transform:rotate(180deg)}
.wf-course.t-acc[open]:not([data-open="true"]) summary:after{content:'+'}
@media (prefers-reduced-motion: reduce){
 .wf-nav .t-dropdown,.t-tabs-pill,.wf-tabs.t-tabs button,.t-acc-panel,.t-acc-panel-inner,.wf-course.t-acc summary:after{transition:none!important}
}
/* Emil Kowalski design-engineering pass (operator, 2026-11-08): no gray box outlines.
   Depth comes from layered shadows; photo edges use an inner hairline; presses give feedback. */
:root{--ring-shadow:0 0 0 1px rgba(6,22,27,.06),0 1px 2px rgba(6,22,27,.08),0 12px 28px -14px rgba(6,22,27,.45);--press-ease:cubic-bezier(0.23,1,0.32,1)}
.wf-location-shortcut,.cta .wf-cta-loc,.cta .wf-cta-hours div{border-color:transparent;box-shadow:inset 0 1px 0 rgba(242,233,216,.07),var(--ring-shadow)}
.wf-price-paper{border-color:transparent;border-radius:14px;box-shadow:var(--ring-shadow)}
/* Photos: no frame box; a 1px inner edge keeps light photos from bleeding into the card. */
.wf-location-photo,.wf-cta-photo{border:0;background:transparent;outline:1px solid rgba(242,233,216,.14);outline-offset:-1px}
.wf-photo img,.wf-flyer-image img{outline:1px solid rgba(6,22,27,.08);outline-offset:-1px}
/* Press feedback on pressable things. */
.btn,.wf-copy-email,.wf-location-shortcut,.wf-tabs button,.wf-course summary,.wf-download{transition-property:transform,background,color,border-color,box-shadow;transition-duration:160ms;transition-timing-function:var(--press-ease)}
.btn:active,.wf-copy-email:active,.wf-download:active{transform:scale(.97)}
.wf-location-shortcut:active{transform:scale(.99)}
@media (hover:hover) and (pointer:fine){.wf-location-shortcut:hover{box-shadow:inset 0 1px 0 rgba(242,233,216,.09),0 0 0 1px rgba(6,22,27,.08),0 2px 4px rgba(6,22,27,.1),0 18px 36px -16px rgba(6,22,27,.5)}}
@media (prefers-reduced-motion: reduce){.btn:active,.wf-copy-email:active,.wf-download:active,.wf-location-shortcut:active{transform:none}}
.cta .wf-cta-photo{outline:0;background:transparent;border-radius:12px}
.cta .wf-cta-photo{object-fit:contain;filter:drop-shadow(0 0 0 transparent)}
/* Wide screens: "The door is open" fills the content width (operator, 2026-11-08).
   Each location card = photo left, details right. Phones keep the stacked cards. */
@media(min-width:1000px){
 .cta .hero-cta{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1280px;margin-inline:auto;gap:24px}
 .cta .wf-cta-loc{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr);grid-template-areas:"photo name" "photo addr" "photo call" "photo phone" "photo email" "photo copy" "photo status" "photo dir";align-content:center;justify-items:start;text-align:left;column-gap:28px;row-gap:8px;padding:24px}
 .cta .wf-cta-loc>.wf-cta-photo{grid-area:photo;align-self:center;margin:0;max-width:none;width:100%;height:100%;max-height:340px;object-fit:cover;aspect-ratio:auto}
 .cta .wf-cta-loc>.wf-cta-name{grid-area:name}
 .cta .wf-cta-loc>address{grid-area:addr;margin-bottom:4px}
 .cta .wf-cta-loc>.btn{grid-area:call}
 .cta .wf-cta-loc>.wf-cta-phone{grid-area:phone}
 .cta .wf-cta-loc>.wf-cta-email{grid-area:email}
 .cta .wf-cta-loc>.wf-copy-email{grid-area:copy}
 .cta .wf-cta-loc>.wf-copy-status{grid-area:status}
 .cta .wf-cta-loc>.wf-text-link{grid-area:dir}
 .cta .wf-hours-title,.cta .wf-cta-hours{max-width:1280px;margin-inline:auto}
 .cta .wf-cta-hours{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Welcome photos (operator, 2026-11-08): transitions.dev texts-reveal style entrance, staggered,
   plus a gentle hover zoom on real pointers. Transform/opacity/blur only, so frames never resize. */
@keyframes wf-photo-in{from{opacity:0;transform:translateY(12px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}
.wf-js .wf-welcome-photos .wf-photo{animation:wf-photo-in 500ms cubic-bezier(0.22,1,0.36,1) both}
.wf-js .wf-welcome-photos .wf-photo:nth-child(2){animation-delay:80ms}
.wf-js .wf-welcome-photos .wf-photo:nth-child(3){animation-delay:160ms}
.wf-js .wf-welcome-photos .wf-photo:nth-child(4){animation-delay:240ms}
.wf-welcome-photos .wf-photo img{transition:transform 400ms cubic-bezier(0.23,1,0.32,1),opacity .2s}
@media (hover:hover) and (pointer:fine){.wf-welcome-photos .wf-photo:hover img{transform:scale(1.04)}}
@media (prefers-reduced-motion: reduce){
 .wf-js .wf-welcome-photos .wf-photo{animation:none}
 .wf-welcome-photos .wf-photo img{transition:none}
 .wf-welcome-photos .wf-photo:hover img{transform:none}
}
/* Cards in deep brand teal instead of gray-navy (operator, 2026-11-08: "the navy looks blah").
   Rich teal gradient, faint top highlight, teal-tinted shadow; small text in light aqua/cream for contrast. */
:root{--card-teal:linear-gradient(155deg,#0d6b69 0%,#0a5654 55%,#08403f 100%);--card-teal-shadow:0 0 0 1px rgba(10,91,90,.18),0 2px 4px rgba(8,64,63,.12),0 18px 36px -18px rgba(8,64,63,.55)}
.wf-location-shortcut,.cta .wf-cta-loc,.cta .wf-cta-hours div{background:var(--card-teal);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),var(--card-teal-shadow)}
.wf-location-shortcut:hover{background:var(--card-teal);filter:brightness(1.06)}
.wf-location-shortcut small,.wf-location-arrow,.wf-location-number,.wf-cta-name em,.wf-cta-phone,.cta .wf-cta-loc .wf-text-link,.wf-copy-email{color:#a6f1ec}
.wf-location-number,.wf-copy-email{border-color:#a6f1ec99}
.wf-location-shortcut>span>span,.cta .wf-cta-loc address,.cta .wf-cta-hours div{color:#e6f4f1}
.cta .wf-cta-hours div span{color:#bfe3df}
.wf-copy-email:hover{background:#a6f1ec;color:var(--ink)}
.cta .wf-cta-loc .btn-ember{background:var(--bone);color:var(--ink);box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
.cta .wf-cta-loc .btn-ember:hover{background:#fff}
/* Menu bar and class strip join the deep teal family. */
.wf-nav,.wf-nav.solid{background:rgba(10,78,77,.97)!important}
.ticker{background:#083f3e;border-top-color:#052b2a;border-bottom-color:#052b2a}
@media(max-width:900px){.wf-nav .wf-links,.wf-nav .wf-mobile-toggle{background:#0a4e4d}}
/* Tall photos on flyers (operator, 2026-11-08): show the whole photo on the right; a blurred copy fills the band. */
.wf-sheet-top.is-portrait::before{content:'';position:absolute;inset:-24px;background:var(--photo) center/cover;filter:blur(18px) brightness(.5) saturate(1.1)}
.wf-sheet-top.is-portrait img{left:auto;right:0;width:58%;object-fit:contain;object-position:right center;opacity:1}
.wf-sheet-top.is-portrait::after{background:linear-gradient(90deg,#06161bee 0%,#06161bb3 38%,#06161b00 62%)}
@media(max-width:580px){.wf-sheet-top.is-portrait img{width:62%}}
.wf-sheet-top.is-portrait img{top:0;bottom:0;height:100%;width:auto;max-width:64%;aspect-ratio:3/4;object-fit:cover}
@media(max-width:580px){.wf-sheet-top.is-portrait img{max-width:50%}.wf-sheet-top.is-portrait .wf-sheet-title{max-width:56%}.wf-sheet-top.is-portrait .wf-sheet-title h1{font-size:30px}.wf-sheet-top.is-portrait .wf-sheet-tag{font-size:19px}}

/* Full-size photo viewer (operator, 2026-11-08). transitions.dev 06 modal timing: scale .96 + fade. */
:root{--modal-open-dur:250ms;--modal-close-dur:150ms;--modal-ease:cubic-bezier(0.22,1,0.36,1)}
img[data-zoom]{cursor:zoom-in}
img[data-zoom][role=button]:focus-visible{outline:3px solid var(--aqua-ink,#0a5b5a);outline-offset:3px}
.wf-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px;border:0;background:transparent;display:none;place-items:center;overflow:hidden}
.wf-lightbox[open]{display:grid}
.wf-lightbox::backdrop{background:rgba(6,22,27,0);transition:background var(--modal-open-dur) var(--modal-ease)}
.wf-lightbox.is-open::backdrop{background:rgba(6,22,27,.86)}
.wf-lightbox img{max-width:min(100%,1600px);max-height:86dvh;width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);opacity:0;transform:scale(.96);transition:opacity var(--modal-open-dur) var(--modal-ease),transform var(--modal-open-dur) var(--modal-ease);cursor:zoom-out}
.wf-lightbox.is-open img{opacity:1;transform:scale(1)}
.wf-lightbox.is-closing img{opacity:0;transform:scale(.96);transition-duration:var(--modal-close-dur)}
.wf-lightbox.is-closing::backdrop{background:rgba(6,22,27,0);transition-duration:var(--modal-close-dur)}
.wf-lightbox-close{position:fixed;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:1px solid #f2e9d855;background:#0a4e4d;color:var(--bone,#f2e9d8);font-size:28px;line-height:1;cursor:pointer;display:grid;place-items:center}
.wf-lightbox-close:hover{background:#0d6b69}
.wf-lightbox-close:focus-visible{outline:3px solid #a6f1ec;outline-offset:3px}
@media (prefers-reduced-motion: reduce){.wf-lightbox img,.wf-lightbox::backdrop{transition:none!important}}
.wf-sheet-top:has(img[data-zoom]){cursor:zoom-in}
/* About page founder photos (operator, 2026-11-08). */
.wf-story-photo{margin:36px 0 0;max-width:460px}
.wf-story-photo img{width:100%;height:auto;display:block;border-radius:14px;box-shadow:var(--ring-shadow)}
@media(max-width:900px){.wf-story-photo{max-width:none;margin-top:24px}}
@media(min-width:901px){.wf-about-hero>img{height:min(78vh,720px);min-height:560px}}
/* About page dark areas join the deep teal used on the main page. */
.wf-about-hero{background:linear-gradient(155deg,#0d6b69 0%,#0a5654 55%,#08403f 100%)}
.wf-page-header,.wf-page-footer{background:#0a4e4d}

/* Shared header (operator, 2026-11-08): About, flyer and Pricing Policy pages use the landing page header.
   Base nav, brand and button rules copied from index.html's inline style, scoped to these pages. */
.wf-page .nav{position:sticky;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:12px var(--gutter);border-bottom:1px solid rgba(242,233,216,.08);color:var(--bone)}
:where(.wf-page) .brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.28em;font-size:13px;text-transform:uppercase;color:var(--bone)}
:where(.wf-page) .brand svg{width:34px;height:34px}
:where(.wf-page) .btn{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;border:1px solid transparent;cursor:pointer}
:where(.wf-page) .btn .arrow{width:14px;height:14px;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
:where(.wf-page) .btn:hover .arrow{transform:translateX(4px)}
@media(max-width:900px){:where(.wf-page) .brand{font-size:11px;letter-spacing:.2em;white-space:nowrap}:where(.wf-page) .brand svg{width:28px;height:28px}:where(.wf-page .nav) .btn{white-space:nowrap;padding:10px 14px;font-size:11px}}
@media print{.wf-page .nav{display:none!important}}
@media(min-width:901px){.wf-page .nav{padding:18px var(--gutter)}}

/* About page (operator, 2026-11-08): text lines up with the page content; the second section mirrors
   the first (big photo + text, same height); founders are named on both photos. */
.wf-page{--about-col:max(var(--gutter),calc((100vw - 1280px) / 2))}
.wf-about-hero{grid-template-columns:1fr 1fr;min-height:0}
.wf-about-copy{padding:72px 56px 72px var(--about-col)}
.wf-about-photo{position:relative;margin:0;min-height:0;overflow:hidden}
.wf-about-photo img{width:100%;height:100%;object-fit:cover;display:block}
.wf-about-hero>.wf-about-photo{height:min(78vh,640px);min-height:520px}
.wf-founders-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:48px 20px 18px;background:linear-gradient(180deg,rgba(6,22,27,0),rgba(6,22,27,.72));color:var(--bone);font-weight:700;font-size:16px;pointer-events:none}
.wf-founders-cap span{background:rgba(6,22,27,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:7px 14px}
.wf-founders-cap span:first-child{box-shadow:inset 3px 0 0 #e94b9a}
.wf-founders-cap span:nth-child(2){box-shadow:inset 3px 0 0 #a6f1ec}
.wf-founders-cap small{font-weight:400;opacity:.8;font-size:13px;margin-left:4px}
.wf-founders-cap em{margin-left:auto;font-family:var(--mono);font-style:normal;font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.wf-story.wf-story-split{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:none;padding:0;margin:0;align-items:stretch}
.wf-story-split>.wf-story-photo{max-width:none;margin:0;height:min(78vh,640px);min-height:520px;border-radius:0;box-shadow:none}
.wf-story-split>.wf-story-photo img{border-radius:0;box-shadow:none}
.wf-story-copy{align-self:center;padding:72px var(--about-col) 72px 56px}
.wf-story-copy h2{margin-bottom:26px}
@media(max-width:900px){
 .wf-about-hero,.wf-story.wf-story-split{grid-template-columns:1fr}
 .wf-about-copy{padding:56px var(--gutter) 40px}
 .wf-about-hero>.wf-about-photo,.wf-story-split>.wf-story-photo{height:380px;min-height:0}
 .wf-story-copy{padding:44px var(--gutter) 56px}
 .wf-founders-cap{font-size:14px;padding:40px 14px 14px}
 .wf-founders-cap em{display:none}
}
.wf-founders-cap b{font-weight:700}
@media(max-width:900px){.wf-story-split>.wf-story-photo{order:2}.wf-story-copy{padding-bottom:32px}}
/* About text centered in its half (operator, 2026-11-08). */
@media(min-width:901px){
 .wf-about-copy,.wf-story-copy{padding:72px clamp(32px,5vw,96px);justify-self:center;align-self:center;max-width:620px;width:100%}
}
@media(min-width:901px){
 .wf-about-copy h1{font-size:clamp(50px,4.4vw,84px)}
 .wf-about-hero>.wf-about-photo{height:auto;min-height:min(78vh,640px);align-self:stretch}
 .wf-about-hero>.wf-about-photo img{position:absolute;inset:0}
}
@media(min-width:901px){.wf-story-split>.wf-story-photo{height:auto;min-height:min(78vh,640px);align-self:stretch}.wf-story-split>.wf-story-photo img{position:absolute;inset:0}}
/* About: Two locations + Say hello merged into one section with the home page location cards (operator, 2026-11-08). */
.wf-about-locs{padding:64px 0 72px;text-align:center}
.wf-about-locs .wrap{max-width:1280px;margin:0 auto;padding-inline:var(--gutter)}
.wf-about-locs .wf-kicker{justify-content:center;display:flex}
.wf-about-locs h2{font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.04em;margin-top:14px}
.wf-about-locs h2 em{font-family:var(--serif);font-weight:400;color:var(--aqua-ink)}
.wf-about-locs .lead{margin:16px auto 0;color:#35545b;font-size:18px}
.wf-about-locs .hero-cta{display:grid}
.wf-about-locs .wf-cta-hours{display:grid;gap:12px}
@media(max-width:580px){.wf-about-locs{padding:40px 0 48px}}
.wf-page .hours div{padding:14px 16px;border-radius:12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;line-height:1.7}
.wf-page .hours b{display:block;font-family:var(--display);font-size:18px;letter-spacing:-.02em;text-transform:none}
.wf-page .wf-cta-loc .btn-ember{min-height:44px}
/* About: divider between "Find your way" and the locations section, same as the home page dividers. */
.wf-about-locs{position:relative}
.wf-about-locs::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(1280px,calc(100% - 2 * var(--gutter)));height:1px;background:#06161b33;pointer-events:none}
.wf-story.wf-story-split{border-bottom:1px solid #06161b1f}
.wf-about-locs::before{display:none}
.wf-story.wf-story-split{border-bottom:1px solid #06161b40}
/* UX checks (2026-11-08): long words wrap on About and flyers; flyer card titles fit 320px; failed founder photos show a calm message. */
.wf-about-copy h1,.wf-story-copy h2,.wf-sheet-title h1,.wf-founders-cap span{overflow-wrap:anywhere;min-width:0}
.wf-founders-cap span{max-width:100%}
@media(max-width:360px){.wf-flyer h3{font-size:20px}}
.wf-about-photo[data-photo-state=error]{background:linear-gradient(155deg,#0d6b69,#08403f);display:grid;place-items:center}
.wf-about-photo[data-photo-state=error] img,.wf-about-photo[data-photo-state=error] figcaption{display:none}
.wf-about-photo .wf-photo-status{color:#e6f4f1;font-family:var(--mono);font-size:12px;letter-spacing:.08em}
/* Teal glow on photos (operator, 2026-11-08), matching the location card hover edge. */
:root{--photo-glow:0 0 0 1.5px rgba(46,211,204,.6),0 0 24px -6px rgba(46,211,204,.55);--photo-glow-hover:0 0 0 2px rgba(46,211,204,.9),0 0 32px -4px rgba(46,211,204,.7)}
.wf-welcome-photos .wf-photo,.wf-flyer-image,.wf-location-photo,.cta .wf-cta-photo{box-shadow:var(--photo-glow);transition:box-shadow 250ms cubic-bezier(0.23,1,0.32,1)}
.wf-location-photo,.cta .wf-cta-photo{outline:0}
@media (hover:hover) and (pointer:fine){.wf-welcome-photos .wf-photo:hover,.wf-flyer-image:hover,.wf-location-shortcut:hover .wf-location-photo,.cta .wf-cta-photo:hover{box-shadow:var(--photo-glow-hover)}}
.wf-flyer-image:focus-visible{box-shadow:var(--photo-glow-hover)}
/* Emil Kowalski design-engineering pass 2 (operator, 2026-11-08). */
/* 1. Hover movement only on real pointers: touch screens no longer get "stuck" lifted buttons or zoomed photos. */
@media (hover:none),(pointer:coarse){
 .btn-ember:hover,.btn:hover .arrow,:where(.wf-page) .btn:hover .arrow{transform:none}
 .wf-flyer-image:hover img,.wf-welcome-photos .wf-photo:hover img{transform:none}
}
/* 2. Scroll reveals: 900ms felt slow; 500ms with a strong ease-out. */
.reveal{transition:opacity 500ms cubic-bezier(0.23,1,0.32,1),transform 500ms cubic-bezier(0.23,1,0.32,1)}
.reveal[data-d="1"]{transition-delay:60ms}.reveal[data-d="2"]{transition-delay:120ms}.reveal[data-d="3"]{transition-delay:180ms}
/* 3. Exits faster than entrances: class text closes in 200ms. */
:root{--acc-collapse:200ms}
/* 4. Hover photo zoom under 300ms. */
.wf-flyer-image img,.wf-welcome-photos .wf-photo img{transition:transform 300ms cubic-bezier(0.23,1,0.32,1),opacity .2s}
/* 5. Film grain stays as texture but no longer animates the whole screen every frame. */
.grain{animation:none}
/* 6. Press feedback on menu, tab and class headers. */
.wf-nav-trigger,.wf-tabs button,.wf-course summary{transition-property:transform,color,background,border-color;transition-duration:160ms;transition-timing-function:cubic-bezier(0.23,1,0.32,1)}
.wf-nav-trigger:active,.wf-tabs button:active{transform:scale(.97)}
.wf-course summary:active{transform:scale(.995)}
@media (prefers-reduced-motion: reduce){.wf-nav-trigger:active,.wf-tabs button:active,.wf-course summary:active{transform:none}}

/* transitions.dev audit pass (operator, 2026-11-08). Tokens: duration-quick 150, fast 250, slow 400, very-slow 500; ease-smooth-out. */
:root{--text-swap-dur:150ms;--text-swap-ease:ease-in-out;--text-swap-translate-y:4px;--text-swap-blur:2px;--panel-open-dur:400ms;--panel-close-dur:350ms;--panel-ease:cubic-bezier(0.22,1,0.36,1);--panel-translate-y:-8px;--panel-blur:2px;--stagger-dur:500ms;--stagger-ease:ease-in-out;--stagger-distance:12px;--stagger-blur:3px;--stagger-stagger:80ms;--learn-in:250ms;--learn-out:150ms;--learn-ease:cubic-bezier(0.22,1,0.36,1);--learn-shift:3px;--reveal-dur:400ms;--reveal-ease:ease-in-out;--reveal-blur:2px}
/* 04 text swap */
.t-text-swap{display:inline-block;transform:translateY(0);filter:blur(0);opacity:1;transition:transform var(--text-swap-dur) var(--text-swap-ease),filter var(--text-swap-dur) var(--text-swap-ease),opacity var(--text-swap-dur) var(--text-swap-ease)}
.wf-mobile-toggle.t-text-swap{display:inline-flex}
.t-text-swap.is-enter-start{transform:translateY(var(--text-swap-translate-y));filter:blur(var(--text-swap-blur));opacity:0;transition:none}
/* 07 panel reveal: phone menu slides down into place */
@media(max-width:900px){
 .wf-nav .wf-links.t-panel-slide{transform:translateY(var(--panel-translate-y));opacity:0;filter:blur(var(--panel-blur));transition:transform var(--panel-close-dur) var(--panel-ease),opacity var(--panel-close-dur) var(--panel-ease),filter var(--panel-close-dur) var(--panel-ease)}
 .wf-nav .wf-links.t-panel-slide[data-open="true"]{transform:translateY(0);opacity:1;filter:blur(0);transition:transform var(--panel-open-dur) var(--panel-ease),opacity var(--panel-open-dur) var(--panel-ease),filter var(--panel-open-dur) var(--panel-ease)}
}
/* 18 texts reveal: welcome headline, then button, then stats */
.wf-js .t-stagger>h1,.wf-js .t-stagger>.wf-belong-cta,.wf-js .t-stagger>.stats{opacity:0;transform:translateY(var(--stagger-distance));filter:blur(var(--stagger-blur));transition:opacity var(--stagger-dur) var(--stagger-ease),transform var(--stagger-dur) var(--stagger-ease),filter var(--stagger-dur) var(--stagger-ease)}
.wf-js .t-stagger>.wf-belong-cta{transition-delay:var(--stagger-stagger)}
.wf-js .t-stagger>.stats{transition-delay:calc(var(--stagger-stagger) * 2)}
.wf-js .t-stagger.is-shown>h1,.wf-js .t-stagger.is-shown>.wf-belong-cta,.wf-js .t-stagger.is-shown>.stats{opacity:1;transform:none;filter:none}
/* 24 learn more hover: the link arrow leans the way it goes */
.wf-text-link::after{display:inline-block;transition:transform var(--learn-out) var(--learn-ease)}
@media (hover:hover) and (pointer:fine){.wf-text-link:hover::after{transform:translate(var(--learn-shift),calc(var(--learn-shift) * -1));transition-duration:var(--learn-in)}}
/* 14 skeleton reveal: a loaded photo fades and sharpens in over its loading frame */
.wf-photo img{filter:blur(0);transition:transform 300ms cubic-bezier(0.23,1,0.32,1),opacity var(--reveal-dur) var(--reveal-ease),filter var(--reveal-dur) var(--reveal-ease)}
.wf-photo[data-photo-state=loading] img{filter:blur(var(--reveal-blur))}
@media (prefers-reduced-motion: reduce){
 .t-text-swap,.wf-nav .wf-links.t-panel-slide,.wf-js .t-stagger>*,.wf-text-link::after,.wf-photo img{transition:none!important}
 .wf-js .t-stagger>h1,.wf-js .t-stagger>.wf-belong-cta,.wf-js .t-stagger>.stats{opacity:1;transform:none;filter:none}
}
/* Location cards: contact details must read instantly (operator, 2026-11-09).
   A plain system sans gives a clear "@" and digits; bigger, brighter, heavier text. */
:root{--clear:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
.cta .wf-cta-loc address{font-family:var(--clear);font-size:17px;line-height:1.5;font-weight:500;color:#f4fbfa}
.wf-cta-phone{font-family:var(--clear);font-size:19px;font-weight:700;letter-spacing:.01em;color:#fff;font-variant-numeric:tabular-nums}
.wf-cta-email{font-family:var(--clear);font-size:18px;font-weight:600;letter-spacing:0;color:#fff;border-bottom:1.5px solid #a6f1ec}
.wf-copy-email{font-family:var(--clear);font-size:14px;font-weight:600}
.cta .wf-cta-loc .wf-text-link{font-family:var(--clear);font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:none;color:#a6f1ec}
/* Name: small WAY FINDER label, then the town in large bold white. */
.wf-cta-name span{display:block;font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.16em;color:#a6f1ec;margin-bottom:4px}
.wf-cta-name em{display:block;font-family:var(--display);font-style:normal;font-weight:700;font-size:30px;letter-spacing:-.02em;color:#fff;line-height:1.05}
/* Contact us (operator, 2026-11-09): the header button says what it does; phones get it first in the menu. */
.wf-menu-contact{display:none}
@media(max-width:900px){.wf-nav .wf-links .wf-menu-contact{display:flex;justify-content:center;width:100%;margin:8px 0 14px;min-height:48px;font-size:12px}}
/* WAY FINDER / WAY FINDER II labels readable on teal (operator, 2026-11-09). */
.wf-location-shortcut small,.wf-cta-name span{font-family:var(--clear);font-size:14px;font-weight:800;letter-spacing:.12em;color:var(--bone)}
.wf-location-shortcut>span>span{font-family:var(--clear);font-size:16px;font-weight:500;color:#f4fbfa}
.wf-about-locs h2 em{font-size:1.1em;padding:0 .05em}
/* Softer than pure white on teal (operator, 2026-11-09): warm cream, still high contrast. */
.wf-cta-phone,.wf-cta-email,.wf-cta-name em{color:#f2e9d8}
.cta .wf-cta-loc address,.wf-location-shortcut>span>span{color:#e8dfcb}
.wf-cta-email{border-bottom-color:#a6f1ec99}
.wf-sheet-top img[src$=".svg"]{right:3%;width:52%;opacity:1}

/* Fine Arts photo label clears the round bottom-left corner (operator, 2026-11-08). */
.wf-photo-art figcaption{padding-left:52px}
@media(max-width:580px){.wf-photo-art figcaption{padding-left:26px}}

/* Phone hero (operator, 2026-11-08): heading was left-heavy with an empty right side.
   Center the headline and line the four photos up in an even grid on single-column layouts. */
@media(max-width:900px){
 .wf-welcome-copy{text-align:center;margin-inline:auto}
 .wf-welcome h1{max-width:none;margin-inline:auto;text-wrap:balance}
 .wf-photo-music,.wf-photo-theater{margin-top:0;margin-bottom:0}
 .wf-welcome-photos{padding-bottom:0}
}
@media(max-width:900px){
 .wf-about-copy{text-align:center}
 .wf-about-copy .wf-kicker{justify-content:center}
 .wf-about-copy h1{text-wrap:balance}
 .wf-about-copy>p{margin-inline:auto}
}
/* Small phones (operator, 2026-11-08): emails split mid-word ("tribe.co / m") at 320px. Scale the
   email so the whole address fits on one line. */
.wf-cta-email{font-size:min(18px,4.6vw)}
/* Phones (operator, 2026-11-08): the storefront outline was taller than the near-square Mineola photo,
   leaving empty bands. Each frame now takes its own photo's shape below the wide-screen layout. */
@media(max-width:999px){.wf-cta-photo{aspect-ratio:auto;height:auto}}
/* Reserve each storefront photo's own shape before it loads (it was 0px tall, then the page jumped 275px).
   "auto" keeps the loaded photo's real shape, so the outline still fits it. Ratios match the width/height attributes. */
@media(max-width:999px){.wf-cta-photo{aspect-ratio:auto 1171/1400}.wf-cta-photo[src*="storefront-mineola"]{aspect-ratio:auto 1400/1354}}
/* Phones (operator, 2026-11-08): location card text sat left under a centered photo. Center it,
   with equal side columns so the number and arrow do not pull the text off center. */
@media(max-width:580px){
 .wf-location-shortcut{grid-template-columns:44px minmax(0,1fr) 44px}
 .wf-location-shortcut>span:not(.wf-location-number):not(.wf-location-arrow){text-align:center}
 .wf-location-arrow{justify-self:end}
}
/* Operator, 2026-11-08: the last flyer row's own bottom line sat right above the full-width section
   line (double line). Drop the card line on the last row only. */
@media(min-width:901px){
 .wf-flyer-grid .wf-flyer:nth-child(3n+1):nth-last-child(-n+3),
 .wf-flyer-grid .wf-flyer:nth-child(3n+1):nth-last-child(-n+3)~.wf-flyer{border-bottom:0}
}
@media(max-width:900px){
 .wf-flyer-grid .wf-flyer:nth-child(2n+1):nth-last-child(-n+2),
 .wf-flyer-grid .wf-flyer:nth-child(2n+1):nth-last-child(-n+2)~.wf-flyer{border-bottom:0}
}
/* Smallest phones: centered location names need more room than the equal side columns leave. */
@media(max-width:360px){.wf-location-shortcut{grid-template-columns:36px minmax(0,1fr) 36px;column-gap:8px}}
/* Phones (operator, 2026-11-11): the class list repeats the flyer grid, so phones show only the grid.
   The Curriculum heading and Open Gym stay; a link points down to the classes. Desktop keeps both. */
.wf-phone-only{display:none}
@media(max-width:700px){#course-list{display:none}.wf-phone-only{display:inline-flex;margin-top:22px}}
/* Keyboard focus scrolls items clear of the fixed menu bar (about 70px tall), never under it.
   Set on focusable items only, so section jump links keep their own scroll-margin-top. */
a,button,summary,[tabindex]:not([tabindex="-1"]){scroll-margin-top:96px}
/* Socials card (operator, 2026-11-11): photo with the Facebook and Instagram badges, and one existing-style button per network.
   Badges are white circles: Facebook blue "f", Instagram one-color glyph (the brand palette rule bans its orange/purple gradient). */
.wf-social{padding-block:24px}
.wf-social-card{display:grid;grid-template-columns:160px minmax(0,auto);justify-content:center;gap:28px;align-items:center;max-width:960px;margin:0 auto;padding:20px;border-radius:24px;background:var(--ink-2);color:var(--bone);border:1px solid #2ed3cc66;text-align:left;box-shadow:0 24px 60px -30px rgba(6,22,27,.7)}
.wf-social-photo{position:relative;display:block;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--ink)}
.wf-social-photo img{display:block;width:100%;height:100%;object-fit:cover}
.wf-social-badges{position:absolute;right:10px;bottom:10px;display:flex;gap:6px;pointer-events:none}
.wf-social-badge{display:block;width:42px;height:42px;border-radius:50%;background:#fff;color:#0866ff;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.wf-social-badge svg{display:block;width:100%;height:100%}
.wf-social-badge-ig{color:var(--ink);padding:8px}
.wf-social-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.wf-social-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--aqua)}
.wf-social-copy strong{font-family:var(--display);font-size:clamp(30px,3.4vw,44px);line-height:.95;letter-spacing:-.03em;font-weight:700;text-wrap:balance}
.wf-social-text{font-size:17px;line-height:1.45;color:var(--bone-2)}
.wf-social-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.wf-social-card-cta{margin-top:24px}
/* Contact section line: "Check out our socials" with one link per network. */
.wf-social-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 22px;margin-top:14px}
.wf-social-line>span{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.wf-footer-social{display:flex;flex-wrap:wrap;gap:6px 22px}
/* Phones: compact card (thumbnail beside the text, buttons below) so the page stays inside the scroll-length cap. */
@media(max-width:700px){
 .wf-social{padding-block:20px}
 .wf-social-kicker{display:none}
 .wf-social-card-cta{margin-top:16px}
 .wf-social-card{grid-template-columns:104px minmax(0,1fr);gap:6px 16px;padding:16px;align-items:start}
 .wf-social-copy{display:contents}
 .wf-social-photo{grid-row:span 2;border-radius:12px}
 .wf-social-badges{right:5px;bottom:5px;gap:4px}
 .wf-social-badge{width:28px;height:28px}
 .wf-social-badge-ig{padding:5px}
 .wf-social-copy strong{font-size:28px}
 .wf-social-text{font-size:15px}
 .wf-social-links{grid-column:1/-1;margin-top:10px}
 .wf-social-links .btn{flex:1 1 0;justify-content:center}
 /* The contact card repeats the top card; on phones it drops the sentence to keep the page under the scroll cap. */
 .wf-social-card-cta .wf-social-text{display:none}
 /* The socials card sits right below in the same section, so the text line is desktop-only. */
 .wf-social-line{display:none}
}
/* Touch screens: every stand-alone link and button is at least 44px tall, so a finger can hit it. Existing styles only; no new buttons. */
@media(pointer:coarse){
 .brand,button.wf-lang,.wf-text-link,.btn,.wf-copy-email,.wf-toolbar a,.wf-toolbar button,.wf-nav-trigger,[role=tab]{min-height:44px}
 .wf-toolbar a,.wf-toolbar button{display:inline-flex;align-items:center}
 .wf-cta-phone,.wf-cta-email,footer a{display:inline-flex;align-items:center;min-height:44px}
 /* The taller box would push a bottom border away from the text, so these underline the text itself. */
 .wf-cta-email,footer a{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
 .wf-cta-email,footer a{text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
 .wf-dropdown a{padding:13px 0;min-height:44px}
 .wf-flyer h3 a,.wf-links>a{display:inline-flex;align-items:center;min-height:44px}
 .wf-flyer-actions a{min-height:44px}
 .wf-sheet-contacts a,.wf-policy-contacts a{display:flex;align-items:center;min-height:44px}
}
