/* Patient-facing layouts. The shared navigation, fonts and booking widget remain the source of truth. */
body.mb-patient-home .hero { padding: 48px 0 !important; }
body.mb-patient-home .hero-grid { align-items: center; gap: 56px; }
body.mb-patient-home .hero-sub { max-width: 57ch; margin-bottom: 26px; font-size: 18px; line-height: 1.7; }
body.mb-patient-home .hero-eyebrow { margin-bottom: 24px; }
body.mb-patient-home .hero-actions { margin-top: 24px; }
body.mb-patient-home .reveal,
body.mb-consultation-page .reveal { opacity: 1; transform: none; visibility: visible; }
.patient-welcome { padding: 30px; border-left: 3px solid #9db9c9; background: #f6f3ee; border-radius: 0 16px 16px 0; }
.patient-welcome h2 { margin: 0 0 20px; font-size: 28px; color: #0b1d33; }
.patient-welcome ul { list-style: none; padding: 0; margin: 0; }
.patient-welcome li { padding: 14px 0; border-top: 1px solid #dddcd5; color: #465a6d; line-height: 1.55; }
.patient-welcome strong { display: block; color: #173148; margin-bottom: 3px; font-weight: 600; }
.patient-welcome a { color: #21577f; text-underline-offset: 3px; }
.patient-section { padding: 56px 0; }
.patient-section--warm { background: #f6f3ee; }
.patient-section--soft { background: #edf5fa; }
.patient-intro { max-width: 720px; margin-bottom: 28px; }
.patient-section h2 { color: #0b1d33; font-size: clamp(27px, 3vw, 36px); margin: 0 0 16px; }
.patient-section p { color: #465a6d; line-height: 1.7; }
.patient-section a { color: #21577f; text-underline-offset: 3px; }
.patient-section .hero-cta { color: #fff; }
.patient-section .section-eyebrow { margin-bottom: 14px; }
.patient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.patient-clinician { padding: 0 0 24px; border-bottom: 1px solid #cbd7df; }
.patient-clinician h3 { font-family: var(--font-display); font-size: 25px; font-weight: 400; color: #0b1d33; margin: 8px 0 12px; }
.patient-clinician__role { display: block; font-size: 13px; color: #465a6d; }
.patient-clinician p { margin: 0 0 12px; max-width: 56ch; }
.patient-review { margin: 0; padding: 24px 0; border-top: 1px solid #cbd7df; }
.patient-review blockquote { margin: 0 0 14px; color: #0b1d33; font-family: var(--font-display); font-size: clamp(22px, 2.4vw, 28px); line-height: 1.4; }
.patient-review figcaption { font-size: 13px; color: #465a6d; line-height: 1.6; }
.patient-review-note { margin: 10px 0 0; font-size: 13px; }
.patient-steps { counter-reset: patient-step; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; padding: 0; list-style: none; }
.patient-steps li { border-top: 2px solid #a3bacb; padding-top: 18px; }
.patient-steps li::before { counter-increment: patient-step; content: '0' counter(patient-step); color: #2e6b9e; font: 14px var(--font-mono); }
.patient-steps h3 { color: #0b1d33; font-size: 19px; margin: 12px 0; }
.patient-steps p { margin: 0; font-size: 16px; }
.patient-area-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; }
.patient-area { display: block; padding: 20px 0; border-bottom: 1px solid #cbd7df; text-decoration: none; }
.patient-area strong { display: block; color: #0b1d33; font-size: 18px; margin-bottom: 7px; }
.patient-area span { display: block; font-size: 15px; color: #465a6d; line-height: 1.6; }
.patient-area:hover strong { color: #21577f; text-decoration: underline; text-underline-offset: 4px; }
.patient-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; align-items: center; }
.patient-links a, .patient-links button { font-size: 15px; }
.patient-text-button { color: #21577f; background: transparent; border: 0; padding: 8px 0; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.patient-detail { border-top: 1px solid #cbd7df; margin-top: 20px; }
.patient-detail > summary { padding: 20px 0; color: #0b1d33; font-size: 18px; font-weight: 600; cursor: pointer; }
.patient-detail > .patient-detail__body { padding: 0 0 24px; }
.patient-detail__body p { max-width: 78ch; }
.patient-detail .patient-links { margin-top: 0; }
.patient-detail :is(.section-title, h2) { font-size: 28px; }
.patient-detail .container { width: 100%; max-width: none; padding: 0; }
.patient-detail section { padding: 24px 0 !important; background: transparent !important; }
.patient-deep-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 24px 0 0; }
.patient-deep-links a { display: block; padding: 18px 0; border-top: 1px solid #cbd7df; text-decoration: none; }
.patient-deep-links strong { display: block; font-size: 18px; margin-bottom: 6px; }
.patient-deep-links span { display: block; color: #465a6d; line-height: 1.65; }
.patient-faq { max-width: 850px; }
.patient-faq details { margin-top: 0; }
.patient-faq summary { font-size: 17px; }
.patient-faq p { margin: 0; padding-bottom: 20px; }
.patient-practical { border-left: 3px solid #9db9c9; padding: 0 0 0 24px; }
.patient-practical p { margin: 0 0 16px; }
.patient-footnote { font-size: 14px; }
body.mb-consultation-page .patient-booking-intro { padding: 32px 0 24px; background: #edf5fa; }
.patient-booking-intro .container { max-width: 1080px; }
.patient-booking-intro h1 { color: #0b1d33; margin: 12px 0 16px; }
.patient-booking-intro p { max-width: 74ch; color: #465a6d; margin: 0; font-size: 17px; line-height: 1.65; }
.patient-booking-intro .section-eyebrow { color: #465a6d; opacity: 1; margin: 0; }
.patient-booking-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr); gap: 40px; align-items: start; }
body.mb-consultation-page #boka { padding: 28px 0 48px; }
.patient-booking-layout [data-mb-booking] { min-width: 0; }
.patient-booking-aside { background: #f6f3ee; border-radius: 12px; padding: 24px; color: #465a6d; }
.patient-booking-aside h2 { color: #0b1d33; font-size: 25px; margin: 0 0 14px; }
.patient-booking-aside h3 { color: #0b1d33; font-size: 17px; margin: 24px 0 10px; }
.patient-booking-aside p { font-size: 15px; line-height: 1.65; margin: 0 0 14px; }
.patient-booking-aside a { color: #21577f; text-underline-offset: 3px; }
.patient-booking-layout .booking-contact { font-size: 14px; line-height: 1.6; color: #465a6d; }
.patient-booking-layout .booking-contact a { color: #21577f; text-underline-offset: 3px; }
@media (max-width: 900px) {
  body.mb-patient-home .hero-grid { gap: 28px; }
  .patient-area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .patient-booking-layout { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
  body.mb-patient-home .hero { padding: 32px 0 !important; }
  body.mb-patient-home .hero-sub { font-size: 17px; }
  .patient-welcome { padding: 22px; }
  .patient-welcome h2 { font-size: 25px; }
  .patient-section { padding: 36px 0; }
  .patient-grid, .patient-area-grid, .patient-steps, .patient-deep-links { grid-template-columns: 1fr; gap: 20px; }
  .patient-area-grid { gap: 0; }
  .patient-practical { padding-left: 18px; }
  .patient-booking-intro p { font-size: 16px; }
  body.mb-consultation-page .patient-booking-intro { padding: 24px 0; }
  body.mb-consultation-page #boka { padding-top: 20px; }
}
