@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300 700;font-display:swap;src:url('/assets/fonts/cormorant-garamond-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:300 700;font-display:swap;src:url('/assets/fonts/cormorant-garamond-latin-wght-italic.woff2') format('woff2')}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:200 900;font-display:swap;src:url('/assets/fonts/nunito-sans-latin-wght-normal.woff2') format('woff2')}
:root{--sapphire:#163e63;--midnight:#102d4d;--ivory:#f7f4ec;--paper:#eeebe2;--ink:#17334d;--muted:#536371;--gold:#a58b58;--line:#d6d4ca;--display:"Cormorant Garamond",Georgia,serif;--body:"Nunito Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:1.5rem}body{margin:0;background:var(--ivory);color:var(--ink);font:400 1rem/1.65 var(--body);-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.25em}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08}h1{font-size:clamp(3rem,9vw,5.5rem);letter-spacing:-.035em}h2{font-size:clamp(2.25rem,5.5vw,3.5rem);letter-spacing:-.025em}h3{font-size:1.7rem}p+p{margin-top:1rem}em{font-weight:400}::selection{background:#d8c79e;color:var(--midnight)}.wrap{width:min(100% - 2.5rem,76rem);margin-inline:auto}.narrow{max-width:52rem}.section{padding-block:4rem}.eyebrow{font-family:var(--body);font-size:.75rem;line-height:1.55;font-weight:750;letter-spacing:.14em;text-transform:uppercase}.eyebrow+h1,.eyebrow+h2{margin-top:1rem}.section-heading{margin-bottom:2rem}.section-heading>p:not(.eyebrow){max-width:43rem;margin-top:1.25rem;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.85rem 1.4rem;background:var(--midnight);border:1px solid var(--midnight);color:var(--ivory);text-decoration:none;text-align:center;text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;font-weight:800;line-height:1.5;transition:background .15s ease,color .15s ease}.button:hover{background:var(--sapphire)}.button.outline{background:transparent;color:var(--midnight)}.button.outline:hover{background:var(--paper)}.button.light{background:var(--ivory);border-color:var(--ivory);color:var(--midnight)}.button.light:hover{background:#e6dcc6}.button.compact{padding:.6rem 1rem;min-height:2.75rem}.text-link{font-weight:700;font-size:.9rem}.skip-link{position:absolute;left:1rem;top:-5rem;z-index:10;background:var(--ivory);padding:.7rem 1rem}.skip-link:focus{top:1rem}.preview-note{padding:.4rem 1rem;background:var(--midnight);color:var(--ivory);font-size:.75rem;text-align:center;letter-spacing:.04em}.preview-note span{padding-inline:.4rem}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;min-height:6.1rem;padding-block:.9rem;gap:.9rem}.brand{display:block;flex:none;padding:.25rem .5rem;text-decoration:none}.brand picture,.brand img{display:block}.brand img{width:4rem;height:auto}.mobile-actions{display:flex;align-items:center;gap:.8rem}.menu-toggle{border:0;background:transparent;color:var(--ink);min-height:2.75rem;padding:.3rem 0;display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.menu-icon{display:block;width:1rem;height:.5rem;border-top:1px solid;border-bottom:1px solid}.menu-toggle[aria-expanded=true] .menu-icon{height:0;border-bottom:0}.site-header nav{display:none;flex-basis:100%;border-top:1px solid var(--line);padding-top:.75rem}.site-header nav.is-open{display:grid;grid-template-columns:1fr 1fr}.site-header nav a{padding:.75rem;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;font-weight:700}.site-header nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--gold);text-underline-offset:.55em}.site-header nav a:hover{color:var(--gold)}.site-header nav .nav-book{background:var(--midnight);color:var(--ivory)}
.hero{padding-block:2.25rem 2rem}.hero h1{font-size:clamp(3.6rem,12.7vw,6.6rem);margin-top:1rem;line-height:.98}.hero h1 em{color:var(--sapphire)}.hero-subtitle{font-size:1.13rem;margin-top:1.2rem;line-height:1.5}.hero-location{font-size:.875rem;color:var(--muted);margin-top:.9rem}.hero-location span{display:block;font-size:.8rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.35rem}.hero-actions .button{padding-inline:1.1rem;flex:1 0 auto}.hero-small{font-size:.8rem;color:var(--muted);margin-top:1rem;max-width:28rem}.hero-visual{margin-top:2rem}.image-placeholder{background:#d9dedc;border:1px solid #b7c0bd;display:flex;align-items:center;justify-content:center;min-height:16rem;text-align:center;padding:1.5rem;position:relative}.image-placeholder::before{content:"";position:absolute;inset:.65rem;border:1px solid #b2bdb8;pointer-events:none}.placeholder-label{position:relative;max-width:17rem}.placeholder-label .eyebrow{font-size:.7rem;letter-spacing:.12em}.placeholder-label p{font-size:.85rem;color:#4d6268;margin-top:.65rem}.hero-image{min-height:22rem;background:#d9dfdc}.image-foot{display:flex;justify-content:space-between;gap:.75rem;padding-top:.65rem;font-size:.7rem;color:var(--muted)}.image-foot span:first-child{font-family:var(--display);font-style:italic;font-size:1rem;color:var(--ink)}
.trust-strip{background:var(--midnight);color:var(--ivory);padding-block:2rem}.trust-grid{display:grid;gap:1.4rem}.trust-grid>div{padding-bottom:1.4rem;border-bottom:1px solid #426078}.trust-grid>div:last-child{border-bottom:0;padding-bottom:0}.trust-grid h2{font-family:var(--body);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.5}.trust-grid p{font-size:.9rem;line-height:1.6;color:#d3dfe3;margin-top:.45rem}.consultation{display:grid;gap:2.5rem}.consultation>div>p:not(.eyebrow){margin-top:1.3rem;max-width:33rem}.consultation .button{margin-top:1.6rem}.client-questions{border-left:1px solid var(--gold);padding-left:1.5rem}.client-questions p{font-family:var(--display);font-size:1.6rem;line-height:1.3}.client-questions p+p{margin-top:1.4rem}.client-questions p:nth-child(even){color:#5f7079}.concerns-section{background:var(--paper)}.concern-grid{display:grid;gap:2rem}.concern-card{text-decoration:none;display:block}.concern-card:hover .concern-caption h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.concern-image{min-height:0;aspect-ratio:4/3;background:#d7dddd}.concern-2,.concern-5{background:#ddd9cf;border-color:#c1bcb0}.concern-3,.concern-6{background:#cbd4d6;border-color:#aab9bc}.concern-caption{padding-top:1rem}.concern-caption h3{font-family:var(--body);font-weight:750;font-size:1rem;text-transform:uppercase;line-height:1.45;letter-spacing:.02em;max-width:29rem}.concern-caption>span{display:block;font-size:.85rem;color:var(--muted);margin-top:.6rem}.split-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem}.treatment-row{display:grid;grid-template-columns:2.5rem 1fr;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding:1.5rem 0;text-decoration:none}.treatment-row:last-child{border-bottom:1px solid var(--line)}.treatment-row:hover{color:var(--gold)}.row-number{font-size:.8rem;color:var(--muted)}.treatment-row h3{font-size:1.9rem}.row-label{display:none;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.approach-section{background:var(--sapphire);color:var(--ivory);text-align:center;padding-block:4rem}.approach-inner{max-width:60rem}.approach-brand{display:inline-flex;align-items:center;justify-content:center;width:5.5rem;height:4.5rem;margin-bottom:2rem}.approach-brand img{display:block;width:3.5rem;height:auto}.approach-section h2{font-size:clamp(2.65rem,7vw,4.7rem)}.approach-section h2 em{color:#ddcda9}.approach-section h2+p{margin:1.5rem auto 0;max-width:40rem;color:#d5dfe5}.approach-last{font-family:var(--display);font-size:1.5rem}.meet-section{display:grid;gap:2.25rem;align-items:center}.portrait-placeholder{min-height:24rem;background:#ddd9cf}.meet-section h2{margin-bottom:1.5rem}.large-copy{font-family:var(--display);font-size:1.85rem;line-height:1.35}.meet-section .button{margin-top:1.75rem}.reviews-section{background:#eeede6}.review-grid{display:grid;gap:1rem}.review-card{padding:1.75rem;border:1px dashed #b8b8ae}.review-card p{font-family:var(--display);font-size:1.5rem;line-height:1.3;margin-block:1rem}.review-card>span:last-child{font-size:.75rem;color:var(--muted)}.price-entry{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.75rem}.price-entry p:not(.eyebrow){margin-top:1rem;max-width:36rem}.booking-section{padding-block:3.5rem;background:var(--midnight);color:var(--ivory)}.booking-section .section-heading>p:not(.eyebrow){color:#c7d5de}.booking-options{display:grid;gap:1.5rem}.booking-options>div{border-top:1px solid #5a6c7b;padding-top:1.5rem}.booking-options h3{font-size:1.85rem;margin-bottom:1.1rem}.booking-options .button{min-width:13rem}.location-section{display:grid;gap:2.3rem}.location-section h3{font-size:1.8rem;margin-bottom:1rem}.location-section p{margin-bottom:1rem}.email-link{font-size:.95rem;overflow-wrap:anywhere}.final-cta{background:var(--sapphire)}.final-cta .section-heading h2{font-size:2.8rem}.site-footer{padding-block:3rem 1.5rem}.footer-top{display:grid;gap:1.5rem;padding-bottom:2rem}.footer-name{font-family:var(--display);font-size:1.7rem;line-height:1.2}.footer-top p:not(.footer-name){font-size:.85rem}.footer-contact .eyebrow{margin-bottom:.6rem}.footer-bottom{border-top:1px solid var(--line);padding-top:1.5rem}.footer-bottom nav{display:flex;flex-wrap:wrap;gap:.6rem 1.25rem}.footer-bottom nav a{font-size:.8rem;text-decoration:none}.footer-bottom nav a:hover{text-decoration:underline}.footer-bottom>p{margin-top:1.5rem;font-size:.75rem;color:var(--muted)}.footer-bottom>p span{display:block;margin-top:.25rem;font-family:var(--display);font-size:1.1rem}
.page-intro{padding-block:3rem 2.5rem;border-bottom:1px solid var(--line)}.intro-copy{max-width:40rem;margin-top:1.5rem;color:var(--muted);font-size:1.1rem}.page-content{padding-block:2.5rem 4rem;min-height:18rem}.page-content.narrow{margin-inline:auto}.content-placeholder{padding:2rem;border:1px dashed #aeb7b7;margin-bottom:1.5rem}.content-placeholder h2{font-size:2.1rem}.content-placeholder p{margin-top:1rem}.treatment-groups{display:grid;gap:2.5rem}.treatment-group{border-bottom:1px solid var(--line);padding-bottom:2rem;scroll-margin-top:2rem}.treatment-group h2{font-size:2.4rem}.treatment-group p:not(.eyebrow){margin-top:1rem}.pending-note{color:var(--muted);font-size:.875rem;border-left:2px solid var(--gold);padding-left:1rem;margin-top:1.5rem}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.4rem 0;font-size:1.05rem;font-weight:650;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-symbol{flex:0 0 1rem;position:relative;width:1rem;height:1rem}.faq-symbol::before,.faq-symbol::after{content:"";position:absolute;top:50%;left:0;width:1rem;height:1px;background:var(--ink)}.faq-symbol::after{transform:rotate(90deg)}details[open] .faq-symbol::after{transform:none}.faq-list details>div{padding:0 2rem 1.5rem 0;color:var(--muted)}.faq-contact{margin-top:3rem}.faq-contact h2{font-size:2rem;margin-bottom:1rem}.booking-holding{padding:1.3rem;background:var(--paper);border-left:2px solid var(--gold);max-width:50rem;margin-bottom:2.5rem}.booking-holding p+p{margin-top:.4rem}.booking-page-options{display:grid;gap:2rem}.booking-page-options article{border:1px solid var(--line);padding:1.75rem;scroll-margin-top:2rem}.booking-page-options h2{font-size:2.6rem}.booking-page-options h2+p{margin-top:1rem;max-width:29rem}.booking-page-options .button{margin-top:1.5rem}.booking-note{font-size:.875rem;color:var(--muted);margin-top:1.5rem}.contact-layout{display:grid;gap:3rem}.contact-layout h2{font-size:2.5rem}.contact-layout h2+p{margin-top:1.5rem}.contact-note{border-left:1px solid var(--gold);padding-left:1.5rem}.contact-note .large-copy{margin-top:1rem}
@media(min-width:40rem){.wrap{width:min(100% - 4rem,76rem)}.hero-actions .button{flex:0 1 auto}.trust-grid{grid-template-columns:1fr 1fr}.trust-grid>div{border:0;padding:0}.concern-grid{grid-template-columns:1fr 1fr;gap:2.5rem 1.5rem}.hero-image{min-height:28rem}.booking-options{grid-template-columns:1fr 1fr;gap:2.5rem}.footer-top{grid-template-columns:1fr 1fr}.footer-contact{justify-self:end}.footer-bottom>p{display:flex;justify-content:space-between;align-items:baseline}.footer-bottom>p span{margin-top:0}.treatment-row{grid-template-columns:3rem 1fr auto}.row-label{display:block}.image-foot{font-size:.75rem}}
@media(min-width:64rem){.section{padding-block:5.75rem}.mobile-actions{display:none}.header-inner{min-height:7rem;flex-wrap:nowrap}.site-header nav,.site-header nav.is-open{display:flex;flex-basis:auto;align-items:center;gap:.7rem;border:0;padding:0}.site-header nav a{padding:.7rem .75rem}.site-header nav .nav-book{padding:.7rem 1.8rem;margin-left:.75rem}.hero{display:grid;grid-template-columns:1.03fr 1fr;gap:3.5rem;align-items:center;padding-block:3rem}.hero h1{font-size:clamp(4.6rem,7.3vw,6.75rem)}.hero-subtitle{font-size:1.2rem}.hero-visual{margin-top:0}.hero-image{min-height:33rem}.hero-location span{display:inline;margin-left:.75rem;padding-left:.75rem;border-left:1px solid var(--line)}.hero-actions{margin-top:1.65rem}.hero-small{margin-top:1.1rem}.trust-strip{padding-block:2.3rem}.trust-grid{grid-template-columns:repeat(4,1fr);gap:0}.trust-grid>div{padding-inline:1.7rem;border-right:1px solid #426078}.trust-grid>div:first-child{padding-left:0}.trust-grid>div:last-child{padding-right:0;border:0}.consultation{grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.client-questions{padding-left:2.5rem}.concern-grid{grid-template-columns:repeat(3,1fr);gap:2.7rem 1.5rem}.treatment-row{padding-block:2rem;grid-template-columns:4rem 1fr auto}.treatment-row h3{font-size:2.5rem}.approach-section{padding-block:5rem}.meet-section{grid-template-columns:.9fr 1fr;gap:5rem}.portrait-placeholder{min-height:33rem}.review-grid{grid-template-columns:repeat(3,1fr)}.booking-section{padding-block:4.5rem}.booking-options{gap:5rem}.location-section{grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.page-intro{padding-block:4rem 3rem}.page-content{padding-block:3.5rem 5rem}.treatment-groups{grid-template-columns:repeat(3,1fr);gap:2rem}.treatment-group{padding-top:1rem}.booking-page-options{grid-template-columns:1fr 1fr}.booking-page-options article{padding:2.5rem;display:flex;flex-direction:column;align-items:flex-start}.booking-page-options .button{margin-top:auto}.booking-page-options h2+p{margin-bottom:2rem}.contact-layout{grid-template-columns:1fr 1fr;gap:5rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:22rem){.wrap{width:calc(100% - 2rem)}.hero h1{font-size:3.2rem}.mobile-actions{gap:.55rem}.hero-actions{flex-direction:column}.menu-toggle{font-size:.8rem}.preview-note{font-size:.68rem}}

/* Quiet, matte depth on large brand surfaces only. Broad, non-repeating
   colour fields add tonal variation without imagery, filters or animation.
   Opaque dark base colours keep all existing text contrast predictable. */
.trust-strip,
.approach-section,
.booking-section,
.review-card {
  --depth-x: 12%;
  --depth-y: 18%;
  --depth-base: #102d4d;
  --depth-mid: #153752;
  --depth-end: #102a43;
  background-color: var(--depth-base);
  background-image:
    radial-gradient(ellipse at var(--depth-x) var(--depth-y),
      rgb(108 136 151 / 12%) 0%, rgb(108 136 151 / 4%) 38%, transparent 72%),
    radial-gradient(ellipse at 88% 90%,
      rgb(4 17 31 / 18%) 0%, transparent 65%),
    linear-gradient(118deg, var(--depth-base) 0%, var(--depth-mid) 52%, var(--depth-end) 100%);
  background-repeat: no-repeat;
}
.approach-section {
  --depth-x: 24%;
  --depth-y: 7%;
  --depth-base: #163b5b;
  --depth-mid: #1a405e;
  --depth-end: #112f4c;
}
.booking-section { --depth-x: 78%; --depth-y: 12%; }
.final-cta {
  --depth-x: 16%;
  --depth-y: 75%;
  --depth-base: #153957;
  --depth-mid: #193e5c;
  --depth-end: #112e49;
}
.review-card {
  --depth-base: #153650;
  --depth-mid: #1a3c55;
  --depth-end: #112e46;
  color: var(--ivory);
  border-color: #667b88;
}
.review-card:nth-child(2) { --depth-x: 80%; --depth-y: 60%; }
.review-card:nth-child(3) { --depth-x: 40%; --depth-y: 90%; }
.review-card > span:last-child { color: #c7d5de; }

/* Quiet sapphire depth: compress mineral contrast with a rich blue wash,
   then soften the central text zone. Gold stays outside the content area. */
.trust-strip,
.approach-section,
.review-card,
.booking-section,
.booking-page-options article {
  --stone-position: 50% 50%;
  --stone-size: cover;
  --stone-shade: .16;
  --gold-edge-x: clamp(12px, calc((100vw - 1216px) / 2 - 16px), 120px);
  --gold-edge-y: 24px;
  position: relative;
  isolation: isolate;
  background-color: #071e36;
  background-image:
    radial-gradient(ellipse at center, rgb(6 24 43 / 15%), transparent 70%),
    linear-gradient(rgb(11 38 65 / var(--stone-shade)), rgb(11 38 65 / var(--stone-shade))),
    url('/assets/sapphire-stone-approved-v1.webp');
  background-size: cover, cover, var(--stone-size);
  background-position: center, center, var(--stone-position);
  background-repeat: no-repeat;
}
.trust-strip::before,
.approach-section::before,
.review-card::before,
.booking-section::before,
.booking-page-options article::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url('/assets/sapphire-gold-veins-v1.webp') var(--stone-position) / cover no-repeat;
  opacity: .48;
  mask-image:
    linear-gradient(to right, #000 calc(var(--gold-edge-x) * .55), transparent var(--gold-edge-x), transparent calc(100% - var(--gold-edge-x)), #000 calc(100% - var(--gold-edge-x) * .55)),
    linear-gradient(to bottom, #000 calc(var(--gold-edge-y) * .55), transparent var(--gold-edge-y), transparent calc(100% - var(--gold-edge-y)), #000 calc(100% - var(--gold-edge-y) * .55));
}
.trust-strip { --stone-position: 50% 24%; }
.approach-section { --stone-position: 40% 60%; --gold-edge-x: max(16px, calc((100% - 960px) / 2 - 24px)); --gold-edge-y: 56px; }
.review-card { --gold-edge-x: 22px; --gold-edge-y: 24px; }
.review-card:first-child { --stone-position: 10% 12%; }
.review-card:nth-child(2) { --stone-position: 50% 60%; }
.review-card:last-child { --stone-position: 95% 85%; }
.booking-section { --stone-position: 20% 72%; --gold-edge-y: 48px; }
.final-cta { --stone-position: 80% 90%; }
.booking-page-options article { color: var(--ivory); --stone-position: 12% 45%; --gold-edge-x: 24px; --gold-edge-y: 24px; }
.booking-page-options article:last-child { --stone-position: 85% 65%; }
.booking-page-options .button { background: var(--ivory); border-color: var(--ivory); color: var(--midnight); }
.booking-page-options .button:hover { background: #e6dcc6; }
@media(max-width:39.99rem) {
  .trust-strip, .approach-section, .review-card, .booking-section, .booking-page-options article { --stone-size: cover; }
  .trust-strip::before, .approach-section::before, .review-card::before, .booking-section::before, .booking-page-options article::before { background-size: cover; }
  .trust-strip { --stone-position: 18% 50%; }
  .approach-section { --stone-position: 68% 50%; }
  .final-cta { --stone-position: 80% 50%; }
}

/* Approved logo masters: intrinsic proportions, unmodified colours and placement clear space. */
@media(min-width:64rem){.brand{padding:.5rem .75rem}.brand img{width:360px;height:auto}}

/* Quieter mobile controls with the existing 44px minimum tap height. */
@media(max-width:63.999rem){
  .mobile-actions .button.compact{padding-inline:.8rem;font-size:.75rem;font-weight:700;letter-spacing:.07em}
  .mobile-actions .menu-toggle{font-size:.8rem;color:var(--muted);gap:.4rem}
  .mobile-actions .menu-icon{width:.875rem}
}

/* Homepage refinements: retain approved artwork, colour tokens and card sizes. */
.hero h1 em{color:var(--gold)}
@media(max-width:39.999rem){
  .site-header .header-inner{justify-content:center;gap:0;padding-block:.5rem}
  .site-header .brand{width:100%;max-width:360px;padding:0}
  .site-header .brand img{width:100%;height:auto}
  .site-header .mobile-actions{width:100%;justify-content:flex-end}
}
@media(min-width:40rem) and (max-width:63.999rem){
  .site-header .brand img{width:360px;height:auto}
}
@media(min-width:40rem){
  .concern-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .concern-card{grid-column:span 2}
  .concern-card:last-child{grid-column:2 / span 2}
}
@media(min-width:64rem){
  .concern-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .concern-card:nth-child(4){grid-column:2 / span 2}
  .concern-card:last-child{grid-column:4 / span 2}
}

/* Brief refinement: original photography, intentional five-card rhythm. */
.hero h1{color:var(--sapphire)}
.concern-grid{row-gap:2.75rem}
.concern-card{display:flex;flex-direction:column;min-width:0}
.concern-image{aspect-ratio:4/5}
.concern-photo{overflow:hidden}
.concern-photo img{display:block;width:100%;height:100%;object-fit:cover}
.concern-1 img{object-position:60% 50%}
.concern-2 img{object-position:60% 45%}
.concern-3 img{object-position:50% 38%}
.concern-4 img{object-position:52% 50%}
.concern-5 img{object-position:82% 50%}
.hero-photo{position:relative;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:76% 50%}
.portrait-photo{aspect-ratio:4/5;overflow:hidden}
.portrait-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.concern-caption{display:flex;flex:1;flex-direction:column;padding-top:1.25rem}
.concern-caption h3{text-wrap:pretty}
.concern-caption>span{margin-top:auto;padding-top:.75rem}
.hero-actions .button{min-width:0}
.section-heading h2,.consultation h2,.price-entry h2{text-wrap:balance}
.location-section{border-bottom:1px solid var(--line)}
@media(min-width:40rem){
  .concern-grid{gap:3rem 1.75rem}
}
@media(min-width:64rem){
  .concern-grid{gap:3.5rem 2rem}
  .header-inner{flex-wrap:wrap}
  .site-header nav,.site-header nav.is-open{flex-wrap:wrap;margin-left:auto}
}

/* Shared booking invitation: both labels occupy exactly the same control.
   Scoped specificity keeps homepage and inner-page responsive rules consistent. */
body .booking-section .booking-options{--booking-button-width:12rem}
body .booking-section .booking-options>div{flex-wrap:wrap}
body .booking-section .booking-options .button{
  width:var(--booking-button-width);
  min-width:var(--booking-button-width);
  max-width:none;
  height:3.25rem;
  min-height:3.25rem;
  flex:0 0 var(--booking-button-width);
  margin-left:auto;
  border:1px solid var(--ivory);
  align-items:center;
  justify-content:center;
  text-align:center;
}
@media(min-width:640px) and (max-width:1023px){
  body .booking-section .booking-options>div{display:flex;flex-direction:column;align-items:flex-start}
  body .booking-section .booking-options .button{flex-basis:auto;margin-top:auto;margin-left:0}
}
@media(max-width:639px){
  body .booking-section .booking-options{--booking-button-width:10rem}
}
