/*
 * Core information pages.
 *
 * These systems intentionally do not inherit the service/treatment layout:
 * the contact page is a location and conversation hub, with its own visual
 * rhythm, editorial photo treatment and map-first information hierarchy.
 */

.cp-contact {
  --cp-ink: #29242b;
  --cp-plum: #4b3c4d;
  --cp-deep: #512958;
  --cp-muted: #5f5661;
  --cp-lavender: #eee9ef;
  --cp-wash: #f7f4f7;
  --cp-line: rgba(75, 60, 77, .18);
  color: var(--cp-ink);
  background: #fff;
}

/* Part 2 release-gate contrast and touch-target corrections. */
.cp-about-intro__mark { color: #674e6c !important; }

@media (max-width:480px) {
  .cp-results-finder input { min-height:44px !important; font-size:16px !important; }
}

/* Retire the imported Contact page's old full-bleed hero treatment. The
 * purpose-built contact page owns its full canvas and clears the fixed header
 * with its own intentional hero spacing. */
body.mahan-route-contact-us .mahan-main {
  padding-top: 0 !important;
  background: #fff !important;
}

body.mahan-route-contact-us .mahan-main .entry-content {
  padding: 0 !important;
}

.cp-contact *,
.cp-contact *::before,
.cp-contact *::after { box-sizing: border-box; }

.cp-contact :is(h1, h2, h3, p, figure, address) { margin-top: 0; }
.cp-contact a { color: inherit; }

.cp-eyebrow {
  display: flex;
  gap: 11px;
  align-items: center;
  margin-bottom: 24px;
  color: var(--cp-plum);
  font: 800 12px/1.25 "Open Sans", Arial, sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.cp-eyebrow::before {
  width: 38px;
  height: 1px;
  flex: 0 0 38px;
  background: currentColor;
  content: "";
}

.cp-contact-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(126px, 12vw, 172px) 0 clamp(72px, 9vw, 128px);
  background:
    radial-gradient(circle at 70% 4%, rgba(169, 137, 177, .20), transparent 22rem),
    linear-gradient(90deg, #fff 0%, #fff 64%, var(--cp-wash) 64%, var(--cp-wash) 100%);
}

.cp-contact-hero::after {
  position: absolute;
  inset: auto -6rem -12rem auto;
  width: min(36vw, 420px);
  aspect-ratio: 1;
  border: 1px solid rgba(81, 41, 88, .22);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.cp-contact-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(330px, .78fr);
  gap: clamp(48px, 7vw, 104px);
  align-items: center;
}

.cp-contact-hero__copy { max-width: 648px; }

.cp-contact h1,
.cp-contact h2,
.cp-contact h3 {
  color: var(--cp-ink);
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 400;
  letter-spacing: -.035em;
}

.cp-contact h1 {
  max-width: 620px;
  margin-bottom: 24px;
  font-size: clamp(2.7rem, 5.1vw, 5.1rem);
  line-height: 1.02;
}

.cp-contact-hero__lead {
  max-width: 580px;
  margin-bottom: 32px;
  color: var(--cp-muted);
  font-size: clamp(1rem, 1.25vw, 1.15rem);
  line-height: 1.68;
}

.cp-contact-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.cp-contact-action {
  display: flex;
  min-height: 86px;
  gap: 13px;
  align-items: center;
  padding: 15px;
  border: 1px solid var(--cp-line);
  color: var(--cp-ink);
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 10px 22px rgba(38, 29, 41, .035);
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.cp-contact-action:hover,
.cp-contact-action:focus-visible {
  border-color: var(--cp-deep);
  background: #fff;
  box-shadow: 0 16px 28px rgba(38, 29, 41, .09);
  transform: translateY(-2px);
}

.cp-contact-action:active { transform: translateY(0); }

.cp-contact-action--primary {
  border-color: var(--cp-plum);
  color: #fff;
  background: var(--cp-plum);
}

.cp-contact-action--primary:hover,
.cp-contact-action--primary:focus-visible {
  color: #fff;
  background: var(--cp-deep);
}

.cp-contact-action--primary strong,
.cp-contact-action--primary .cp-contact-action__icon { color: #fff; }

.cp-contact-action__icon {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border: 1px solid currentColor;
}

.cp-contact-action__icon svg { width: 17px; height: 17px; }
.cp-contact-action > span:last-child { display: grid; min-width: 0; gap: 4px; }
.cp-contact-action strong { font: 750 14px/1.25 "Open Sans", Arial, sans-serif; letter-spacing: .01em; }
.cp-contact-action small { color: var(--cp-muted); font: 500 12px/1.35 "Open Sans", Arial, sans-serif; }
.cp-contact-action--primary small { color: rgba(255,255,255,.76); }

.cp-contact-hero__availability {
  display: flex;
  gap: 9px;
  align-items: center;
  margin: 21px 0 0;
  color: var(--cp-muted);
  font-size: 14px;
  line-height: 1.45;
}

.cp-contact-hero__availability span {
  display: block;
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: #74607a;
}

.cp-contact-hero__image {
  position: relative;
  margin: 0;
  padding: 0 0 36px 30px;
}

.cp-contact-hero__image::before {
  position: absolute;
  inset: 26px auto 0 0;
  width: 43%;
  background: var(--cp-lavender);
  content: "";
}

.cp-contact-hero__image img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: clamp(390px, 38vw, 520px) !important;
  object-fit: cover;
  box-shadow: 24px 26px 0 rgba(75, 60, 77, .10);
}

.cp-contact-hero__image figcaption {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  display: grid;
  gap: 4px;
  min-width: min(254px, 74%);
  padding: 15px 19px;
  color: #fff;
  background: var(--cp-deep);
}

.cp-contact-hero__image figcaption span { color: rgba(255,255,255,.68); font: 800 10px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.cp-contact-hero__image figcaption strong { font: 400 16px/1.35 "Libre Baskerville", Georgia, serif; }

.cp-visit { padding: clamp(72px, 8vw, 118px) 0; background: var(--cp-lavender); }
.cp-visit__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(420px, 1fr); gap: clamp(48px, 9vw, 120px); align-items: stretch; }
.cp-visit__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; max-width: 470px; }
.cp-visit h2 { max-width: 460px; margin-bottom: 30px; font-size: clamp(2rem, 3.35vw, 3.55rem); line-height: 1.12; }
.cp-visit address { margin-bottom: 28px; color: var(--cp-ink); font: 400 clamp(1rem, 1.35vw, 1.2rem)/1.62 "Libre Baskerville", Georgia, serif; font-style: normal; }
.cp-visit__facts { display: grid; width: 100%; margin-bottom: 28px; border-top: 1px solid var(--cp-line); }
.cp-visit__facts > div { display: grid; gap: 5px; padding: 16px 0; border-bottom: 1px solid var(--cp-line); }
.cp-visit__facts span { color: var(--cp-plum); font: 800 11px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.cp-visit__facts strong, .cp-visit__facts a { color: var(--cp-ink); font: 600 14px/1.45 "Open Sans", Arial, sans-serif; text-decoration: none; }
.cp-visit__facts a { display: inline-flex; min-height: 44px; align-items: center; margin: -9px 0; }
.cp-visit__facts a:hover { text-decoration: underline; text-underline-offset: 4px; }

.cp-text-link {
  display: inline-flex;
  min-height: 44px;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--cp-plum);
  color: var(--cp-deep);
  font: 800 13px/1.2 "Open Sans", Arial, sans-serif;
  letter-spacing: .065em;
  text-decoration: none;
  text-transform: uppercase;
}
.cp-text-link:hover { border-color: var(--cp-deep); }

.cp-map-shell {
  position: relative;
  display: grid;
  min-height: 410px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(75,60,77,.24);
  background: #f7f4f7;
}

.cp-map-shell__grid { position: absolute; inset: 0; overflow: hidden; opacity: .98; background: linear-gradient(135deg, #faf8fb, #e6dce8); }
.cp-map-shell__grid::before,
.cp-map-shell__grid::after { position: absolute; inset: 0; background: repeating-linear-gradient(105deg, transparent 0 58px, rgba(81,41,88,.15) 59px 60px, transparent 61px 112px); content: ""; transform: rotate(-7deg) scale(1.18); }
.cp-map-shell__grid::after { background: repeating-linear-gradient(22deg, transparent 0 82px, rgba(75,60,77,.12) 83px 84px, transparent 85px 146px); transform: rotate(7deg) scale(1.16); }
.cp-map-shell__grid i { position: absolute; z-index: 1; width: 150px; height: 150px; border: 1px solid rgba(81,41,88,.18); border-radius: 50%; }
.cp-map-shell__grid i:nth-child(1) { top: -44px; left: 11%; }
.cp-map-shell__grid i:nth-child(2) { right: -24px; bottom: 8%; width: 220px; height: 220px; }
.cp-map-shell__grid i:nth-child(3) { top: 41%; left: 39%; width: 72px; height: 72px; }
.cp-map-shell__grid i:nth-child(4) { right: 31%; bottom: -50px; width: 126px; height: 126px; }
.cp-map-shell__grid b, .cp-map-shell__grid span { position: absolute; z-index: 2; color: rgba(75,60,77,.48); font: 800 11px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.cp-map-shell__grid b { top: 20%; right: 12%; }
.cp-map-shell__grid span { bottom: 19%; left: 10%; }
.cp-map-shell__pin { position: absolute; z-index: 3; top: 41%; left: 56%; display: grid; width: 62px; height: 62px; place-items: center; border: 1px solid rgba(81,41,88,.5); border-radius: 50% 50% 50% 0; background: rgba(255,255,255,.90); box-shadow: 0 12px 24px rgba(50,31,56,.20); transform: rotate(-45deg); }
.cp-map-shell__pin span { width: 17px; height: 17px; border-radius: 50%; background: var(--cp-deep); transform: rotate(45deg); }
.cp-map-shell__content { position: relative; z-index: 4; align-self: end; justify-self: start; display: grid; width: min(290px, calc(100% - 32px)); gap: 6px; margin: 0 0 22px 22px; padding: 18px; border: 1px solid rgba(75,60,77,.22); background: rgba(255,255,255,.95); box-shadow: 0 10px 28px rgba(42,30,45,.13); }
.cp-map-shell__content > span { color: var(--cp-plum); font: 800 10px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .14em; }
.cp-map-shell__content strong { color: var(--cp-ink); font: 400 17px/1.3 "Libre Baskerville", Georgia, serif; }
.cp-map-shell__content p { margin: 0 0 7px; color: var(--cp-muted); font-size: 13px; line-height: 1.4; }
.cp-map-shell__content button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 9px 12px; border: 1px solid var(--cp-plum); color: #fff; background: var(--cp-plum); font: 750 12px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .04em; cursor: pointer; transition: background .2s ease; }
.cp-map-shell__content button:hover, .cp-map-shell__content button:focus-visible { background: var(--cp-deep); }
.cp-map-shell__content button:disabled { cursor: default; opacity: .9; }
.cp-map-shell iframe { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.cp-map-shell.is-loaded iframe { opacity: 1; pointer-events: auto; }
.cp-map-shell.is-loaded .cp-map-shell__content { z-index: 6; }

.cp-contact-paths { padding: clamp(78px, 9vw, 132px) 0 clamp(64px, 7vw, 106px); background: #fff; }
.cp-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr); gap: clamp(36px, 7vw, 110px); align-items: end; margin-bottom: 42px; }
.cp-section-heading h2 { max-width: 700px; margin: 0; font-size: clamp(2rem, 3.6vw, 3.8rem); line-height: 1.1; }
.cp-section-heading > p { max-width: 390px; margin: 0 0 6px; color: var(--cp-muted); font-size: 16px; line-height: 1.65; }
.cp-contact-paths__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--cp-line); border-left: 1px solid var(--cp-line); }
.cp-contact-paths__grid article { display: flex; min-height: 282px; flex-direction: column; padding: clamp(24px, 3vw, 38px); border-right: 1px solid var(--cp-line); border-bottom: 1px solid var(--cp-line); }
.cp-contact-paths__grid article:nth-child(2) { background: var(--cp-wash); }
.cp-contact-paths__grid article > span { display: block; margin-bottom: auto; color: var(--cp-plum); font: 800 11px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .13em; }
.cp-contact-paths h3 { margin: 28px 0 10px; font-size: clamp(1.25rem, 1.75vw, 1.6rem); line-height: 1.28; }
.cp-contact-paths__grid p { margin-bottom: 18px; color: var(--cp-muted); font-size: 14px; line-height: 1.6; }
.cp-contact-paths__grid a { display: inline-flex; min-height: 44px; gap: 9px; align-items: center; margin-top: auto; color: var(--cp-deep); font: 800 12px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .065em; text-decoration: none; text-transform: uppercase; }
.cp-contact-paths__grid a:hover { text-decoration: underline; text-underline-offset: 4px; }
.cp-contact-paths__grid i, .cp-contact-closing i { font-size: 1.05em; font-style: normal; }
.cp-contact-paths__notice { max-width: 840px; margin: 24px 0 0; color: var(--cp-muted); font-size: 14px; line-height: 1.55; }
.cp-contact-paths__notice strong { color: var(--cp-ink); }

.cp-enquiry { padding: clamp(78px, 8vw, 124px) 0; background: var(--cp-wash); }
.cp-enquiry__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(410px, .84fr); gap: clamp(48px, 9vw, 138px); align-items: start; }
.cp-enquiry__copy { max-width: 480px; padding-top: 17px; }
.cp-enquiry h2 { margin-bottom: 22px; font-size: clamp(2rem, 3.25vw, 3.45rem); line-height: 1.1; }
.cp-enquiry__copy > p:not(.cp-eyebrow) { margin-bottom: 34px; color: var(--cp-muted); font-size: 16px; line-height: 1.65; }
.cp-enquiry__steps { border-top: 1px solid var(--cp-line); }
.cp-enquiry__steps > div { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 12px; align-items: start; padding: 15px 0; border-bottom: 1px solid var(--cp-line); }
.cp-enquiry__steps span { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid var(--cp-plum); border-radius: 50%; color: var(--cp-deep); font: 800 11px/1 "Open Sans", Arial, sans-serif; }
.cp-enquiry__steps p { margin: 2px 0 0; color: var(--cp-ink); font-size: 14px; line-height: 1.5; }
.cp-enquiry__form { padding: clamp(26px, 4vw, 42px); border-top: 3px solid var(--cp-deep); background: #fff; box-shadow: 0 18px 45px rgba(40,29,43,.08); }
.cp-enquiry__form h3 { margin-bottom: 24px; font-size: 1.5rem; line-height: 1.3; }
.cp-enquiry__form .mahan-form-wrap { max-width: none; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.cp-enquiry__form .mahan-form { margin: 0; }
.cp-enquiry__form .mahan-form :is(input, textarea, select) { min-height: 50px; border-radius: 0; color: var(--cp-ink); font-size: 16px; }
.cp-enquiry__form .mahan-form textarea { min-height: 118px; }
.cp-enquiry__form .mahan-form button[type="submit"] { min-height: 50px; border-radius: 0; background: var(--cp-plum); }
.cp-enquiry__form .mahan-form button[type="submit"]:hover { background: var(--cp-deep); }
.cp-enquiry__privacy { margin: 16px 0 0; color: var(--cp-muted); font-size: 12px; line-height: 1.55; }
.cp-enquiry__privacy a { color: var(--cp-deep); font-weight: 700; }

.cp-contact-closing { padding: 27px 0; color: #fff; background: var(--cp-plum); }
.cp-contact-closing__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cp-contact-closing__grid > div { display: grid; gap: 8px; padding: 10px clamp(18px, 3.2vw, 42px); border-left: 1px solid rgba(255,255,255,.22); }
.cp-contact-closing__grid > div:first-child { padding-left: 0; border-left: 0; }
.cp-contact-closing span { color: rgba(255,255,255,.65); font: 800 10px/1.2 "Open Sans", Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.cp-contact-closing a { display: inline-flex; min-height: 44px; align-items: center; color: #fff; font: 600 15px/1.35 "Open Sans", Arial, sans-serif; text-decoration: none; }
.cp-contact-closing a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* The Contact page opts into the established two-action mobile bar without
 * depending on the treatment stylesheet. Keep its vector icons constrained
 * so a missing route stylesheet can never turn them into page-sized art. */
.cp-mobile-actions { display: none; }

/* Appointment and privacy routes use the core-page shell, but their jobs are
 * deliberately different: one helps a visitor choose a time, the other makes
 * a long policy easy to scan and read. */
.cp-appointment,
.cp-privacy { --cp-ink:#29242b; --cp-plum:#4b3c4d; --cp-deep:#512958; --cp-muted:#5f5661; --cp-lavender:#eee9ef; --cp-wash:#f7f4f7; --cp-line:rgba(75,60,77,.18); color:var(--cp-ink); background:#fff; }
.cp-appointment *, .cp-appointment *::before, .cp-appointment *::after,
.cp-privacy *, .cp-privacy *::before, .cp-privacy *::after { box-sizing:border-box; }
.cp-appointment :is(h1,h2,h3,p,ol,figure), .cp-privacy :is(h1,h2,h3,p,ol,ul,address) { margin-top:0; }
.cp-appointment :is(h1,h2,h3), .cp-privacy :is(h1,h2,h3) { color:var(--cp-ink); font-family:"Libre Baskerville",Georgia,serif; font-weight:400; letter-spacing:-.035em; }
body.mahan-route-book-an-appointment .mahan-main, body.mahan-route-privacy-and-policy .mahan-main { padding-top:0 !important; background:#fff !important; }
body.mahan-route-book-an-appointment .mahan-main .entry-content, body.mahan-route-privacy-and-policy .mahan-main .entry-content { padding:0 !important; }

.cp-appointment-hero { position:relative; overflow:hidden; padding:clamp(126px,12vw,172px) 0 clamp(68px,8vw,110px); background:linear-gradient(112deg,#fff 0%,#fff 61%,#eee9ef 61%,#eee9ef 100%); }
.cp-appointment-hero::before { position:absolute; top:-17rem; right:-9rem; width:min(45vw,640px); aspect-ratio:1; border:1px solid rgba(81,41,88,.16); border-radius:50%; box-shadow:0 0 0 44px rgba(81,41,88,.05),0 0 0 88px rgba(81,41,88,.035); content:""; }
.cp-appointment-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(294px,.58fr); gap:clamp(46px,10vw,154px); align-items:center; }
.cp-appointment-hero__copy { max-width:690px; }
.cp-appointment h1 { max-width:660px; margin-bottom:24px; font-size:clamp(2.8rem,5.2vw,5.25rem); line-height:1.035; }
.cp-appointment-hero__lead { max-width:610px; margin-bottom:32px; color:var(--cp-muted); font-size:clamp(1rem,1.3vw,1.17rem); line-height:1.68; }
.cp-appointment-hero__actions { display:flex; flex-wrap:wrap; gap:10px; }
.cp-appointment-button { display:inline-flex; min-height:52px; gap:10px; align-items:center; justify-content:center; padding:12px 17px; border:1px solid var(--cp-plum); color:var(--cp-plum); background:rgba(255,255,255,.76); font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.055em; text-decoration:none; text-transform:uppercase; transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease; }
.cp-appointment-button:hover,.cp-appointment-button:focus-visible { color:var(--cp-deep); background:#fff; box-shadow:0 12px 24px rgba(43,31,46,.1); transform:translateY(-2px); }
.cp-appointment-button--primary { color:#fff; background:var(--cp-plum); }
.cp-appointment-button--primary:hover,.cp-appointment-button--primary:focus-visible { color:#fff; background:var(--cp-deep); }
.cp-appointment-button__icon { display:grid; width:18px; height:18px; place-items:center; }
.cp-appointment-button__icon svg { display:block; width:18px; height:18px; }
.cp-appointment-hero__card { position:relative; display:grid; gap:11px; min-height:292px; align-content:end; padding:30px; border:1px solid rgba(75,60,77,.25); color:#fff; background:#332a35; box-shadow:18px 20px 0 rgba(81,41,88,.13); }
.cp-appointment-hero__card::after { position:absolute; inset:18px; border:1px solid rgba(255,255,255,.17); content:""; pointer-events:none; }
.cp-appointment-hero__card > * { position:relative; z-index:1; }
.cp-appointment-hero__card-icon { display:grid; width:42px; height:42px; margin-bottom:auto; place-items:center; border:1px solid rgba(255,255,255,.56); }
.cp-appointment-hero__card-icon svg { width:21px; height:21px; }
.cp-appointment-hero__card p { margin:0; color:rgba(255,255,255,.68); font:800 10px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.15em; }
.cp-appointment-hero__card strong { font:400 25px/1.22 "Libre Baskerville",Georgia,serif; }
.cp-appointment-hero__card > span { max-width:265px; color:rgba(255,255,255,.75); font-size:13px; line-height:1.55; }
.cp-appointment-hero__card a { display:inline-flex; min-height:44px; align-items:center; margin-top:4px; color:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.cp-appointment-hero__card a:hover { text-decoration:underline; text-underline-offset:4px; }
.cp-appointment-hero__card i { margin-left:8px; font-size:1.05em; font-style:normal; }
.cp-appointment-trust { position:relative; z-index:2; padding:0 0 1px; background:#fff; }
.cp-appointment-trust__strip { width:min(100%,1050px); margin:-23px auto 0 !important; box-shadow:0 15px 34px rgba(42,30,45,.08); }
.cp-appointment-form { padding:clamp(78px,9vw,132px) 0; background:var(--cp-wash); }
.cp-appointment-form__grid { display:grid; grid-template-columns:minmax(0,.7fr) minmax(420px,.84fr); gap:clamp(52px,9vw,142px); align-items:start; }
.cp-appointment-form__copy { max-width:500px; padding-top:17px; }
.cp-appointment h2 { margin-bottom:22px; font-size:clamp(2rem,3.35vw,3.55rem); line-height:1.11; }
.cp-appointment-form__copy > p:not(.cp-eyebrow) { margin-bottom:32px; color:var(--cp-muted); font-size:16px; line-height:1.66; }
.cp-appointment-steps { display:grid; gap:0; margin:0 0 29px; padding:0; list-style:none; border-top:1px solid var(--cp-line); }
.cp-appointment-steps li { display:grid; grid-template-columns:39px minmax(0,1fr); gap:13px; align-items:start; padding:16px 0; border-bottom:1px solid var(--cp-line); }
.cp-appointment-steps span { color:var(--cp-plum); font:800 11px/1.25 "Open Sans",Arial,sans-serif; letter-spacing:.08em; }
.cp-appointment-steps div { display:grid; gap:4px; }
.cp-appointment-steps strong { color:var(--cp-ink); font:700 14px/1.35 "Open Sans",Arial,sans-serif; }
.cp-appointment-steps small { color:var(--cp-muted); font:13px/1.45 "Open Sans",Arial,sans-serif; }
.cp-appointment-call { display:inline-flex; min-height:44px; gap:9px; align-items:center; color:var(--cp-deep); font:800 12px/1.25 "Open Sans",Arial,sans-serif; letter-spacing:.035em; text-decoration:none; }
.cp-appointment-call span { display:grid; width:20px; height:20px; place-items:center; }
.cp-appointment-call svg { width:19px; height:19px; }
.cp-appointment-call:hover { text-decoration:underline; text-underline-offset:4px; }
.cp-appointment-form__panel { padding:clamp(27px,4vw,46px); border-top:3px solid var(--cp-deep); background:#fff; box-shadow:0 18px 45px rgba(40,29,43,.08); }
.cp-appointment-form__panel h2 { margin-bottom:24px; font-size:1.55rem; }
.cp-appointment-form__panel .mahan-form { display:grid; gap:16px; margin:0; }
.cp-appointment-form__panel .mahan-form label { display:grid; gap:7px; color:var(--cp-ink); font:800 12px/1.3 "Open Sans",Arial,sans-serif; letter-spacing:.035em; }
.cp-appointment-form__panel .mahan-form :is(input,select) { width:100%; min-height:51px; padding:12px 13px; border:1px solid var(--cp-line); border-radius:0; color:var(--cp-ink); background:#fff; font:16px/1.3 "Open Sans",Arial,sans-serif; }
.cp-appointment-form__panel .mahan-form :is(input,select):focus { outline:2px solid var(--cp-deep); outline-offset:2px; }
.cp-appointment-form__panel .mahan-field-hint { color:var(--cp-muted); font:12px/1.45 "Open Sans",Arial,sans-serif; letter-spacing:0; }
.cp-appointment-form__panel .mahan-honeypot { display:none; }
.cp-appointment-form__panel .mahan-field--full { margin-top:4px; }
.cp-appointment-form__panel button[type="submit"] { width:100%; min-height:52px; padding:12px 18px; border:1px solid var(--cp-plum); border-radius:0; color:#fff; background:var(--cp-plum); font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.07em; cursor:pointer; text-transform:uppercase; transition:background-color .2s ease; }
.cp-appointment-form__panel button[type="submit"]:hover,.cp-appointment-form__panel button[type="submit"]:focus-visible { background:var(--cp-deep); }
.cp-appointment-form__privacy { margin:16px 0 0; color:var(--cp-muted); font-size:12px; line-height:1.55; }
.cp-appointment-form__privacy a { color:var(--cp-deep); font-weight:700; }
.cp-appointment-closing { padding:28px 0; color:#fff; background:var(--cp-plum); }
.cp-appointment-closing .mp-shell { display:flex; flex-wrap:wrap; gap:11px 28px; align-items:center; }
.cp-appointment-closing p { margin:0 auto 0 0; color:rgba(255,255,255,.76); font-size:15px; }
.cp-appointment-closing a { display:inline-flex; min-height:44px; gap:9px; align-items:center; color:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.cp-appointment-closing a:hover { text-decoration:underline; text-underline-offset:4px; }

.cp-privacy-hero { position:relative; overflow:hidden; padding:clamp(126px,12vw,164px) 0 clamp(68px,8vw,110px); background:linear-gradient(113deg,#f7f4f7 0%,#f7f4f7 65%,#eee9ef 65%,#eee9ef 100%); }
.cp-privacy-hero::after { position:absolute; right:10%; bottom:-12rem; width:min(29vw,360px); aspect-ratio:1; border:1px solid rgba(81,41,88,.14); border-radius:50%; content:""; }
.cp-privacy-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,.45fr); gap:clamp(48px,11vw,182px); align-items:end; }
.cp-privacy-hero h1 { max-width:690px; margin-bottom:23px; font-size:clamp(2.8rem,5vw,5rem); line-height:1.05; }
.cp-privacy-hero__grid > div > p:not(.cp-eyebrow):not(.cp-privacy-hero__date) { max-width:615px; margin-bottom:24px; color:var(--cp-muted); font-size:17px; line-height:1.7; }
.cp-privacy-hero__date { margin:0; color:var(--cp-plum); font:800 11px/1.4 "Open Sans",Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.cp-privacy-hero__date strong { margin-left:8px; color:var(--cp-ink); }
.cp-privacy-hero aside { display:grid; gap:10px; justify-items:start; padding:24px; border:1px solid rgba(75,60,77,.22); background:rgba(255,255,255,.7); }
.cp-privacy-hero aside > span { color:rgba(81,41,88,.27); font:400 54px/.8 "Libre Baskerville",Georgia,serif; }
.cp-privacy-hero aside p { margin:5px 0 0; color:var(--cp-plum); font:800 10px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.cp-privacy-hero aside a { display:inline-flex; min-height:44px; align-items:center; color:var(--cp-ink); font:600 15px/1.35 "Open Sans",Arial,sans-serif; text-decoration:none; }
.cp-privacy-hero aside a:hover { text-decoration:underline; text-underline-offset:4px; }
.cp-privacy-content { padding:clamp(70px,9vw,128px) 0; background:#fff; }
.cp-privacy-content__grid { display:grid; grid-template-columns:minmax(190px,.36fr) minmax(0,1fr); gap:clamp(46px,10vw,158px); align-items:start; }
.cp-privacy-toc { position:sticky; top:104px; padding-top:7px; }
.cp-privacy-toc > p { margin:0 0 15px; color:var(--cp-plum); font:800 11px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.cp-privacy-toc ol { display:grid; gap:0; margin:0; padding:0; list-style:none; border-top:1px solid var(--cp-line); }
.cp-privacy-toc li { border-bottom:1px solid var(--cp-line); }
.cp-privacy-toc a { display:flex; min-height:44px; align-items:center; color:var(--cp-muted); font:600 12px/1.3 "Open Sans",Arial,sans-serif; text-decoration:none; }
.cp-privacy-toc a:hover,.cp-privacy-toc a:focus-visible { color:var(--cp-deep); }
.cp-privacy-copy { max-width:770px; }
.cp-privacy-copy > section { scroll-margin-top:108px; padding:0 0 38px; margin:0 0 39px; border-bottom:1px solid var(--cp-line); }
.cp-privacy-copy > section:last-child { margin-bottom:0; }
.cp-privacy-copy h2 { margin-bottom:17px; font-size:clamp(1.6rem,2.25vw,2.35rem); line-height:1.2; }
.cp-privacy-copy h3 { margin:27px 0 10px; font:800 13px/1.35 "Open Sans",Arial,sans-serif; letter-spacing:.025em; }
.cp-privacy-copy p,.cp-privacy-copy li { color:var(--cp-muted); font-size:15px; line-height:1.7; }
.cp-privacy-copy p { margin-bottom:15px; }
.cp-privacy-copy ul { display:grid; gap:6px; margin:0 0 18px; padding-left:20px; }
.cp-privacy-copy li::marker { color:var(--cp-plum); }
.cp-privacy-copy address { display:grid; gap:8px; margin:20px 0 0; padding:20px; border-left:3px solid var(--cp-deep); background:var(--cp-wash); color:var(--cp-muted); font-style:normal; font-size:14px; line-height:1.55; }
.cp-privacy-copy address strong { color:var(--cp-ink); font:400 19px/1.3 "Libre Baskerville",Georgia,serif; }
.cp-privacy-copy address span { display:block; }
.cp-privacy-copy address a { color:var(--cp-deep); font-weight:700; }

@media (max-width: 960px) {
  .cp-contact-hero__grid,
  .cp-visit__grid,
  .cp-enquiry__grid { grid-template-columns: 1fr; }
  .cp-contact-hero__copy { max-width: none; }
  .cp-contact-hero__image { width: min(680px, 100%); margin-left: auto; }
  .cp-visit__copy { max-width: 620px; }
  .cp-map-shell { min-height: 430px; }
  .cp-enquiry__copy { max-width: 610px; }
}

@media (max-width: 820px) {
  body.mahan-route-contact-us .wp-site-blocks .mp-footer { padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  .cp-mobile-actions {
    position: fixed !important;
    z-index: 10010;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 8px 11px max(8px, env(safe-area-inset-bottom, 0px));
    color: #fff;
    background: #2d252e;
    box-shadow: 0 -5px 18px rgba(33, 22, 36, .16);
  }
  .cp-mobile-actions a {
    display: inline-flex !important;
    min-width: 0;
    min-height: 48px;
    gap: 8px;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.70);
    color: #fff;
    font: 800 12px/1.2 "Open Sans", Arial, sans-serif;
    letter-spacing: .075em;
    text-decoration: none;
    text-transform: uppercase;
  }
  .cp-mobile-actions a:last-child { border-color: #f2eef4; color: #2d252e; background: #f2eef4; }
  .cp-mobile-actions .mh-button__icon { display: inline-grid; width: 18px; height: 18px; flex: 0 0 18px; place-items: center; }
  .cp-mobile-actions svg { display: block; width: 18px !important; height: 18px !important; }
  .cp-contact-hero { padding: calc(68px + 34px) 0 64px; background: linear-gradient(180deg, #fff 0%, #fff 70%, var(--cp-wash) 70%, var(--cp-wash) 100%); }
  .cp-contact-hero::after { width: 220px; bottom: -112px; }
  .cp-contact-hero__grid { gap: 44px; }
  .cp-contact h1 { max-width: 510px; font-size: clamp(2.18rem, 9.25vw, 3.3rem); line-height: 1.05; }
  .cp-contact-hero__lead { margin-bottom: 27px; font-size: 16px; }
  .cp-contact-action { min-height: 82px; padding: 13px; }
  .cp-contact-action strong { font-size: 13px; }
  .cp-contact-action small { font-size: 11px; }
  .cp-contact-hero__image { padding: 0 0 28px 18px; }
  .cp-contact-hero__image img { height: clamp(320px, 72vw, 430px) !important; box-shadow: 15px 17px 0 rgba(75,60,77,.10); }
  .cp-contact-hero__image figcaption { min-width: 214px; padding: 13px 15px; }
  .cp-visit { padding: 66px 0; }
  .cp-visit__grid { gap: 34px; }
  .cp-visit h2, .cp-section-heading h2, .cp-enquiry h2 { font-size: clamp(1.76rem, 7.2vw, 2.35rem); }
  .cp-map-shell { min-height: 380px; }
  .cp-section-heading { grid-template-columns: 1fr; gap: 15px; margin-bottom: 30px; }
  .cp-contact-paths { padding: 70px 0 58px; }
  .cp-contact-paths__grid { grid-template-columns: 1fr; }
  .cp-contact-paths__grid article { min-height: 206px; padding: 25px 22px; }
  .cp-contact-paths h3 { margin-top: 20px; }
  .cp-enquiry { padding: 70px 0; }
  .cp-enquiry__grid { gap: 38px; }
  .cp-enquiry__form { padding: 27px 20px 25px; }
  .cp-contact-closing__grid { grid-template-columns: 1fr; }
  .cp-contact-closing__grid > div,
  .cp-contact-closing__grid > div:first-child { padding: 15px 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 0; }
  .cp-contact-closing__grid > div:first-child { border-top: 0; }
}

@media (max-width: 480px) {
  .cp-eyebrow { margin-bottom: 19px; font-size: 11px; }
  .cp-eyebrow::before { width: 30px; flex-basis: 30px; }
  .cp-contact-hero { padding-top: calc(68px + 28px); }
  .cp-contact h1 { font-size: clamp(2.04rem, 9vw, 2.48rem); }
  .cp-contact-actions { gap: 8px; }
  .cp-contact-action { min-height: 84px; gap: 9px; padding: 11px; }
  .cp-contact-action__icon { width: 29px; height: 29px; flex-basis: 29px; }
  .cp-contact-action__icon svg { width: 15px; height: 15px; }
  .cp-contact-action strong { font-size: 12px; line-height: 1.25; }
  .cp-contact-action small { font-size: 10px; line-height: 1.25; }
  .cp-contact-hero__availability { font-size: 13px; }
  .cp-contact-hero__image figcaption strong { font-size: 14px; }
  .cp-map-shell { min-height: 340px; }
  .cp-map-shell__content { width: min(260px, calc(100% - 28px)); margin: 0 0 14px 14px; padding: 15px; }
  .cp-contact-paths__grid article { min-height: 198px; }
  .cp-contact-paths__notice { margin-top: 18px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .cp-contact * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* About Mahan: a people-and-place editorial system, intentionally separate
 * from both the Contact hub and the treatment-page template. */
body.mahan-route-about-mahan .mahan-main { padding-top: 0 !important; background: #fff !important; }
body.mahan-route-about-mahan .mahan-main .entry-content { padding: 0 !important; }
.cp-about { --ab-ink:#29242b; --ab-plum:#4b3c4d; --ab-deep:#512958; --ab-wash:#f2eef4; --ab-line:rgba(75,60,77,.22); color:var(--ab-ink); }
.cp-about *, .cp-about *::before, .cp-about *::after { box-sizing:border-box; }
.cp-about :is(h1,h2,h3,p,figure) { margin-top:0; }
.cp-about h1,.cp-about h2,.cp-about h3 { color:inherit; font-family:"Libre Baskerville",Georgia,serif; font-weight:400; letter-spacing:-.04em; }
.cp-about .cp-eyebrow { color:inherit; }
.cp-about-hero { overflow:hidden; padding:clamp(126px,12vw,170px) 0 clamp(74px,9vw,128px); color:#fff; background:linear-gradient(116deg,#2b252c 0%,#3b2e3c 58%,#512958 100%); }
.cp-about-hero__grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(345px,.64fr); gap:clamp(52px,9vw,148px); align-items:center; }
.cp-about-hero__copy { position:relative; z-index:1; max-width:710px; }
.cp-about-hero .cp-eyebrow { margin-bottom:24px; color:rgba(255,255,255,.76); }
.cp-about-hero .cp-eyebrow::before { background:#c9b1ce; }
.cp-about h1 { max-width:690px; margin-bottom:28px; font-size:clamp(2.85rem,5.25vw,5.5rem); line-height:1.02; }
.cp-about-hero__copy > p:not(.cp-eyebrow) { max-width:560px; margin-bottom:34px; color:rgba(255,255,255,.8); font-size:clamp(1rem,1.25vw,1.16rem); line-height:1.7; }
.cp-about-hero__actions { display:flex; flex-wrap:wrap; gap:12px; }
.cp-about-hero__actions a { display:inline-flex; min-height:50px; gap:10px; align-items:center; justify-content:center; padding:12px 18px; border:1px solid rgba(255,255,255,.52); color:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; transition:background .2s ease,transform .2s ease; }
.cp-about-hero__actions a:first-child { border-color:#fff; color:var(--ab-ink); background:#fff; }
.cp-about-hero__actions a:hover,.cp-about-hero__actions a:focus-visible { transform:translateY(-2px); background:rgba(255,255,255,.18); }
.cp-about-hero__actions a:first-child:hover,.cp-about-hero__actions a:first-child:focus-visible { background:#eee9ef; }
.cp-about-icon { display:grid; width:18px; height:18px; place-items:center; }
.cp-about-icon svg { display:block; width:18px !important; height:18px !important; }
.cp-about-hero__image { position:relative; min-height:520px; margin:0; }
.cp-about-hero__image::before { position:absolute; z-index:0; top:35px; right:-44px; width:100%; height:calc(100% - 35px); border:1px solid rgba(255,255,255,.28); content:""; }
.cp-about-hero__image img { position:relative; z-index:1; display:block; width:100%; height:clamp(500px,42vw,660px) !important; object-fit:cover; object-position:center; filter:saturate(.85) contrast(.98); }
.cp-about-hero__image figcaption { position:absolute; z-index:2; right:-20px; bottom:24px; padding:17px 20px; color:#fff; background:var(--ab-deep); font:800 10px/1.35 "Open Sans",Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.cp-about-hero__image figcaption strong { font:400 18px/1.3 "Libre Baskerville",Georgia,serif; letter-spacing:-.03em; text-transform:none; }
.cp-about-intro { padding:clamp(86px,10vw,150px) 0; background:#fff; }
.cp-about-intro__grid { display:grid; grid-template-columns:88px minmax(0,1.14fr) minmax(280px,.64fr); gap:clamp(28px,6vw,96px); align-items:start; }
.cp-about-intro__mark { margin:6px 0 0; color:#9e7aa5; font:800 11px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.16em; }
.cp-about-intro h2,.cp-about-principles h2,.cp-about-people h2,.cp-about-place h2,.cp-about-closing h2 { margin:0; font-size:clamp(2rem,3.9vw,4.15rem); line-height:1.1; }
.cp-about-intro .cp-eyebrow { margin-bottom:25px; }
.cp-about-intro__copy { padding-top:36px; border-top:1px solid var(--ab-line); }
.cp-about-intro__copy p { margin-bottom:24px; color:#5f5661; font-size:16px; line-height:1.72; }
.cp-about-intro__copy a,.cp-about-place__actions a { display:inline-flex; min-height:44px; gap:10px; align-items:center; color:var(--ab-deep); font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; }
.cp-about-intro__copy a:hover,.cp-about-place__actions a:hover { text-decoration:underline; text-underline-offset:4px; }
.cp-about-principles { padding:clamp(76px,9vw,124px) 0; color:#fff; background:#29242b; }
.cp-about-principles__head { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(280px,.5fr); gap:50px; margin-bottom:46px; }
.cp-about-principles__head .cp-eyebrow { margin:0 0 22px; color:#c8b5cc; }
.cp-about-principles__head .cp-eyebrow::before { background:#c8b5cc; }
.cp-about-principles__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.22); border-left:1px solid rgba(255,255,255,.22); }
.cp-about-principles article { min-height:270px; padding:clamp(25px,3.3vw,46px); border-right:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); }
.cp-about-principles article > span { display:block; margin-bottom:68px; color:#c8b5cc; font:800 11px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.14em; }
.cp-about-principles h3 { margin:0 0 12px; font-size:clamp(1.35rem,1.9vw,1.75rem); }
.cp-about-principles article p { margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1.6; }
.cp-about-people { padding:clamp(88px,10vw,146px) 0; background:var(--ab-wash); }
.cp-about-people__heading { max-width:700px; margin-bottom:45px; }
.cp-about-people__heading .cp-eyebrow { margin-bottom:23px; }
.cp-about-people__heading > p:last-child { margin:24px 0 0; color:#5f5661; font-size:15px; line-height:1.55; }
.cp-about-people__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; max-width:1120px; }
.cp-about-people__grid article { position:relative; min-height:520px; overflow:hidden; background:#e6dce8; }
.cp-about-people__grid img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 24%; transition:transform .45s ease; }
.cp-about-people__grid article:hover img { transform:scale(1.025); }
.cp-about-person--placeholder { display:grid; place-items:center; background:linear-gradient(145deg,#e0d2e3,#aa8eb2) !important; }
.cp-about-person__placeholder { color:rgba(255,255,255,.76); font:400 clamp(3rem,7vw,6rem)/1 Georgia,serif; letter-spacing:.08em; }
.cp-about-people__grid article > div { position:absolute; right:0; bottom:0; left:0; padding:25px 28px; color:#fff; background:linear-gradient(transparent,rgba(28,21,29,.88)); }
.cp-about-people__grid h3 { margin:0 0 5px; font-size:clamp(1.45rem,2.3vw,2rem); }
.cp-about-people__grid p { margin:0; color:rgba(255,255,255,.8); font-size:13px; line-height:1.45; }
.cp-about-place { padding:clamp(80px,10vw,146px) 0; background:#fff; }
.cp-about-place__grid { display:grid; grid-template-columns:minmax(300px,.94fr) minmax(0,.9fr); gap:clamp(46px,10vw,148px); align-items:center; }
.cp-about-place figure { position:relative; margin:0; padding:0 0 24px 24px; }
.cp-about-place figure::before { position:absolute; top:0; left:0; width:76%; height:78%; background:#e9dfe9; content:""; }
.cp-about-place img { position:relative; display:block; width:100%; height:clamp(370px,35vw,520px) !important; object-fit:cover; }
.cp-about-place .cp-eyebrow { margin-bottom:25px; }
.cp-about-place h2 { max-width:570px; margin-bottom:25px; }
.cp-about-place__grid > div > p:not(.cp-eyebrow) { max-width:420px; margin-bottom:30px; color:#5f5661; font-size:16px; line-height:1.68; }
.cp-about-place__actions { display:flex; flex-wrap:wrap; gap:20px; }
.cp-about-closing { padding:clamp(76px,9vw,122px) 0; text-align:center; color:#fff; background:var(--ab-deep); }
.cp-about-closing .cp-eyebrow { justify-content:center; margin-bottom:24px; color:#d9c9dc; }
.cp-about-closing .cp-eyebrow::before { display:none; }
.cp-about-closing h2 { max-width:740px; margin:0 auto 34px; }
.cp-about-closing > .mp-shell > div { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.cp-about-closing a { display:inline-flex; min-height:50px; gap:10px; align-items:center; justify-content:center; padding:12px 19px; border:1px solid rgba(255,255,255,.66); color:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; }
.cp-about-closing a:first-child { border-color:#fff; color:var(--ab-ink); background:#fff; }
.cp-about-closing a:hover,.cp-about-closing a:focus-visible { background:rgba(255,255,255,.15); transform:translateY(-2px); }
.cp-about-closing a:first-child:hover,.cp-about-closing a:first-child:focus-visible { background:#eee9ef; }
@media (max-width:960px) { .cp-about-hero__grid,.cp-about-place__grid { grid-template-columns:1fr; } .cp-about-hero__copy { max-width:760px; } .cp-about-hero__image { width:min(680px,100%); min-height:0; margin-left:auto; } .cp-about-intro__grid { grid-template-columns:60px minmax(0,1fr); } .cp-about-intro__copy { grid-column:2; padding-top:0; border-top:0; } }
@media (max-width:820px) { .cp-about-hero { padding:calc(68px + 31px) 0 66px; } .cp-about h1 { max-width:650px; font-size:clamp(2.18rem,9.2vw,3.4rem); } .cp-about-hero__image { margin-top:5px; } .cp-about-hero__image img { height:clamp(390px,100vw,570px) !important; } .cp-about-hero__image::before { right:-24px; } .cp-about-intro { padding:74px 0; } .cp-about-principles { padding:72px 0; } .cp-about-principles__head { grid-template-columns:1fr; gap:0; } .cp-about-principles__grid { grid-template-columns:1fr; } .cp-about-principles article { min-height:205px; } .cp-about-principles article > span { margin-bottom:32px; } .cp-about-people { padding:76px 0; } .cp-about-people__grid { grid-template-columns:1fr; } .cp-about-people__grid article { min-height:440px; } .cp-about-place { padding:76px 0; } .cp-about-place__grid { gap:45px; } .cp-about-closing { padding:70px 0; } }
@media (max-width:480px) { .cp-about-hero { padding-top:calc(68px + 27px); } .cp-about h1 { font-size:clamp(2.04rem,8.7vw,2.4rem); } .cp-about-hero__actions { display:grid; grid-template-columns:1fr; } .cp-about-hero__actions a { width:100%; } .cp-about-hero__image { padding-right:14px; } .cp-about-hero__image img { height:390px !important; } .cp-about-hero__image figcaption { right:0; bottom:14px; } .cp-about-intro__grid { grid-template-columns:1fr; gap:18px; } .cp-about-intro__copy { grid-column:auto; } .cp-about-intro__mark { display:none; } .cp-about-intro h2,.cp-about-principles h2,.cp-about-people h2,.cp-about-place h2,.cp-about-closing h2 { font-size:clamp(1.78rem,7.2vw,2.25rem); } .cp-about-people__grid { gap:14px; } .cp-about-people__grid article { min-height:310px; } .cp-about-people__grid article > div { padding:17px 15px; } .cp-about-people__grid h3 { font-size:1.25rem; } .cp-about-people__grid p { font-size:11px; } .cp-about-place figure { padding:0 0 16px 16px; } .cp-about-place img { height:370px !important; } }
@media (prefers-reduced-motion:reduce) { .cp-about * { transition-duration:.01ms !important; animation-duration:.01ms !important; } }

/* Patient Results: a filterable clinical evidence library, separate from both
 * editorial About storytelling and the consultative treatment-page pattern. */
body.mahan-route-gallery .mahan-main { padding-top:0 !important; background:#fff !important; }
body.mahan-route-gallery .mahan-main .entry-content { padding:0 !important; }
.cp-results { --rs-ink:#29242b; --rs-plum:#4b3c4d; --rs-deep:#512958; --rs-wash:#f2eef4; --rs-line:rgba(75,60,77,.22); color:var(--rs-ink); }
.cp-results *, .cp-results *::before, .cp-results *::after { box-sizing:border-box; }
.cp-results :is(h1,h2,h3,p,figure) { margin-top:0; }
.cp-results h1,.cp-results h2 { color:inherit; font-family:"Libre Baskerville",Georgia,serif; font-weight:400; letter-spacing:-.04em; }
.cp-results-hero { position:relative; overflow:hidden; padding:clamp(126px,12vw,172px) 0 clamp(76px,9vw,128px); color:#fff; background:radial-gradient(circle at 83% 12%,rgba(212,188,218,.23),transparent 24%),linear-gradient(126deg,#29242b 0%,#332a35 52%,#4b3c4d 100%); }
.cp-results-hero::before { position:absolute; inset:0; pointer-events:none; opacity:.42; background:linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:84px 84px; content:""; }
.cp-results-hero__grid { position:relative; display:grid; grid-template-columns:minmax(0,.88fr) minmax(430px,.92fr); gap:clamp(54px,8vw,126px); align-items:center; }
.cp-results-hero .cp-eyebrow { margin-bottom:24px; color:#e9d9ec; }
.cp-results-hero .cp-eyebrow::before { background:#e9d9ec; }
.cp-results h1 { max-width:700px; margin-bottom:27px; font-size:clamp(2.85rem,5vw,5.32rem); line-height:1.02; }
.cp-results-hero h1 { color:#fff; }
.cp-results-hero__grid > div:first-child > p:not(.cp-eyebrow) { max-width:570px; margin-bottom:34px; color:rgba(255,255,255,.78); font-size:clamp(1rem,1.25vw,1.16rem); line-height:1.7; }
.cp-results-hero__grid > div:first-child > a { display:inline-flex; min-height:50px; gap:10px; align-items:center; justify-content:center; padding:12px 19px; border:1px solid rgba(255,255,255,.75); color:#29242b; background:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.07em; text-decoration:none; text-transform:uppercase; transition:background .2s ease,transform .2s ease; }
.cp-results-hero__grid > div:first-child > a:hover,.cp-results-hero__grid > div:first-child > a:focus-visible { color:#fff; background:#512958; transform:translateY(-2px); }
.cp-results-hero__visual { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); aspect-ratio:1 / 1; gap:15px; padding:15px; border:1px solid rgba(255,255,255,.27); background:rgba(255,255,255,.10); box-shadow:0 28px 72px rgba(18,12,20,.28); }
.cp-results-hero__visual::before { position:absolute; top:-10px; right:28px; width:112px; height:20px; border:1px solid rgba(255,255,255,.46); border-bottom:0; content:""; }
.cp-results-hero__image { display:grid; min-height:0; place-items:center; overflow:hidden; margin:0; padding:6px; background:#f9f7fa; box-shadow:0 14px 28px rgba(18,12,20,.18); }
.cp-results-hero__image--1 { transform:translateY(5px) rotate(-1deg); }
.cp-results-hero__image--2 { transform:translateY(-4px) rotate(1deg); }
.cp-results-hero__image--3 { transform:translateX(-4px) rotate(-.7deg); }
.cp-results-hero__image img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.cp-results-hero__mark { display:grid; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.34); background:radial-gradient(circle at 28% 25%,rgba(235,215,239,.35),transparent 14%),linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.16)); }
.cp-results-hero__mark::before { color:rgba(255,255,255,.74); font:400 clamp(3.5rem,8vw,7rem)/1 "Libre Baskerville",Georgia,serif; content:"M"; }
.cp-results-library { padding:clamp(84px,10vw,146px) 0; background:#fff; }
.cp-results-library__heading { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(300px,.58fr); gap:clamp(40px,8vw,122px); align-items:end; margin-bottom:37px; }
.cp-results-library__heading .cp-eyebrow { margin-bottom:23px; }
.cp-results-library h2,.cp-results-next h2 { margin:0; font-size:clamp(2rem,3.85vw,4.1rem); line-height:1.1; }
.cp-results-library__heading > p { max-width:420px; margin:0 0 5px; color:#5f5661; font-size:16px; line-height:1.65; }
.cp-results-finder { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; max-width:760px; margin:0 0 25px; padding:11px; border:1px solid var(--rs-line); background:#f8f5f8; }
.cp-results-finder label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; min-width:0; padding:0 14px; border:1px solid rgba(75,60,77,.32); background:#fff; }
.cp-results-finder label > span { flex:0 0 auto; color:var(--rs-plum); font:800 10px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.cp-results-finder input { min-width:0; min-height:48px; border:0; outline:0; color:var(--rs-ink); background:transparent; font:600 15px/1.3 "Open Sans",Arial,sans-serif; }
.cp-results-finder input::placeholder { color:#817783; opacity:1; }
.cp-results-finder label:focus-within { border-color:var(--rs-deep); box-shadow:0 0 0 2px rgba(81,41,88,.12); }
.cp-results-finder > button { display:inline-flex; min-height:50px; gap:10px; align-items:center; justify-content:center; padding:12px 18px; border:1px solid var(--rs-plum); color:#fff; background:var(--rs-plum); font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.065em; cursor:pointer; text-transform:uppercase; transition:background .18s ease,transform .18s ease; }
.cp-results-finder > button:hover,.cp-results-finder > button:focus-visible { background:var(--rs-deep); transform:translateY(-1px); }
.cp-results-discovery { margin:0 0 14px; padding-top:18px; border-top:1px solid var(--rs-line); }
.cp-results-discovery > p { display:flex; flex-wrap:wrap; gap:8px 15px; align-items:baseline; margin:0 0 10px; color:#5f5661; font-size:13px; line-height:1.45; }
.cp-results-discovery > p strong { color:var(--rs-ink); font:800 11px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.095em; text-transform:uppercase; }
.cp-results-discovery > p span::before { margin-right:15px; color:#a98eae; content:"↔"; }
.cp-results-filter-rail { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:8px; align-items:center; }
.cp-results-scroll { display:grid; width:44px; height:44px; place-items:center; padding:0; border:1px solid var(--rs-line); color:var(--rs-deep); background:#fff; font-size:18px; cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease; }
.cp-results-scroll:hover,.cp-results-scroll:focus-visible { border-color:var(--rs-deep); color:#fff; background:var(--rs-deep); }
.cp-results-scroll:disabled { opacity:.32; cursor:default; }
.cp-results-scroll:disabled:hover,.cp-results-scroll:disabled:focus-visible { border-color:var(--rs-line); color:var(--rs-deep); background:#fff; }
.cp-results-filter-scroll { position:relative; min-width:0; overflow:auto; scrollbar-color:#a98eae transparent; scrollbar-width:thin; }
.cp-results-filter-scroll::after { position:absolute; z-index:2; top:0; right:0; bottom:0; width:36px; pointer-events:none; background:linear-gradient(90deg,rgba(255,255,255,0),#fff); content:""; }
.cp-results-filters { display:flex; width:max-content; min-width:100%; gap:9px; padding:1px 38px 8px 1px; border-bottom:1px solid var(--rs-line); }
.cp-results-filters button { flex:0 0 auto; min-height:44px; padding:10px 15px; border:1px solid var(--rs-line); border-radius:0; color:var(--rs-plum); background:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.045em; cursor:pointer; transition:background .18s ease,color .18s ease,border-color .18s ease; }
.cp-results-filters button:hover,.cp-results-filters button:focus-visible,.cp-results-filters button.is-active { border-color:var(--rs-deep); color:#fff; background:var(--rs-deep); }
.cp-results-search-status { min-height:22px; margin:0 0 19px; color:#5f5661; font-size:13px; line-height:1.55; }
.cp-results-search-status.is-empty { color:var(--rs-deep); font-weight:700; }
.cp-results-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cp-result-card { margin:0; border:1px solid var(--rs-line); background:#fff; }
.cp-result-card[hidden] { display:none; }
.cp-result-card > div { aspect-ratio:1 / 1; overflow:hidden; background:#eee9ef; }
.cp-result-card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.cp-result-card:hover img { transform:scale(1.025); }
.cp-result-card figcaption { display:flex; min-height:50px; flex-direction:column; gap:4px; justify-content:center; padding:12px 14px; }
.cp-result-card figcaption span { color:var(--rs-deep); font:800 10px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.cp-results-next { padding:clamp(82px,10vw,140px) 0; color:#fff; background:#29242b; }
.cp-results-next__grid { display:grid; grid-template-columns:82px minmax(0,1fr) minmax(300px,.58fr); gap:clamp(28px,6vw,96px); align-items:start; }
.cp-results-next__number { margin:6px 0 0; color:#c7aecc; font:800 11px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.16em; }
.cp-results-next .cp-eyebrow { margin-bottom:24px; color:#c7aecc; }
.cp-results-next .cp-eyebrow::before { background:#c7aecc; }
.cp-results-next__grid > div:last-child { padding-top:37px; border-top:1px solid rgba(255,255,255,.25); }
.cp-results-next__grid > div:last-child > p { margin-bottom:22px; color:rgba(255,255,255,.76); font-size:16px; line-height:1.68; }
.cp-results-next__grid > div:last-child > a { display:inline-flex; min-height:44px; align-items:center; margin:0 18px 8px 0; color:#fff; font:800 12px/1.2 "Open Sans",Arial,sans-serif; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
.cp-results-next__grid > div:last-child > a:first-of-type { text-decoration:underline; text-underline-offset:5px; }
.cp-results-next__grid > div:last-child > a:hover { color:#e8d9eb; }
@media (max-width:960px) { .cp-results-hero__grid { grid-template-columns:1fr; } .cp-results-hero__visual { width:min(720px,100%); margin-left:auto; } .cp-results-next__grid { grid-template-columns:58px minmax(0,1fr); } .cp-results-next__grid > div:last-child { grid-column:2; padding-top:0; border-top:0; } }
@media (max-width:820px) { .cp-results-hero { padding:calc(68px + 46px) 0 68px; } .cp-results h1 { max-width:610px; font-size:clamp(2.18rem,9.2vw,3.4rem); } .cp-results-library { padding:74px 0; } .cp-results-library__heading { grid-template-columns:1fr; gap:17px; margin-bottom:28px; } .cp-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .cp-results-next { padding:72px 0; } }
@media (max-width:480px) { .cp-results-hero { padding-top:calc(68px + 38px); } .cp-results h1 { font-size:clamp(2.04rem,8.7vw,2.4rem); } .cp-results-hero__grid > div:first-child > a { width:100%; } .cp-results-hero__visual { padding:9px; gap:9px; } .cp-results-hero__visual::before { top:-7px; right:18px; width:82px; height:14px; } .cp-results-hero__image { padding:4px; } .cp-results-hero__image--1 { transform:translateY(4px) rotate(-1deg); } .cp-results-library h2,.cp-results-next h2 { font-size:clamp(1.78rem,7.2vw,2.25rem); } .cp-results-finder { grid-template-columns:1fr; gap:8px; padding:8px; } .cp-results-finder label { grid-template-columns:1fr; gap:1px; padding:9px 13px 2px; } .cp-results-finder input { min-height:40px; font-size:14px; } .cp-results-finder > button { min-height:48px; } .cp-results-discovery { margin-bottom:12px; } .cp-results-discovery > p { display:grid; gap:4px; } .cp-results-discovery > p span::before { margin-right:8px; } .cp-results-filter-rail { gap:6px; } .cp-results-filters button { padding:9px 13px; font-size:11px; } .cp-result-card figcaption { min-height:48px; padding:10px; } .cp-result-card figcaption span { font-size:9px; letter-spacing:.07em; } .cp-results-next__grid { grid-template-columns:1fr; gap:18px; } .cp-results-next__number { display:none; } .cp-results-next__grid > div:last-child { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { .cp-results * { transition-duration:.01ms !important; animation-duration:.01ms !important; } }

@media (max-width:960px) {
  .cp-appointment-hero__grid,.cp-appointment-form__grid,.cp-privacy-hero__grid,.cp-privacy-content__grid { grid-template-columns:1fr; }
  .cp-appointment-hero__copy { max-width:760px; }
  .cp-appointment-hero__card { width:min(480px,100%); }
  .cp-privacy-hero aside { width:min(390px,100%); }
  .cp-privacy-toc { position:static; display:grid; grid-template-columns:160px minmax(0,1fr); gap:20px; align-items:start; }
  .cp-privacy-toc > p { margin:12px 0 0; }
  .cp-privacy-toc ol { grid-template-columns:repeat(2,minmax(0,1fr)); border-left:1px solid var(--cp-line); }
  .cp-privacy-toc li { border-left:1px solid var(--cp-line); }
  .cp-privacy-toc a { padding:8px 11px; }
}

@media (max-width:820px) {
  .cp-appointment-hero { padding:calc(68px + 31px) 0 64px; background:linear-gradient(180deg,#fff 0%,#fff 73%,#eee9ef 73%,#eee9ef 100%); }
  .cp-appointment-hero__grid { gap:42px; }
  .cp-appointment h1 { max-width:610px; font-size:clamp(2.18rem,9.2vw,3.38rem); }
  .cp-appointment-hero__lead { margin-bottom:27px; font-size:16px; }
  .cp-appointment-hero__card { min-height:268px; }
  .cp-appointment-trust__strip { margin-top:-19px !important; }
  .cp-appointment-form { padding:72px 0; }
  .cp-appointment-form__grid { gap:38px; }
  .cp-appointment h2 { font-size:clamp(1.76rem,7.2vw,2.35rem); }
  .cp-appointment-form__panel { padding:27px 20px 25px; }
  .cp-appointment-closing { padding:25px 0; }
  .cp-appointment-closing .mp-shell { display:grid; grid-template-columns:1fr; gap:5px; }
  .cp-appointment-closing p { margin:0 0 8px; }
  .cp-privacy-hero { padding:calc(68px + 31px) 0 65px; background:linear-gradient(180deg,#f7f4f7 0%,#f7f4f7 77%,#eee9ef 77%,#eee9ef 100%); }
  .cp-privacy-hero__grid { gap:38px; }
  .cp-privacy-hero h1 { max-width:610px; font-size:clamp(2.18rem,9.15vw,3.36rem); }
  .cp-privacy-hero__grid > div > p:not(.cp-eyebrow):not(.cp-privacy-hero__date) { font-size:16px; }
  .cp-privacy-content { padding:68px 0; }
  .cp-privacy-content__grid { gap:42px; }
  .cp-privacy-copy { max-width:none; }
}

@media (max-width:480px) {
  .cp-appointment-hero { padding-top:calc(68px + 27px); }
  .cp-appointment h1 { font-size:clamp(2.04rem,8.7vw,2.4rem); }
  .cp-appointment-hero__actions { display:grid; grid-template-columns:1fr; }
  .cp-appointment-button { width:100%; }
  .cp-appointment-hero__card { min-height:249px; padding:24px; }
  .cp-appointment-hero__card::after { inset:13px; }
  .cp-appointment-trust__strip { margin-top:-14px !important; }
  .cp-appointment-steps li { grid-template-columns:34px minmax(0,1fr); }
  .cp-appointment-form__panel .mahan-form { gap:14px; }
  .cp-privacy-hero { padding-top:calc(68px + 27px); }
  .cp-privacy-hero h1 { font-size:clamp(2.04rem,8.7vw,2.4rem); }
  .cp-privacy-hero aside { padding:20px; }
  .cp-privacy-toc { display:block; overflow:hidden; }
  .cp-privacy-toc > p { margin:0 0 13px; }
  .cp-privacy-toc ol { display:flex; width:max-content; max-width:none; gap:0; overflow:auto; padding-right:30px; border-left:0; }
  .cp-privacy-toc li { width:176px; flex:0 0 176px; border-left:1px solid var(--cp-line); }
  .cp-privacy-toc li:first-child { border-left:0; }
  .cp-privacy-toc a { min-height:52px; padding:9px 10px; }
  .cp-privacy-copy > section { padding-bottom:31px; margin-bottom:32px; }
  .cp-privacy-copy h2 { font-size:clamp(1.5rem,6.65vw,1.95rem); }
  .cp-privacy-copy p,.cp-privacy-copy li { font-size:15px; }
}

@media (prefers-reduced-motion:reduce) { .cp-appointment *, .cp-privacy * { transition-duration:.01ms !important; animation-duration:.01ms !important; } }

/* Desktop editorial-density pass. Core information pages retain their own
 * hierarchy, but use the same more composed large-screen scale as the shared
 * treatment system. Mobile rules above remain the source of truth below 981px. */
@media (min-width:981px) {
  .cp-contact-hero { padding-block:clamp(108px,9vw,132px) clamp(62px,6vw,84px); }
  .cp-contact h1 { max-width:560px; font-size:clamp(2.45rem,3.55vw,3.75rem); }
  .cp-visit,.cp-contact-paths,.cp-enquiry { padding-block:clamp(64px,6vw,88px); }
  .cp-visit h2,.cp-section-heading h2,.cp-enquiry h2 { font-size:clamp(1.9rem,2.75vw,3rem); }
  .cp-contact-paths__grid article { min-height:238px; padding:clamp(23px,2.4vw,31px); }

  .cp-appointment-hero { padding-block:clamp(108px,9vw,132px) clamp(58px,6vw,82px); }
  .cp-appointment h1 { max-width:575px; font-size:clamp(2.45rem,3.55vw,3.75rem); }
  .cp-appointment-hero__card { min-height:256px; padding:26px; }
  .cp-appointment-form { padding-block:clamp(66px,6vw,88px); }
  .cp-appointment h2 { font-size:clamp(1.9rem,2.75vw,3rem); }

  .cp-privacy-hero { padding-block:clamp(108px,9vw,128px) clamp(58px,6vw,80px); }
  .cp-privacy-hero h1 { max-width:590px; font-size:clamp(2.45rem,3.5vw,3.7rem); }
  .cp-privacy-content { padding-block:clamp(64px,6vw,88px); }

  .cp-about-hero { padding-block:clamp(108px,9vw,132px) clamp(64px,7vw,90px); }
  .cp-about h1 { max-width:600px; font-size:clamp(2.45rem,3.55vw,3.75rem); }
  .cp-about-hero__image { min-height:430px; }
  .cp-about-hero__image img { height:clamp(430px,34vw,520px) !important; }
  .cp-about-intro,.cp-about-people,.cp-about-place { padding-block:clamp(66px,6vw,92px); }
  .cp-about-principles,.cp-about-closing { padding-block:clamp(62px,6vw,84px); }
  .cp-about-intro h2,.cp-about-principles h2,.cp-about-people h2,.cp-about-place h2,.cp-about-closing h2 { font-size:clamp(1.95rem,2.9vw,3.2rem); }
  .cp-about-principles article { min-height:226px; padding:clamp(24px,2.6vw,34px); }
  .cp-about-principles article > span { margin-bottom:38px; }
  .cp-about-people__grid article { min-height:430px; }

  .cp-results-hero { padding-block:clamp(108px,9vw,132px) clamp(64px,7vw,90px); }
  .cp-results h1 { max-width:590px; font-size:clamp(2.45rem,3.55vw,3.75rem); }
  .cp-results-library,.cp-results-next { padding-block:clamp(66px,6vw,92px); }
  .cp-results-library h2,.cp-results-next h2 { font-size:clamp(1.95rem,2.9vw,3.2rem); }
}
