/* Homepage-only refinements. Shared styles and service pages stay independent. */
.home-page {
  --blue: #176b70;
  --line: #dbe6e7;
  --pale: #f2f7f7;
}

.home-page .hero h1 { max-width: 760px; }
.home-page .hero-copy > p { max-width: 540px; margin-bottom: 28px; }
.home-page .hero .button:hover { background: #e0eff0; }

/* A slim proof strip leads directly into the two telephone booking cards. */
.home-page .booking { padding: 0; }
.home-page .proof-grid { padding-top: 25px; padding-bottom: 25px; }
.home-page .booking-content { padding-top: 45px; padding-bottom: 40px; }
.home-page .booking-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  max-width: none;
  margin-bottom: 26px;
}
.home-page .booking-heading h2 { margin-top: 8px; }
.home-page .booking-heading > p { margin: 0 0 3px; font-size: 1rem; line-height: 1.7; }
.home-page .booking .booking-location { padding: 24px; gap: 20px; }
.home-page .booking .booking-location h3 { font-size: 1.55rem; margin: 0 0 10px; }
.home-page .booking .booking-location p { font-size: .9375rem; }
.home-page .booking .booking-call { padding: 12px 18px; }
.home-page .booking .map-link { display: inline-block; margin-top: 13px; font-size: .875rem; }
.home-page .booking-note { max-width: none; margin-top: 18px; }

/* Eight equally weighted, clearly clickable service cards. */
.home-page .treatment-overview { padding: 72px 0; background: #fff; }
.home-page .treatment-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 32px;
}
.home-page .treatment-heading h2,
.home-page .visit-overview h2 {
  font-size: clamp(2.15rem, 3.5vw, 3.2rem);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.15;
  margin: 12px 0 0;
}
.home-page .treatment-heading > .text-link { flex-shrink: 0; margin-bottom: 5px; }
.home-page .treatment-heading .text-link span,
.home-page .footer-top .text-link span { display: inline-block; margin-left: 6px; }
.home-page .treatment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.home-page .treatment-entry {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  min-width: 0;
  padding: 23px 24px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  transition: border-color .18s, background .18s;
}
.home-page .treatment-entry-copy { min-width: 0; }
.home-page .treatment-entry h3 { font-size: 1.25rem; line-height: 1.4; letter-spacing: -.025em; font-weight: 600; margin: 0 0 8px; }
.home-page .treatment-entry p { font-size: .9375rem; line-height: 1.65; color: var(--muted); margin: 0; max-width: 440px; }
.home-page .treatment-arrow { color: var(--blue); font-size: 1.5rem; font-weight: 400; line-height: 1.25; flex-shrink: 0; transition: transform .18s; }
.home-page .treatment-entry:hover { border-color: #83adb0; background: #f5f9f9; }
.home-page .treatment-entry:hover .treatment-arrow { transform: translate(2px, -2px); }
.home-page .treatment-entry:focus-visible { outline-color: var(--blue); outline-offset: 3px; }

/* First-visit details stay concise, with a deliberately quiet fee note. */
.home-page .visit-overview { padding: 58px 0 28px; background: var(--pale); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.home-page .visit-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.home-page .visit-intro > p { font-size: 1.0625rem; color: var(--muted); line-height: 1.8; max-width: 455px; margin: 22px 0 26px; }
.home-page .visit-process { list-style: none; counter-reset: visit; margin: 0; padding: 0; }
.home-page .visit-process li { counter-increment: visit; position: relative; padding: 0 0 22px 50px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.home-page .visit-process li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.home-page .visit-process li::before { content: "0" counter(visit); position: absolute; left: 0; top: 3px; color: var(--blue); font-size: .875rem; font-weight: 600; line-height: 1.6; }
.home-page .visit-process h3 { font-size: 1.25rem; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; margin: 0 0 8px; }
.home-page .visit-process p { color: var(--muted); font-size: 1rem; line-height: 1.7; margin: 0; }
.home-page .visit-pricing-note { border-top: 1px solid #cbdce0; margin-top: 36px; padding-top: 21px; }
.home-page .visit-pricing-note p { font-size: .875rem; line-height: 1.7; color: var(--muted); margin: 0; }
.home-page .visit-pricing-note p span { white-space: nowrap; }
.home-page .faq-section { padding: 66px 0; }

@media (max-width: 900px) {
  .home-page .booking-heading { align-items: flex-start; }
  .home-page .booking-heading > p { max-width: 345px; padding-top: 7px; }
  .home-page .booking-heading > p br { display: none; }
  .home-page .treatment-entry { padding: 21px; gap: 12px; }
  .home-page .visit-layout { gap: 40px; }
}
@media (max-width: 650px) {
  .home-page .hero h1 { font-size: clamp(2.5rem, 9.8vw, 3.5rem); }
  .home-page .hero-copy > p { margin-bottom: 25px; }
  .home-page .proof-grid { gap: 10px; padding-top: 19px; padding-bottom: 19px; }
  .home-page .proof-detail { display: none; }
  .home-page .proof strong { display: block; }
  .home-page .booking-content { padding-top: 34px; padding-bottom: 32px; }
  .home-page .booking-heading { display: block; margin-bottom: 22px; }
  .home-page .booking-heading > p { max-width: 100%; margin-top: 14px; padding: 0; }
  .home-page .booking .booking-location { padding: 22px; gap: 18px; }
  .home-page .booking .booking-location h3 { font-size: 1.5rem; }
  .home-page .booking-note { line-height: 1.65; }
  .home-page .treatment-overview { padding: 44px 0; }
  .home-page .treatment-heading { display: block; margin-bottom: 24px; }
  .home-page .treatment-heading > .text-link { display: inline-block; margin-top: 17px; }
  .home-page .treatment-heading h2,
  .home-page .visit-overview h2 { font-size: 2.2rem; }
  .home-page .treatment-list { grid-template-columns: 1fr; gap: 11px; }
  .home-page .treatment-entry { padding: 21px 20px; }
  .home-page .treatment-entry h3 { font-size: 1.1875rem; }
  .home-page .visit-overview { padding: 42px 0 26px; }
  .home-page .visit-layout { grid-template-columns: 1fr; gap: 32px; }
  .home-page .visit-intro > p { font-size: 1rem; }
  .home-page .visit-process li { padding-left: 42px; }
  .home-page .visit-pricing-note { margin-top: 28px; padding-top: 20px; }
  .home-page .faq-section { padding: 44px 0; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .treatment-entry:hover .treatment-arrow { transform: none; }
}
