/* FlightDoc: comfortable reading and a shorter route to the appointment. */
:root {
  --muted: #526274;
  --reading-link: #145a87;
}
html { scroll-padding-top: 118px; }
body { font-size: 1rem; line-height: 1.7; }
main, section, article, aside, fieldset { min-width: 0; }
p, li, th, td { overflow-wrap: break-word; }
.header { position: sticky; top: 0; z-index: 20; }
.header-inner { min-height: 96px; gap: 24px; }
.header nav { gap: 22px; margin-left: 0; }
.header nav a { font-size: .875rem; color: #334e68; }
.header-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.header-contact { font-size: .875rem; min-height: 46px; display: inline-flex; align-items: center; }
.header-booking { white-space: nowrap; padding: 13px 17px; }
.brand small { font-size: .5625rem; letter-spacing: 1.8px; }
.button { font-size: .9375rem; min-height: 50px; gap: 18px; }
.secondary { border: 1px solid #a3b6c8; background: #fff; color: var(--ink); }
.secondary:hover { background: #e9f2f9; }
.hero { gap: 56px; padding-block: 54px 48px; }
h1 { font-size: clamp(2.75rem, 5.2vw, 4.25rem); letter-spacing: -2.7px; }
.eyebrow, .hero .eyebrow { font-size: .75rem; line-height: 1.6; letter-spacing: 1.3px; }
.hero-description { font-size: 1.125rem; line-height: 1.75; color: #40566e; max-width: 32em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero-button { min-width: 180px; }
.hero-footnote { font-size: .875rem; line-height: 1.7; color: var(--muted); margin-top: 16px; }
.hero-trust { margin-top: 24px; padding-left: 17px; border-left: 3px solid #87b8d8; }
.hero-trust p { font-size: .9375rem; line-height: 1.7; color: #40566e; margin: 0 0 5px; }
.hero-trust strong { display: block; color: var(--ink); font-weight: 600; }
.hero-trust a, .hero-news-link { font-size: .875rem; color: var(--reading-link); }
.hero-news-link { min-height: 44px; margin-top: 12px; }
.strip-inner { font-size: .875rem; line-height: 1.6; padding-block: 17px; color: #40566e; }
.strip-inner b { font-size: .8125rem; }
.section { padding-block: 64px; }
h2 { font-size: clamp(1.875rem, 3vw, 2.375rem); line-height: 1.2; letter-spacing: -1px; }
.section-heading { gap: 28px; align-items: end; margin-bottom: 32px; }
.section-heading .eyebrow, .prep-intro .eyebrow { font-size: .75rem; color: var(--muted); }
.section-heading > p { font-size: .9375rem; line-height: 1.75; max-width: 28em; }
legend { font-size: 1.0625rem; line-height: 1.6; }
.step { width: 26px; height: 26px; font-size: .8125rem; }
.medical-options { gap: 13px; }
.medical-card { padding: 21px 18px; }
.medical-card > strong { font-size: 1.75rem; }
.card-subtitle { font-size: .875rem; line-height: 1.6; min-height: 45px; }
.card-description { font-size: 1rem; line-height: 1.65; min-height: 105px; color: var(--muted); }
.card-detail { font-size: .8125rem; line-height: 1.5; letter-spacing: 0; gap: 8px; }
.selection-hint, .stage-explanation, .uncertain { font-size: .875rem; line-height: 1.75; }
.selection-hint { margin-block: 16px 28px; }
.segmented label > span { font-size: 1rem; padding: 14px 16px; }
.segmented label > span small { font-size: .875rem; line-height: 1.6; color: var(--muted); }
.segmented em { font-size: .75rem; }
.initial-note, .vision-note { padding: 20px; gap: 13px; }
.initial-note strong, .vision-note h3 { font-size: 1rem; line-height: 1.6; }
.initial-note p, .vision-note p { font-size: 1rem; line-height: 1.75; }
.initial-note a, .vision-note a { font-size: .875rem; line-height: 1.75; color: var(--reading-link); }
.note-symbol { width: 23px; height: 23px; margin-top: 2px; font-size: .875rem; }
.uncertain summary { min-height: 46px; }
.selection-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "top" "name" "stage" "divider" "services-title" "services" "price" "extra" "book" "caption" "request" "help";
  padding: 28px;
}
.selection-summary > * { min-width: 0; }
.summary-top { grid-area: top; }
.summary-top .eyebrow { font-size: .75rem; }
.selection-summary h3 { grid-area: name; font-size: 2rem; }
.summary-stage { grid-area: stage; font-size: 1rem; }
.summary-divider { grid-area: divider; }
.summary-caption { grid-area: services-title; font-size: .75rem; line-height: 1.6; }
.summary-services { grid-area: services; }
.summary-services li { font-size: 1rem; line-height: 1.65; padding-left: 22px; }
.summary-services li::before { font-size: .875rem; }
.summary-price { grid-area: price; padding-top: 18px; border-top: 1px solid #b9d4ec55; }
.summary-price > span { font-size: .875rem; }
.summary-price strong { font-size: 1.75rem; }
.summary-price p { font-size: .9375rem; line-height: 1.75; margin-bottom: 22px; }
.extra-cost-note { grid-area: extra; font-size: .875rem; line-height: 1.7; margin: 0 0 20px; }
.selection-summary .button { grid-area: book; font-size: 1rem; min-height: 52px; }
.booking-caption { grid-area: caption; font-size: .875rem; line-height: 1.7; }
.price-request { grid-area: request; font-size: .875rem; line-height: 1.7; min-height: 48px; }
.booking-help { grid-area: help; }
.booking-help h4 { font-size: 1rem; }
.booking-help p, .booking-help-links a, .booking-status { font-size: .875rem; line-height: 1.7; }
.booking-help-links a { padding-inline: 12px; }
table { font-size: 1rem; line-height: 1.65; }
caption { font-size: .875rem; line-height: 1.7; }
thead th { font-size: .875rem; line-height: 1.6; hyphens: auto; }
tbody th, td { padding: 16px 12px; }
tbody th { width: 49%; }
thead th:not(:first-child), td { white-space: normal; }
.table-pill { font-size: .875rem; display: inline-block; white-space: normal; }
.table-note { font-size: .875rem; line-height: 1.8; color: var(--muted); margin-inline: 0; }
.table-note a { display: inline-block; margin-top: 8px; color: var(--reading-link); }
.cost-card { padding: 28px; }
.cost-card h3 { font-size: 1.5rem; }
.cost-card > p, .cost-list, .cost-card .cost-note { font-size: 1rem; line-height: 1.75; color: var(--muted); }
.cost-card > a { font-size: .9375rem; line-height: 1.7; color: var(--reading-link); }
.practice-updates > h3 { font-size: 1.375rem; font-weight: 600; letter-spacing: -.3px; margin-bottom: 20px; }
.news-updates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.news-updates .news-article { display: flex; flex-direction: column; min-width: 0; padding: 28px; margin: 0; }
.news-updates .news-icon { display: none; }
.news-meta { font-size: .875rem; line-height: 1.7; gap: 8px 14px; }
.news-badge { font-size: .8125rem; }
.news-article h3 { font-size: 1.625rem; line-height: 1.3; }
.news-article p { font-size: 1rem; line-height: 1.8; color: var(--muted); }
.medical-info-heading { margin-top: 52px; margin-bottom: 24px; max-width: 72ch; }
.medical-info-heading .eyebrow { margin-bottom: 8px; color: var(--muted); }
.medical-info-heading h3 { font-size: 1.875rem; font-weight: 500; letter-spacing: -.6px; margin-bottom: 12px; }
.medical-info-heading > p:last-child { font-size: 1rem; color: var(--muted); margin-bottom: 0; }
.news-lead { padding: 32px; }
.news-lead h3 { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; }
.news-lead p { font-size: 1rem; line-height: 1.8; }
.news-jumps { gap: 10px; }
.news-jumps a { font-size: .875rem; min-height: 46px; padding: 10px 14px; }
.news-background { padding: 30px 32px; }
.news-background h3 { font-size: 1.5rem; line-height: 1.4; }
.news-background > p, .news-background > ul { font-size: 1rem; line-height: 1.8; color: var(--muted); }
.notice-controls button { font-size: .875rem; min-height: 48px; }
.medical-notices summary { min-height: 88px; padding-block: 20px; }
.medical-notices summary strong { font-size: 1.0625rem; line-height: 1.6; }
.medical-notices summary small { font-size: .875rem; line-height: 1.7; }
.notice-body { font-size: 1rem; line-height: 1.85; color: #40566e; max-width: 76ch; }
.notice-body a, .notice-source, .notice-source a { font-size: .875rem; line-height: 1.8; }
.notice-body h4 { font-size: 1.0625rem; line-height: 1.6; }
.medical-sources > summary, .medical-sources .notice-body { font-size: 1rem; line-height: 1.8; }
.checks-table { font-size: 1rem; line-height: 1.75; }
.checks-table caption, .checks-table th small, .checks-footnote { font-size: .875rem; line-height: 1.75; }
.checks-table th, .checks-table td { padding: 18px 16px; }
.checks-table thead th { font-size: .9375rem; }
.checks-footnote { color: var(--muted); }
.prep-intro h2 { font-size: clamp(1.875rem, 3vw, 2.375rem); }
.prep-intro > p:not(.eyebrow) { font-size: 1rem; max-width: 33em; line-height: 1.8; color: var(--muted); }
.prep-details summary { font-size: 1rem; min-height: 48px; line-height: 1.6; }
.prep-details summary b { font-size: .875rem; margin-right: 12px; }
.details-body { font-size: 1rem; line-height: 1.85; color: #40566e; padding-left: 0; }
.text-link { font-size: .9375rem; line-height: 1.75; color: var(--reading-link); }
.team-grid { gap: 28px; }
.team-grid article { padding: 30px; border: 1px solid #ccdce9; border-top: 3px solid #87b8d8; border-radius: 12px; background: #fff; }
.team-portrait { width: min(100%, 260px); margin: 0 auto 26px; border-radius: 12px; overflow: hidden; background: #e9edf0; }
.team-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; }
.team-grid h3 { font-size: 1.75rem; line-height: 1.3; }
.team-grid .team-specialty { font-size: 1rem; line-height: 1.7; color: var(--reading-link); margin-top: 12px; }
.team-grid article > p:last-child { font-size: 1rem; line-height: 1.85; color: #40566e; }
.team-grid article > p:not(.team-specialty) { font-size: 1rem; line-height: 1.85; color: #40566e; }
.team-homepage { font-size: .9375rem; line-height: 1.75; }
.arrival-label { font-size: .75rem; color: var(--muted); line-height: 1.7; }
.arrival-card > div > p, .arrival-actions > p { font-size: 1rem !important; color: var(--muted); line-height: 1.8; }
.arrival-actions .button, .arrival-actions .text-link { font-size: .9375rem; }
.arrival-gate strong { font-size: 1.0625rem; }
.arrival-gate p { font-size: 1rem !important; line-height: 1.8; }
.contact-inner { gap: 28px; }
.contact-inner .eyebrow { font-size: .75rem; }
.contact-inner h2 { font-size: 1.875rem; }
.contact-inner p:not(.eyebrow), .contact-email, .contact-phone { font-size: 1rem; line-height: 1.8; }
.contact-actions .button { font-size: .9375rem; }
.legal-section { padding-block: 36px; }
.legal-jumps a, .legal-section > details > summary { font-size: 1rem; line-height: 1.75; }
.legal-body { font-size: 1rem; line-height: 1.85; max-width: 76ch; color: #40566e; }
.legal-body h3 { font-size: 1.125rem; line-height: 1.6; }
.footer { font-size: .875rem; line-height: 1.8; }
.footer-links { gap: 8px 22px; }
.footer-links > a { display: inline-flex; align-items: center; min-height: 44px; }
section[id], details[id], .checks-overview, .medical-sources { scroll-margin-top: 118px; }

@media (max-width: 1180px) {
  .header nav { display: none; }
  .mobile-shortcuts { display: flex; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
  .mobile-shortcuts a { display: inline-flex; align-items: center; min-height: 48px; font-size: .875rem; color: #40566e; text-decoration: none; }
}
@media (max-width: 1080px) {
  .selection-layout, .service-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .selection-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "top top" "name price" "stage price" "divider divider" "services-title book" "services caption" "services request" "extra extra" "help help";
    column-gap: 32px;
  }
  .summary-price { border: 0; padding-top: 0; }
  .preparation { gap: 36px; }
  .hero { gap: 32px; }
}
@media (max-width: 800px) {
  .hero { grid-template-columns: minmax(0, 1fr); padding-block: 38px; gap: 28px; }
  .hero-description { max-width: 34em; }
  .flight-visual { aspect-ratio: auto; height: 180px; padding: 22px; border-radius: 14px; }
  .route-art { position: absolute; width: 300px; height: 210px; right: 0; top: -15px; margin: 0; }
  .visual-top, .visual-bottom { position: relative; z-index: 1; }
  .visual-bottom { border: 0; max-width: 220px; }
  .visual-arrow { display: none; }
  .section-heading { display: block; }
  .section-heading > p { max-width: 40em; margin-top: 14px; }
  .section-heading > p br { display: none; }
  .section { padding-block: 46px; }
  .news-updates { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .preparation { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .team-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-inner { flex-direction: column; align-items: stretch; }
  .contact-actions { align-items: flex-start; text-align: left; }
  .footer { flex-direction: column; gap: 12px; }
  .footer-links { justify-content: flex-start; }
}
@media (max-width: 680px) {
  .medical-options { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .medical-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 16px; padding: 21px; }
  .card-top { grid-column: 2; grid-row: 1 / 4; flex-direction: column; gap: 14px; margin: 0; justify-content: flex-start; }
  .medical-card > strong { grid-column: 1; grid-row: 1; font-size: 1.75rem; }
  .card-subtitle { grid-column: 1; grid-row: 2; min-height: 0; margin: 0; }
  .card-description { grid-column: 1; grid-row: 3; min-height: 0; margin-top: 4px; }
  .card-detail { grid-column: 1 / -1; margin-top: 8px; padding-top: 12px; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 104px; }
  .container { width: calc(100% - 40px); }
  .header-inner { min-height: 84px; gap: 12px; }
  .brand-logo { width: 174px; }
  .header-contact { display: none; }
  .header-actions { gap: 0; }
  .header-booking { font-size: .875rem; min-height: 46px; padding: 12px 14px; }
  .mobile-shortcuts { gap: 12px; }
  .mobile-shortcuts a { font-size: .875rem; }
  h1 { font-size: clamp(2.75rem, 12vw, 3.5rem); letter-spacing: -2px; }
  .hero-description { font-size: 1.0625rem; }
  .hero .eyebrow { font-size: .6875rem; letter-spacing: 1px; }
  .hero-actions { gap: 10px; }
  .hero-actions .button { font-size: .9375rem; padding: 14px 16px; min-width: 0; flex: 1 1 145px; }
  .hero-trust { padding-left: 14px; }
  .hero-trust p { font-size: .9375rem; }
  .strip-inner { font-size: .8125rem; gap: 16px; padding-block: 16px; }
  .strip-inner > span { max-width: none; }
  .strip-inner b { display: block; margin: 0 0 4px; }
  .selection-summary { padding: 24px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "top" "name" "stage" "divider" "services-title" "services" "price" "extra" "book" "caption" "request" "help"; }
  .summary-price { padding-top: 18px; border-top: 1px solid #b9d4ec55; }
  .segmented label > span { font-size: .9375rem; padding: 13px 10px; }
  .segmented label > span small { font-size: .875rem; }
  .initial-note, .vision-note { padding: 18px 16px; gap: 10px; }
  .initial-note p, .vision-note p { font-size: 1rem; }
  .initial-note strong, .vision-note h3 { font-size: 1rem; }
  .initial-note a, .vision-note a { font-size: .875rem; }
  .uncertain { font-size: .875rem; }
  tbody th, td { padding: 14px 8px; }
  .cost-card, .news-updates .news-article { padding: 24px; }
  .news-lead, .news-background { padding: 26px 22px; }
  .news-lead p, .news-article p, .news-background > p, .notice-body, .medical-sources .notice-body { font-size: 1rem; }
  .news-jumps a { font-size: .875rem; padding: 9px 12px; }
  .medical-notices summary strong { font-size: 1rem; }
  .medical-notices summary small, .notice-body a { font-size: .875rem; }
  .notice-body { padding-right: 0; }
  .checks-table, .checks-table caption, .checks-table tbody, .checks-table tr, .checks-table tbody th, .checks-table td { display: block; width: 100%; }
  .checks-table { table-layout: auto; }
  .checks-table colgroup { display: none; }
  .checks-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); }
  .checks-table caption { font-size: .875rem; text-align: left; }
  .checks-table tr { border: 1px solid #cbdce9; border-radius: 9px; margin-bottom: 16px; overflow: hidden; }
  .checks-table tbody th { padding: 15px 18px; background: #edf4fa; font-size: 1.0625rem; border: 0; }
  .checks-table th small { font-size: .875rem; }
  .checks-table td { padding: 15px 18px; font-size: 1rem; line-height: 1.75; text-align: left; border: 0; border-top: 1px solid var(--line); }
  .checks-table td::before { content: attr(data-label); display: block; font-size: .875rem; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
  .checks-footnote { font-size: .875rem; }
  .team-grid article { padding: 25px; }
  .team-portrait { max-width: 240px; margin-bottom: 24px; }
  .team-grid h3 { font-size: 1.625rem; }
  .team-grid .team-specialty { font-size: 1rem; }
  .arrival-card { grid-template-columns: minmax(0, 1fr); padding: 24px; }
  .arrival-actions .button, .arrival-actions .text-link { font-size: .9375rem; }
  .contact-actions .button { width: 100%; min-width: 0; }
  .legal-body, .legal-jumps a, .legal-section > details > summary { font-size: 1rem; }
  section[id], details[id], .checks-overview, .medical-sources { scroll-margin-top: 104px; }
}
@media (max-width: 359px) {
  .brand-logo { width: 140px; }
  .brand small { font-size: .5rem; letter-spacing: 1.2px; }
  .header-booking { padding-inline: 11px; }
  .mobile-shortcuts { gap: 8px; }
  .hero-actions .button { flex-basis: 100%; }
  .strip-inner { font-size: .75rem; gap: 10px; }
  .segmented { grid-template-columns: minmax(0, 1fr); }
  .card-description { font-size: 1rem; }
  .card-detail { font-size: .8125rem; }
  table { font-size: .9375rem; }
  thead th { font-size: .8125rem; }
  .cost-list { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
  .button:hover { transform: none; }
}
