.directory-page .svc-hero{background:var(--cream)}
.directory-page .svc-hero .text{justify-content:flex-start}
.directory-page .svc-hero .text{padding-top:calc(clamp(40px,4vw,80px) + 56px)}
.directory-lead{font-size:clamp(18px,1.25vw,24px);line-height:1.45;margin-top:28px;max-width:820px}
.directory-section{padding:var(--section-y) var(--gutter);background:var(--sand)}
.directory-section .eyebrow,.directory-callout .eyebrow{margin-bottom:24px}
.directory-section .h2{margin-bottom:28px}
.directory-white,.directory-faq{background:var(--cream)}
.catalogue-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:30px}
.catalogue-card{background:var(--cream);display:flex;flex-direction:column;text-decoration:none}
.catalogue-card[hidden]{display:none}
.catalogue-card>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.catalogue-card>div{padding:24px;display:flex;flex-direction:column;flex:1;gap:16px}
.catalogue-card h3,.session-card h3,.contact-card h3,.contact-notes h3{font-size:clamp(20px,1.5vw,28px);line-height:1.2}
.catalogue-card p{font-size:16px;line-height:1.5}
.catalogue-price{font-weight:600}.catalogue-more{font-size:16px;padding-top:12px;margin-top:auto;text-decoration:underline;text-underline-offset:4px}
.directory-callout{background:var(--tan);padding:var(--section-y) var(--gutter);display:flex;align-items:center;gap:48px;justify-content:space-between}
.directory-callout p:not(.eyebrow){max-width:740px;line-height:1.5;margin-top:24px;font-size:18px}
.directory-callout>.btn{flex-shrink:0;max-width:100%;white-space:normal;text-align:center}
.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}
.session-card{padding:32px;background:var(--cream);color:var(--brown);display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.session-card .btn{margin-top:auto}.session-price{font-size:clamp(32px,3vw,52px);line-height:1.1}
.subscription-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.directory-brown{background:var(--brown);color:var(--cream)}
.directory-terms{font-size:16px;line-height:1.5;margin-top:30px;max-width:900px}
.directory-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;align-items:start}
.directory-faq details{border-top:1px solid var(--brown);padding:22px 0}
.directory-faq summary{cursor:pointer;font-size:20px;line-height:1.3}
.directory-faq details p{font-size:18px;line-height:1.55;margin-top:20px}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.contact-layout address{font-style:normal;font-size:clamp(24px,2.2vw,42px);line-height:1.35;margin:28px 0}
.contact-card{background:var(--cream);padding:40px}.contact-card p{margin:20px 0 32px;font-size:20px;line-height:1.5;overflow-wrap:anywhere}
.contact-card dl{margin-top:20px}.contact-card dl>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--tan);padding:14px 0}
.contact-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.contact-notes p{font-size:18px;line-height:1.5;margin:20px 0}
@media(max-width:1100px){.catalogue-grid{grid-template-columns:1fr 1fr}.directory-callout{flex-direction:column;align-items:flex-start}}
@media(max-width:900px){.directory-page .svc-hero .text{padding-top:32px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-notes{grid-template-columns:1fr}.directory-faq-grid{grid-template-columns:1fr}.subscription-grid{grid-template-columns:1fr}.contact-card{padding:24px}}
@media(max-width:600px){.catalogue-grid,.session-grid{grid-template-columns:1fr}.catalogue-card>img{aspect-ratio:4/3}.session-card{padding:24px}.directory-callout{gap:28px}}

/* Space the closing consultation actions like the established hero actions. */
.directory-section .hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 32px;margin-top:32px}
.services-page .svc-hero .photo img{object-position:50% 75%}
.private-studio-session-page .svc-faq{background:var(--cream)}
.private-studio-session-page .svc-faq .eyebrow{margin-bottom:24px}

/* Contact panels meet at the same centre line as the hero. */
.contact-page .contact-layout{padding:0;gap:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.contact-page .contact-layout>div{padding:var(--section-y) var(--gutter)}
.contact-page .contact-card{background:var(--cream);align-self:stretch}
.contact-page .svc-hero .photo img{object-position:50% 60%}
@media(max-width:900px){.contact-page .contact-layout{grid-template-columns:1fr}}
.private-benefits-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.private-benefits-grid h3{font-size:24px;line-height:1.2;margin-bottom:18px}.private-benefits-grid p{font-size:18px;line-height:1.5}
.private-tabs{display:flex;gap:12px;margin:32px 0}.private-tabs button{font:inherit;padding:16px 26px;border:1px solid var(--brown);background:transparent;color:var(--brown);cursor:pointer}.private-tabs button[aria-selected="true"]{background:var(--brown);color:var(--cream)}
.private-tabs button:focus-visible{outline:2px solid var(--brown);outline-offset:4px}
.private-option-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}.private-option-layout>img{width:100%;height:440px;object-fit:cover;object-position:center 55%}
.private-option-layout [role="tabpanel"] h3{font-size:clamp(26px,2.4vw,40px);line-height:1.2}.private-option-layout p,.private-option-layout ul{font-size:20px;line-height:1.5;margin:22px 0}.private-option-layout ul{padding-left:24px}.private-option-layout .btn{margin-top:12px}
@media(max-width:900px){.private-benefits-grid{grid-template-columns:1fr 1fr}.private-option-layout{grid-template-columns:1fr}.private-option-layout>img{height:360px}}
@media(max-width:600px){.private-benefits-grid{grid-template-columns:1fr}.private-tabs button{padding:14px 18px}.private-option-layout>img{height:300px}}


/* Numbered cards matching the home consultation block. */
.private-benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.private-benefits-grid .step{color:var(--brown);min-height:250px;padding:72px 32px 32px;border:0}
.private-benefits-grid .step h3{margin-bottom:0;font-size:clamp(24px,2vw,36px)}
.private-benefits-grid .step p{max-width:30em;font-size:clamp(18px,1.25vw,24px);line-height:1.4;margin-top:14px}
@media(max-width:600px){.private-benefits-grid{grid-template-columns:1fr}.private-benefits-grid .step{min-height:220px;padding:64px 24px 28px}}

.private-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:24px;padding:28px 0;border-top:1px solid var(--tan)}
.private-option-row h3{font-size:clamp(22px,1.8vw,32px);line-height:1.25}.private-option-row p{font-size:18px;margin-top:10px}.private-option-row .option-price{font-size:30px;margin:0}.private-option-prices .option-intro{font-size:20px;line-height:1.4;margin:0 0 28px}
@media(max-width:600px){.private-option-row{grid-template-columns:1fr auto;gap:18px}.private-option-row .btn{grid-column:1/-1;justify-self:start}.private-option-row .option-price{font-size:26px}}

/* Compact consultation invitation, with the same photograph as the home page. */
.services-page .services-consult{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);padding:0;min-height:360px}
.services-consult-copy{padding:clamp(36px,4vw,64px) var(--gutter);align-self:center}
.services-consult-copy .directory-lead{max-width:34em;margin-top:24px}
.services-consult-photo{position:relative;overflow:hidden;min-height:360px}
.services-consult-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%}
@media(max-width:700px){.services-page .services-consult{grid-template-columns:1fr}.services-consult-photo{min-height:0;aspect-ratio:4/3}}

.services-page .services-goal-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}
.services-page .services-goal-heading h2{font-size:clamp(30px,3vw,48px);margin:0;line-height:1.1}
.services-page .services-goal-note{max-width:490px;justify-self:end;font-size:clamp(16px,1.3vw,21px);line-height:1.5;margin:0}
.services-page #treatments .chips{justify-content:center;gap:8px;margin:28px 0}
.services-page #treatments .chip{flex:1 1 auto;justify-content:center;text-align:center;font-size:clamp(12px,.95vw,16px)}
@media(max-width:700px){.services-page .services-goal-heading{grid-template-columns:1fr;gap:18px}.services-page .services-goal-note{justify-self:start}.services-page #treatments .chips{flex-direction:row;flex-wrap:wrap}.services-page #treatments .chip{flex:1 1 42%;white-space:normal}}
