/* Scoped to P2.9 parents and profiles; published assets stay immutable. */
.p29-section { margin: 0 0 clamp(52px,7vw,100px); scroll-margin-top: 116px; }
.p29-direction { --p29-accent: #79d8ef; }
.p29-surgery { --p29-accent: #efa2a8; }
.p29-therapy { --p29-accent: #9ddbd2; }
.p29-orthopedics { --p29-accent: #9ebfff; }
.p29-eyebrow { color: var(--p29-accent,#79d8ef); font-size: 13px; letter-spacing: .09em; line-height: 1.7; margin-bottom: 14px; }
.p29-direction h2,.p29-hub h2 { font-size: clamp(27px,3.3vw,44px); line-height: 1.15; letter-spacing: -.025em; text-wrap: balance; }
.p29-direction h3,.p29-hub h3 { font-size: clamp(21px,2vw,27px); line-height: 1.25; text-wrap: balance; }
.p29-direction p,.p29-hub p,.p29-profile-services p { line-height: 1.7; color: #b9cbd7; }
.p29-intro { display: grid; grid-template-columns: 1fr 1.15fr; gap: 48px; padding: 36px 0; border-block: 1px solid var(--line); }
.p29-intro p { margin-top: 0; }
.p29-section-heading { max-width: 800px; margin-bottom: 28px; }
.p29-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.p29-option { display: flex; flex-direction: column; position: relative; min-width: 0; padding: clamp(22px,3vw,36px); border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(135deg,#102637b3,#091722b3); text-decoration: none; transition: border-color .2s,transform .2s,background .2s; }
.p29-option-index { color: var(--p29-accent,#79d8ef); margin-bottom: 28px; font: 14px monospace; }
.p29-option h3 { margin: 0; color: var(--text); }
.p29-option-arrow { margin-top: auto; padding-top: 16px; color: var(--p29-accent,#79d8ef); }
.p29-context { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 24px; }
.p29-context a,.p29-text-link,.p29-travel a { display: inline-flex; align-items: center; min-height: 44px; color: #90dcf1; text-underline-offset: 5px; }
.p29-process { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; padding: 0; gap: 0 40px; }
.p29-process li { padding: 28px 0; border-top: 1px solid var(--line); }
.p29-process h3 { margin: 12px 0; }
.p29-number { color: var(--p29-accent,#79d8ef); font: 16px monospace; }
.p29-scope { border-left: 2px solid var(--p29-accent); padding: 8px 0 8px 28px; max-width: 900px; }
.p29-scope h2 { font-size: 26px; }
.p29-scope li { padding: 7px 0; line-height: 1.6; color: #b9cbd7; }
.p29-story { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; position: relative; }
.p29-story-sticky { position: sticky; top: 120px; padding-top: 24px; }
.p29-story-sticky h2 { font-size: clamp(38px,4vw,56px); }
.p29-signal { position: relative; max-width: 360px; color: #72d0e1; }
.p29-signal svg { display: block; width: 100%; height: auto; }
.p29-signal-rings { opacity: .4; }
.p29-signal-dots circle { opacity: .3; transition: opacity .2s; }
.p29-signal-dots circle.is-active { opacity: 1; fill: #f3868f; }
.p29-signal-label { position: absolute; top: 67%; left: 0; width: 100%; text-align: center; font-size: 13px; letter-spacing: .06em; }
.p29-story-steps { margin: 0; padding: 0; list-style: none; }
.p29-story-step { min-height: 290px; padding: 48px 0 36px 24px; border-left: 1px solid #274451; display: grid; grid-template-columns: 32px 1fr; gap: 20px; transition: border-color .2s,background .2s; }
.p29-story-step h3 { margin: 0; }
.p29-story-step.is-active { border-color: #80deef; background: linear-gradient(90deg,#22516540,transparent); }
.p29-story-step .p29-number { padding-top: 4px; }
.p29-doctors { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.p29-doctor { min-width: 0; overflow: hidden; border: 1px solid var(--line); background: #0a1924; border-radius: 24px; }
.p29-doctor-portrait { display: block; background: radial-gradient(ellipse at center,#204655,#0a1924 75%); }
.p29-doctor-portrait img { display: block; width: 100%; height: 350px; object-fit: contain; object-position: center bottom; }
.p29-doctor-copy { padding: 28px; }
.p29-doctor h3 { margin: 0 0 14px; font-size: 25px; }
.p29-doctor h3 a { color: var(--text); text-decoration: none; }
.p29-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 18px 0; padding: 0; }
.p29-tags li { padding: 5px 10px; border: 1px solid var(--line); border-radius: 20px; color: #b9d8e4; font-size: 13px; }
.p29-doctor-directions { border-top: 1px solid var(--line); }
.p29-doctor-directions summary,.p29-faq summary { cursor: pointer; min-height: 48px; padding: 16px 4px; line-height: 1.5; }
.p29-doctor-directions ul { list-style: none; padding: 0; margin: 0 0 12px; }
.p29-doctor-directions a { display: flex; align-items: center; min-height: 44px; color: #90dcf1; }
.p29-doctor-actions { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.p29-doctor-actions a { display: inline-flex; align-items: center; min-height: 44px; color: #90dcf1; text-underline-offset: 4px; }
.p29-doctors--compact .p29-doctor { display: grid; grid-template-columns: 130px 1fr; align-items: start; }
.p29-doctors--compact .p29-doctor-portrait { margin-top: 24px; }
.p29-doctors--compact img { height: 190px; }
.p29-doctors--compact .p29-doctor-copy { padding: 24px 24px 24px 12px; }
.p29-doctors--compact h3 { font-size: 22px; }
.p29-travel { padding: 28px 32px; border-radius: 24px; background: #112835; }
.p29-travel h2 { font-size: 28px; }
.p29-faq { max-width: 950px; }
.p29-faq details { border-top: 1px solid var(--line); }
.p29-faq summary { font-size: 18px; }
.p29-faq p { margin: 0; padding: 0 4px 24px; }
.p29-close { padding: clamp(24px,4vw,52px); border: 1px solid var(--line); border-radius: 28px; background: radial-gradient(ellipse at right bottom,#163d5077,transparent 70%); }
.p29-close p { max-width: 660px; }
.p29-address { font-size: 14px; margin-top: 28px; }
.p29-profile-services { margin-top: 40px; padding: 28px; border: 1px solid var(--line); border-radius: 24px; }
.p29-profile-services .p29-context { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.p29-hub-intro { padding: 24px 0 36px; max-width: 720px; }
.p29-direction :focus-visible,.p29-hub :focus-visible,.p29-profile-services :focus-visible { outline: 3px solid #89e6ff; outline-offset: 5px; border-radius: 5px; }
@media (hover:hover) {
  .p29-option:hover { transform: translateY(-4px); border-color: var(--p29-accent,#79d8ef); background: #132e40; }
  .p29-doctor:focus-within,.p29-doctor:hover { border-color: #5790a6; }
}
@media (min-width: 1000px) and (prefers-reduced-motion: no-preference) {
  .p29-story-step.is-active h3 { color: #a7e6f2; }
}
@media (max-width: 999px),(max-height: 740px) {
  .p29-story { gap: 28px; }
  .p29-story-sticky { position: static; }
  .p29-story-step { min-height: 0; padding: 24px 0 24px 18px; gap: 12px; }
  .p29-doctors--compact .p29-doctor { display: block; }
  .p29-doctors--compact .p29-doctor-portrait { margin-top: 0; }
  .p29-doctors--compact img { height: 250px; }
  .p29-doctors--compact .p29-doctor-copy { padding: 24px; }
}
@media (max-width: 680px) {
  .p29-intro,.p29-options,.p29-process,.p29-story,.p29-doctors,.p29-profile-services .p29-context { grid-template-columns: 1fr; }
  .p29-intro { gap: 0; }
  .p29-story-sticky { padding: 0; }
  .p29-signal { display: none; }
  .p29-story-sticky h2 br { display: none; }
  .p29-story-sticky h2 { font-size: 34px; }
  .p29-doctor-portrait img { height: 280px; }
  .p29-doctor-copy,.p29-profile-services,.p29-travel { padding: 22px; }
  .p29-section { scroll-margin-top: 94px; }
  .p29-scope { padding-left: 18px; }
  .p29-doctor h3 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .p29-story-sticky { position: static; }
  .p29-story-step { min-height: 0; padding-block: 24px; }
  .p29-direction *,.p29-hub * { transition: none !important; animation: none !important; transform: none !important; }
}
@media (prefers-reduced-motion: no-preference) {
  .p29-revealed { animation: p29-arrive .38s backwards; animation-delay: var(--p29-delay,0ms); }
  @keyframes p29-arrive { from { transform: translateY(12px); } to { transform: translateY(0); } }
}
@media (min-width: 1000px) {
  .p29-surgery .p29-process { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
  .p29-surgery .p29-process li { border-top-color: #a7646b; }
  .p29-therapy .p29-process { grid-template-columns: 1fr; max-width: 900px; }
  .p29-therapy .p29-process li { display: grid; grid-template-columns: 52px 240px 1fr; gap: 24px; align-items: baseline; }
}
.p29-orthopedics .p29-intro { background: repeating-linear-gradient(120deg,transparent 0 80px,#81b5e309 81px 82px); }
.p29-orthopedics .p29-option { border-radius: 8px 28px 8px 28px; }
