@font-face{font-family:Archivo;src:url("archivo.woff2") format("woff2");font-display:swap}
@font-face{font-family:Space;src:url("space.woff2") format("woff2");font-weight:400 700;font-display:swap}
:root{--paper:#f5f2e9;--ink:#171616;--blue:#3549d9;--yellow:#f9e322;--red:#f53c30;--line:1px solid var(--ink);--mono:ui-monospace,'Courier New',monospace}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);font:18px/1.55 Space,Arial,sans-serif}
a{color:inherit}
a:focus-visible,summary:focus-visible,main:focus-visible{outline:3px solid #a62019;outline-offset:4px}
.skip{position:absolute;z-index:10;top:8px;left:12px;transform:translateY(-200%);background:var(--yellow);padding:.5rem 1rem}
.skip:focus{transform:none}
.frame{max-width:1360px;margin:auto;border-inline:var(--line)}
.mono,.eyebrow{font:700 .72rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.09em}
.topline{display:flex;justify-content:space-between;gap:1rem;background:var(--yellow);padding:.42rem clamp(1rem,3vw,2.2rem);border-bottom:var(--line)}
.sitehead{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;padding:1.1rem clamp(1rem,3vw,2.2rem);border-bottom:var(--line)}
.brand{text-decoration:none;line-height:1.1;font-family:Archivo,'Arial Black',sans-serif;font-size:clamp(.95rem,1.75vw,1.26rem)}
.brand small{display:block;margin-top:.28rem;font:700 .68rem var(--mono);letter-spacing:.035em}
nav{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1.4rem}
nav a{text-decoration:none;font-weight:700;font-size:.92rem;white-space:nowrap}
nav a:hover,nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:46px;padding:.6rem .9rem;background:var(--yellow);color:var(--ink);border:var(--line);font-weight:700;font-size:1rem;text-decoration:none;line-height:1.25;box-shadow:3px 3px var(--ink)}
.btn:hover{background:white}
.btn:active{box-shadow:none;transform:translate(3px,3px)}
.btn.dark{background:var(--ink);color:white;box-shadow:3px 3px var(--blue)}
.btn.dark:hover{background:var(--blue)}
.btn span{font-size:1.18em}
.hero,.about-hero{display:grid;grid-template-columns:1.35fr 1fr;border-bottom:var(--line)}
.hero-copy{padding:clamp(1.6rem,4.25vw,4rem);background:var(--blue);color:white;position:relative}
.eyebrow{margin:0 0 1rem;display:flex;align-items:center;gap:.6rem}
.eyebrow:before{content:'';display:inline-block;width:9px;height:9px;transform:rotate(45deg);background:currentColor;flex:none}
h1,h2,h3,p{margin:0 0 .8em}
h1,h2,h3{font-family:Archivo,'Arial Black',sans-serif;font-weight:400;line-height:1.02;letter-spacing:-.045em}
h1{font-size:clamp(2.8rem,6.15vw,6.3rem);margin:.16em 0 .25em}
.hero h1 span{color:var(--yellow);display:block}
.hero-copy p:not(.eyebrow){max-width:36ch;font-size:clamp(1.02rem,1.75vw,1.25rem)}
.hero-copy .btn{margin-top:.45rem}
.portrait-stage{position:relative;isolation:isolate;display:flex;align-items:end;justify-content:center;min-height:350px;border-left:var(--line);overflow:hidden;background-color:var(--paper);background-image:linear-gradient(to right,#1716162e 1px,transparent 1px),linear-gradient(to bottom,#1716162e 1px,transparent 1px);background-size:39px 39px}
.portrait-stage:before{content:'';z-index:-1;position:absolute;width:46%;aspect-ratio:1;right:-7%;top:-18%;border-radius:50%;background:var(--yellow);border:var(--line)}
.portrait-stage:after{content:'';z-index:-1;position:absolute;width:44%;aspect-ratio:1;left:-15%;bottom:-20%;border-radius:50%;background:var(--red);border:var(--line)}
.portrait{margin:2.55rem 0 0;position:relative;max-width:360px;width:68%;border:2px solid var(--ink);border-bottom:0;border-radius:50% 50% 0 0 / 33% 33% 0 0;overflow:hidden;box-shadow:14px -11px 0 var(--blue);background:var(--blue)}
.portrait svg{display:block;width:100%;height:auto}
.portrait-tag{position:absolute;bottom:1.3rem;left:1.1rem;border:var(--line);padding:.42rem .55rem;background:var(--yellow);box-shadow:3px 3px var(--ink);margin:0}
.spark{position:absolute;right:7%;top:17%;font:clamp(2rem,6vw,6rem)/1 Arial,sans-serif}
.strip{display:flex;justify-content:space-between;gap:.65rem 1.4rem;flex-wrap:wrap;padding:.7rem clamp(1rem,3vw,2.2rem);border-bottom:var(--line);color:white;background:var(--ink)}
.strip b{color:var(--yellow)}
.intro,.content{padding:clamp(1.45rem,4vw,4rem);border-bottom:var(--line)}
.intro{display:grid;grid-template-columns:1fr 1.45fr;gap:1rem 3rem}
h2{font-size:clamp(1.9rem,4vw,3.45rem);margin-bottom:.55em}
h3{font-size:clamp(1.25rem,2.5vw,1.9rem);margin-bottom:.5em}
.copy{max-width:65ch}
.copy p:last-child,.content p:last-child,.intro p:last-child{margin-bottom:0}
.grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:var(--line)}
.panel{padding:clamp(1.4rem,4vw,3.7rem);min-width:0}
.grid>.panel+ .panel{border-left:var(--line)}
.panel.yellow,.yellow{background:var(--yellow)}
.panel.blue,.blue{background:var(--blue);color:white}
.panel p:not(.eyebrow){max-width:48ch}
.panel .btn{margin-top:.5rem}
.cta{padding:clamp(1.5rem,4vw,3.7rem);background:var(--yellow);border-bottom:var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem 2rem}
.cta p:last-child{margin:0;max-width:55ch}
footer{padding:1.6rem clamp(1rem,3vw,2.2rem);display:flex;justify-content:space-between;align-items:start;gap:1.2rem;font-size:.85rem}
footer p{margin:.25rem 0 0}
footer .mono{margin-bottom:.35rem}
.subhero{position:relative;overflow:hidden;padding:clamp(2rem,6vw,5.5rem) clamp(1.45rem,5vw,4.5rem);border-bottom:var(--line);isolation:isolate}
.subhero:after{content:'✦';font:clamp(4rem,17vw,14rem)/1 Arial,sans-serif;position:absolute;right:3%;bottom:2%;z-index:-1;color:var(--red);opacity:.95}
.subhero.blue:after{color:var(--yellow)}
.subhero h1,.subhero p{max-width:75%;position:relative}
.subhero p:not(.eyebrow){font-size:clamp(1rem,2vw,1.32rem);max-width:min(50ch,75%)}
.subhero .btn{margin-top:.35rem}
.about-hero .subhero{border-bottom:0}
.about-hero .subhero:after{display:none}
.about-hero .subhero h1{max-width:100%}
.about-hero .subhero p{max-width:54ch}
.content ul{padding-left:1.25rem}
.content li{margin-bottom:.45rem}
details{border-top:var(--line);max-width:64ch;padding:.75rem 0}
summary{font-weight:700;cursor:pointer}
details p{padding:.45rem 0 0}
@media(max-width:900px){.sitehead{flex-wrap:wrap;gap:.8rem 1rem}nav{gap:.5rem 1rem}.hero,.about-hero{grid-template-columns:1.2fr 1fr}.portrait{width:76%}}
@media(max-width:680px){body{font-size:16px}.topline{font-size:.63rem}.sitehead{padding:.85rem 1rem}.sitehead>.btn{display:none}nav{width:100%;border-top:1px solid #17161640;padding-top:.6rem}nav a{font-size:.87rem}.hero,.about-hero,.intro,.grid,.cta{grid-template-columns:1fr}.hero-copy{padding:1.65rem 1.15rem 2rem}.portrait-stage{border-left:0;border-top:var(--line);min-height:0}.portrait{width:56%;max-width:245px;margin-top:1.45rem}.grid>.panel+.panel{border-left:0;border-top:var(--line)}.cta .btn{justify-self:start}.subhero h1,.subhero p,.subhero p:not(.eyebrow){max-width:100%}.subhero:after{font-size:4rem;bottom:5%;right:4%;opacity:.22}footer{flex-direction:column}.strip{font-size:.65rem}}
@media(prefers-reduced-motion:no-preference){.btn{transition:background .15s,transform .15s}}

/* Readable labels and clear action colors across the flyer palette. */
body{font-size:19px}
.mono,.eyebrow{font-size:.86rem}
.brand small{font-size:.79rem}
nav a{font-size:1.025rem}
.sitehead>.btn{background:var(--blue);color:white}
.btn{border:2px solid var(--ink)}
.yellow .btn:not(.dark){background:var(--ink);color:white;box-shadow:3px 3px white}
.yellow .btn:not(.dark):hover,.sitehead>.btn:hover{background:white;color:var(--ink)}
.btn.dark:hover{background:var(--blue);color:white}
footer{font-size:1rem;align-items:center}
.practice-logo{display:inline-flex;align-items:center;background:white;border:var(--line);padding:.65rem;max-width:100%;flex:none}
.practice-logo img{display:block;width:clamp(165px,21vw,250px);height:auto}
.practice-logo:hover{box-shadow:3px 3px var(--blue)}
.practice-box{padding:clamp(1.45rem,4vw,4rem);border-bottom:var(--line)}
.practice-card{border:var(--line);background:#fffdf7;box-shadow:5px 5px var(--blue);max-width:970px}
.practice-card header,.practice-card>div:last-child{padding:clamp(1rem,2.8vw,2rem)}
.practice-card header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;border-bottom:var(--line)}
.practice-card header h3{margin-bottom:0}
.practice-info{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem}
.practice-info>div{min-width:0}
.practice-info h4{margin:0 0 .4rem;font-size:1.13rem}
.practice-info ul{list-style:none;margin:0;padding:0}
.practice-info li+li{margin-top:.42rem}
.practice-info address{font-style:normal;margin:.55rem 0 0}
.practice-card .btn{margin:1.25rem 0 .25rem}
.practice-card .supervision{margin:.8rem 0 0;font-size:.95rem}
.topline a{text-underline-offset:.18em}
@media(max-width:680px){
 body{font-size:17px}
 .topline,.strip,.eyebrow,.mono{font-size:.77rem}
 nav a{font-size:.94rem}
 .sitehead>.btn{display:none}
 .practice-info{grid-template-columns:1fr}
 footer{align-items:flex-start;font-size:.95rem}
}

.flyer-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(1.4rem,5vw,4rem);align-items:start}
.flyer-section p:not(.eyebrow){max-width:39ch}
.flyer-art{margin:0;max-width:620px;border:var(--line);box-shadow:5px 5px var(--blue);background:white}
.flyer-art img{display:block;width:100%;height:auto}
@media(max-width:680px){.flyer-section{grid-template-columns:1fr}.flyer-art{margin-right:5px}}

.home-hours{display:grid;grid-template-columns:1fr 1.2fr;gap:1.25rem 2.5rem;align-items:start}
.home-hours .practice-info{grid-template-columns:1fr}
.home-hours .practice-info h3{font:700 1rem/1.3 Space,Arial,sans-serif;letter-spacing:0}
.home-hours .practice-info ul{padding:0}
@media(max-width:680px){.home-hours{grid-template-columns:1fr}}
