/* ============================================================
   DFW House Calls — shared stylesheet ("Vitals").
   Extracted from index.html / privacy-policy.html so every page
   shares one cached copy instead of inlining ~64KB of fonts each.
   ============================================================ */
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/libre-franklin-400.woff2) format("woff2");}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/libre-franklin-600.woff2) format("woff2");}
@font-face{font-family:"Libre Franklin";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/libre-franklin-700.woff2) format("woff2");}
  
  
  

  /* ============================================================
     DFW House Calls — "Vitals" (Clinical & Authoritative)
     Navy + sky + cool white/grey · Libre Franklin display + humanist body
     Signature: Medicare-verified coverage panel + badges
     ============================================================ */
  :root{
    color-scheme: light;
    --paper:  #FFFFFF;
    --mist:   #EEF3F8;
    --mist-2: #E2EBF3;
    --navy:   #12335C;
    --navy-d: #0C2340;
    --sky:    #1E7FC2;
    --sky-l:  #2E93D8;
    --ink:    #101F30;
    --muted:  #566577;
    --line:   #D5E0EC;
    --good:   #1B8A5A;
    --radius: 8px;
    --sans: "Libre Franklin","Seravek","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
    --mono: ui-monospace,"SF Mono","Cascadia Mono",Menlo,Consolas,monospace;
  }
  :root[data-theme="dark"]{ color-scheme: light; }
  *{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
  body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17.5px; line-height:1.6; -webkit-font-smoothing:antialiased; }
  a{ color:inherit; }
  img{ max-width:100%; display:block; }
  :focus-visible{ outline:3px solid var(--sky); outline-offset:2px; }
  .wrap{ width:min(1160px,92vw); margin-inline:auto; }
  .skip{ position:absolute; left:-9999px; top:auto; }
  .skip:focus{ left:12px; top:12px; z-index:200; background:var(--navy); color:#fff; padding:10px 16px; border-radius:6px; }

  .top{ position:sticky; top:0; z-index:60; background:var(--paper); border-bottom:1px solid var(--line); }
  .top .wrap{ display:flex; align-items:center; gap:20px; min-height:72px; }
  .brand{ display:flex; align-items:center; gap:11px; text-decoration:none; margin-right:auto; }
  .logo{ height:42px; width:auto; flex:none; display:block; }
  .brand b{ font-size:1.2rem; font-weight:700; color:var(--navy); letter-spacing:-.2px; }
  .brand span{ display:block; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--sky); font-weight:700; margin-top:1px; }
  .nav{ display:flex; gap:24px; align-items:center; }
  .nav a{ text-decoration:none; color:var(--muted); font-weight:600; font-size:.95rem; }
  .nav a:hover{ color:var(--navy); }
  .portalbtn{ text-decoration:none; font-weight:700; font-size:.92rem; padding:9px 15px; border-radius:6px; border:1.5px solid var(--line); color:var(--navy); }
  .portalbtn:hover{ border-color:var(--sky); color:var(--sky); }
  .callbtn{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; background:var(--navy); color:#fff; font-weight:700; padding:10px 16px; border-radius:6px; font-size:.95rem; white-space:nowrap; }
  .callbtn:hover{ background:var(--navy-d); }
  @media(max-width:1040px){ .nav{ display:none; } }
  @media(max-width:560px){
    .portalbtn{ display:none; }
    .top .wrap{ gap:12px; min-height:62px; }
    .brand b{ font-size:1.06rem; }
    .brand > span > span{ display:none; }
    .callbtn{ padding:9px 13px; font-size:.9rem; }
    .logo{ height:36px; width:auto; }
  }

  .hero{ background:linear-gradient(180deg,var(--mist),var(--paper)); border-bottom:1px solid var(--line); }
  .hero .wrap{ display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:center; padding:64px 0 58px; }
  .eyebrow{ display:inline-flex; align-items:center; gap:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:var(--sky); margin-bottom:18px; }
  .eyebrow svg{ width:16px; height:16px; }
  .accepting{ display:inline-flex; align-items:center; gap:9px; margin:32px 0 22px; padding:9px 17px; border-radius:999px; background:var(--good); border:1px solid #29a06c; color:#fff; font-weight:700; font-size:.95rem; letter-spacing:.01em; }
  .accepting svg{ width:17px; height:17px; color:#fff; stroke-width:3; flex:none; }
  h1{ font-size:clamp(2.3rem,4.8vw,3.4rem); line-height:1.06; letter-spacing:-.6px; color:var(--navy-d); margin:0 0 18px; font-weight:700; text-wrap:balance; }
  .lede{ font-size:1.16rem; color:var(--muted); max-width:40ch; margin:0 0 28px; }
  .cta-row{ display:flex; flex-wrap:wrap; gap:12px; }
  .btn{ display:inline-flex; align-items:center; gap:9px; text-decoration:none; font-weight:700; border-radius:6px; padding:14px 22px; font-size:1.02rem; transition:background .18s ease, transform .15s ease; }
  .btn:hover{ transform:translateY(-1px); }
  .btn-primary{ background:var(--sky); color:#fff; box-shadow:0 6px 16px rgba(30,127,194,.28); }
  .btn-primary:hover{ background:var(--sky-l); }
  .btn-ghost{ background:#fff; color:var(--navy); border:1.5px solid var(--navy); }
  .btn-ghost:hover{ background:var(--navy); color:#fff; }

  .verify{ background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 44px rgba(12,35,64,.10); overflow:hidden; }
  .verify .vh{ background:var(--navy); color:#fff; padding:16px 22px; display:flex; align-items:center; gap:11px; font-weight:700; }
  .verify .vh .badge{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); padding:5px 10px; border-radius:999px; font-size:.72rem; letter-spacing:.04em; }
  .verify .vh .badge svg{ width:13px; height:13px; color:#7fd6a3; }
  .verify ul{ list-style:none; margin:0; padding:8px 0; }
  .verify li{ display:flex; align-items:center; gap:12px; padding:13px 22px; border-bottom:1px solid var(--mist); font-weight:600; color:var(--ink); }
  .verify li:last-child{ border-bottom:0; }
  .verify li .ck{ width:24px; height:24px; flex:none; border-radius:50%; background:rgba(27,138,90,.12); color:var(--good); display:grid; place-items:center; }
  .verify li .ck svg{ width:14px; height:14px; }
  .verify li small{ margin-left:auto; color:var(--muted); font-weight:600; font-size:.82rem; }
  @media(max-width:860px){ .hero .wrap{ grid-template-columns:1fr; gap:34px; padding:46px 0; } .lede{ max-width:none; } }

  section{ padding:78px 0; }
  .band{ background:var(--mist); }
  .navband{ background:var(--navy-d); color:#eaf2fa; }
  .head{ max-width:60ch; margin-bottom:40px; }
  .kicker{ font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:var(--sky); }
  h2{ font-size:clamp(1.8rem,3.4vw,2.5rem); line-height:1.1; color:var(--navy-d); margin:.5rem 0 .5rem; letter-spacing:-.4px; text-wrap:balance; }
  .navband h2{ color:#fff; }
  .head p{ color:var(--muted); font-size:1.1rem; margin:0; }
  .navband .head p{ color:#b9cbe0; }

  .cov{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; }
  .cov .c{ padding:26px 22px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
  .cov .c .ck{ width:28px; height:28px; border-radius:6px; background:var(--mist); color:var(--sky); display:grid; place-items:center; margin-bottom:12px; }
  .cov .c .ck svg{ width:17px; height:17px; }
  .cov .c h3{ margin:0 0 .25rem; font-size:1.04rem; color:var(--navy-d); }
  .cov .c p{ margin:0; color:var(--muted); font-size:.92rem; }
  .noins{ margin-top:20px; display:flex; align-items:center; gap:10px; color:var(--muted); font-size:1rem; }
  .noins svg{ width:18px; height:18px; color:var(--sky); flex:none; }

  .providers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:22px; }
  .provider{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:26px; display:flex; gap:20px; }
  .avatar{ width:84px; height:84px; flex:none; border-radius:12px; display:grid; place-items:center; font-weight:700; font-size:1.7rem; color:#fff; letter-spacing:.5px; background:linear-gradient(160deg,var(--sky),var(--navy)); }
  .provider.two .avatar{ background:linear-gradient(160deg,var(--navy),var(--navy-d)); }
  .provider h3{ margin:0; font-size:1.24rem; color:var(--navy-d); }
  .provider .cred{ color:var(--sky); font-weight:700; font-size:.9rem; margin:.15rem 0 .5rem; }
  .provider p{ margin:0 0 .7rem; color:var(--muted); font-size:.96rem; }
  .npi{ display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:.8rem; color:var(--muted); background:var(--mist); border:1px solid var(--line); padding:4px 9px; border-radius:5px; margin-bottom:.7rem; }
  .npi b{ color:var(--good); }
  .medlink{ display:inline-block; font-weight:700; color:var(--sky); text-decoration:none; }
  .medlink:hover{ color:var(--navy); text-decoration:underline; }
  @media(max-width:420px){ .provider{ flex-direction:column; } }

  .steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(218px,1fr)); gap:14px; }
  .step{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 22px; }
  .step .n{ font-family:var(--mono); font-size:.82rem; color:var(--sky); font-weight:700; letter-spacing:.1em; }
  .step h3{ margin:.5rem 0 .35rem; font-size:1.06rem; color:var(--navy-d); }
  .step p{ margin:0; color:var(--muted); font-size:.94rem; }

  .commit{ display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; }
  .commit .rule{ width:4px; align-self:stretch; background:var(--sky); border-radius:2px; }
  .commit p{ font-size:clamp(1.2rem,2.4vw,1.6rem); line-height:1.45; color:#eaf2fa; margin:0; max-width:46ch; }
  .commit .by{ margin-top:14px; color:#9fb6d0; font-size:1rem; }

  .contact-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:16px; }
  .ci{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
  .ci .ico{ width:36px; height:36px; border-radius:8px; background:var(--navy); color:#fff; display:grid; place-items:center; margin-bottom:11px; }
  .ci .ico svg{ width:19px; height:19px; }
  .ci h3{ margin:0 0 .25rem; font-size:.76rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
  .ci a,.ci p{ margin:0; text-decoration:none; color:var(--navy-d); font-weight:700; font-size:1.02rem; }
  .ci a:hover{ color:var(--sky); }
  .ci small{ display:block; color:var(--muted); font-weight:600; margin-top:3px; font-size:.84rem; }

  footer{ background:var(--navy-d); color:#a9c0da; padding:40px 0; }
  footer .wrap{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; }
  footer a{ color:#fff; text-decoration:none; font-weight:600; }
  footer a:hover{ color:var(--sky-l); }
  footer .links{ display:flex; gap:22px; flex-wrap:wrap; }
  footer .cr{ width:100%; border-top:1px solid rgba(255,255,255,.12); padding-top:14px; font-size:.84rem; color:#7d97b4; }

  @media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; scroll-behavior:auto !important; } }

  /* ============================================================
     Interior document pages (privacy policy, long-form copy).
     body.doc switches the page to the reading treatment.
     ============================================================ */
  body.doc{ background:var(--mist); font-size:17px; line-height:1.75; }
  .back{ text-decoration:none; color:var(--muted); font-weight:600; font-size:.95rem; }
  .back:hover{ color:var(--navy); }
  @media(max-width:560px){ .back{ display:none; } }

  .titleband{ background:linear-gradient(180deg,var(--navy),var(--navy-d)); color:#fff; padding:52px 0; }
  .titleband .kicker{ font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:#8fc0e8; }
  .titleband h1{ font-size:clamp(1.9rem,4vw,2.7rem); line-height:1.1; margin:.5rem 0 0; letter-spacing:-.4px; text-wrap:balance; color:#fff; }
  .titleband p{ margin:.9rem 0 0; color:#b9cbe0; font-size:1.1rem; max-width:62ch; }

  body.doc main{ padding:44px 0 72px; }
  .card{ background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:clamp(24px,5vw,52px); max-width:820px; margin-inline:auto; box-shadow:0 10px 30px rgba(12,35,64,.06); }
  .contact-info{ background:var(--mist); border-left:4px solid var(--sky); border-radius:8px; padding:20px 24px; margin-bottom:34px; line-height:1.7; }
  .contact-info strong{ display:block; font-size:1.1rem; color:var(--navy); margin-bottom:6px; }
  .card h2{ color:var(--navy); font-size:1.3rem; margin:34px 0 12px; letter-spacing:-.2px; }
  .card h2:first-of-type{ margin-top:0; }
  .card p{ margin:0 0 14px; color:#2b3a49; }
  .card ul{ margin:12px 0 20px 26px; }
  .card li{ margin-bottom:8px; color:#2b3a49; }
  .card a{ color:var(--sky); }
  footer .brand b{ color:#fff; }

  /* ------------------------------------------------------------
     Interior content pages (coverage areas, insurance, FAQ).
     ------------------------------------------------------------ */
  .prose{ max-width:68ch; }
  .prose p{ color:var(--muted); font-size:1.08rem; margin:0 0 1.1rem; }
  .prose p strong{ color:var(--ink); }
  .prose ul{ margin:0 0 1.3rem; padding-left:1.2rem; color:var(--muted); font-size:1.06rem; }
  .prose li{ margin-bottom:.5rem; }
  .prose h3{ font-size:1.22rem; color:var(--navy-d); margin:2rem 0 .6rem; }

  .cities{ display:grid; grid-template-columns:repeat(auto-fill,minmax(178px,1fr)); gap:10px; list-style:none; margin:0; padding:0; }
  .cities li{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:13px 16px; font-weight:600; color:var(--navy-d); font-size:1rem; }
  .band .cities li{ background:#fff; }

  .qa{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; }
  .qa details{ border-bottom:1px solid var(--line); }
  .qa details:last-child{ border-bottom:0; }
  .qa summary{ cursor:pointer; list-style:none; padding:20px 22px; font-weight:700; font-size:1.06rem; color:var(--navy-d); display:flex; align-items:center; gap:12px; }
  .qa summary::-webkit-details-marker{ display:none; }
  .qa summary::after{ content:"+"; margin-left:auto; color:var(--sky); font-size:1.4rem; font-weight:700; line-height:1; }
  .qa details[open] summary::after{ content:"\2013"; }
  .qa summary:hover{ color:var(--sky); }
  .qa .a{ padding:0 22px 22px; color:var(--muted); font-size:1.02rem; }
  .qa .a p{ margin:0 0 .9rem; }
  .qa .a p:last-child{ margin-bottom:0; }

  .cta{ background:var(--navy-d); color:#eaf2fa; border-radius:12px; padding:clamp(26px,5vw,44px); display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; }
  .cta h2{ color:#fff; margin:0 0 .4rem; font-size:clamp(1.5rem,2.8vw,2rem); }
  .cta p{ margin:0; color:#b9cbe0; max-width:52ch; }
  .cta .btn-ghost{ background:transparent; color:#fff; border-color:#fff; }
  .cta .btn-ghost:hover{ background:#fff; color:var(--navy-d); }

  .crumbs{ font-size:.9rem; color:var(--muted); padding:16px 0 0; }
  .crumbs a{ color:var(--muted); text-decoration:none; font-weight:600; }
  .crumbs a:hover{ color:var(--sky); }

  .pagelinks{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
  .pagelinks a{ display:block; text-decoration:none; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
  .pagelinks a:hover{ border-color:var(--sky); box-shadow:0 8px 22px rgba(12,35,64,.08); }
  .pagelinks b{ display:block; color:var(--navy-d); font-size:1.06rem; margin-bottom:.3rem; }
  .pagelinks span{ color:var(--muted); font-size:.95rem; }

  /* ---- Printable referral sheet ------------------------------------------------ */
  .sheet-page{ background:var(--mist); }
  .sheet-bar{ background:var(--navy); color:#fff; padding:14px 0; }
  .sheet-bar .wrap{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between; }
  .sheet-bar a{ color:#fff; font-weight:700; font-size:.88rem; text-decoration:none; }
  .sheet-bar a:hover{ text-decoration:underline; }
  .sheet-bar p{ margin:4px 0 0; color:#cfe0f0; font-size:.86rem; max-width:52ch; }

  .sheet{ background:#fff; color:#000; max-width:8.5in; margin:24px auto; padding:0.5in;
          box-shadow:0 2px 18px rgba(12,35,64,.14); font-size:10.5pt; line-height:1.42; }
  .sheet h1{ font-size:19pt; margin:0; letter-spacing:-.01em; }
  .sheet h2{ font-size:11pt; margin:13px 0 4px; text-transform:uppercase; letter-spacing:.07em;
             color:var(--navy); border-bottom:1px solid #000; padding-bottom:2px; }
  .sheet p{ margin:0 0 7px; }
  .sheet ul, .sheet ol{ margin:0 0 7px; padding-left:17px; }
  .sheet li{ margin-bottom:3px; }
  .sheet small{ display:block; font-size:8.8pt; color:#333; margin-top:2px; }

  .sheet-head{ display:flex; align-items:flex-start; gap:12px; border-bottom:2.5px solid var(--navy);
               padding-bottom:9px; }
  .sheet-logo{ width:40px; height:36px; flex:none; }
  .sheet .sheet-sub{ margin:2px 0 0; font-size:10pt; color:#333; }
  .sheet-contact{ margin-left:auto; text-align:right; font-size:9.6pt; }
  .sheet-contact p{ margin:0 0 2px; }
  .sheet-contact span{ display:inline-block; min-width:44px; text-align:left; color:#555;
                       text-transform:uppercase; font-size:7.8pt; letter-spacing:.07em; }

  .sheet .sheet-cap{ display:inline-flex; align-items:center; gap:8px; margin:18px 0 16px;
              padding:8px 15px; background:var(--good); border:1px solid #29a06c;
              border-radius:999px; color:#fff; font-weight:700; font-size:10.5pt; }
  .sheet .sheet-cap svg{ width:14px; height:14px; color:#fff; stroke-width:3; flex:none; }

  .sheet-cols{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
  .sheet .sheet-ways{ padding-left:17px; }
  /* An accelerator for the portal step, not a fourth way to refer: small,
     captioned, beside the URL it encodes. A large centred QR is what makes a
     clinical handout look like an advert. */
  .sheet .sheet-qr{ float:right; width:76px; text-align:center; margin:0 0 4px 10px; }
  .sheet .sheet-qr img{ display:block; width:76px; height:76px; }
  .sheet .sheet-qr small{ font-size:7.6pt; color:#555; margin-top:2px; }
  .sheet-ways li{ margin-bottom:7px; }
  .sheet .sheet-plans{ columns:2; column-gap:16px; }
  .sheet-area{ margin-top:10px; border-top:1px solid #000; padding-top:7px; }
  .sheet .sheet-area-more{ font-size:9pt; color:#333; }
  .sheet .sheet-foot{ margin-top:12px; padding-top:6px; border-top:1px solid #000; font-size:8.6pt;
               color:#333; text-align:center; }

  @media (max-width: 720px){
    .sheet{ padding:22px 18px; margin:14px; }
    .sheet-cols{ grid-template-columns:1fr; gap:0; }
    .sheet-head{ flex-wrap:wrap; }
    .sheet-contact{ margin-left:0; text-align:left; width:100%; }
  }

  /* Paper. The bar is screen furniture and must not appear on the printed page. */
  @media print{
    @page{ size:letter; margin:0.45in; }
    .sheet-page{ background:#fff; }
    .sheet-bar{ display:none; }
    .sheet{ margin:0; padding:0; max-width:none; box-shadow:none;
            font-size:9.6pt; line-height:1.33; }
    /* The screen scale overflowed letter by a few lines and pushed the footer onto a
       second page. Print gets its own, tighter scale rather than inheriting it. */
    .sheet h1{ font-size:16.5pt; }
    .sheet h2{ color:#000; font-size:9.8pt; margin:9px 0 3px; }
    .sheet p{ margin:0 0 5px; }
    .sheet li{ margin-bottom:2px; }
    .sheet small{ font-size:8.1pt; margin-top:1px; }
    .sheet-head{ border-bottom-color:#000; padding-bottom:7px; }
    .sheet-logo{ width:34px; height:31px; }
    .sheet .sheet-sub{ font-size:9.2pt; }
    .sheet-contact{ font-size:9pt; }
    /* Narrow like the screen version, but outlined: a solid fill costs toner on a
       handout and prints muddy on a mono printer. */
    .sheet .sheet-cap{ background:none; color:#000; border-color:#000; margin:12px 0 11px;
                padding:5px 12px; font-size:9.6pt; }
    .sheet .sheet-cap svg{ color:#000; width:12px; height:12px; }
    .sheet-ways li{ margin-bottom:5px; }
    .sheet .sheet-qr{ width:68px; margin-left:8px; }
    .sheet .sheet-qr img{ width:68px; height:68px; }
    .sheet-area{ margin-top:7px; padding-top:5px; }
    .sheet .sheet-area-more{ font-size:8.4pt; }
    .sheet .sheet-foot{ margin-top:8px; padding-top:4px; font-size:7.9pt; }
    .sheet-cols section, .sheet-area{ break-inside:avoid; }
    /* Paper is 8.5in wide whatever printed it. Without these, a phone carries its
       narrow viewport into print, the 720px block collapses the columns and the sheet
       runs to two pages. Desktop clears that breakpoint by ~10px, which is not a
       margin worth trusting. */
    .sheet-cols{ grid-template-columns:1fr 1fr; gap:20px; }
    .sheet-head{ flex-wrap:nowrap; }
    .sheet-contact{ margin-left:auto; text-align:right; width:auto; }
  }
