
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap");

:root {
  --ink: #253139;
  --muted: #66747c;
  --blue: #9cc4d5;
  --blue-dark: #3b91b3;
  --blue-deep: #267d9f;
  --blue-pale: #e5f3f8;
  --green: #9cd5b6;
  --green-dark: #4c9d73;
  --cream: #fffcf4;
  --cream-deep: #f8f3e8;
  --white: #ffffff;
  --line: #dce7e9;
  --shadow: 0 20px 60px rgba(44, 78, 91, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #fff; font-family: "Montserrat", "Segoe UI", Arial, sans-serif; line-height: 1.55; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.section { padding: 112px 0; }
.eyebrow { margin: 0 0 16px; color: var(--blue-deep); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.eyebrow.light { color: #dff6ff; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 690px; margin-bottom: 25px; font-size: clamp(42px, 4.25vw, 65px); font-weight: 500; letter-spacing: -0.045em; line-height: 1.12; }
h2 { margin-bottom: 22px; font-size: clamp(34px, 3.2vw, 48px); font-weight: 500; letter-spacing: -0.035em; line-height: 1.18; }
h3 { margin-bottom: 12px; font-size: 21px; font-weight: 600; line-height: 1.35; }
.lead { color: var(--muted); font-size: 17px; line-height: 1.8; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; padding: 0 28px; border: 1px solid transparent; border-radius: 6px; font-size: 13px; font-weight: 600; transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease; }
.button:hover { transform: translateY(-2px); }
.buttonPrimary { color: #fff; background: var(--blue-deep); box-shadow: 0 10px 25px rgba(38, 125, 159, 0.22); }
.buttonPrimary:hover { background: #1f6f8e; }
.buttonGhost { color: var(--blue-deep); background: #fff; border-color: rgba(38, 125, 159, 0.26); }
.buttonWhite { color: var(--blue-deep); background: #fff; }
.textLink { display: inline-flex; align-items: center; gap: 13px; color: var(--blue-deep); font-size: 13px; font-weight: 700; }
.textLink span { font-size: 19px; transition: transform 0.2s ease; }
.textLink:hover span { transform: translateX(5px); }

.siteHeader { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(65, 94, 105, 0.12); background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(16px); }
.headerInner { display: grid; min-height: 94px; grid-template-columns: 270px 1fr 220px; align-items: center; gap: 24px; }
.brand { display: inline-flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.brandName { color: var(--blue-dark); font-size: 38px; font-weight: 500; letter-spacing: 0.05em; }
.brandCaption { margin-top: 8px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.desktopNav { display: flex; justify-content: center; gap: 28px; color: #405059; font-size: 12px; }
.desktopNav a { position: relative; padding: 38px 0; }
.desktopNav a::after { position: absolute; right: 0; bottom: 25px; left: 0; height: 1px; background: var(--blue-dark); content: ""; transform: scaleX(0); transition: transform 0.2s ease; }
.desktopNav a:hover::after { transform: scaleX(1); }
.headerContact { display: flex; flex-direction: column; align-items: flex-end; }
.headerContact a { font-size: 18px; font-weight: 600; }
.headerContact span { margin-top: 5px; color: var(--muted); font-size: 10px; }
.mobileMenu { display: none; position: relative; }

.hero { position: relative; min-height: 720px; overflow: hidden; background: linear-gradient(115deg, var(--cream) 0%, #fbf7ee 48%, #edf6f5 100%); }
.heroShape { position: absolute; border-radius: 50%; pointer-events: none; }
.heroShapeOne { width: 820px; height: 820px; right: -220px; top: -360px; background: rgba(156, 196, 213, 0.18); }
.heroShapeTwo { width: 720px; height: 720px; left: 37%; bottom: -555px; background: rgba(255, 255, 255, 0.7); }
.heroGrid { position: relative; z-index: 1; display: grid; min-height: 720px; grid-template-columns: 1fr 1.03fr; align-items: center; gap: 72px; padding-top: 52px; padding-bottom: 60px; }
.heroLead { max-width: 620px; margin-bottom: 0; color: #586971; font-size: 17px; line-height: 1.8; }
.heroActions { display: flex; gap: 12px; margin-top: 33px; }
.heroFacts { display: flex; flex-wrap: wrap; gap: 25px; margin: 44px 0 0; padding: 0; color: #52656d; font-size: 11px; list-style: none; }
.heroFacts li { display: flex; align-items: center; gap: 10px; }
.heroFacts li span { width: 7px; height: 7px; border-radius: 50%; background: var(--green-dark); box-shadow: 0 0 0 5px rgba(76, 157, 115, 0.11); }
.heroVisual { position: relative; }
.heroImageWrap { position: relative; overflow: hidden; height: 545px; border: 12px solid rgba(255, 255, 255, 0.7); border-radius: 14px; box-shadow: var(--shadow); }
.heroImageWrap img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.floatingCard { position: absolute; display: flex; width: 165px; flex-direction: column; padding: 18px 19px; border: 1px solid rgba(67, 111, 126, 0.1); border-radius: 9px; background: rgba(255, 255, 255, 0.95); box-shadow: var(--shadow); }
.floatingCard strong { color: var(--blue-deep); font-size: 24px; line-height: 1.1; }
.floatingCard span { margin-top: 5px; color: var(--muted); font-size: 9px; }
.floatingTop { top: 32px; right: -43px; }
.floatingBottom { bottom: 32px; left: -35px; }

.trustStrip { position: relative; z-index: 2; background: #fff; box-shadow: 0 -10px 35px rgba(44, 78, 91, 0.05); }
.trustGrid { display: grid; grid-template-columns: repeat(4, 1fr); padding: 35px 0; }
.trustGrid div { display: flex; min-height: 58px; flex-direction: column; justify-content: center; padding: 0 34px; border-right: 1px solid var(--line); }
.trustGrid div:first-child { padding-left: 0; }
.trustGrid div:last-child { border: 0; }
.trustGrid strong { color: var(--blue-deep); font-size: 20px; font-weight: 600; }
.trustGrid span { margin-top: 5px; color: var(--muted); font-size: 10px; }

.splitGrid { display: grid; grid-template-columns: 0.92fr 1.08fr; align-items: center; gap: 90px; }
.approach { overflow: hidden; }
.approachVisual { position: relative; min-height: 610px; }
.softSquare { position: absolute; inset: 70px 20px 0 0; border-radius: 250px 250px 12px 12px; background: linear-gradient(145deg, var(--blue-pale), #edf7f2); }
.approachVisual img { position: absolute; bottom: 0; left: 50%; z-index: 1; height: 590px; max-width: none; transform: translateX(-50%); filter: drop-shadow(0 20px 25px rgba(44, 78, 91, 0.14)); }
.nameCard { position: absolute; right: -25px; bottom: 35px; z-index: 2; width: 245px; padding: 20px 22px; border-radius: 9px; background: #fff; box-shadow: var(--shadow); }
.nameCard strong { display: block; font-size: 13px; }
.nameCard span { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }
.checkList { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 24px; margin: 30px 0 32px; padding: 0; font-size: 13px; list-style: none; }
.checkList li { position: relative; padding-left: 27px; }
.checkList li::before { position: absolute; left: 0; color: var(--green-dark); content: "✓"; font-weight: 700; }
blockquote { margin: 0 0 28px; padding: 20px 24px; border-left: 3px solid var(--green); background: var(--cream); color: #4d5c64; font-size: 13px; line-height: 1.8; }

.directions { background: var(--cream); }
.sectionHeader { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; margin-bottom: 48px; }
.sectionHeader > div { max-width: 700px; }
.sectionHeader h2 { margin-bottom: 0; }
.sectionHeader > p { max-width: 390px; margin-bottom: 5px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.serviceGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.serviceCard { position: relative; min-height: 265px; padding: 31px 30px 27px; overflow: hidden; border: 1px solid rgba(61, 101, 114, 0.1); border-radius: 10px; background: #fff; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.serviceCard::before { position: absolute; right: -58px; bottom: -58px; width: 130px; height: 130px; border-radius: 50%; background: var(--blue-pale); content: ""; transition: transform 0.25s ease; }
.serviceCard:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(44, 78, 91, 0.09); }
.serviceCard:hover::before { transform: scale(1.25); }
.serviceNumber { display: block; margin-bottom: 30px; color: var(--blue-dark); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; }
.serviceCard h3, .serviceCard p, .serviceCard a { position: relative; z-index: 1; }
.serviceCard p { color: var(--muted); font-size: 12px; line-height: 1.75; }
.serviceCard a { display: inline-flex; gap: 10px; margin-top: 8px; color: var(--blue-deep); font-size: 11px; font-weight: 700; }

.consultation { padding: 0 0 112px; background: var(--cream); }
.consultationCard { display: grid; min-height: 340px; grid-template-columns: 1.25fr 0.75fr; overflow: hidden; border-radius: 14px; color: #fff; background: linear-gradient(125deg, #317f9f 0%, #61a9c2 100%); box-shadow: var(--shadow); }
.consultationCopy { padding: 64px 70px; }
.consultationCopy h2 { max-width: 700px; font-size: clamp(31px, 3vw, 43px); }
.consultationCopy > p:not(.eyebrow) { margin-bottom: 28px; color: rgba(255, 255, 255, 0.8); font-size: 14px; }
.consultationPrice { display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.11); text-align: center; }
.consultationPrice > span { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }
.consultationPrice strong { margin: 12px 0 4px; font-size: clamp(49px, 5vw, 72px); font-weight: 500; line-height: 1; }
.consultationPrice del { color: rgba(255, 255, 255, 0.6); font-size: 15px; }
.consultationPrice small { margin-top: 15px; color: rgba(255, 255, 255, 0.72); font-size: 10px; }

.firstVisit { background: #fff; }
.centerHeader { max-width: 800px; margin: 0 auto 52px; text-align: center; }
.centerHeader .lead { max-width: 660px; margin-inline: auto; font-size: 15px; }
.stepsGrid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.stepsGrid::before { position: absolute; top: 44px; right: 17%; left: 17%; height: 1px; background: var(--line); content: ""; }
.stepCard { position: relative; z-index: 1; padding: 0 32px; text-align: center; }
.stepCard > span { display: inline-flex; width: 86px; height: 86px; align-items: center; justify-content: center; margin-bottom: 25px; border: 1px solid var(--line); border-radius: 50%; color: var(--blue-deep); background: #fff; font-size: 14px; font-weight: 700; }
.stepCard p { color: var(--muted); font-size: 12px; line-height: 1.8; }

.practitioner { background: linear-gradient(140deg, #f8fbfc, var(--blue-pale)); }
.practitionerGrid { grid-template-columns: 0.93fr 1.07fr; }
.metricGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 32px 0; }
.metricGrid div { padding: 20px 21px; border: 1px solid rgba(58, 99, 113, 0.1); border-radius: 8px; background: rgba(255, 255, 255, 0.7); }
.metricGrid strong { display: block; color: var(--blue-deep); font-size: 23px; font-weight: 600; }
.metricGrid span { color: var(--muted); font-size: 9px; }
.practitionerImage { position: relative; overflow: hidden; min-height: 590px; border-radius: 12px; box-shadow: var(--shadow); }
.practitionerImage > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.imageCaption { position: absolute; right: 25px; bottom: 25px; left: 25px; padding: 24px 26px; border-radius: 8px; color: #fff; background: rgba(35, 53, 62, 0.82); backdrop-filter: blur(10px); }
.imageCaption span { display: block; margin-bottom: 7px; color: #cfeaf4; font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; }
.imageCaption strong { font-size: 13px; line-height: 1.6; }

.prices { background: var(--cream); }
.priceGrid { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; gap: 22px; }
.priceCard { position: relative; display: flex; min-height: 470px; flex-direction: column; padding: 40px 36px; border: 1px solid rgba(60, 101, 114, 0.12); border-radius: 11px; background: #fff; }
.featuredPrice { border-color: var(--blue); box-shadow: var(--shadow); transform: translateY(-10px); }
.priceBadge { position: absolute; top: 20px; right: 20px; padding: 6px 10px; border-radius: 50px; color: #315946; background: var(--green); font-size: 8px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.priceLabel { margin-bottom: 20px; color: var(--blue-deep); font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.priceCard h3 { font-size: 24px; }
.priceValue { margin: 18px 0 1px; color: var(--blue-deep); font-size: 39px; font-weight: 500; letter-spacing: -0.03em; }
.priceCard del { color: #9da6aa; font-size: 12px; }
.priceCard > p:not(.priceLabel) { margin: 27px 0 30px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.priceCard .button { margin-top: auto; align-self: flex-start; }

.gallery { background: #fff; }
.galleryGrid { display: grid; grid-auto-rows: 245px; grid-template-columns: 1.25fr 0.75fr 0.75fr; gap: 16px; }
.galleryGrid a { position: relative; overflow: hidden; border-radius: 9px; }
.galleryGrid a::after { position: absolute; inset: 0; background: linear-gradient(to top, rgba(33, 50, 58, 0.18), transparent 48%); content: ""; opacity: 0; transition: opacity 0.25s ease; }
.galleryGrid a:hover::after { opacity: 1; }
.galleryGrid img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.galleryGrid a:hover img { transform: scale(1.03); }
.galleryLarge { grid-row: span 2; }
.galleryGrid a:nth-child(4) { grid-column: span 2; }

.articles { background: linear-gradient(135deg, var(--blue-pale), #f6faf8); }
.articleGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.articleGrid article { display: flex; min-height: 315px; flex-direction: column; padding: 33px 31px; border: 1px solid rgba(60, 101, 114, 0.1); border-radius: 10px; background: rgba(255, 255, 255, 0.75); }
.articleGrid article > span { color: var(--blue-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.articleGrid h3 { margin-top: 30px; font-size: 22px; }
.articleGrid p { color: var(--muted); font-size: 11px; line-height: 1.8; }
.articleGrid a { display: flex; justify-content: space-between; margin-top: auto; color: var(--blue-deep); font-size: 11px; font-weight: 700; }

.faq { background: #fff; }
.faqGrid { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: 90px; }
.faqIntro { position: sticky; top: 145px; align-self: start; }
.accordion { border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 25px 0; cursor: pointer; font-size: 14px; font-weight: 600; list-style: none; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary span { color: var(--blue-deep); font-size: 22px; font-weight: 400; transition: transform 0.2s ease; }
.accordion details[open] summary span { transform: rotate(45deg); }
.accordion details p { max-width: 740px; padding: 0 35px 25px 0; color: var(--muted); font-size: 12px; line-height: 1.85; }

.contacts { padding: 0 0 112px; }
.contactCard { display: grid; min-height: 565px; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); box-shadow: var(--shadow); }
.contactCopy { padding: 63px 65px; }
.contactDetails { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 30px; margin: 36px 0; }
.contactDetails div:nth-child(3) { grid-column: span 2; }
.contactDetails span { display: block; margin-bottom: 8px; color: var(--blue-deep); font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.contactDetails strong, .contactDetails a { font-size: 13px; font-weight: 500; line-height: 1.7; }
.contactDetails a { font-size: 20px; font-weight: 600; }
.contactActions { display: flex; gap: 12px; }
.mapPanel { position: relative; display: flex; overflow: hidden; align-items: center; justify-content: center; background: #dbe9e5; }
.mapGridLines { position: absolute; inset: 0; background-image: linear-gradient(rgba(71, 105, 109, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(71, 105, 109, 0.08) 1px, transparent 1px); background-size: 54px 54px; transform: rotate(-8deg) scale(1.25); }
.river { position: absolute; width: 760px; height: 90px; border-radius: 50%; background: rgba(156, 196, 213, 0.65); transform: rotate(-38deg); }
.riverOne { left: -350px; top: 80px; }
.riverTwo { right: -330px; bottom: 30px; }
.mapPin { position: relative; z-index: 2; display: flex; width: 185px; flex-direction: column; align-items: center; padding: 24px 18px; border-radius: 10px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.mapPin i { position: relative; width: 25px; height: 25px; margin-bottom: 12px; border: 7px solid var(--blue-deep); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.mapPin i::after { position: absolute; top: 2px; left: 2px; width: 7px; height: 7px; border-radius: 50%; background: #fff; content: ""; }
.mapPin strong { color: var(--blue-deep); font-size: 24px; }
.mapPin span { color: var(--muted); font-size: 9px; }
.mapPanel > p { position: absolute; right: 25px; bottom: 20px; z-index: 2; margin: 0; color: #466069; font-size: 10px; font-weight: 600; }

.footer { padding: 73px 0 28px; color: #fff; background: #26363e; }
.footerGrid { display: grid; grid-template-columns: 1.35fr 0.7fr 0.85fr 0.9fr; gap: 60px; }
.footer .brandName { color: #a9d8e9; }
.footer .brandCaption, .footer p, .footer a, .footer span { color: rgba(255, 255, 255, 0.63); }
.footerBrand p { max-width: 310px; margin-top: 24px; font-size: 11px; line-height: 1.8; }
.footerGrid > div:not(.footerBrand) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer h3 { margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.footer a, .footer span { font-size: 10px; }
.footer a:hover { color: #fff; }
.footerBottom { display: flex; justify-content: space-between; margin-top: 55px; padding-top: 23px; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.footerBottom span { font-size: 9px; }

@media (max-width: 1050px) {
  .headerInner { grid-template-columns: 240px 1fr 190px; }
  .desktopNav { gap: 18px; }
  .headerContact a { font-size: 16px; }
  .heroGrid { gap: 42px; }
  .splitGrid { gap: 55px; }
  .floatingTop { right: -18px; }
  .faqGrid { gap: 55px; }
}

@media (max-width: 860px) {
  .container { width: min(100% - 36px, 720px); }
  .section { padding: 82px 0; }
  .headerInner { min-height: 78px; grid-template-columns: 1fr auto; }
  .desktopNav, .headerContact { display: none; }
  .mobileMenu { display: block; }
  .mobileMenu summary { display: flex; width: 43px; height: 43px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 5px; cursor: pointer; list-style: none; }
  .mobileMenu summary::-webkit-details-marker { display: none; }
  .mobileMenu summary span { width: 19px; height: 1px; background: var(--ink); }
  .mobileMenu nav { position: absolute; top: 53px; right: 0; display: flex; width: 260px; flex-direction: column; gap: 3px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
  .mobileMenu nav a { padding: 10px; font-size: 12px; }
  .hero, .heroGrid { min-height: auto; }
  .heroGrid, .splitGrid, .practitionerGrid, .faqGrid, .contactCard { grid-template-columns: 1fr; }
  .heroGrid { gap: 32px; padding-top: 65px; padding-bottom: 80px; }
  .heroCopy { max-width: 720px; }
  .heroVisual { max-width: 620px; }
  .trustGrid { grid-template-columns: 1fr 1fr; }
  .trustGrid div:nth-child(2) { border-right: 0; }
  .trustGrid div { padding: 20px 30px; }
  .trustGrid div:first-child { padding-left: 30px; }
  .approachVisual { min-height: 550px; }
  .approachVisual img { height: 535px; }
  .sectionHeader { display: block; }
  .sectionHeader > p { margin-top: 18px; }
  .serviceGrid, .priceGrid, .articleGrid, .stepsGrid { grid-template-columns: 1fr 1fr; }
  .consultationCard { grid-template-columns: 1fr; }
  .consultationPrice { padding: 55px; }
  .stepsGrid::before { display: none; }
  .galleryGrid { grid-auto-rows: 220px; grid-template-columns: 1fr 1fr; }
  .galleryLarge { grid-column: span 2; grid-row: span 2; }
  .galleryGrid a:nth-child(4) { grid-column: span 1; }
  .faqIntro { position: static; }
  .mapPanel { min-height: 470px; }
  .footerGrid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footerGrid > div:last-child { display: none; }
}

@media (max-width: 590px) {
  .container { width: min(100% - 28px, 520px); }
  .section { padding: 70px 0; }
  .brandName { font-size: 32px; }
  .brandCaption { font-size: 8px; }
  h1 { font-size: 39px; }
  h2 { font-size: 31px; }
  .heroGrid { padding-top: 52px; }
  .heroActions, .contactActions { align-items: stretch; flex-direction: column; }
  .heroActions .button, .contactActions .button { width: 100%; }
  .heroFacts { align-items: flex-start; flex-direction: column; gap: 15px; }
  .heroImageWrap { height: 390px; border-width: 8px; }
  .floatingCard { width: 135px; padding: 14px; }
  .floatingCard strong { font-size: 19px; }
  .floatingTop { top: 18px; right: -5px; }
  .floatingBottom { bottom: 18px; left: -4px; }
  .trustGrid { grid-template-columns: 1fr; padding: 15px 0; }
  .trustGrid div, .trustGrid div:nth-child(2) { min-height: auto; padding: 18px 4px; border-right: 0; border-bottom: 1px solid var(--line); }
  .trustGrid div:first-child { padding-left: 4px; }
  .trustGrid div:last-child { border-bottom: 0; }
  .approachVisual { min-height: 470px; }
  .approachVisual img { height: 455px; }
  .nameCard { right: 0; bottom: 12px; width: 205px; }
  .checkList, .serviceGrid, .stepsGrid, .metricGrid, .priceGrid, .articleGrid { grid-template-columns: 1fr; }
  .sectionHeader { margin-bottom: 35px; }
  .serviceCard { min-height: 235px; }
  .consultation { padding-bottom: 70px; }
  .consultationCopy { padding: 44px 29px; }
  .consultationPrice { padding: 44px 25px; }
  .stepCard { padding: 0; }
  .practitionerImage { min-height: 430px; }
  .featuredPrice { transform: none; }
  .galleryGrid { grid-auto-rows: 200px; grid-template-columns: 1fr; }
  .galleryLarge, .galleryGrid a:nth-child(4) { grid-column: span 1; grid-row: span 1; }
  .accordion summary { font-size: 13px; }
  .contactCopy { padding: 44px 28px; }
  .contactDetails { grid-template-columns: 1fr; }
  .contactDetails div:nth-child(3) { grid-column: span 1; }
  .mapPanel { min-height: 390px; }
  .footerGrid { grid-template-columns: 1fr 1fr; gap: 45px 25px; }
  .footerBrand { grid-column: span 2; }
  .footerBottom { gap: 15px; flex-direction: column; }
}
/* Internal pages share the homepage's blue, mint and Montserrat palette. */
.innerPage{font-size:16px}.innerHero{padding:0 0 65px;background:linear-gradient(120deg,#e5f3f8,#f6faf8)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;padding:28px 0 44px;color:var(--muted);font-size:14px}.breadcrumbs a:hover{color:var(--blue-deep)}.innerHero h1{max-width:900px;font-size:clamp(38px,4.5vw,62px)}.innerHero .lead{max-width:690px;margin-bottom:0}.innerPage .eyebrow{font-size:14px}.innerPage .button,.innerPage .textLink{font-size:14px}.innerPage .section{padding:80px 0}.categoryTabs{display:flex;flex-wrap:wrap;gap:12px}.categoryTabs button{cursor:pointer;border:1px solid var(--line);padding:13px 20px;border-radius:6px;background:white;color:var(--ink);display:flex;align-items:center;gap:18px;font-size:16px}.categoryTabs button[aria-pressed=true]{color:white;background:var(--blue-deep);border-color:var(--blue-deep)}.categoryTabs button span{font-size:14px;opacity:.8}.catalogCount{margin:24px 0;color:var(--muted);font-size:14px}.editorialGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.editorialCard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;padding:30px;min-height:300px;background:#fff;transition:box-shadow .2s,transform .2s}.editorialCard:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.cardCategory{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;color:var(--blue-deep);font-size:14px;margin:-30px -30px 30px;padding:22px 30px;background:var(--blue-pale);border-radius:10px 10px 0 0;min-height:86px}.cardCategory.movement{background:#eaf5ee;color:#356c51}.editorialCard h2{font-size:24px;line-height:1.35;letter-spacing:-.02em}.editorialCard p{color:var(--muted);font-size:16px;line-height:1.8}.editorialCard .textLink{margin-top:auto}.categoryLabel{display:inline-block;color:var(--blue-deep);font-size:14px;margin-bottom:24px}.bookingBand{display:grid;grid-template-columns:1fr auto;align-items:center;gap:50px;margin:80px 0 0;padding:48px 52px;background:linear-gradient(120deg,#317f9f,#4b96b2);color:white;border-radius:12px}.bookingBand h2{font-size:36px}.bookingBand p{margin-bottom:0;max-width:640px}.bookingBand .eyebrow{margin-bottom:16px}.bookingPhone{display:block;text-align:center;margin-top:18px;font-size:16px}.articleHeader{max-width:900px;margin-bottom:55px}.articleHeader h1{max-width:900px;font-size:clamp(36px,4vw,56px)}.draftNote{font-size:14px!important;color:var(--muted);margin-top:24px}.readingLayout{display:grid;grid-template-columns:250px minmax(0,740px);justify-content:space-between;gap:65px}.readingAside{position:sticky;top:130px;align-self:start;border-left:3px solid var(--green);padding-left:24px;display:flex;flex-direction:column;gap:18px;font-size:14px}.readingAside hr{width:100%;border:0;border-top:1px solid var(--line)}.prose{font-size:17px;line-height:1.9}.prose h2{font-size:32px;line-height:1.3}.prose section{margin-bottom:44px;scroll-margin-top:125px}.prose p{margin-bottom:24px}.prose ul{padding-left:24px;list-style:disc}.prose li{margin-bottom:12px}.prose figure{margin:36px 0}.prose figure img{width:100%;height:380px;object-fit:cover;border-radius:10px}.prose figcaption{font-size:14px;color:var(--muted);margin-top:12px}.prose blockquote{margin:32px 0;padding:25px 30px;border-left:4px solid var(--green);background:#f0f7f3;font-size:21px}.takeaway{padding:30px;background:var(--blue-pale);border-radius:8px}.takeaway p:last-child{margin-bottom:0}.innerPage .contacts{padding-top:60px;padding-bottom:0}.innerPage .contactDetails span{font-size:14px}.innerPage .contactDetails strong{font-size:16px}.innerPage .contactDetails{grid-template-columns:1fr}.innerPage .contactDetails div:nth-child(3){grid-column:auto}.realMap{display:flex;flex-direction:column;background:#eef4f4;min-height:520px}.realMap iframe{border:0;width:100%;flex:1;min-height:440px}.realMap>a{padding:22px}.innerPage .stepCard p,.innerPage .serviceCard p,.innerPage .accordion details p,.innerPage .priceCard>p:not(.priceLabel){font-size:16px}.innerPage .accordion summary{font-size:16px}.innerPage .serviceCard h2{font-size:25px}.innerPage .serviceCard a{font-size:14px}.innerPage .serviceNumber{font-size:14px}.directionHero{display:grid;grid-template-columns:1.15fr .85fr;gap:65px;align-items:center}.directionHero h1{font-size:clamp(36px,4vw,54px)}.directionHero img{width:100%;height:450px;object-fit:cover;border-radius:12px}.directionHero .button{margin-top:28px}.pageAnchors{display:flex;flex-wrap:wrap;gap:30px;padding:25px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--blue-deep)}.detailIntro{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px}.innerPage [id]{scroll-margin-top:115px}.allArticles{margin-top:30px}.innerPage .metricGrid span{font-size:14px}.innerPage .priceLabel,.innerPage .priceBadge{font-size:14px}.innerPage .priceBadge{position:static;align-self:flex-start;margin-bottom:20px}.innerPage .priceCard del{font-size:16px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue-deep);outline-offset:5px}
@media(max-width:1000px){.editorialGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.readingLayout{grid-template-columns:200px minmax(0,1fr);gap:35px}.directionHero,.detailIntro{gap:30px}.bookingBand{padding:35px;gap:30px}.headerInner{gap:14px}.desktopNav{gap:16px}}
@media(max-width:760px){.innerHero{padding-bottom:40px}.breadcrumbs{padding-bottom:32px}.readingLayout,.directionHero,.detailIntro,.bookingBand{grid-template-columns:1fr}.readingAside{position:static;padding:20px;margin-bottom:12px;background:#f4f8fa}.bookingBand{padding:30px 24px}.bookingBand h2{font-size:30px}.bookingBand>div:last-child{justify-self:start}.articleHeader{margin-bottom:30px}.prose figure img{height:270px}.directionHero img{height:320px}.innerPage .section{padding:55px 0}.bookingBand{margin-top:50px}.innerPage .contactCopy{padding:35px 24px}.realMap{min-height:420px}.realMap iframe{min-height:360px}.innerPage .contactDetails a{font-size:20px}.pageAnchors{gap:16px}.readingAside .eyebrow{margin-bottom:0}}
@media(max-width:540px){.editorialGrid{grid-template-columns:1fr}.categoryTabs{flex-direction:column}.categoryTabs button{justify-content:space-between;text-align:left}.editorialCard{min-height:280px}.innerPage h2{font-size:30px}.editorialCard h2{font-size:24px}.prose{font-size:16px}.prose blockquote{font-size:19px}.innerPage .stepCard{margin-bottom:25px}.innerPage .contactDetails strong{font-size:16px}}

/* Native block normalization. */
.wp-block-group{box-sizing:border-box}.wp-block-image{margin:0}.wp-block-image img{max-width:100%;height:auto}.heroImageWrap .wp-block-image,.galleryGrid .wp-block-image{height:100%}.heroImageWrap .wp-block-image img,.galleryGrid .wp-block-image img{height:100%;object-fit:cover}.practitionerImage>.wp-block-image{position:absolute;inset:0;height:100%}.practitionerImage>.wp-block-image img{width:100%;height:100%;object-fit:cover}.directionHero>.wp-block-image{width:100%}.directionHero>.wp-block-image img{height:450px;width:100%;object-fit:cover}.prose figure.wp-block-image{margin:36px 0}.prose figure.wp-block-image img{height:auto;max-height:460px;object-fit:cover}.fam-prose-image img{max-height:460px;object-fit:cover}.siteHeader ul{list-style:none;margin:0;padding:0}.admin-bar .siteHeader{top:32px}.skip-link{position:absolute;left:-10000px}.skip-link:focus{left:20px;top:40px;background:white;padding:15px;z-index:10000}.categoryTabs a{border:1px solid var(--line);padding:13px 20px;border-radius:6px;background:white;font-size:16px;display:flex;gap:18px}.categoryTabs a[aria-current="page"]{background:var(--blue-deep);color:white}.fam-pagination{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}.fam-pagination a,.fam-pagination span{padding:8px 15px;border:1px solid var(--line)}.fam-pagination .current{background:var(--blue-deep);color:white}.wp-block-group h1,.wp-block-group h2,.wp-block-group h3{clear:none}.wp-block-group:where(.is-layout-flow)>*{margin-block-start:0}.editor-styles-wrapper .wp-block{max-width:1180px}.editor-styles-wrapper{font-family:Montserrat,"Segoe UI",sans-serif}.editor-styles-wrapper .readingAside{position:static}.editor-styles-wrapper .siteHeader{position:static}.fam-article-hero{width:100%;max-height:450px;object-fit:cover;border-radius:10px}.fam-menu-item{display:contents}.siteHeader .brandCaption{white-space:normal}.desktopNav{flex-wrap:nowrap}.innerPage .contactDetails>div{min-width:0}.innerPage .contactDetails a{overflow-wrap:anywhere}
@media(max-width:782px){.admin-bar .siteHeader{top:46px}.directionHero>.wp-block-image img{height:320px}}@media(max-width:600px){.admin-bar .siteHeader{top:0}.categoryTabs a{justify-content:space-between}.innerPage .contactDetails a{font-size:18px}}
