:root {
  --green-950: #0d2f27;
  --green-900: #123c32;
  --green-800: #184f40;
  --green-700: #24634f;
  --green-100: #e9f2ee;
  --green-050: #f4f8f6;
  --ink: #10231e;
  --muted: #66736f;
  --white: #ffffff;
  --accent: #f4d447;
  --accent-strong: #e3c02c;
  --line: rgba(16, 35, 30, 0.10);
  --shadow: 0 22px 70px rgba(15, 52, 43, 0.10);
  --radius-xl: 36px;
  --radius-lg: 26px;
  --radius-md: 18px;
  --max-width: 1380px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;

  background: #fff;
  color: var(--ink);

  font-family:
    "Manrope",
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;

  font-size: 16px;
  line-height: 1.65;

  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
}

p {
  font-family: "Manrope", sans-serif;

  font-weight: 400;

  letter-spacing: -0.01em;
}

img,
svg {
  display: block;
  max-width: 100%;
}

button,
input,
textarea,
select {
  font: inherit;
}

.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 999;
  transform: translateY(-160%);
  background: var(--white);
  color: var(--green-900);
  padding: 10px 14px;
  border-radius: 10px;
  box-shadow: var(--shadow);
}

.skip-link:focus {
  transform: none;
}

.site-shell {
  width: min(calc(100% - 36px), var(--max-width));
  margin: 22px auto;
  background: rgba(255,255,255,0.48);
  border-radius: 42px;
}

.site-header {
  position: absolute;
  z-index: 20;
  width: min(calc(100% - 80px), 1260px);
  left: 50%;
  transform: translateX(-50%);
  top: 46px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 28px;
  align-items: center;
  color: var(--white);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.brand strong {
  display: block;
  font-size: 21px;
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.brand small {
  display: block;
  margin-top: 4px;
  font-size: 9px;
  line-height: 1;
  letter-spacing: 0.28em;
  opacity: 0.72;
}

.brand-mark {
  width: 43px;
  height: 43px;

  display: grid;
  place-items: center;

  flex: 0 0 auto;
}

.brand-mark img {
  width: 100%;
  height: 100%;

  display: block;
  object-fit: contain;
}

.brand-mark .accent {
  fill: var(--accent);
}

.header-accreditation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.header-accreditation img {
  display: block;

  width: 190px;
  height: auto;

  object-fit: contain;
}

/* =========================================
   HEADER BOOK NOW BUTTON
========================================= */

.header-book-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  gap: 18px;

  min-height: 54px;

  padding:
    6px
    6px
    6px
    22px;

  border-radius: 999px;

  background: #f4d447;
  color: #123c32;

  font-family: "Manrope", sans-serif;

  font-size: 15px;
  font-weight: 700;

  line-height: 1;

  text-decoration: none;

  box-shadow:
    0 8px 24px
    rgba(244, 212, 71, .18);

  transition:
    transform .2s ease,
    background-color .2s ease;
}


.header-book-btn:hover,
.header-book-btn:focus-visible {
  transform: translateY(-2px);

  background: #ffe15d;
}


.header-book-arrow {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: #fff;
  color: #123c32;
}


.header-book-arrow svg {
  width: 20px;
  height: 20px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;

  stroke-linecap: round;
  stroke-linejoin: round;

  transition: transform .2s ease;
}


.header-book-btn:hover .header-book-arrow svg,
.header-book-btn:focus-visible .header-book-arrow svg {
  transform: translateX(3px);
}


.header-book-arrow i {
  transition: transform .2s ease;
}


.header-book-btn:hover .header-book-arrow i,
.header-book-btn:focus-visible .header-book-arrow i {
  transform: translateX(3px);
}


/* White circular arrow */

.header-book-arrow {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: #fff;

  color: #123c32;

  font-size: 25px;
  font-weight: 500;

  line-height: 1;

  transition: transform .2s ease;
}


.header-book-btn:hover .header-book-arrow,
.header-book-btn:focus-visible .header-book-arrow {
  transform: rotate(45deg);
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.main-nav a {
  position: relative;

  color: rgba(255,255,255,.88);

  font-family: "Manrope", sans-serif;

  font-size: 14px;
  font-weight: 600;

  letter-spacing: -0.01em;

  text-decoration: none;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  color: var(--white);
}

.main-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  height: 3px;
  border-radius: 999px;
  background: var(--accent);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 11px;
  font-family: "Manrope", sans-serif;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.btn:hover,
.btn:focus-visible {
  transform: translateY(-2px);
}

.btn-accent {
  background: var(--accent);
  color: #132c25;
  box-shadow: 0 8px 24px rgba(244, 212, 71, 0.18);
}

.btn-accent:hover,
.btn-accent:focus-visible {
  background: #ffe063;
}

.btn-outline-light {
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.05);
}

.btn-outline-light:hover,
.btn-outline-light:focus-visible {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.9);
}

.hero {
  min-height: 700px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 49% 51%;
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 20% 28%, rgba(255,255,255,0.05) 0 1px, transparent 1.6px) 0 0 / 22px 22px,
    linear-gradient(135deg, var(--green-800), #235f4d 68%, #2b735c);
  color: var(--white);
  box-shadow: var(--shadow);
}

.hero-copy {
  position: relative;
  z-index: 4;
  padding: 155px 22px 56px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.eyebrow {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 18px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
  color: var(--white);
  font-size: 12px;
  font-weight: 800;
}

.eyebrow-light {
  background: var(--green-100);
  color: var(--green-800);
}

.eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(244, 212, 71, .12);
}

.hero h1 {
  max-width: 660px;
  margin: 0;
  font-size: clamp(44px, 5.4vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  font-weight: 900;
}

.hero-intro {
  max-width: 590px;
  margin: 26px 0 0;
  color: rgba(255,255,255,0.84);
  font-size: 18px;
  line-height: 1.6;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.hero-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 42px;
}

.mini-feature {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: rgba(255,255,255,0.82);
  font-size: 12px;
  line-height: 1.35;
}

.mini-feature strong {
  display: block;
  color: var(--white);
}

.round-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--white);
  color: var(--green-800);
  font-size: 18px;
  font-weight: 900;
}

.hero-pill {
  min-height: 64px;

  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  padding:
    8px
    8px
    8px
    28px;

  border-radius: 999px;

  font-family: "Manrope", sans-serif;
  font-size: 15px;
  font-weight: 700;

  line-height: 1;

  text-decoration: none;

  transition:
    transform .2s ease,
    background-color .2s ease;
}


.hero-pill-yellow {
  background: #f4d447;
  color: #123c32;
}


.hero-pill-yellow:hover,
.hero-pill-yellow:focus-visible {
  background: #ffe15d;
  transform: translateY(-2px);
}


.hero-pill-arrow {
  width: 48px;
  height: 48px;

  flex: 0 0 48px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: #fff;
  color: #123c32;
}


.hero-pill-arrow svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;

  stroke-linecap: round;
  stroke-linejoin: round;

  transition: transform .2s ease;
}


.hero-pill:hover .hero-pill-arrow svg,
.hero-pill:focus-visible .hero-pill-arrow svg {
  transform: translateX(3px);
}

.hero-visual {
  min-height: 700px;
  position: relative;
  overflow: hidden;
}

.hero-visual::before {
  content: "";
  position: absolute;
  left: -90px;
  top: 140px;
  width: 270px;
  height: 670px;
  background: rgba(255,255,255,0.13);
  border-radius: 54% 46% 0 0 / 60% 50% 0 0;
  transform: rotate(18deg);
  z-index: 1;
}

.hero-photo-card {
  position: absolute;
  inset: 110px 0 0 12px;
  border-top-left-radius: 52% 36%;
  background:
    linear-gradient(180deg, rgba(18,60,50,0.06), rgba(18,60,50,0.18)),
    url("/images/hero-physio.webp") center / cover no-repeat,
    linear-gradient(135deg, #d8e2df, #a8bbb4);
}

.hero-visual::after {
  content: "";
  position: absolute;
  width: 600px;
  height: 300px;
  right: -130px;
  bottom: -125px;
  background: #f7faf8;
  border-radius: 50%;
  transform: rotate(-12deg);
  z-index: 2;
}

.hero-script {
  position: absolute;
  z-index: 4;
  right: 42px;
  bottom: 52px;
  color: var(--green-900);
  font-family: "Segoe Script", "Bradley Hand", cursive;
  font-size: 34px;
  line-height: 1.03;
  transform: rotate(-5deg);
}

.hero-script span {
  margin-left: 18px;
}

.hero-script::after {
  content: "";
  display: block;
  width: 140px;
  height: 4px;
  margin: 10px 0 0 32px;
  border-radius: 999px;
  background: var(--accent);
  transform: rotate(-5deg);
}

.benefits-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 20px 0 0;
  padding: 20px;
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.72);
}

.benefits-strip > div {
  min-height: 145px;
  padding: 24px;
  border-radius: 20px;
  background: var(--white);
  border: 1px solid var(--line);
}

.benefit-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 13px;
  border-radius: 50%;
  background: var(--green-100);
  color: var(--green-800);
  font-size: 21px;
  font-weight: 900;
}

.benefits-strip h2 {
  margin: 0 0 6px;
  font-size: 19px;
  letter-spacing: -0.03em;
}

.benefits-strip p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.section {
  margin-top: 20px;
  padding: 20px;
  border-radius: var(--radius-xl);
  background: rgba(255,255,255,0.75);
}

.about-section {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 22px;
  align-items: stretch;
}

.about-photo {
  min-height: 560px;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(13,47,39,0.02), rgba(13,47,39,0.12)),
    url("/images/about-physio.webp") center / cover no-repeat,
    linear-gradient(135deg, #d4dedb, #9fb1aa);
}

.about-content {
  padding: 42px 34px 34px 20px;
  align-self: center;
}

.about-content h2,
.section-heading h2,
.review-panel h2,
.contact-cta h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 55px);
  line-height: 1.02;
  letter-spacing: -0.05em;
  font-weight: 900;
}

.about-content p {
  max-width: 650px;
  color: var(--muted);
  font-size: 16px;
}

.about-content .btn {
  margin-top: 12px;
}

.about-highlights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 38px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

.about-highlights strong {
  display: block;
  color: var(--green-800);
  font-size: 18px;
}

.about-highlights span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 13px;
}

.section-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 40px;
  align-items: end;
  padding: 20px 10px 32px;
}

.section-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
}

/* =========================================
   SERVICES SECTION - FEATURE CARDS
========================================= */

.services-section {
  background: #ffffff;
}

.services-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.service-feature-card {
  overflow: hidden;
  border-radius: 28px;
  background: #edf1ed;
  border: 1px solid rgba(16, 35, 30, 0.08);
}

.service-feature-top {
  padding: 26px 30px 24px;
  min-height: 190px;
}

.service-feature-top h3 {
  margin: 0 0 20px;
  color: #173226;
  font-family: "Manrope", sans-serif;
  font-size: clamp(24px, 2vw, 34px);
  line-height: 1.08;
  letter-spacing: -0.045em;
  font-weight: 800;
}

.service-feature-top p {
  margin: 0;
  color: #2f4037;
  font-family: "Manrope", sans-serif;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: -0.01em;
  max-width: 92%;
}

/* =========================================
   SERVICE IMAGES - SHORTER
========================================= */

.service-feature-image-wrap {
  position: relative;
  isolation: isolate;

  height: 240px;
  min-height: 240px;

  overflow: hidden;
}

.service-feature-image-wrap img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;
  object-position: center;
}

.service-feature-badge {
  position: absolute;
  top: -48px;
  right: 26px;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background: #f3f5f1;
  color: #233526;
  display: grid;
  place-items: center;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
}

.service-feature-badge svg {
  width: 48px;
  height: 48px;
}

/* =========================================
   SERVICE READ MORE BUTTON
========================================= */

.service-read-more {
  position: absolute;

  left: 20px;
  bottom: 20px;

  min-height: 56px;

  display: inline-flex;
  align-items: center;
  justify-content: space-between;

  gap: 18px;

  padding:
    6px
    6px
    6px
    22px;

  border: 2px solid #fff;
  border-radius: 999px;

  background: #173226;
  color: #fff;

  font-family: "Manrope", sans-serif;

  font-size: 15px;
  font-weight: 700;

  line-height: 1;

  text-decoration: none;

  box-shadow: 0 8px 24px rgba(0,0,0,.12);

  transition:
    transform .2s ease,
    background-color .2s ease;
}


.service-read-more-arrow {
  width: 42px;
  height: 42px;

  flex: 0 0 42px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: #fff;
  color: #173226;

  font-size: 25px;

  line-height: 1;

  transition: transform .2s ease;
}


.service-read-more:hover,
.service-read-more:focus-visible {
  transform: translateY(-3px);

  background: #214936;
}


.service-read-more:hover .service-read-more-arrow,
.service-read-more:focus-visible .service-read-more-arrow {
  transform: rotate(45deg);
}

/* =========================================
   CLINIC LOCATION / GOOGLE MAP
========================================= */

.location-section {
  width: 100%;

  padding:
    72px
    max(24px, calc((100vw - 1260px) / 2));

  background: #ffffff;
}


/* Heading above map */

.location-heading {
  display: grid;

  grid-template-columns:
    1fr
    .72fr;

  gap: 40px;

  align-items: end;

  margin-bottom: 34px;
}


.location-heading h2 {
  margin: 0;

  color: #173226;

  font-family: "Manrope", sans-serif;

  font-size: clamp(34px, 4vw, 55px);

  font-weight: 900;

  line-height: 1.02;

  letter-spacing: -0.05em;
}


.location-heading p {
  margin: 0;

  color: var(--muted);

  font-family: "Manrope", sans-serif;

  font-size: 16px;

  line-height: 1.6;
}


/* Map */

.clinic-map {
  position: relative;

  width: 100%;

  height: 520px;

  overflow: hidden;

  border-radius: 28px;

  background: #e9f2ee;
}


.clinic-map iframe {
  position: absolute;

  inset: 0;

  width: 100%;
  height: 100%;

  border: 0;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 820px) {

  .location-section {
    padding:
      54px
      20px;
  }

  .location-heading {
    grid-template-columns: 1fr;

    gap: 16px;

    margin-bottom: 28px;
  }

  .clinic-map {
    height: 420px;

    border-radius: 22px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 560px) {

  .location-section {
    padding:
      42px
      12px;
  }

  .location-heading {
    margin-bottom: 22px;
  }

  .clinic-map {
    height: 350px;

    border-radius: 18px;
  }

}

/* =========================================
   BOOKING MODAL
========================================= */

.booking-modal {
  position: fixed;
  z-index: 9999;

  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 24px;

  opacity: 0;
  visibility: hidden;

  transition:
    opacity .25s ease,
    visibility .25s ease;
}

.booking-modal.is-open {
  opacity: 1;
  visibility: visible;
}


/* Background overlay */

.booking-modal-backdrop {
  position: absolute;
  inset: 0;

  background: rgba(7, 27, 22, .72);

  backdrop-filter: blur(4px);
}


/* Modal box */

.booking-modal-dialog {
  position: relative;
  z-index: 2;

  width: min(100%, 700px);
  max-height: calc(100vh - 48px);

  overflow-y: auto;

  border-radius: 30px;

  background: #ffffff;

  box-shadow:
    0 30px 90px
    rgba(0,0,0,.24);
}


/* Content */

.booking-modal-content {
  padding: 44px;
}


.booking-modal-content h2 {
  margin: 0;

  color: #173226;

  font-family: "Manrope", sans-serif;

  font-size: clamp(34px, 4vw, 48px);

  font-weight: 900;

  line-height: 1.03;

  letter-spacing: -0.05em;
}


.booking-modal-intro {
  max-width: 570px;

  margin: 18px 0 30px;

  color: var(--muted);

  font-size: 16px;

  line-height: 1.6;
}


/* Close button */

.booking-modal-close {
  position: absolute;

  z-index: 5;

  top: 18px;
  right: 18px;

  width: 44px;
  height: 44px;

  display: grid;
  place-items: center;

  padding: 0;

  border: 0;
  border-radius: 50%;

  background: #edf1ed;

  color: #173226;

  font-size: 28px;

  line-height: 1;

  cursor: pointer;
}


/* Form */

.booking-form-grid {
  display: grid;

  grid-template-columns:
    1fr
    1fr;

  gap: 18px;
}


.booking-field {
  display: flex;
  flex-direction: column;

  gap: 7px;
}


.booking-field-full {
  grid-column: 1 / -1;
}


.booking-field label {
  color: #173226;

  font-family: "Manrope", sans-serif;

  font-size: 13px;
  font-weight: 700;
}


.booking-field input,
.booking-field select,
.booking-field textarea {
  width: 100%;

  padding: 14px 16px;

  border:
    1px solid
    rgba(16,35,30,.14);

  border-radius: 12px;

  outline: none;

  background: #f8faf8;

  color: #173226;

  font-family: "Manrope", sans-serif;

  font-size: 15px;

  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background .2s ease;
}


.booking-field textarea {
  resize: vertical;
}


.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus {
  border-color: #315f4e;

  background: #ffffff;

  box-shadow:
    0 0 0 3px
    rgba(49,95,78,.10);
}


/* Spam field */

.booking-honeypot {
  position: absolute;

  left: -9999px;

  width: 1px;
  height: 1px;

  overflow: hidden;
}


/* Submit button */

.booking-submit {
  min-height: 60px;

  display: inline-flex;
  align-items: center;

  gap: 10px;

  margin-top: 24px;

  padding:
    6px
    6px
    6px
    24px;

  border: 0;
  border-radius: 999px;

  background: #f4d447;

  color: #123c32;

  font-family: "Manrope", sans-serif;

  font-size: 15px;
  font-weight: 700;

  cursor: pointer;

  transition:
    transform .2s ease,
    background .2s ease;
}


.booking-submit:hover {
  transform: translateY(-2px);

  background: #ffe15d;
}


.booking-submit-arrow {
  width: 46px;
  height: 46px;

  flex: 0 0 46px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: #ffffff;
}


.booking-submit-arrow svg {
  width: 20px;
  height: 20px;

  fill: none;

  stroke: currentColor;
  stroke-width: 2.2;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Stop page scrolling */

body.modal-open {
  overflow: hidden;
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 620px) {

  .booking-modal {
    align-items: flex-start;
     padding:
      max(14px, env(safe-area-inset-top))
      12px
      max(14px, env(safe-area-inset-bottom));

    overflow-y: auto;
  }

  .booking-modal-dialog {
    width: 100%;
    
     max-height:
      calc(
        100dvh
        - 28px
        - env(safe-area-inset-top)
        - env(safe-area-inset-bottom)
      );

    margin: 0 auto;

    overflow-y: auto;

    border-radius: 22px;

    -webkit-overflow-scrolling: touch;
  }

  .booking-modal-content {
     padding:
      54px
      22px
      28px;
  }

  .booking-form-grid {
    grid-template-columns: 1fr;
  }

  .booking-field-full {
    grid-column: auto;
  }

  .booking-submit {
    width: 100%;

    justify-content:
      space-between;
    margin-bottom: 6px;
      
  }

}

/* =========================================
      THANKYOU PAGE
    ========================================= */

    .thank-you-page {
      position: relative;

      width: 100%;
      min-height: 100vh;

      display: flex;
      align-items: center;
      justify-content: center;

      padding: 50px 24px;

      overflow: hidden;

      background:
        linear-gradient(
          135deg,
          #315f4e 0%,
          #376b56 55%,
          #2e5d4b 100%
        );
    }


    /* subtle background shape */

    .thank-you-page::before {
      content: "";

      position: absolute;

      width: 600px;
      height: 600px;

      right: -200px;
      top: -200px;

      border-radius: 50%;

      background:
        rgba(255,255,255,.035);
    }


    .thank-you-page::after {
      content: "";

      position: absolute;

      width: 450px;
      height: 450px;

      left: -160px;
      bottom: -190px;

      border-radius: 50%;

      background:
        rgba(255,255,255,.025);
    }


    /* =========================================
       CARD
    ========================================= */

    .thank-you-card {
      position: relative;
      z-index: 2;

      width: min(100%, 720px);

      padding: 58px 54px;

      text-align: center;

      border-radius: 32px;

      background: #ffffff;

      box-shadow:
        0 30px 90px
        rgba(5, 30, 23, .22);
    }


    /* =========================================
       CHECK ICON
    ========================================= */

    .thank-you-icon {
      width: 82px;
      height: 82px;

      margin: 0 auto 28px;

      display: grid;
      place-items: center;

      border-radius: 50%;

      background: var(--yellow);

      color: var(--green-dark);
    }


    .thank-you-icon svg {
      width: 38px;
      height: 38px;

      fill: none;

      stroke: currentColor;
      stroke-width: 2.4;

      stroke-linecap: round;
      stroke-linejoin: round;
    }


    /* =========================================
       TEXT
    ========================================= */

    .thank-you-eyebrow {
      display: inline-flex;
      align-items: center;

      gap: 7px;

      margin-bottom: 18px;

      padding: 7px 11px;

      border-radius: 999px;

      background: var(--green-light);

      color: var(--green);

      font-size: 12px;
      font-weight: 800;
    }


    .thank-you-dot {
      width: 7px;
      height: 7px;

      border-radius: 50%;

      background: var(--yellow);
    }


    .thank-you-card h1 {
      margin: 0;

      color: var(--green-dark);

      font-size:
        clamp(38px, 6vw, 58px);

      font-weight: 900;

      line-height: 1.02;

      letter-spacing: -0.055em;
    }


    .thank-you-intro {
      max-width: 550px;

      margin:
        22px
        auto
        0;

      color: var(--muted);

      font-size: 17px;

      line-height: 1.65;
    }


    .thank-you-note {
      max-width: 520px;

      margin:
        18px
        auto
        0;

      color: var(--muted);

      font-size: 14px;

      line-height: 1.6;
    }


    /* =========================================
       CONTACT DETAILS
    ========================================= */

    .thank-you-contact {
      margin-top: 30px;

      padding: 22px;

      border-radius: 18px;

      background: #f5f8f6;
    }


    .thank-you-contact strong {
      display: block;

      margin-bottom: 6px;

      color: var(--green-dark);

      font-size: 14px;
    }


    .thank-you-contact span {
      color: var(--muted);

      font-size: 15px;
    }


    /* =========================================
       BUTTON
    ========================================= */

    .thank-you-home {
      min-height: 62px;

      display: inline-flex;
      align-items: center;

      gap: 10px;

      margin-top: 30px;

      padding:
        7px
        7px
        7px
        26px;

      border-radius: 999px;

      background: var(--yellow);

      color: var(--green-dark);

      font-size: 15px;
      font-weight: 700;

      text-decoration: none;

      transition:
        transform .2s ease,
        background .2s ease;
    }


    .thank-you-home:hover,
    .thank-you-home:focus-visible {
      transform: translateY(-2px);

      background: #ffe15d;
    }


    .thank-you-home-arrow {
      width: 48px;
      height: 48px;

      display: grid;
      place-items: center;

      flex: 0 0 48px;

      border-radius: 50%;

      background: #ffffff;
    }


    .thank-you-home-arrow svg {
      width: 20px;
      height: 20px;

      fill: none;

      stroke: currentColor;
      stroke-width: 2.2;

      stroke-linecap: round;
      stroke-linejoin: round;
    }


    /* =========================================
       MOBILE
    ========================================= */

    @media (max-width: 600px) {

      .thank-you-page {
        padding: 20px 14px;
      }

      .thank-you-card {
        padding:
          42px
          22px;

        border-radius: 24px;
      }

      .thank-you-icon {
        width: 70px;
        height: 70px;

        margin-bottom: 22px;
      }

      .thank-you-icon svg {
        width: 32px;
        height: 32px;
      }

      .thank-you-card h1 {
        font-size:
          clamp(36px, 11vw, 48px);
      }

      .thank-you-intro {
        font-size: 16px;
      }

      .thank-you-home {
        width: 100%;

        justify-content: space-between;
      }

    }

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1200px) {
  .services-card-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 820px) {
  .service-feature-top {
    min-height: auto;
    padding: 24px 24px 22px;
  }

  .service-feature-top h3 {
    font-size: clamp(24px, 4vw, 30px);
  }

  .service-feature-top p {
    max-width: 100%;
    font-size: 16px;
  }

   .service-feature-image-wrap {
    height: 230px;
    min-height: 230px;
  }

  .service-feature-badge {
    width: 92px;
    height: 92px;
    top: -44px;
    right: 20px;
  }
}

@media (max-width: 560px) {
  .services-card-grid {
    grid-template-columns: 1fr;
  }

  .service-feature-card {
    border-radius: 22px;
  }

  .service-feature-top {
    padding: 22px 20px 20px;
  }

  .service-feature-top h3 {
    margin-bottom: 14px;
    font-size: 28px;
  }

  .service-feature-top p {
    font-size: 15px;
    line-height: 1.45;
  }

  .service-feature-image-wrap {
    height: 220px;
    min-height: 220px;
  }

  .service-feature-badge {
    width: 84px;
    height: 84px;
    top: -40px;
    right: 16px;
  }

  .service-feature-badge svg {
    width: 42px;
    height: 42px;
  }
}

/* =========================================
   REVIEWS SECTION
========================================= */

.reviews-section {
  display: grid;

  grid-template-columns:
    1fr
    1fr;

  padding: 0;

  overflow: hidden;

  background: var(--green-800);
}


/* =========================================
   LEFT IMAGE
========================================= */

.review-visual {
  min-height: 480px;

  background:
    linear-gradient(
      90deg,
      rgba(18,60,50,0.02),
      rgba(18,60,50,0.20)
    ),
    url("/images/consultation.webp")
    center
    / cover
    no-repeat;
}


/* =========================================
   RIGHT PANEL
========================================= */

.review-panel {
  position: relative;

  display: flex;
  flex-direction: column;
  justify-content: center;

  min-height: 480px;

  padding: 56px;

  color: #fff;

  background:
    radial-gradient(
      circle at 90% 15%,
      rgba(255,255,255,0.07),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      rgba(18,60,50,0.98),
      rgba(36,99,79,0.96)
    );
}


.review-panel h2 {
  margin: 0;

  font-family: "Manrope", sans-serif;

  font-size: clamp(
    34px,
    4vw,
    54px
  );

  line-height: 1.05;

  letter-spacing: -0.05em;

  font-weight: 800;
}


/* =========================================
   SLIDER
========================================= */

.review-slider {
  position: relative;

  min-height: 255px;

  margin-top: 18px;
}


.review-slide {
  position: absolute;

  inset: 0;

  opacity: 0;

  visibility: hidden;

  transform: translateX(18px);

  transition:
    opacity .4s ease,
    transform .4s ease,
    visibility .4s ease;
}


.review-slide.active {
  position: relative;

  opacity: 1;

  visibility: visible;

  transform: translateX(0);
}


/* =========================================
   STARS
========================================= */

.stars {
  margin-top: 0;

  color: var(--accent);

  font-size: 20px;

  letter-spacing: 4px;
}


/* =========================================
   REVIEW TEXT
========================================= */

.review-slide blockquote {
  max-width: 650px;

  margin: 22px 0 0;

  padding: 0;

  color: rgba(255,255,255,.92);

  font-family: "Manrope", sans-serif;

  font-size: 18px;

  font-weight: 400;

  line-height: 1.65;

  letter-spacing: -0.01em;
}


/* =========================================
   REVIEW PERSON
========================================= */

.review-person {
  display: flex;
  flex-direction: column;

  margin-top: 24px;
}


.review-person strong {
  color: #fff;

  font-family: "Manrope", sans-serif;

  font-size: 14px;

  font-weight: 700;
}


.review-person span {
  margin-top: 2px;

  color: rgba(255,255,255,.60);

  font-family: "Manrope", sans-serif;

  font-size: 12px;
}


/* =========================================
   CONTROLS
========================================= */

.review-controls {
  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;

  margin-top: 28px;
}


/* =========================================
   DOTS
========================================= */

.review-dots {
  display: flex;

  align-items: center;

  gap: 8px;
}


.review-dot {
  width: 8px;
  height: 8px;

  margin: 0;
  padding: 0;

  border: 0;
  border-radius: 50%;

  background: rgba(255,255,255,.28);

  cursor: pointer;

  transition:
    width .2s ease,
    background .2s ease;
}


.review-dot.active {
  width: 26px;

  border-radius: 999px;

  background: var(--accent);
}


/* =========================================
   ARROWS
========================================= */

.review-arrows {
  display: flex;

  gap: 10px;
}


.review-arrow {
  width: 46px;
  height: 46px;

  display: grid;
  place-items: center;

  padding: 0;

  border: 1px solid rgba(255,255,255,.28);

  border-radius: 50%;

  background: rgba(255,255,255,.08);

  color: #fff;

  cursor: pointer;

  transition:
    background .2s ease,
    transform .2s ease;
}


.review-arrow:hover,
.review-arrow:focus-visible {
  background: var(--accent);

  color: var(--green-900);

  transform: translateY(-2px);
}


.review-arrow svg {
  width: 20px;
  height: 20px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 820px) {

  .reviews-section {
    grid-template-columns: 1fr;
  }


  .review-visual {
    min-height: 360px;
  }


  .review-panel {
    min-height: auto;

    padding: 42px 28px;
  }


  .review-slider {
    min-height: 230px;
  }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 560px) {

  .review-visual {
    min-height: 290px;
  }


  .review-panel {
    padding: 34px 20px;
  }


  .review-slide blockquote {
    font-size: 16px;

    line-height: 1.6;
  }


  .review-slider {
    min-height: 250px;
  }


  .review-arrow {
    width: 42px;
    height: 42px;
  }

}


.contact-section {
  margin-top: 20px;
  padding: 28px 36px 22px;
  border-radius: var(--radius-xl);
  color: var(--white);
  background:
    radial-gradient(circle at 95% 2%, rgba(255,255,255,0.06), transparent 24%),
    linear-gradient(135deg, #123c32, #184f40 70%, #1e5e4b);
}

.contact-cta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 26px 10px 36px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}

.contact-kicker {
  display: block;
  margin-bottom: 10px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .10em;
}

.contact-cta h2 {
  max-width: 780px;
  font-size: clamp(32px, 4vw, 52px);
}

.contact-cta p {
  margin: 12px 0 0;
  color: rgba(255,255,255,0.72);
}

.contact-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.25fr .65fr .9fr .7fr;
  gap: 40px;
  padding: 42px 10px 30px;
}

.footer-grid h3 {
  margin: 0 0 14px;
  font-size: 14px;
}

.footer-grid p,
.footer-grid address,
.footer-links {
  color: rgba(255,255,255,0.70);
  font-size: 13px;
  font-style: normal;
}

.footer-grid a {
  color: inherit;
  text-decoration: none;
}

.footer-grid a:hover,
.footer-grid a:focus-visible {
  color: var(--white);
}

.brand-footer {
  color: var(--white);
}

.footer-brand > p {
  max-width: 320px;
  margin-top: 18px;
}

.footer-links {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;

  padding-top: 20px;

  border-top: 1px solid rgba(255,255,255,.12);

  color: rgba(255,255,255,.60);

  font-size: 12px;
}

.footer-privacy-link {
  color: rgba(255,255,255,.60);

  font-size: 12px;
  text-decoration: none;

  transition: color .2s ease;
}

.footer-privacy-link:hover,
.footer-privacy-link:focus-visible {
  color: #fff;
}

/* =========================================================
   FULL-WIDTH SECTION SYSTEM
   Current layout only - legacy text-only hero overrides removed
========================================================= */
body {
  background: var(--white);
}

.site-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  background: var(--white);
  border-radius: 0;
}

.benefits-strip {
  margin: 0;
  padding: 42px max(24px, calc((100vw - 1260px) / 2));
  border-radius: 0;
  background: var(--green-050);
}

.section {
  margin-top: 0;
  padding: 72px max(24px, calc((100vw - 1260px) / 2));
  border-radius: 0;
}

.about-section { background: var(--white); }

.services-section {
  padding-bottom: 124px;
  background: var(--green-050);
}

.reviews-section {
  margin-top: 0;
  padding: 0;
  border-radius: 0;
}

.contact-section {
  margin-top: 0;
  padding: 46px max(24px, calc((100vw - 1260px) / 2)) 24px;
  border-radius: 0;
}

/* ===== REFERENCE-STYLE IMAGE HERO =====
   Full-width edge-to-edge hero with:
   - image on the right
   - no white decorative gaps/shapes
   - equal spacing between all three mini features
   - responsive mobile/tablet layout
*/

/* ---------------------------------------------------------
   TRUE FULL-WIDTH PAGE
--------------------------------------------------------- */

html,
body {
  width: 100%;
  margin: 0;
  padding: 0;
}

body {
  overflow-x: hidden;
  background: var(--white);
}

.site-shell,
main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  border-radius: 0;
}


/* ---------------------------------------------------------
   HEADER
--------------------------------------------------------- */

.site-header {
  position: absolute;
  z-index: 50;
  top: 0;
  left: 50%;

  transform: translateX(-50%);

  width: min(calc(100% - 48px), 1260px);
  min-height: 96px;

  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;

  gap: 32px;

  color: #fff;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 30px;
}

.main-nav a {
  color: rgba(255,255,255,.88);
}

.header-cta {
  min-width: 120px;
}


/* ---------------------------------------------------------
   HERO
--------------------------------------------------------- */

.hero.hero-image-layout {
  position: relative;

  width: 100%;
  min-height: 710px;

  margin: 0;
  padding: 0;

  overflow: hidden;

  /* IMPORTANT - cancel old hero grid */
  display: block;
  grid-template-columns: none;

  border-radius: 0;
  box-shadow: none;

  color: #fff;

  background: linear-gradient(
    135deg,
    #315f4e 0%,
    #376b56 55%,
    #2e5d4b 100%
  );
}

.hero-inner {
  position: relative;

  width: 100%;
  max-width: 1440px;
  min-height: 710px;

  margin: 0 auto;
}


/* ---------------------------------------------------------
   REMOVE OLD WHITE DECORATIVE SHAPES
--------------------------------------------------------- */

/*
   These override the old .hero-visual::before / ::after rules
   that were creating the white/translucent areas in the screenshot.
*/

.hero-image-layout .hero-visual::before,
.hero-image-layout .hero-visual::after {
  content: none !important;
  display: none !important;
}

/*
   Removes the large white sweep previously placed over the
   bottom-right of the photograph.
*/

.hero-image-layout .hero-curve {
  display: none !important;
}

.hero-image-layout .hero-stat {
  display: none !important;
}


/* ---------------------------------------------------------
   HERO COPY
--------------------------------------------------------- */

.hero-image-layout .hero-copy {
  position: relative;
  z-index: 8;

  width: 58%;
  min-height: 710px;

  margin: 0;

  padding:
    155px
    36px
    58px
    max(48px, calc((100vw - 1260px) / 2));

  display: flex;
  flex-direction: column;
  justify-content: center;
}


/* ---------------------------------------------------------
   EYEBROW
--------------------------------------------------------- */

.hero-eyebrow {
  width: fit-content;

  display: inline-flex;
  align-items: center;

  gap: 8px;

  margin-bottom: 20px;
  padding: 6px 11px;

  border-radius: 999px;

  background: rgba(255,255,255,.11);

  color: rgba(255,255,255,.92);

  font-size: 12px;
  font-weight: 700;
}

.hero-eyebrow-icon {
  width: 18px;
  height: 18px;

  display: inline-grid;
  place-items: center;

  border-radius: 50%;

  background: rgba(255,255,255,.14);

  color: #f4d447;

  font-size: 11px;
  font-weight: 900;
}


/* ---------------------------------------------------------
   HERO HEADING
--------------------------------------------------------- */

.hero-image-layout h1 {
  max-width: 650px;

  margin: 0;

  color: #fff;

  font-size: clamp(45px, 4.25vw, 68px);
  line-height: 1.04;

  letter-spacing: -0.052em;

  font-weight: 900;
}


/* ---------------------------------------------------------
   HERO INTRO
--------------------------------------------------------- */

.hero-image-layout .hero-intro {
  max-width: 520px;

  margin: 24px 0 0;

  color: rgba(255,255,255,.80);

  font-size: 16px;
  line-height: 1.62;
}


/* ---------------------------------------------------------
   HERO ACTIONS
--------------------------------------------------------- */

.hero-image-layout .hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 30px;
}

.hero-image-layout .hero-actions .btn {
  min-height: 52px;

  padding: 0 21px;
}


/* ---------------------------------------------------------
   PHONE BOX
--------------------------------------------------------- */

/* =========================================
   HERO PHONE PILL
========================================= */

.hero-phone {
  min-height: 64px;

  display: inline-flex;
  align-items: center;

  gap: 6px;

  padding:
    8px
    18px
    8px
    8px;

  border-radius: 999px;

  background: #ffffff;

  box-shadow:
    0 10px 24px rgba(0,0,0,.08);

  white-space: nowrap;
}

.hero-phone-icon {
  width: 30px;
  height: 30px;

  flex: 0 0 34px;

  display: grid;
  place-items: center;

  color: #111111;
}


.hero-phone-icon svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Pull the text closer to the icon */
.hero-phone-content {
  display: flex;
  flex-direction: column;
  justify-content: center;

  margin-left: 0;

  line-height: 1.1;
}


.hero-phone-label {
  margin-bottom: 10px;

  color: #1f2d28;

  font-family: "Manrope", sans-serif;

  font-size: 13px;
  font-weight: 800;
  
  line-height: 1;

  text-transform: uppercase;
  letter-spacing: 0.07em;
}


.hero-phone-links {
  display: flex;
  align-items: center;

  gap: 5px;

  color: #1f2d28;

  font-family: "Manrope", sans-serif;

  font-size: 13px;
  font-weight: 700;

  line-height: 1.15;

  white-space: nowrap;
}


.hero-phone-links a {
  color: #111111;
  text-decoration: none;
}


/* ---------------------------------------------------------
   HERO FEATURES
--------------------------------------------------------- */

.hero-image-layout .hero-features {
  display: grid;

  /*
     Three identical columns = equal icon spacing.
  */
  grid-template-columns: repeat(3, minmax(0, 1fr));

  width: 100%;
  max-width: 680px;

  column-gap: 24px;
  row-gap: 18px;

  margin-top: 38px;
  padding-top: 24px;

  border-top: 1px solid rgba(255,255,255,.13);
}

.hero-image-layout .mini-feature {
  display: flex;
  align-items: center;

  gap: 10px;

  width: 100%;
  min-width: 0;

  margin: 0;
  padding: 0;

  color: #fff;
}

.hero-image-layout .round-icon {
  width: 38px;
  height: 38px;

  display: grid;
  place-items: center;

  /*
     Prevent the icon from shrinking when text is longer.
  */
  flex: 0 0 38px;

  border-radius: 50%;

  background: #fff;
  color: #315f4e;

  font-size: 14px;
  font-weight: 900;
}

.hero-image-layout .mini-feature > span:last-child {
  display: flex;
  flex-direction: column;

  min-width: 0;
}

.hero-image-layout .mini-feature strong {
  display: block;

  margin: 0;

  color: #fff;

  font-size: 12px;
  line-height: 1.25;
}

.hero-image-layout .mini-feature small {
  display: block;

  margin-top: 2px;

  color: rgba(255,255,255,.66);

  font-size: 10px;
  line-height: 1.3;
}


/* ---------------------------------------------------------
   HERO IMAGE
--------------------------------------------------------- */

.hero-image-layout .hero-visual {
  position: absolute;
  z-index: 3;

  top: 5px;
  right: 0;
  bottom: 0;

  width: 65%;

  overflow: hidden;
  background: transparent;

  pointer-events: none;
}

.hero-image-layout .hero-photo-card {
  background:
    linear-gradient(
      90deg,
      rgba(49,95,78,.05) 0%,
      rgba(49,95,78,0) 14%
    ),
    url("/images/hero-physio.webp")
    68% 38%
    / cover
    no-repeat;

  clip-path: ellipse(
    74%
    88%
    at
    86%
    56%
  );
}


/* ---------------------------------------------------------
   NEXT SECTION
--------------------------------------------------------- */

.benefits-strip {
  margin-top: 0 !important;
  border-radius: 0 !important;
}


/* ---------------------------------------------------------

/* =========================================================
   CONSOLIDATED RESPONSIVE RULES
   These are the only global header/hero/layout breakpoints.
========================================================= */

@media (max-width: 1050px) {
  .site-header {
    width: calc(100% - 36px);
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 16px;
  }

  .brand { min-width: 0; }
  .brand strong { font-size: 18px; }
  .header-accreditation img { width: 145px; }

  .header-book-btn {
    min-height: 50px;
    padding: 5px 5px 5px 18px;
    font-size: 14px;
  }

  .header-book-arrow {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .main-nav { gap: 18px; }

  .hero-image-layout .hero-copy {
    width: 58%;
    padding-left: 36px;
    padding-right: 24px;
  }

  .hero-image-layout h1 {
    font-size: clamp(40px, 5.4vw, 58px);
  }

  .hero-image-layout .hero-intro {
    max-width: 500px;
  }

  .hero-image-layout .hero-visual {
    width: 55%;
  }

  .hero-image-layout .hero-features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 540px;
    column-gap: 15px;
    row-gap: 14px;
  }

  .hero-image-layout .round-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
  }
}

@media (max-width: 820px) {
  .site-header {
    position: absolute;
    top: 0;
    left: 0;
    transform: none;
    width: 100%;
    min-height: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: 16px 20px;
  }

  .brand {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
  }

  .header-accreditation {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end;
  }

  .header-accreditation img { width: 130px; }

  .header-book-btn {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
    min-height: 46px;
    font-size: 13px;
  }

  .main-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px 18px;
    overflow: visible;
    padding: 0;
  }

  .main-nav a {
    font-size: 13px;
    white-space: nowrap;
  }

  .hero.hero-image-layout,
  .hero-inner {
    min-height: 0;
  }

  .hero-image-layout .hero-copy {
    width: 100%;
    min-height: 0;
    padding: 190px 24px 46px;
  }

  .hero-image-layout h1 {
    max-width: 680px;
    font-size: clamp(40px, 8vw, 58px);
  }

  .hero-image-layout .hero-intro {
    max-width: 620px;
    font-size: 16px;
  }

  .hero-image-layout .hero-actions {
    flex-wrap: wrap;
    gap: 12px;
  }

  .hero-image-layout .hero-features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 100%;
    gap: 16px;
  }

  .hero-image-layout .hero-visual {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 430px;
    min-height: 0;
  }

  .hero-image-layout .hero-photo-card {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    clip-path: ellipse(94% 98% at 68% 52%);
  }

  .benefits-strip { padding: 28px 20px; }
  .section { padding: 54px 20px; }

  .about-section {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .about-photo { min-height: 420px; }
  .about-content { padding: 0; }

  .section-heading,
  .location-heading {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .services-card-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .service-feature-top { min-height: 0; }

  .service-feature-image-wrap {
    height: 300px;
    min-height: 300px;
  }

  .reviews-section { grid-template-columns: 1fr; }
  .review-visual { min-height: 360px; }

  .review-panel {
    min-height: 0;
    padding: 44px 28px;
  }

  .contact-cta {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .contact-actions { align-items: flex-start; }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  .contact-section { padding: 38px 22px 22px; }
}

@media (max-width: 560px) {
  .section { padding: 42px 18px; }

  .site-header {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px 10px;
    padding: 14px 16px;
  }

  .brand-mark {
    width: 36px;
    height: 36px;
  }

  .brand strong { font-size: 16px; }
  .brand small { font-size: 7px; }
  .header-accreditation img { width: 105px; }

  .header-book-btn {
    grid-column: 2;
    grid-row: 2;
    min-height: 42px;
    padding: 4px 4px 4px 14px;
    gap: 8px;
    font-size: 12px;
  }

  .header-book-arrow {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }

  .header-book-arrow svg {
    width: 17px;
    height: 17px;
  }

  .main-nav {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 7px 15px;
    width: 100%;
  }

  .main-nav a { font-size: 12px; }

  .hero-image-layout .hero-copy {
    padding: 185px 18px 38px;
  }

  .hero-image-layout h1 {
    max-width: 100%;
    font-size: clamp(36px, 10.5vw, 48px);
    line-height: 1.05;
  }

  .hero-image-layout .hero-intro {
    max-width: 100%;
    font-size: 15px;
    line-height: 1.6;
  }

  .hero-image-layout .hero-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .hero-image-layout .hero-pill,
  .hero-phone {
    width: auto;
    align-self: flex-start;
  }

  .hero-image-layout .hero-pill {
    justify-content: space-between;
  }

  .hero-phone {
    min-height: 60px;
    padding: 7px 14px 7px 10px;
  }

  .hero-phone-links {
    flex-wrap: wrap;
    white-space: normal;
    font-size: 12px;
  }

  .hero-phone-label {
    margin-bottom: 5px;
    font-size: 11px;
  }

  .hero-image-layout .hero-features {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 30px;
  }

  .hero-image-layout .mini-feature { width: 100%; }
  .hero-image-layout .hero-visual { height: 320px; }

  .hero-image-layout .hero-photo-card {
    background-position: 66% 38%;
    clip-path: ellipse(105% 100% at 70% 52%);
  }

  .benefits-strip { padding: 22px 18px; }

  .about-photo {
    min-height: 320px;
    border-radius: 20px;
  }

  .about-content h2,
  .section-heading h2,
  .location-heading h2,
  .review-panel h2,
  .contact-cta h2 {
    font-size: clamp(30px, 9vw, 42px);
  }

  .about-highlights {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .services-card-grid { grid-template-columns: 1fr; }
  .service-feature-card { width: 100%; }

  .service-feature-image-wrap {
    height: 230px;
    min-height: 230px;
  }

  .service-read-more {
    left: 16px;
    bottom: 16px;
    min-height: 52px;
    font-size: 14px;
  }

  .services-section { padding-bottom: 84px; }

  .review-visual { min-height: 280px; }

  .review-panel {
    padding: 36px 20px;
  }

  .review-slider { min-height: 280px; }

  .review-slide blockquote {
    font-size: 15px;
    line-height: 1.6;
  }

  .location-section { padding: 42px 18px; }

  .clinic-map {
    height: 320px;
    border-radius: 18px;
  }

  .contact-section { padding: 34px 18px 22px; }
  .contact-actions { width: 100%; }

  .contact-actions .btn,
  .contact-actions .header-book-btn {
    width: 100%;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}

@media (max-width: 390px) {
  .site-header {
    padding-left: 12px;
    padding-right: 12px;
  }

  .header-accreditation img { width: 90px; }
  .main-nav { gap: 6px 12px; }
  .main-nav a { font-size: 11px; }

  .hero-image-layout .hero-copy {
    padding-left: 15px;
    padding-right: 15px;
  }

  .hero-image-layout h1 { font-size: 35px; }
}

/* =========================================================
   PHYSIOTHERAPY INNER PAGE
========================================================= */

.physio-page {
  width: 100%;
  overflow: hidden;
}

.physio-page-container {
  width: min(calc(100% - 48px), 1260px);
  margin: 0 auto;
}

.physio-intro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}


/* =========================================================
   INNER PAGE HERO
========================================================= */

.physio-page-hero {
  position: relative;

  width: 100%;
  min-height: 400px;

  display: flex;
  align-items: center;

  overflow: hidden;

  color: #fff;

  background:
    radial-gradient(
      circle at 8% 50%,
      rgba(255,255,255,.045),
      transparent 25%
    ),
    linear-gradient(
      135deg,
      #173c32 0%,
      #214d3e 58%,
      #173b31 100%
    );
}

.physio-page-hero-inner {
  position: relative;
  z-index: 2;

  width: min(calc(100% - 48px), 1260px);
  margin: 0 auto;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 130px 0 70px;
}

.physio-page-hero-content {
  position: relative;
  z-index: 3;

  width: 100%;
  text-align: center;
}

.physio-page-eyebrow {
  width: fit-content;

  display: inline-flex;
  align-items: center;

  gap: 7px;

  margin-bottom: 18px;

  padding:
    7px
    11px;

  border-radius: 999px;

  background:
    rgba(255,255,255,.10);

  color:
    rgba(255,255,255,.90);

  font-size: 12px;
  font-weight: 700;
}

.physio-page-hero h1 {
  max-width: 760px;
  margin: 0 auto;

  color: #fff;

  font-family: "Manrope", sans-serif;

  font-size: clamp(58px, 7vw, 92px);
  font-weight: 900;

  line-height: .98;
  letter-spacing: -.06em;
}


/* Breadcrumb */

.physio-breadcrumb {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 9px;

  margin-top: 27px;

  color:
    rgba(255,255,255,.75);

  font-size: 14px;
}

.physio-breadcrumb a {
  color: #fff;

  text-decoration: none;
}

.physio-breadcrumb a:hover {
  color: var(--accent);
}

.physio-breadcrumb-arrow {
  width: 17px;
  height: 17px;

  display: grid;
  place-items: center;
}

.physio-breadcrumb-arrow svg {
  width: 15px;
  height: 15px;

  fill: none;

  stroke: currentColor;

  stroke-width: 2;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Decorative icon */

.physio-page-hero-decoration {
  position: absolute;

  right: max(
    30px,
    calc((100vw - 1260px) / 2)
  );

  top: 50%;

  width: 280px;

  transform:
    translateY(-50%);

  opacity: .16;
}

.physio-page-hero-decoration svg {
  width: 100%;
  height: auto;

  fill: none;

  stroke: #75bea3;

  stroke-width: 5;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* =========================================================
   MAIN CONTENT
========================================================= */

.physio-page-content {
  padding:
    82px
    0
    96px;

  background: #fff;
}


/* Main image */

.physio-main-image {
  width: 100%;
  height: 520px;

  overflow: hidden;

  border-radius: 30px;

  background: #edf1ed;
}

.physio-main-image img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  object-position: center;
}


/* Main copy */

.physio-copy-block {
   max-width: none;
   margin-top: 0;
}

.physio-copy-block h2,
.physio-help-copy h2,
.physio-inline-cta h2,
.physio-more-heading h2 {
  margin: 0;

  color: #173226;

  font-family:
    "Manrope",
    sans-serif;

  font-size:
    clamp(
      36px,
      4.4vw,
      58px
    );

  font-weight: 900;

  line-height: 1.04;

  letter-spacing: -.05em;
}

.physio-copy-block p {
  max-width: 900px;

  margin:
    20px
    0
    0;

  color: #4c5b55;

  font-size: 17px;

  line-height: 1.72;
}


/* =========================================================
   WHAT PHYSIOTHERAPY CAN HELP WITH
========================================================= */

.physio-help-section {
  display: grid;

  grid-template-columns:
    .8fr
    1.2fr;

  gap: 70px;

  align-items: start;

  margin-top: 70px;

  padding:
    48px
    0;

  border-top:
    1px solid
    rgba(16,35,30,.10);

  border-bottom:
    1px solid
    rgba(16,35,30,.10);
}

.physio-help-copy p {
  max-width: 480px;

  margin:
    18px
    0
    0;

  color: var(--muted);

  font-size: 16px;

  line-height: 1.65;
}

.physio-check-grid {
   display: grid;

  grid-template-columns: 1fr;

  gap: 16px;

  margin-top: 30px;
}

.physio-check-grid > p {
  width: 100%;
  margin: 0 0 6px;

  color: var(--muted);

  font-size: 16px;
  line-height: 1.6;
}

.physio-check {
  display: flex;
  align-items: center;

  gap: 11px;

  color: #173226;

  font-size: 15px;
  font-weight: 700;
}

.physio-check span {
  width: 27px;
  height: 27px;

  flex:
    0
    0
    27px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background: var(--accent);

  color: #173226;

  font-size: 13px;

  font-weight: 900;
}


/* =========================================================
   FEATURE CARDS
========================================================= */

.physio-feature-grid {
  display: grid;

  grid-template-columns:
    1fr
    1fr;

  gap: 22px;

  margin-top: 55px;
}

.physio-feature-card {
  padding: 36px;

  border:
    1px solid
    rgba(16,35,30,.10);

  border-radius: 24px;

  background: #f7f9f7;
}

.physio-feature-icon {
  width: 62px;
  height: 62px;

  display: grid;
  place-items: center;

  margin-bottom: 26px;

  border-radius: 50%;

  background: #e7efea;

  color: #173226;
}

.physio-feature-icon svg {
  width: 31px;
  height: 31px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.7;

  stroke-linecap: round;
  stroke-linejoin: round;
}

.physio-feature-card h3 {
  margin: 0;

  color: #173226;

  font-size:
    clamp(
      23px,
      2.3vw,
      31px
    );

  line-height: 1.15;

  letter-spacing: -.04em;
}

.physio-feature-card p {
  max-width: 500px;

  margin:
    15px
    0
    0;

  color: var(--muted);

  font-size: 15px;

  line-height: 1.65;
}


/* =========================================================
   INLINE CTA
========================================================= */

.physio-inline-cta {
  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 40px;

  margin-top: 65px;

  padding:
    42px
    46px;

  border-radius: 28px;

  color: #fff;

  background:
    linear-gradient(
      135deg,
      #173c32,
      #245e4b
    );
}

.physio-inline-cta-kicker {
  display: block;

  margin-bottom: 10px;

  color: var(--accent);

  font-size: 12px;
  font-weight: 800;

  text-transform: uppercase;

  letter-spacing: .08em;
}

.physio-inline-cta h2 {
  max-width: 650px;

  color: #fff;

  font-size:
    clamp(
      30px,
      3vw,
      43px
    );
}

.physio-inline-cta p {
  margin:
    12px
    0
    0;

  color:
    rgba(255,255,255,.72);

  font-size: 15px;
}


/* =========================================================
   MORE SERVICES
========================================================= */

.physio-more-services {
  padding:
    86px
    0
    100px;

  background: var(--green-050);
}

.physio-more-heading {
  display: block;

  text-align: center;

  margin-bottom: 38px;
}

.physio-more-heading p {
  max-width: 600px;

  
  margin:
    14px
    auto
    0;

  text-align: center;

  color: var(--muted);

  font-size: 16px;

  line-height: 1.6;
}

.physio-more-grid {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(280px, 420px));
      
      justify-content: center;

  gap: 22px;
}

.physio-more-card {
  overflow: hidden;

  border:
    1px solid
    rgba(16,35,30,.10);

  border-radius: 24px;

  background: #fff;

  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.physio-more-card:hover {
  transform:
    translateY(-5px);

  box-shadow:
    0
    18px
    45px
    rgba(15,52,43,.10);
}

.physio-more-image {
  display: block;

  height: 235px;

  overflow: hidden;
}

.physio-more-image img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform .4s ease;
}

.physio-more-card:hover
.physio-more-image img {
  transform:
    scale(1.035);
}

.physio-more-card-content {
  padding:
    26px
    28px
    30px;
}

.physio-more-card h3 {
  margin: 0;

  color: #173226;

  font-size: 24px;

  line-height: 1.15;

  letter-spacing: -.035em;
}

.physio-more-card h3 a {
  color: inherit;

  text-decoration: none;
}

.physio-more-card p {
  margin:
    14px
    0
    22px;

  color: var(--muted);

  font-size: 14px;

  line-height: 1.6;
}

.physio-more-link {
  display: inline-flex;
  align-items: center;

  gap: 7px;

  color: #173226;

  font-size: 14px;

  font-weight: 800;

  text-decoration: none;
}

.physio-more-link span:last-child {
  font-size: 18px;

  transition:
    transform .2s ease;
}

.physio-more-link:hover
span:last-child {
  transform:
    translate(
      2px,
      -2px
    );
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 820px) {

  .physio-page-container,
  .physio-page-hero-inner {
    width:
      calc(100% - 40px);
  }
  
  .physio-intro-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .physio-page-hero {
    min-height: 390px;
  }

  .physio-page-hero-inner {
    padding:
      145px
      0
      65px;
  }

  .physio-page-hero h1 {
    font-size:
      clamp(
        52px,
        10vw,
        76px
      );
  }

  .physio-page-hero-decoration {
    width: 220px;

    right: -45px;

    opacity: .12;
  }

  .physio-page-content {
    padding:
      60px
      0
      72px;
  }

  .physio-main-image {
    height: 420px;

    border-radius: 24px;
  }

  .physio-copy-block {
    margin-top: 42px;
  }

  .physio-help-section {
    grid-template-columns: 1fr;

    gap: 30px;
  }

  .physio-feature-grid {
    grid-template-columns: 1fr;
  }

  .physio-inline-cta {
    flex-direction: column;

    align-items: flex-start;
  }

  .physio-more-heading {
    grid-template-columns: 1fr;

    gap: 15px;
  }

  .physio-more-grid {
    grid-template-columns:
      1fr
      1fr;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 560px) {

  .physio-page-container,
  .physio-page-hero-inner {
    width:
      calc(100% - 32px);
  }
  
   .physio-intro-grid {
    gap: 28px;
  }

  .physio-page-hero {
    min-height: 330px;
  }

  .physio-page-hero-inner {
    padding:
      130px
      0
      52px;
  }

  .physio-page-hero h1 {
    font-size:
      clamp(
        46px,
        14vw,
        62px
      );
  }

  .physio-page-hero-decoration {
    width: 170px;

    right: -65px;
  }

  .physio-breadcrumb {
    margin-top: 20px;

    font-size: 13px;
  }

  .physio-page-content {
    padding:
      42px
      0
      58px;
  }

  .physio-main-image {
    height: 290px;

    border-radius: 20px;
  }

  .physio-copy-block {
    margin-top: 34px;
  }

  .physio-copy-block h2,
  .physio-help-copy h2,
  .physio-more-heading h2 {
    font-size:
      clamp(
        31px,
        9vw,
        40px
      );
  }

  .physio-copy-block p {
    font-size: 15px;
  }

  .physio-help-section {
    margin-top: 50px;

    padding:
      36px
      0;
  }

  .physio-check-grid {
    grid-template-columns: 1fr;

    gap: 15px;
  }

  .physio-feature-grid {
    margin-top: 38px;
  }

  .physio-feature-card {
    padding:
      28px
      24px;
  }

  .physio-inline-cta {
    margin-top: 44px;

    padding:
      32px
      24px;
  }

  .physio-inline-cta
  .hero-pill {
    width: auto;
  }

  .physio-more-services {
    padding:
      58px
      0
      70px;
  }

  .physio-more-grid {
    grid-template-columns: 1fr;
  }

  .physio-more-image {
    height: 230px;
  }

}

/* =========================================================
   Privacy Policy Page
========================================================= */

.privacy-page .physio-page-hero-content {
  width: 100%;
  text-align: center;
}

.privacy-page .physio-page-hero h1 {
  margin-left: auto;
  margin-right: auto;
}

.privacy-page .physio-breadcrumb {
  justify-content: center;
}

.privacy-page .physio-intro-grid {
  display: block;
}

.privacy-page .physio-copy-block {
  max-width: 950px;
  margin: 0 auto;
  text-align: center;
}

.privacy-page .physio-copy-block h2,
.privacy-page .physio-copy-block p {
  text-align: center;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    transition: none !important;
  }
}
