body:has(.doctors-page) { background:#f7faf8; }
.site-header { width:min(1120px,calc(100% - 64px)); margin:0 auto; min-height:88px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid #dbe6e0; }
.medical-brand { display:inline-flex; align-items:center; gap:9px; color:var(--ink); text-decoration:none; font-size:25px; letter-spacing:-1px; font-weight:700; }
.medical-brand img { width:36px; height:36px; object-fit:contain; }
.header-links { display:flex; align-items:center; gap:28px; font-size:12px; }
.header-links a { color:var(--ink); text-decoration:none; }
.location-label { color:var(--muted); }
.location-label span { font-size:19px; margin-right:5px; }
.doctors-page { width:min(1120px,calc(100% - 64px)); margin:0 auto; }
.campaign-hero { text-align:center; padding:52px 0 0; }
.campaign-hero h1 { max-width:1000px; margin:0 auto; font-size:clamp(40px,4.6vw,62px); line-height:1.1; font-weight:600; letter-spacing:-.052em; text-wrap:balance; }
.campaign-hero h1 span { color:var(--teal); }
.hero-promise { margin:22px 0 0; font-size:25px; line-height:1.4; letter-spacing:-.035em; }
.hero-promise strong { color:var(--teal); font-weight:600; }
.hero-description { max-width:770px; margin:18px auto 0; color:var(--muted); font-size:15px; line-height:1.8; text-wrap:pretty; }
.campaign-cta { display:inline-flex; align-items:center; justify-content:center; gap:16px; max-width:100%; min-height:54px; padding:16px 24px; border-radius:10px; font-size:14px; font-weight:600; line-height:1.45; text-align:center; }
.campaign-cta span { font-size:20px; line-height:1; }
.campaign-hero .campaign-cta { margin-top:26px; }
.visual-proof { margin:40px 0 0; }
.editorial-hero { --photo-height:360px; display:flex; gap:14px; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x proximity; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#b5cec0 transparent; }
.editorial-hero:focus-visible { outline:2px solid var(--teal); outline-offset:5px; border-radius:22px; }
.editorial-hero figure { flex:0 0 calc(var(--photo-height) * .75); height:var(--photo-height); margin:0; overflow:hidden; border-radius:22px; background:#e5eee7; scroll-snap-align:start; }
.editorial-hero .hero-scene { flex-basis:calc(var(--photo-height) * 1.5); }
.editorial-hero img { display:block; width:100%; height:100%; object-fit:cover; }
.hero-scene img { object-position:48% center; }
.hero-portrait img { object-position:center top; }
.hero-portrait:last-child img { object-position:center 15%; }
@media (min-width:851px) and (hover:hover) and (pointer:fine) {
  .editorial-hero { container-type:inline-size; overflow:hidden; scroll-snap-type:none; }
  .editorial-hero figure { position:relative; min-width:0; flex:1 1 0; transition:flex-grow .35s ease; }
  .editorial-hero .hero-scene { flex-basis:0; flex-grow:1.55; }
  .editorial-hero:has(figure:hover) .hero-scene { flex-grow:1; }
  .editorial-hero:has(figure:hover) figure:hover { flex-grow:1.55; }
  /* A fixed image canvas lets the frame widen without zooming the photo. */
  .editorial-hero img { position:absolute; left:50%; width:calc((100cqw - 28px) * 1.55 / 3.55); max-width:none; height:var(--photo-height); transform:translateX(-50%); }
  .editorial-hero .hero-scene img { width:calc(var(--photo-height) * 1.5); }
}
@media (prefers-reduced-motion:reduce) {
  .editorial-hero figure { transition:none; }
}
.production-stories { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:42px; }
.production-stories figure { margin:0; }
.production-stories img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:22px; background:#e5eee7; }
.production-stories figcaption { padding:17px 0 0; font-size:16px; font-weight:600; letter-spacing:-.025em; }
.proof-location { text-align:center; margin:23px 0 0; color:var(--muted); font-size:12px; letter-spacing:.015em; }
.proof-location span { font-size:17px; margin-right:4px; }
.campaign-section { margin-top:84px; }
.section-heading { display:flex; align-items:center; gap:16px; margin-bottom:34px; }
.section-heading h2 { margin:0; font-size:32px; line-height:1.2; }
.section-index { color:#60897c; font-size:12px; font-weight:600; letter-spacing:.04em; flex-shrink:0; }
.process-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:26px; margin:0; padding:0; list-style:none; position:relative; }
.process-list::before { content:''; position:absolute; top:22px; left:24px; right:24px; border-top:1px solid #bed2c8; z-index:-1; }
.step-number { display:grid; place-items:center; width:45px; height:45px; border-radius:50%; background:#e9f3ed; border:1px solid #bed2c8; color:var(--teal); font-size:13px; font-weight:600; }
.process-list p { max-width:190px; margin:18px 0 0; font-size:16px; line-height:1.6; }
.offer-section { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.offer-panel { border-radius:24px; padding:40px; border:1px solid #d3e2d9; }
.included-panel { background:white; }
.offer-panel .section-heading { margin-bottom:28px; }
.requirements-panel { background:#e9f3ed; }
.requirements-panel h2 { font-size:28px; line-height:1.2; margin:0 0 30px; }
.check-list { list-style:none; padding:0; margin:0; display:grid; gap:18px; }
.check-list li { position:relative; padding-left:29px; font-size:15px; line-height:1.55; }
.check-list li::before { content:'✓'; display:grid; place-items:center; position:absolute; top:2px; left:0; width:18px; height:18px; border-radius:50%; background:#e4f3ed; color:var(--teal); font-size:12px; font-weight:600; }
.requirements-panel .check-list li::before { background:#fff; }
.included-panel .campaign-cta { width:100%; margin-top:32px; }
.deadline { margin:30px 0 0; padding-top:23px; border-top:1px solid #c7dacd; color:var(--ink); font-size:13px; line-height:1.6; }
.deadline span { margin-right:6px; font-size:18px; }
.why-section { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; padding:50px 0; border-top:1px solid #d1e1d7; border-bottom:1px solid #d1e1d7; }
.why-heading>p { color:var(--muted); font-size:13px; margin:22px 0 10px; }
.why-heading h2 { margin:0; font-size:40px; line-height:1.15; max-width:340px; }
.why-copy>p { margin:0 0 20px; font-size:17px; line-height:1.7; }
.why-copy .authorization-note { margin:25px 0 0; display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; }
.authorization-note span { display:grid; place-items:center; width:26px; height:26px; flex-shrink:0; border:1px solid #b5cec0; border-radius:50%; }
.about-intro { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; }
.about-intro .section-heading { align-items:flex-start; gap:18px; margin:0; }
.about-intro .section-index { margin-top:12px; }
.about-intro h2 { max-width:320px; font-size:40px; line-height:1.15; text-wrap:balance; }
.about-copy p { margin:0 0 18px; font-size:17px; line-height:1.7; }
.about-copy .about-names { font-size:26px; font-weight:600; line-height:1.3; letter-spacing:-.035em; margin-bottom:14px; }
.about-copy p:last-child { margin-bottom:0; }
.about-videos-intro { margin:34px 0 14px; color:var(--muted); font-size:14px; line-height:1.6; }
.about-videos { display:flex; gap:16px; padding-bottom:8px; overflow-x:auto; scroll-snap-type:x proximity; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#b5cec0 transparent; }
.about-video { flex:0 0 max(220px,calc((100% - 48px) / 4)); min-width:0; margin:0; scroll-snap-align:start; }
.video-player { position:relative; width:100%; aspect-ratio:9/16; border-radius:18px; overflow:hidden; background:#073f3d; }
.video-preview { display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.video-preview img { display:block; width:100%; height:100%; object-fit:cover; }
.video-play { position:absolute; top:50%; left:50%; display:grid; place-items:center; width:58px; height:58px; padding-left:4px; border:1px solid #ffffff80; border-radius:50%; color:#fff; background:#073f3ddd; transform:translate(-50%,-50%); font-size:22px; pointer-events:none; }
.video-preview:hover .video-play { background:#073f3d; }
.video-preview:focus-visible { outline:3px solid #fff; outline-offset:-5px; border-radius:18px; }
.video-player iframe { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; }
.about-video figcaption { padding-top:12px; text-align:center; }
.about-video figcaption a { color:var(--muted); font-size:12px; text-decoration:none; }
.about-video figcaption a:hover { text-decoration:underline; }
.about-videos:focus-visible { outline:2px solid var(--teal); outline-offset:5px; border-radius:18px; }
.faq-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; }
.faq-section .section-heading { align-items:flex-start; }
.faq-section h2 { max-width:250px; }
.faq-section .section-index { margin-top:9px; }
.faq-list details { border-bottom:1px solid #ccdcd2; }
.faq-list details:first-child { border-top:1px solid #ccdcd2; }
.faq-list summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:23px 0; font-size:15px; font-weight:600; cursor:pointer; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { font-size:23px; color:var(--teal); font-weight:400; transition:transform .2s; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { margin:0; padding:0 24px 24px 0; font-size:14px; line-height:1.8; color:var(--muted); }
.faq-list summary:focus-visible { outline:3px solid var(--teal); outline-offset:4px; }
.final-cta { margin-top:74px; background:#dcefe5; border-radius:24px; padding:42px 30px; text-align:center; }
.final-cta p { margin:0 0 24px; font-size:26px; letter-spacing:-.035em; text-wrap:balance; }
.final-cta strong { font-weight:600; color:var(--teal); }
.campaign-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:38px 0; margin-top:28px; color:var(--muted); font-size:11px; }
.campaign-footer .medical-brand { font-size:21px; }
.campaign-footer .medical-brand img { width:29px; height:29px; }
.campaign-footer>div { display:flex; gap:22px; }
.campaign-footer>div a { color:var(--muted); text-decoration:none; }
.doctors-page.is-complete { width:min(1120px,calc(100% - 64px)); min-height:calc(100svh - 88px); padding:52px 0 64px; }
.doctors-completion { width:100%; }
.completion-message { max-width:760px; margin:0 auto 36px; text-align:center; }
.completion-message h1 { margin:0; font-size:40px; line-height:1.18; text-wrap:balance; }
.completion-message p { max-width:640px; margin:20px auto 0; font-size:17px; line-height:1.7; color:var(--muted); text-wrap:pretty; }
.booking-calendar { overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; }
.booking-calendar iframe { display:block; width:100%; height:760px; border:0; }
body:has(.application-dialog[open]) { overflow:hidden; }
.application-dialog { width:min(580px,calc(100% - 28px)); max-height:calc(100dvh - 40px); padding:28px; border:1px solid var(--line); border-radius:20px; color:var(--ink); background:var(--paper); overflow-y:auto; }
.application-dialog::backdrop { background:#073f3d7a; backdrop-filter:blur(5px); }
.application-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.application-heading h2 { font-size:28px; margin:0; }
.dialog-close { display:grid; place-items:center; width:34px; height:34px; flex-shrink:0; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); }
.dialog-close svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.application-dialog .fields { gap:17px; }
.application-dialog .field { gap:7px; }
.application-dialog .field legend { margin-bottom:7px; }
.application-dialog .field input:not([type=radio]) { min-height:46px; padding:10px 12px; }
.application-dialog .choice { min-height:46px; padding:9px 12px; }
.application-dialog .privacy-consent { margin-top:12px; font-size:12px; line-height:1.6; }
.doctor-privacy-link { margin:18px 0 0; font-size:12px; }
.doctor-privacy-link a { color:var(--teal); text-underline-offset:3px; }
.application-dialog .form-actions { margin-top:20px; padding-top:18px; }
.application-dialog .form-actions .campaign-cta { width:100%; }
.application-dialog .form-error { margin-top:0; }
.application-dialog #whatsapp-hint { margin:0; font-size:12px; }
@media(min-width:601px) {
  .application-dialog { padding:18px 28px; }
  .application-dialog .doctor-social-fields { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .application-heading { margin-bottom:12px; }
  .application-dialog .fields { gap:10px; }
  .application-dialog .field { gap:5px; }
  .application-dialog .office-questions .field legend { min-height:46px; }
  .application-dialog .field input:not([type=radio]) { min-height:42px; padding:8px 12px; }
  .application-dialog .choice { min-height:42px; padding:7px 12px; }
  .application-dialog .form-actions { margin-top:10px; padding-top:10px; }
  .doctor-privacy-link { margin-top:12px; }
}
@media(max-width:850px) {
  .site-header,.doctors-page { width:calc(100% - 48px); }
  .campaign-hero { padding-top:40px; }
  .campaign-hero h1 { font-size:48px; }
  .hero-promise { font-size:22px; }
  .editorial-hero { --photo-height:300px; gap:10px; }
  .process-list { gap:18px; }
  .process-list p { font-size:14px; }
  .offer-panel { padding:28px; }
  .offer-panel .section-heading h2 { font-size:29px; }
  .requirements-panel h2 { font-size:25px; }
  .why-section { gap:40px; }
  .why-heading h2 { font-size:34px; }
  .about-intro { gap:40px; }
  .about-intro h2 { font-size:34px; }
  .about-videos { gap:12px; }
  .faq-section { gap:32px; }
}
@media(max-width:600px) {
  .site-header,.doctors-page { width:calc(100% - 36px); }
  .site-header { min-height:72px; gap:15px; }
  .medical-brand { font-size:21px; gap:8px; letter-spacing:-.8px; }
  .medical-brand img { width:30px; height:30px; }
  .header-links { gap:0; font-size:11px; }
  .header-links .location-label { display:none; }
  .campaign-hero { padding-top:34px; }
  .campaign-hero h1 { font-size:37px; line-height:1.13; letter-spacing:-.05em; }
  .desktop-break { display:none; }
  .hero-promise { font-size:22px; margin-top:20px; text-wrap:balance; }
  .hero-description { font-size:13px; line-height:1.8; margin-top:16px; }
  .campaign-hero .campaign-cta { margin-top:23px; }
  .campaign-cta { min-height:52px; padding:15px 23px; }
  .visual-proof { margin-top:30px; }
  .editorial-hero { --photo-height:clamp(180px,52vw,280px); }
  .editorial-hero figure { border-radius:16px; }
  .production-stories { grid-template-columns:1fr; margin-top:32px; gap:28px; }
  .production-stories img { border-radius:16px; }
  .production-stories figcaption { padding-top:12px; font-size:15px; }
  .proof-location { font-size:11px; margin-top:18px; }
  .campaign-section { margin-top:48px; }
  .section-heading { gap:12px; margin-bottom:26px; }
  .section-heading h2 { font-size:29px; }
  .process-list { grid-template-columns:1fr; gap:22px; }
  .process-list::before { top:10px; bottom:15px; left:20px; right:auto; border-top:0; border-left:1px solid #bed2c8; }
  .process-list li { display:flex; gap:18px; align-items:center; }
  .step-number { width:41px; height:41px; flex-shrink:0; }
  .process-list p { max-width:none; margin:0; font-size:15px; }
  .offer-section { grid-template-columns:1fr; gap:16px; }
  .offer-panel { padding:28px 23px; border-radius:20px; }
  .check-list { gap:17px; }
  .check-list li { font-size:14px; }
  .requirements-panel h2 { font-size:26px; }
  .why-section { grid-template-columns:1fr; gap:24px; padding:32px 0; }
  .why-heading h2 { font-size:34px; max-width:none; }
  .why-heading>p { margin-top:14px; }
  .why-copy>p { font-size:16px; margin-bottom:16px; }
  .why-copy .authorization-note { font-size:12px; gap:8px; }
  .about-intro { grid-template-columns:1fr; gap:24px; }
  .about-intro h2 { font-size:32px; max-width:none; text-wrap:initial; }
  .about-intro .section-heading { gap:12px; }
  .about-intro .section-index { margin-top:9px; }
  .about-copy p { font-size:16px; }
  .about-copy .about-names { font-size:24px; }
  .about-videos-intro { margin-top:28px; }
  .about-video { flex-basis:min(74vw,270px); }
  .video-player { border-radius:16px; }
  .faq-section { grid-template-columns:1fr; gap:0; }
  .faq-section h2 { max-width:none; }
  .faq-list summary { font-size:14px; padding:21px 0; }
  .final-cta { margin-top:44px; padding:30px 18px; border-radius:20px; }
  .final-cta p { font-size:23px; }
  .campaign-footer { flex-wrap:wrap; gap:20px; padding:30px 0; margin-top:12px; }
  .campaign-footer>div { width:100%; justify-content:space-between; }
  .application-dialog { padding:22px; border-radius:16px; max-height:calc(100dvh - 28px); }
  .application-dialog .two-cols { gap:17px; }
  .application-dialog .choices.two-cols { gap:10px; }
  .application-dialog .form-actions .primary-button { width:100%; }
  .doctors-page.is-complete { width:calc(100% - 36px); min-height:calc(100svh - 72px); padding:34px 0 40px; }
  .completion-message { margin-bottom:26px; }
  .completion-message h1 { font-size:30px; }
  .completion-message p { font-size:15px; margin-top:18px; }
  .booking-calendar { border-radius:16px; }
  .booking-calendar iframe { height:850px; }
}
