@charset "UTF-8";

:root{
--cream:#f4f1e9;
--paper:#faf8f2;
--ink:#39324f;
--muted:#66616d;
--lilac:#ddd9e6;
--lavender:#b9b1cb;
--line:rgba(57,50,79,.2);
--serif:'Palatino Linotype','Book Antiqua',Palatino,Georgia,serif;
--sans:Arial,Helvetica,sans-serif}

*{
box-sizing:border-box}
html{
scroll-behavior:smooth;
scroll-padding-top:105px}
body{
margin:0;
background:var(--cream);
color:var(--ink);
font-family:var(--sans);
font-size:15px;
line-height:1.65}
body.modal-open{
overflow:hidden}
img{
display:block;
max-width:100%;
height:auto}
a{
color:inherit;
text-decoration:none}
button,input,select{
font:inherit}
button,a,input,select,summary{
-webkit-tap-highlight-color:transparent}
button{
color:inherit;
cursor:pointer}
button:disabled{
cursor:default}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{
outline:2px solid #796291;
outline-offset:5px}
::selection{
background:var(--lavender);
color:var(--ink)}
h1,h2,h3,p{
margin:0}
h1,h2,h3{
font-family:var(--serif);
font-weight:400;
line-height:1.05;
letter-spacing:-.045em}
h1{
font-size:clamp(72px,7.3vw,112px)}
h2{
font-size:clamp(45px,5vw,68px)}
h3{
font-size:34px}
em{
font-weight:400}
p{
color:var(--muted)}
.wrap{
width:min(1280px,calc(100% - 112px));
margin-inline:auto}
.section-space{
padding-block:105px}
.eyebrow{
font:10px/1.4 var(--sans);
font-weight:600;
letter-spacing:.19em;
color:var(--ink)}
.button{
min-height:52px;
padding:15px 23px;
display:inline-flex;
justify-content:space-between;
align-items:center;
gap:28px;
border:1px solid transparent;
font-size:12px;
line-height:1.4;
letter-spacing:.015em;
transition:background .2s,color .2s,transform .2s}
.button:hover{
transform:translateY(-2px)}
.button span{
font-size:23px;
line-height:1}
.button-dark{
background:var(--ink);
color:var(--cream)}
.button-dark:hover{
background:#514565}
.button-outline{
background:transparent;
border-color:var(--ink)}
.button-outline:hover{
background:var(--ink);
color:var(--cream)}
.button-cream{
background:var(--cream);
color:var(--ink)}
.button-cream:hover{
background:var(--lilac)}
.text-link{
font-size:12px;
padding-block:8px;
border-bottom:1px solid currentColor;
display:inline-flex;
align-items:center;
gap:23px;
line-height:1.4}
.text-link span{
font-size:19px}
.skip-link{
position:fixed;
top:-100px;
left:15px;
z-index:100;
background:var(--ink);
color:var(--cream);
padding:12px}
.skip-link:focus{
top:12px}

.site-header{
position:sticky;
top:0;
background:rgba(244,241,233,.96);
backdrop-filter:blur(12px);
z-index:20;
border-bottom:1px solid var(--line)}
.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
min-height:89px;
gap:30px}
.brand{
display:inline-flex;
align-items:center;
gap:12px;
white-space:nowrap}
.brand span{
font-size:29px;
font-weight:400;
letter-spacing:-.065em}
.brand img{
width:38px;
height:38px}
.site-header nav{
display:flex;
align-items:center;
gap:36px;
font-size:11px}
.site-header nav a{
padding-block:9px}
.site-header nav a:hover{
color:#877793}
.site-header .nav-book{
border-bottom:1px solid var(--ink);
display:flex;
align-items:center;
gap:30px}
.nav-book span{
font-size:21px}
.nav-toggle{
display:none}

.hero{
display:grid;
grid-template-columns:1.07fr 1fr;
gap:60px;
padding-top:54px;
padding-bottom:58px;
min-height:730px;
align-items:center}
.hero-copy{
padding-block:20px}
.hero .eyebrow{
display:flex;
gap:11px;
align-items:center;
margin-bottom:31px}
.little-star{
font-size:23px;
font-weight:400;
letter-spacing:0}
.hero h1{
margin-left:-5px;
line-height:.97;
margin-bottom:29px}
.hero h1 em{
color:#77618d}
.hero-description{
max-width:365px;
font-size:14px;
line-height:1.8}
.hero-actions{
display:flex;
align-items:center;
gap:26px;
margin-top:31px;
flex-wrap:wrap}
.hero-footnote{
margin-top:55px;
display:flex;
align-items:center;
gap:11px;
color:var(--muted);
font-size:10px;
letter-spacing:.025em}
.status-dot{
width:6px;
height:6px;
border-radius:50%;
background:#79658a}
.separator{
color:#aaa0b4;
margin-inline:3px}
.hero-visual{
position:relative;
padding-inline:22px 21px;
padding-bottom:15px;
align-self:center}
.hero-photo{
height:566px;
overflow:hidden;
border-radius:260px 260px 0 0;
background:var(--lilac)}
.hero-photo img{
width:100%;
height:100%;
object-fit:cover;
object-position:50% 48%}
.hero-seal{
position:absolute;
width:130px;
height:130px;
top:9px;
right:-7px;
background:var(--lilac);
border-radius:50%;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
transform:rotate(12deg)}
.hero-seal img{
width:46px;
height:46px}
.hero-seal span{
font-size:7px;
text-align:center;
letter-spacing:.14em;
line-height:1.6}
.photo-caption{
position:absolute;
left:-17px;
bottom:48px;
background:var(--lilac);
padding:22px 28px;
display:flex;
gap:23px;
align-items:flex-start;
min-width:246px}
.caption-index{
font-size:9px;
padding-top:6px}
.photo-caption>span:last-child{
font-family:var(--serif);
font-size:26px;
line-height:1.2;
letter-spacing:-.035em}
.photo-label{
position:absolute;
right:0;
bottom:5px;
font-size:8px;
letter-spacing:.18em;
writing-mode:vertical-rl;
transform:rotate(180deg)}

.specialty-strip{
border-block:1px solid var(--line)}
.specialty-strip .wrap{
display:flex;
align-items:center;
justify-content:space-between;
gap:30px;
padding-block:26px}
.specialty-strip span{
font-size:11px;
letter-spacing:.18em}
.specialty-strip img{
opacity:.7}
.section-heading{
display:grid;
grid-template-columns:1.4fr 1fr;
gap:80px;
align-items:end;
margin-bottom:49px}
.section-heading .eyebrow{
margin-bottom:20px}
.section-heading>p{
max-width:340px;
font-size:14px;
line-height:1.9;
justify-self:end;
margin-bottom:4px}
.experience-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:33px}
.experience-image{
display:block;
aspect-ratio:1/.98;
position:relative;
overflow:hidden;
background:var(--lilac);
margin-bottom:27px}
.experience-image img{
width:100%;
height:100%;
object-fit:cover;
transition:transform .5s}
.experience-image:hover img{
transform:scale(1.035)}
.experience-card:nth-child(2) .experience-image{
border-radius:160px 160px 0 0}
.experience-card:nth-child(3) .experience-image img{
object-position:50% 43%}
.image-number{
position:absolute;
top:15px;
left:16px;
background:var(--cream);
width:32px;
height:32px;
border-radius:50%;
display:grid;
place-items:center;
font-size:10px}
.image-arrow{
position:absolute;
bottom:15px;
right:16px;
color:var(--ink);
background:var(--cream);
width:38px;
height:38px;
border-radius:50%;
display:grid;
place-items:center;
font-size:25px}
.experience-card .eyebrow{
font-size:9px;
margin-bottom:10px}
.experience-card h3{
margin-bottom:14px}
.experience-card>p:not(.eyebrow){
font-size:13px;
line-height:1.85;
max-width:310px;
margin-bottom:16px}
.experience-card .text-link{
font-size:11px}

.service-section{
background:var(--lilac)}
.menu-heading{
align-items:end}
.menu-heading>div:last-child{
max-width:330px;
justify-self:end}
.menu-heading>div:last-child p{
font-size:14px;
margin-bottom:16px}
.service-tabs{
display:grid;
grid-template-columns:repeat(3,1fr);
border-bottom:1px solid var(--ink);
margin-top:59px;
margin-bottom:43px}
.service-tabs button{
border:0;
border-bottom:3px solid transparent;
background:none;
display:flex;
align-items:center;
justify-content:space-between;
font-family:var(--serif);
font-size:24px;
letter-spacing:-.02em;
padding:19px 22px 18px}
.service-tabs button[aria-selected=true]{
background:var(--ink);
color:var(--cream);
border-bottom-color:var(--ink)}
.service-tabs button:not([aria-selected=true]):hover{
background:rgba(255,255,255,.2)}
.service-tabs button span{
font:9px var(--sans);
letter-spacing:0}
.menu-layout{
display:grid;
grid-template-columns:.7fr 1.5fr;
gap:90px;
align-items:start}
.menu-aside{
padding-top:15px}
.menu-aside h3{
font-size:38px;
max-width:250px;
margin-block:18px}
.menu-aside>p:not(.eyebrow){
font-size:12px;
max-width:220px;
line-height:1.8}
.category-list{
display:flex;
flex-direction:column;
align-items:stretch;
max-width:240px;
margin-top:28px;
margin-bottom:32px}
.category-list button{
background:none;
border:0;
border-bottom:1px solid var(--line);
font-size:11px;
padding:12px 0;
text-align:left;
display:flex;
justify-content:space-between;
gap:14px}
.category-list button[aria-pressed=true]{
font-weight:700}
.category-list button[aria-pressed=true]::after{
content:'→';
font-size:16px}
.category-list button:hover{
color:#755e8c}
.specialist-link{
font-size:10px;
display:inline-flex;
gap:22px;
padding-block:6px;
border-bottom:1px solid var(--line)}
.service-panel{
background:var(--paper);
padding:29px 35px 31px}
.panel-top{
display:flex;
justify-content:space-between;
gap:18px;
align-items:center;
padding-bottom:21px;
border-bottom:1px solid var(--ink)}
.panel-top h3{
font-size:31px}
.price-label{
font-size:8px;
letter-spacing:.15em}
.service-row{
display:grid;
grid-template-columns:1fr auto auto;
gap:19px;
padding:20px 0;
border-bottom:1px solid var(--line);
align-items:center}
.service-name{
font-family:var(--serif);
font-size:20px;
letter-spacing:-.02em;
line-height:1.3}
.service-description{
font-size:10px;
line-height:1.6;
max-width:330px;
color:var(--muted);
margin-top:5px}
.service-price{
display:flex;
flex-direction:column;
align-items:end;
white-space:nowrap;
font-family:var(--serif);
font-size:20px;
line-height:1.2}
.service-price small{
font:8px var(--sans);
margin-bottom:4px;
color:var(--muted);
letter-spacing:.025em}
.service-price .service-unit{
margin-top:5px;
margin-bottom:0;
font-size:8px}
.service-reserve{
width:30px;
height:30px;
border-radius:50%;
border:1px solid var(--line);
background:transparent;
font-size:19px;
display:grid;
place-items:center}
.service-reserve:hover{
background:var(--ink);
color:var(--cream)}
.price-note{
font-size:9px;
line-height:1.8;
margin-block:22px 18px;
max-width:420px}
.service-panel .button{
font-size:11px;
min-height:45px;
padding-block:11px}

.about-section{
display:grid;
grid-template-columns:1fr 1fr;
gap:120px;
align-items:center}
.about-visual{
position:relative;
padding-inline:0 42px;
padding-bottom:30px}
.about-photo{
width:100%;
height:505px;
object-fit:cover;
object-position:40% 55%}
.about-mark{
position:absolute;
bottom:0;
right:7px;
width:152px;
height:152px;
background:var(--lilac);
border-radius:50%;
display:grid;
place-items:center}
.about-mark img{
width:77px;
height:77px}
.vertical-caption{
writing-mode:vertical-rl;
transform:rotate(180deg);
position:absolute;
right:17px;
top:0;
letter-spacing:.16em;
font-size:8px}
.about-copy>.eyebrow{
margin-bottom:22px}
.about-copy h2{
font-size:53px;
margin-bottom:29px}
.about-copy>p:not(.eyebrow){
font-size:13px;
line-height:1.9;
margin-bottom:15px;
max-width:420px}
.about-details{
border-top:1px solid var(--line);
margin-top:32px;
padding-top:25px;
display:grid;
grid-template-columns:1fr 1fr;
gap:20px}
.about-details .eyebrow{
font-size:8px;
letter-spacing:.13em;
display:block;
margin-bottom:11px}
.about-details p,.about-details a{
font-size:12px;
line-height:1.7;
color:var(--ink)}
.about-details a{
display:inline-flex;
gap:15px}

.gallery-section{
padding-top:5px}
.gallery-heading h2{
font-size:52px}
.gallery-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:20px}
.gallery-item{
border:0;
background:none;
text-align:left;
padding:0}
.gallery-item img{
width:100%;
aspect-ratio:3/4;
object-fit:cover;
transition:filter .2s}
.gallery-item:hover img{
filter:brightness(1.04)}
.gallery-item span{
display:flex;
justify-content:space-between;
gap:12px;
margin-top:13px;
font-size:10px;
letter-spacing:.015em}
.gallery-item span b{
font-weight:400;
font-size:17px}
.gallery-dialog{
max-width:780px;
width:calc(100% - 32px);
padding:15px;
background:var(--paper)}
.gallery-dialog .dialog-close{
position:absolute;
top:21px;
right:21px;
background:var(--cream)}
.gallery-dialog img{
max-height:78vh;
width:auto;
max-width:100%;
object-fit:contain;
margin:auto}
.gallery-dialog p{
text-align:center;
color:var(--ink);
font-size:12px;
margin-top:12px}

.booking-section{
background:var(--ink);
color:var(--cream)}
.booking-intro{
text-align:center;
max-width:680px;
margin:0 auto 55px}
.booking-intro>img{
filter:brightness(0) saturate(100%) invert(96%) sepia(9%) saturate(523%) hue-rotate(336deg) brightness(106%) contrast(91%);
margin-inline:auto;
margin-bottom:22px}
.booking-intro .eyebrow{
color:var(--cream);
font-size:9px;
margin-bottom:23px}
.booking-intro h2{
font-size:73px}
.booking-intro h2 em{
color:#c9bcd8}
.booking-intro>p:last-child{
color:#d2cbd8;
font-size:12px;
line-height:1.9;
margin-top:26px}
.contact-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
border-top:1px solid rgba(244,241,233,.24)}
.contact-grid article{
padding:32px 30px 8px;
border-right:1px solid rgba(244,241,233,.24)}
.contact-grid article:first-child{
padding-left:0}
.contact-grid article:last-child{
padding-right:0;
border:0}
.contact-number{
font-size:9px;
color:#c9bcd8;
display:block;
margin-bottom:18px}
.contact-grid h3{
font-size:31px;
margin-bottom:13px}
.contact-grid p{
color:#c9c1d0;
font-size:10px;
margin-bottom:17px}
.contact-grid article>a:not(.button){
font-size:17px;
display:block;
letter-spacing:.045em;
margin-bottom:26px}
.contact-grid .button{
width:100%;
font-size:10px;
padding-inline:19px;
min-height:48px}
.booking-hours{
margin-top:41px;
padding-top:25px;
border-top:1px solid rgba(244,241,233,.24);
display:flex;
justify-content:space-between;
gap:20px;
font-size:9px;
letter-spacing:.13em;
color:#d2cbd8}
.faq-section{
display:grid;
grid-template-columns:1fr 1.25fr;
gap:100px}
.faq-section .eyebrow{
margin-bottom:21px}
.faq-section h2{
font-size:52px}
.faq-list details{
border-bottom:1px solid var(--line)}
.faq-list details:first-child{
border-top:1px solid var(--line)}
.faq-list summary{
list-style:none;
cursor:pointer;
display:flex;
justify-content:space-between;
align-items:center;
padding:22px 0;
gap:25px;
font-size:13px;
line-height:1.5}
.faq-list summary::-webkit-details-marker{
display:none}
.faq-list summary span{
font-size:20px;
transition:transform .2s}
.faq-list details[open] summary span{
transform:rotate(45deg)}
.faq-list details p{
font-size:12px;
line-height:1.9;
padding:0 20px 23px 0}
.site-footer{
border-top:1px solid var(--line)}
.footer-main{
padding-block:38px;
display:flex;
align-items:center;
justify-content:space-between;
gap:25px}
.footer-main p{
font-family:var(--serif);
font-style:italic;
font-size:18px}
.footer-main .text-link{
font-size:10px}
.footer-bottom{
border-top:1px solid var(--line);
display:flex;
gap:30px;
padding-block:19px;
font-size:8px;
color:var(--muted)}
.footer-bottom>span{
margin-right:auto}

dialog{
color:var(--ink);
border:0;
background:var(--paper);
padding:28px 35px 31px;
width:min(510px,calc(100% - 32px));
max-height:calc(100dvh - 40px);
overflow:auto;
box-shadow:0 20px 100px #21183233}
dialog::backdrop{
background:#241c38aa;
backdrop-filter:blur(4px)}
.dialog-top{
display:flex;
align-items:center;
justify-content:space-between;
margin-bottom:21px}
.dialog-close{
width:35px;
height:35px;
border:1px solid var(--line);
border-radius:50%;
background:none;
font-size:24px;
line-height:1;
display:grid;
place-items:center}
.dialog-close:hover{
background:var(--lilac)}
dialog>.eyebrow{
font-size:8px;
margin-bottom:13px}
dialog h2{
font-size:40px;
line-height:1.1;
margin-bottom:13px}
dialog>p:not(.eyebrow){
font-size:11px;
line-height:1.7;
margin-bottom:23px}
form label{
display:block;
font-size:10px;
margin-bottom:6px;
margin-top:14px;
font-weight:600}
form label span{
font-weight:400;
color:var(--muted);
font-size:8px}
form select,form input{
display:block;
width:100%;
height:44px;
padding:10px 12px;
background:transparent;
border:1px solid var(--line);
border-radius:0;
font-size:11px;
color:var(--ink);
min-width:0}
.form-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:14px}
.booking-summary{
display:flex;
justify-content:space-between;
gap:18px;
background:var(--lilac);
padding:12px;
font-size:9px;
margin-top:23px}
.booking-summary strong{
font-weight:600}
form .button{
width:100%;
margin-top:18px;
font-size:11px}
.form-note{
font-size:8px;
text-align:center;
margin-top:12px;
line-height:1.8}

@media(min-width:1600px){
.hero{
padding-top:75px;
padding-bottom:80px;
min-height:820px}
.hero-photo{
height:625px}
}

@media(max-width:1100px){
.wrap{
width:calc(100% - 72px)}
.site-header nav{
gap:24px}
.hero{
gap:30px;
min-height:670px}
.hero-photo{
height:525px}
.hero-actions{
gap:18px}
.hero-actions .text-link{
font-size:10px}
.hero-actions .button{
font-size:11px;
padding-inline:18px;
gap:16px}
.hero-seal{
width:105px;
height:105px}
.hero-seal img{
width:37px;
height:37px}
.photo-caption{
min-width:210px;
padding:20px}
.photo-caption>span:last-child{
font-size:23px}
.experience-grid{
gap:25px}
.menu-layout{
gap:45px}
.service-panel{
padding-inline:25px}
.about-section{
gap:65px}
.about-copy h2{
font-size:46px}
.contact-grid article{
padding-inline:23px}
.contact-grid h3{
font-size:28px}
.faq-section{
gap:65px}
.gallery-heading h2{
font-size:46px}
}

@media(max-width:800px){
.wrap{
width:calc(100% - 48px)}
.header-inner{
min-height:75px}
.brand span{
font-size:26px}
.brand img{
width:33px;
height:33px}
.nav-toggle{
display:flex;
flex-direction:column;
justify-content:center;
gap:6px;
width:40px;
height:40px;
padding:7px;
border:0;
background:none}
.nav-toggle span{
height:1px;
width:24px;
background:var(--ink);
transition:transform .2s}
.nav-toggle[aria-expanded=true] span:first-child{
transform:translateY(3.5px) rotate(45deg)}
.nav-toggle[aria-expanded=true] span:last-child{
transform:translateY(-3.5px) rotate(-45deg)}
.site-header nav{
display:none;
position:absolute;
top:75px;
left:0;
right:0;
background:var(--cream);
border-bottom:1px solid var(--line);
padding:19px 24px 26px;
gap:14px;
flex-direction:column;
align-items:stretch;
font-size:13px}
.site-header nav.is-open{
display:flex}
.site-header nav .nav-book{
justify-content:space-between}
.hero{
gap:24px;
min-height:600px;
padding-top:40px}
.hero h1{
font-size:73px}
.hero-photo{
height:430px;
border-radius:200px 200px 0 0}
.hero-seal{
right:-8px;
top:1px;
width:85px;
height:85px}
.hero-seal img{
width:29px;
height:29px}
.hero-seal span{
font-size:5px}
.hero-visual{
padding-inline:9px 16px}
.hero-description{
font-size:12px;
max-width:300px}
.hero .eyebrow{
font-size:8px;
letter-spacing:.15em;
margin-bottom:24px}
.hero-actions{
flex-direction:column;
align-items:flex-start;
margin-top:25px;
gap:16px}
.hero-footnote{
margin-top:27px;
font-size:8px;
gap:7px}
.photo-caption{
left:-8px;
bottom:35px;
min-width:176px;
padding:16px;
gap:15px}
.photo-caption>span:last-child{
font-size:21px}
.photo-label{
font-size:6px;
bottom:9px}
.specialty-strip .wrap{
gap:14px;
padding-block:23px}
.specialty-strip span{
font-size:8px;
letter-spacing:.1em}
.specialty-strip img{
width:18px;
height:18px}
.section-space{
padding-block:74px}
.section-heading{
gap:35px;
margin-bottom:35px}
.section-heading>p{
font-size:12px}
.experience-grid{
gap:20px}
.experience-image{
aspect-ratio:3/4}
.experience-card h3{
font-size:28px}
.experience-card .eyebrow{
font-size:7px;
letter-spacing:.12em}
.experience-card>p:not(.eyebrow){
font-size:11px}
.experience-card .text-link{
font-size:10px;
gap:11px}
.service-tabs{
margin-top:40px;
margin-bottom:30px}
.service-tabs button{
font-size:21px;
padding-inline:15px}
.menu-layout{
grid-template-columns:1fr;
gap:20px}
.menu-aside{
display:grid;
grid-template-columns:1fr 1.5fr;
gap:14px 30px;
padding:0}
.menu-aside>.eyebrow{
display:none}
.menu-aside h3{
font-size:31px;
margin:0}
.menu-aside>p:not(.eyebrow){
grid-column:1;
font-size:11px}
.category-list{
grid-column:2;
grid-row:1/4;
margin:0;
max-width:none}
.specialist-link{
justify-self:start;
grid-column:1;
font-size:8px}
.service-panel{
padding-inline:30px}
.menu-heading>div:last-child p{
font-size:12px}
.about-section{
gap:42px}
.about-photo{
height:410px}
.about-visual{
padding-right:28px}
.about-mark{
width:100px;
height:100px;
right:0}
.about-mark img{
width:56px;
height:56px}
.vertical-caption{
right:5px;
font-size:6px}
.about-copy h2{
font-size:37px}
.about-copy>p:not(.eyebrow){
font-size:11px}
.about-copy>.eyebrow{
font-size:8px}
.about-details{
grid-template-columns:1fr;
gap:18px;
margin-top:23px;
padding-top:19px}
.about-details .eyebrow{
font-size:7px;
margin-bottom:6px}
.about-details p,.about-details a{
font-size:10px}
.gallery-section{
padding-top:0}
.gallery-grid{
gap:15px}
.gallery-item span{
font-size:8px}
.gallery-heading h2{
font-size:41px}
.booking-intro h2{
font-size:60px}
.contact-grid article{
padding-inline:18px}
.contact-grid h3{
font-size:26px}
.contact-grid p{
font-size:8px}
.contact-grid .button{
font-size:8px;
padding-inline:12px;
gap:8px}
.contact-grid article>a:not(.button){
font-size:14px}
.contact-grid .button span{
font-size:18px}
.booking-hours{
font-size:7px}
.faq-section{
gap:43px}
.faq-section h2{
font-size:40px}
.faq-list summary{
font-size:11px}
.faq-list details p{
font-size:10px}
.footer-main p{
font-size:14px}
.footer-main .brand span{
font-size:23px}
.footer-main .brand img{
width:30px;
height:30px}
}

@media(max-width:580px){
html{
scroll-padding-top:92px}
.wrap{
width:calc(100% - 40px)}
.section-space{
padding-block:62px}
.hero{
grid-template-columns:1fr;
padding-top:35px;
padding-bottom:42px;
gap:31px}
.hero-copy{
padding-block:0}
.hero h1{
font-size:83px;
margin-bottom:22px}
.hero .eyebrow{
font-size:8px;
margin-bottom:23px}
.hero-description{
font-size:12px;
max-width:305px}
.hero-actions{
flex-direction:row;
align-items:center;
flex-wrap:wrap;
gap:19px}
.hero-actions .button{
font-size:10px;
min-height:48px;
gap:17px;
padding-inline:17px}
.hero-actions .text-link{
font-size:9px;
gap:10px}
.hero-footnote{
margin-top:25px;
font-size:8px}
.hero-visual{
margin-inline:20px 13px;
padding-inline:0 13px;
padding-bottom:7px}
.hero-photo{
height:410px;
border-radius:220px 220px 0 0}
.hero-seal{
right:-14px;
top:4px;
width:92px;
height:92px}
.hero-seal img{
width:33px;
height:33px}
.photo-caption{
left:-20px;
bottom:26px;
min-width:191px;
padding:17px 22px}
.photo-caption>span:last-child{
font-size:23px}
.photo-label{
right:-4px;
font-size:6px}
.specialty-strip .wrap{
justify-content:center;
gap:14px;
padding-block:19px;
width:calc(100% - 25px)}
.specialty-strip span{
font-size:6px;
letter-spacing:.08em;
white-space:nowrap}
.specialty-strip img{
width:14px;
height:14px}
.section-heading{
grid-template-columns:1fr;
gap:21px;
margin-bottom:31px}
.section-heading .eyebrow{
font-size:8px;
margin-bottom:17px}
h2{
font-size:47px}
.section-heading>p{
max-width:300px;
justify-self:start;
font-size:12px}
.experience-grid{
grid-template-columns:1fr;
gap:37px}
.experience-image{
aspect-ratio:4/3;
margin-bottom:22px}
.experience-card:nth-child(2) .experience-image{
border-radius:180px 180px 0 0;
aspect-ratio:4/3}
.experience-card .eyebrow{
font-size:8px;
margin-bottom:11px}
.experience-card h3{
font-size:33px;
margin-bottom:11px}
.experience-card>p:not(.eyebrow){
font-size:12px;
max-width:320px;
margin-bottom:9px}
.experience-card .text-link{
font-size:11px;
gap:22px}
.menu-heading>div:last-child{
justify-self:start;
max-width:300px}
.menu-heading>div:last-child p{
font-size:12px}
.menu-heading .text-link{
font-size:10px}
.service-tabs{
margin-top:33px;
margin-bottom:27px}
.service-tabs button{
font-size:16px;
padding:15px 9px;
gap:6px}
.service-tabs button span{
font-size:6px}
.menu-aside{
display:block}
.menu-aside h3{
font-size:29px;
max-width:none;
margin-bottom:11px}
.menu-aside>p:not(.eyebrow){
max-width:300px;
font-size:11px}
.category-list{
margin-top:19px;
margin-bottom:9px;
display:flex;
flex-direction:row;
flex-wrap:wrap;
gap:7px}
.category-list button{
padding:8px 12px;
border:1px solid var(--line);
font-size:9px;
line-height:1.4;
gap:7px}
.category-list button[aria-pressed=true]{
background:var(--ink);
color:var(--cream);
border-color:var(--ink)}
.category-list button[aria-pressed=true]::after{
display:none}
.specialist-link{
font-size:8px;
margin-bottom:4px}
.service-panel{
padding:23px 18px 25px}
.panel-top{
padding-bottom:17px}
.panel-top h3{
font-size:26px}
.price-label{
font-size:7px}
.service-row{
gap:10px;
padding-block:18px;
grid-template-columns:minmax(0,1fr) auto auto}
.service-name{
font-size:18px}
.service-description{
font-size:9px;
max-width:220px}
.service-price{
font-size:18px}
.service-price small{
font-size:7px}
.service-reserve{
width:27px;
height:27px;
font-size:16px}
.price-note{
font-size:8px;
margin-top:20px}
.service-panel .button{
font-size:10px;
min-height:44px}
.about-section{
grid-template-columns:1fr;
gap:35px}
.about-visual{
padding-right:28px;
padding-bottom:19px;
margin-right:18px}
.about-photo{
height:420px}
.about-mark{
height:120px;
width:120px;
right:0}
.about-mark img{
width:65px;
height:65px}
.about-copy h2{
font-size:45px}
.about-copy>p:not(.eyebrow){
font-size:12px}
.about-details{
grid-template-columns:1fr 1fr;
gap:20px}
.about-details p,.about-details a{
font-size:11px}
.gallery-section{
padding-top:0}
.gallery-heading h2{
font-size:45px}
.gallery-grid{
grid-template-columns:1fr 1fr;
gap:23px 13px}
.gallery-item span{
font-size:9px;
align-items:center}
.booking-intro{
margin-bottom:35px}
.booking-intro h2{
font-size:61px}
.booking-intro>img{
width:44px;
height:44px}
.booking-intro>p:last-child{
font-size:11px;
max-width:300px;
margin-inline:auto}
.booking-intro>p:last-child br{
display:none}
.contact-grid{
grid-template-columns:1fr}
.contact-grid article,.contact-grid article:first-child,.contact-grid article:last-child{
border-right:0;
border-bottom:1px solid rgba(244,241,233,.24);
padding:26px 0 30px;
display:grid;
grid-template-columns:1fr 1fr;
gap:0 14px}
.contact-grid article:last-child{
border-bottom:0;
padding-bottom:0}
.contact-number{
grid-column:1/3;
margin-bottom:13px}
.contact-grid h3{
font-size:30px;
margin-bottom:9px}
.contact-grid p{
grid-column:1;
font-size:9px;
margin-bottom:18px}
.contact-grid article>a:not(.button){
grid-column:2;
grid-row:2/4;
align-self:center;
justify-self:end;
font-size:15px;
margin:0}
.contact-grid .button{
grid-column:1/3;
font-size:10px;
min-height:47px;
padding-inline:20px}
.contact-grid .button span{
font-size:21px}
.booking-hours{
flex-wrap:wrap;
gap:13px 25px;
font-size:7px;
line-height:1.5;
margin-top:30px;
padding-top:22px}
.booking-hours a{
margin-left:auto}
.faq-section{
grid-template-columns:1fr;
gap:30px}
.faq-section h2{
font-size:45px}
.faq-list summary{
font-size:12px;
padding-block:19px}
.faq-list details p{
font-size:11px}
.footer-main{
flex-wrap:wrap;
padding-block:28px;
gap:20px}
.footer-main p{
width:100%;
order:3;
font-size:16px}
.footer-main .text-link{
font-size:9px;
gap:14px}
.footer-bottom{
font-size:7px;
gap:15px;
flex-wrap:wrap}
.footer-bottom>span{
width:100%;
margin-right:0}
dialog{
padding:23px}
.dialog-top{
margin-bottom:17px}
dialog h2{
font-size:34px}
.form-grid{
gap:11px}
form input,form select{
font-size:12px}
.booking-summary{
font-size:8px}
.gallery-dialog{
padding:12px}
}

@media(prefers-reduced-motion:reduce){
html{
scroll-behavior:auto}
*,*::before,*::after{
transition:none!important;
animation:none!important}
}


.service-price .service-unit{
white-space:normal;
max-width:115px;
text-align:right;
line-height:1.5}
.gallery-dialog{
max-width:780px;
width:calc(100% - 32px);
padding:15px}
.service-name{
margin:0;
font-weight:400;
overflow-wrap:anywhere}
@media(max-width:580px){
.hero{
grid-template-columns:minmax(0,1fr)}
.hero-copy,.hero-visual{
min-width:0}
.hero h1{
font-size:clamp(64px,22vw,83px)}
.service-price .service-unit{
max-width:83px;
font-size:7px}
.gallery-dialog{
padding:12px}
}

