/* Fluid screens, Safari safe areas and short landscape viewports. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:0}button,input,select,textarea{touch-action:manipulation}img,svg{max-width:100%}.hero-copy,.hero-art,.about-copy,.services article,.post,.steps article{min-width:0}select,input,textarea{font-size:16px!important}.booking-body{-webkit-overflow-scrolling:touch}.booking-dialog{max-height:calc(100vh - 24px);max-height:calc(100dvh - max(16px,var(--safe-top)) - max(16px,var(--safe-bottom)));max-width:min(540px,calc(100% - max(16px,var(--safe-left)) - max(16px,var(--safe-right))))}.booking-dialog #change-session select{font-size:16px}.booking-dialog .booking-top .close,.booking-dialog #change-session summary,.booking-dialog #other-dates>summary,.booking-dialog .duration label{min-height:44px}.booking-dialog .booking-action{padding-bottom:max(12px,var(--safe-bottom))}.booking-dialog .booking-action .button{min-height:50px}.booking-dialog .booking-footnote{font-size:11px!important}.booking-dialog .booking-top .close{min-width:44px}.booking-body{overflow-wrap:anywhere}.booking-dialog .date-choice-label{flex-wrap:wrap;gap:3px 12px}.session-overview>span{max-width:calc(100% - 70px)}.session-overview>details{flex-shrink:0}dialog:not(.booking-dialog){max-height:calc(100vh - 32px);max-height:calc(100dvh - max(16px,var(--safe-top)) - max(16px,var(--safe-bottom)));overflow:auto}.booking-dialog .time-slots input{width:100%;height:100%;inset:0;margin:0;cursor:pointer}
@media(max-width:720px){html{scroll-padding-top:calc(108px + var(--safe-top))}header{height:auto;min-height:84px;padding-top:var(--safe-top);padding-left:max(20px,calc(var(--safe-left) + 12px));padding-right:max(20px,calc(var(--safe-right) + 12px))}nav{top:calc(76px + var(--safe-top));max-height:calc(100vh - 100px - var(--safe-top) - var(--safe-bottom));max-height:calc(100dvh - 100px - var(--safe-top) - var(--safe-bottom))}.hero,.section,footer{padding-left:max(24px,calc(var(--safe-left) + 12px));padding-right:max(24px,calc(var(--safe-right) + 12px))}footer{padding-bottom:max(28px,calc(var(--safe-bottom) + 12px))}.booking-dialog{padding-top:10px;padding-left:14px;padding-right:14px;width:calc(100% - 16px)}.booking-dialog h2{font-size:clamp(25px,7.2vw,30px)}.booking-dialog .booking-summary{font-size:13px!important}.booking-dialog .booking-action .button{font-size:13px}.hero h1{font-size:clamp(33px,10.6vw,60px)}.menu,.button,.round-link,.post button{min-height:44px}.services .text-link{overflow-wrap:anywhere}}
@media(max-width:350px){.hero,.section,footer{padding-left:max(20px,var(--safe-left));padding-right:max(20px,var(--safe-right))}.brand-caption{letter-spacing:.7px}.booking-dialog .duration label{font-size:12px;padding:8px}.booking-dialog .duration{gap:5px}.booking-dialog .booking-action .button{font-size:12px}.booking-dialog .session-overview{font-size:13px}}
@media(orientation:landscape) and (max-width:1024px) and (max-height:700px){
 html{scroll-padding-top:86px}header{position:sticky;top:0;z-index:10;height:auto;min-height:64px;padding-top:var(--safe-top);padding-left:max(24px,calc(var(--safe-left) + 16px));padding-right:max(24px,calc(var(--safe-right) + 16px));background:#f4dbdff5;border-radius:0 0 23px 23px;backdrop-filter:blur(14px)}.brand-logo{width:48px;height:48px}.brand-caption{display:block;font-size:8px;letter-spacing:1px}.menu{display:flex;align-items:center;gap:12px;min-width:94px;min-height:44px;border:1px solid var(--navy);border-radius:28px;padding:8px 14px;background:#fcf8f270;color:var(--navy);font-size:13px}.menu span:last-child{font-size:20px}.menu[aria-expanded=true] span:last-child{transform:rotate(45deg)}nav{display:none;position:absolute;top:calc(60px + var(--safe-top));left:max(12px,var(--safe-left));right:max(12px,var(--safe-right));padding:14px 18px 20px;grid-template-columns:1fr 1fr;gap:6px 18px;background:var(--pink);border-radius:0 0 28px 28px;max-height:calc(100vh - 76px - var(--safe-top) - var(--safe-bottom));max-height:calc(100dvh - 76px - var(--safe-top) - var(--safe-bottom));overflow:auto;box-shadow:0 15px 25px #2c365718}nav.open{display:grid}nav a{min-height:44px;padding:10px 12px;font-size:14px;border-radius:18px}nav .nav-cta{grid-column:1/-1;display:flex;justify-content:space-between;background:var(--navy);color:var(--cream);border-radius:25px;padding:10px 16px}.hero,.section,footer{padding-left:max(32px,calc(var(--safe-left) + 20px));padding-right:max(32px,calc(var(--safe-right) + 20px))}.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);padding-top:26px;min-height:0;gap:0 12px}.hero h1{font-size:clamp(34px,5.7vw,54px);line-height:1.08;letter-spacing:-1.3px}.hero .eyebrow{font-size:8px;letter-spacing:1.2px}.hero .intro{font-size:15px;max-width:30ch}.hero-art{width:100%;transform:none;max-width:430px;margin:0 auto;align-self:center}.art-note{font-size:clamp(15px,2.1vw,20px);padding:17px;left:40%;top:43%}.hero-bottom{margin-top:20px}.hero .button{font-size:13px;min-height:48px}.section{padding-top:96px;padding-bottom:66px}.section::before,footer::before{height:54px}.section h2{font-size:clamp(31px,4.5vw,43px);line-height:1.18}.section-heading{gap:30px}.section-heading>p{font-size:15px}.services{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.services article:last-child{grid-column:1/-1}.services article{padding:28px}.services h3{font-size:27px}.contact h2{font-size:43px}.contact .button{width:auto}.posts{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.post-art{height:145px}.post h3{font-size:24px}.post .eyebrow{font-size:9px;letter-spacing:.6px}footer{padding-top:90px;padding-bottom:max(26px,calc(var(--safe-bottom) + 12px))}
 .booking-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);grid-template-rows:44px minmax(0,1fr);column-gap:24px;max-width:900px;width:calc(100% - max(24px,calc(var(--safe-left) + 12px)) - max(24px,calc(var(--safe-right) + 12px)));height:calc(100vh - max(16px,var(--safe-top)) - max(16px,var(--safe-bottom)));height:calc(100dvh - max(16px,var(--safe-top)) - max(16px,var(--safe-bottom)));max-height:none;margin:auto;padding:8px 20px 12px;border-radius:27px 20px 30px 20px}.booking-top{grid-column:1/-1;grid-row:1}.booking-body{grid-column:1;grid-row:2;min-height:0;padding:0 5px 0 0}.booking-dialog h2{font-size:25px;line-height:1.2;margin:5px 0 10px}.booking-dialog .session-overview{font-size:13px;margin-bottom:8px}.booking-dialog .duration{margin-bottom:12px}.booking-dialog .duration label{font-size:12px;padding:8px 10px}.booking-dialog .date-choice-label{font-size:12px!important}.booking-dialog #quick-dates{gap:6px}.booking-dialog #quick-dates button{min-height:62px}.booking-dialog .booking-action{grid-column:2;grid-row:2;align-self:center;padding:14px 0;box-shadow:none;margin:0}.booking-dialog .booking-summary{font-size:14px!important;line-height:1.7}.booking-dialog .booking-action .button{font-size:13px;padding:14px;min-height:54px}.booking-dialog .booking-footnote{font-size:12px!important;line-height:1.7;margin-top:13px}.booking-dialog .calendar-days button{height:44px}.booking-dialog .time-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-dialog #other-dates>summary{min-height:44px}
}
@media(max-height:320px){.booking-dialog[open]{display:flex;height:auto;max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);overflow:auto}.booking-body{overflow:visible;flex-shrink:0}.booking-top{position:sticky;top:0}.booking-dialog .booking-action{padding:12px 0}.booking-dialog h2{font-size:24px}}

/* The Duo inner portrait viewport is wider than a phone cover screen. */
@media(min-width:600px) and (max-width:740px) and (min-height:700px){
 .hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);column-gap:14px;padding-top:38px}.hero h1{font-size:clamp(39px,6.7vw,49px);letter-spacing:-1.5px;line-height:1.1}.hero .intro{font-size:16px}.hero-art{width:100%;margin:0;align-self:center}.art-note{font-size:17px;left:33%;max-width:70%;padding:18px}.hero .eyebrow{font-size:8px}.hero-bottom{margin-top:25px}.services{grid-template-columns:repeat(2,minmax(0,1fr))}.services article:last-child{grid-column:1/-1}.services h3{font-size:27px}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}.section h2{font-size:36px}.about-copy .large-copy{font-size:21px}.section-heading>p{max-width:52ch}.posts{grid-template-columns:1fr}.post{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:28px;align-items:center}.post-art{grid-column:1;grid-row:1/4;width:100%;height:190px;margin:0}.post .eyebrow{margin:0}.post h3{font-size:27px;margin:10px 0}.post button{width:100%}
}
/* Fer's illustrated portrait is kept directly below her name, in every layout. */
.fer-portrait{position:relative;isolation:isolate;width:min(100%,270px);margin:24px 0 0;padding:5px 8px 0;aspect-ratio:1}.fer-portrait::before{content:"";position:absolute;inset:15% 0 0;background:#f4dbdf;border-radius:48% 52% 59% 41% / 44% 60% 40% 56%;transform:rotate(-7deg);z-index:-1}.fer-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.signature+.fer-portrait{margin-top:20px}@media(max-width:720px){.fer-portrait{width:min(100%,250px);margin-left:0;margin-bottom:6px}}@media(orientation:landscape) and (max-width:1024px){.fer-portrait{width:min(100%,240px)}}
