:root { --navy:#124e6b; --ink:#18323a; --muted:#607178; --paper:#fffdf8; --line:#d8e1df; --gold:#c98224; }
* { box-sizing:border-box; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-behavior:smooth; scroll-padding-top:1rem; }
body { margin:0; background:#e8ebe9; color:var(--ink); font-family:Arial, Helvetica, sans-serif; line-height:1.55; }
a { color:inherit; text-underline-offset:.2em; text-decoration-thickness:.08em; }
a:hover { text-decoration-thickness:.15em; }
.site-shell { width:min(1180px, calc(100% - 2rem)); margin:1rem auto; background:var(--paper); box-shadow:0 12px 36px rgb(25 44 48 / .12); }
.masthead { padding:clamp(3rem, 8vw, 7rem) clamp(1.5rem, 6vw, 5rem) 3rem; border-top:10px solid var(--navy); background:linear-gradient(135deg, #fffdf8 55%, #eff6f3); }
.eyebrow { margin:0 0 .6rem; color:var(--gold); font-weight:800; letter-spacing:.12em; text-transform:uppercase; font-size:.78rem; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia, "Times New Roman", serif; color:var(--navy); line-height:1.1; }
.masthead h1,.masthead .site-title { margin-bottom:1rem; max-width:none; color:var(--navy); font:700 clamp(2.7rem, 5.1vw, 4.5rem)/1.1 Georgia, "Times New Roman", serif; }
.masthead .site-title a { text-decoration:none; }
.intro { max-width:62ch; font-size:clamp(1.05rem, 2vw, 1.3rem); color:var(--muted); }
.contents { padding:clamp(2rem, 6vw, 5rem); }
.section-heading { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; border-bottom:2px solid var(--navy); }
.section-heading span { order:2; color:var(--muted); font-size:.8rem; text-transform:uppercase; letter-spacing:.09em; padding-bottom:.5rem; }
.section-heading h2 { font-size:clamp(1.8rem, 4vw, 3rem); margin-bottom:.35rem; }
.site-search { position:relative; width:min(280px, 100%); color:var(--ink); font-size:1rem; z-index:5; }
.section-heading .site-search { margin-bottom:.45rem; }
.breadcrumbs .site-search { margin-left:auto; }
.site-search input { width:100%; min-height:44px; padding:.65rem 2.3rem .65rem .8rem; border:1px solid #9cafb0; border-radius:3px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23124e6b' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat right .7rem center; color:var(--ink); font:inherit; }
.site-search input:focus { outline:3px solid rgb(18 78 107 / .22); border-color:var(--navy); }
.search-results { position:absolute; top:calc(100% + .25rem); right:0; width:min(420px, calc(100vw - 2rem)); max-height:360px; overflow:auto; padding:.35rem; margin:0; list-style:none; background:#fff; border:1px solid var(--line); box-shadow:0 12px 28px rgb(25 44 48 / .2); }
.search-results a { display:flex; flex-direction:column; gap:.1rem; padding:.65rem .7rem; color:var(--ink); text-decoration:none; }
.search-results a:hover,.search-results a:focus { background:#edf5f3; outline:none; }
.search-results strong { font:700 1rem/1.25 Georgia, "Times New Roman", serif; color:var(--navy); }
.search-results span { font-size:.78rem; color:var(--muted); }
.search-empty { padding:.7rem; color:var(--muted); }
.category-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.category-card { min-height:150px; padding:1.25rem; display:grid; grid-template-columns:1fr; grid-template-rows:1fr auto; gap:.25rem; background:var(--category); color:var(--category-ink); text-decoration:none; border-radius:2px; transition:transform .18s ease, box-shadow .18s ease; }
.category-card:hover { transform:translateY(-3px); box-shadow:0 10px 22px rgb(25 44 48 / .16); }
.category-card-heading { display:flex; align-items:center; gap:.8rem; min-width:0; }
.category-card-icon { flex:0 0 auto; width:48px; height:48px; object-fit:contain; filter:brightness(0) invert(1); }
.category-number { font:700 1rem/1 Georgia, serif; opacity:.8; }
.category-name { font:700 clamp(1.25rem, 2.5vw, 1.7rem)/1.15 Georgia, serif; }
.category-count { grid-column:1; justify-self:end; text-align:right; font-size:.82rem; font-weight:700; }
.breadcrumbs { position:sticky; top:0; z-index:20; display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; padding:1.5rem clamp(1.25rem, 5vw, 4rem); background:var(--paper); color:var(--muted); border-bottom:1px solid var(--line); box-shadow:0 5px 14px rgb(25 44 48 / .1); }
.breadcrumbs a { color:var(--gold); }
.breadcrumb-home-short { display:none; }
.category-hero { padding:clamp(2.5rem, 6vw, 5rem) clamp(1.25rem, 5vw, 4rem); background:var(--category); color:var(--category-ink); }
.category-hero .eyebrow, .category-hero h1 { color:inherit; }
.category-hero-heading { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.category-hero h1 { scroll-margin-top:8rem; font-size:clamp(2.3rem, 6vw, 4.8rem); margin:0; max-width:16ch; }
.category-hero-icon { flex:0 0 auto; width:clamp(96px, 14vw, 140px); height:clamp(95px, 14vw, 138px); object-fit:contain; filter:brightness(0) invert(1); }
.category-hero p:last-child { margin:0; max-width:58ch; font-size:1.1rem; }
.category-nav { padding:2.5rem clamp(1.25rem, 5vw, 4rem); background:#f5f4ef; border-bottom:1px solid var(--line); }
.category-nav h2 { font-size:1.5rem; margin-bottom:1rem; }
.category-nav ol { columns:2; column-gap:3rem; margin:0; padding-left:1.4rem; }
.category-nav li { break-inside:avoid; padding:.2rem 0 .35rem .25rem; }
.category-nav a { display:inline-flex; align-items:center; }
.service-list { padding:clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem); }
.service-card { scroll-margin-top:1rem; margin-bottom:3rem; border:1px solid var(--line); background:#fff; box-shadow:0 5px 16px rgb(21 47 53 / .06); }
.service-title { min-height:72px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; padding:.85rem 1rem; background:var(--category); color:var(--category-ink); }
.service-title h2 { color:inherit; margin:0; font-size:clamp(1.25rem, 3vw, 1.75rem); }
.service-number { font:700 1rem Georgia, serif; opacity:.8; }
.back-to-top { display:inline-flex; align-items:center; gap:.45rem; padding:.55rem .7rem; background:rgb(255 255 255 / .9); color:#163b48; border-radius:999px; font-size:.8rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.back-to-top span:first-child { font-size:1.2rem; }
.service-body { padding:clamp(1rem, 4vw, 2rem); max-width:980px; }
.service-body section + section { border-top:2px solid color-mix(in srgb, var(--category), white 15%); padding-top:1rem; margin-top:1rem; }
.service-body h3 { margin-bottom:.35rem; font-size:1rem; color:#566764; font-weight:800; }
.service-body p { margin-bottom:.75rem; }
.service-body ul { margin:.25rem 0 .8rem; padding-left:1.6rem; }
.service-body li + li { margin-top:.3rem; }
.service-body a { overflow-wrap:anywhere; color:#0c5978; font-weight:650; }
.website-section { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.website-section > div { min-width:0; }
.website-link { display:inline; word-break:break-word; overflow-wrap:anywhere; }
.service-qr { flex:0 0 auto; width:104px; height:104px; object-fit:contain; image-rendering:auto; }
.medicare-service .service-services ul { columns:2; column-gap:3rem; }
.medicare-service .service-services li { break-inside:avoid; }
.site-footer { display:flex; justify-content:space-between; gap:1rem; padding:1.5rem clamp(1.25rem, 5vw, 4rem); background:var(--navy); color:white; font-size:.85rem; }
.site-footer p { margin:0; }
@media (max-width:720px) {
  .site-shell { width:100%; margin:0; }
  .category-grid { grid-template-columns:1fr; }
  .category-nav ol { columns:1; }
  .category-nav li { padding:0 0 0 .25rem; }
  .category-nav a { width:100%; min-height:44px; padding:.45rem 0; }
  .breadcrumb-home-long { display:none; }
  .breadcrumb-home-short { display:inline; }
  .section-heading h2 { flex-basis:100%; }
  .section-heading .site-search { flex:0 0 100%; width:100%; }
  .breadcrumbs .site-search { flex:0 0 100%; width:100%; margin-left:0; }
  .category-hero h1 { scroll-margin-top:9rem; }
  .search-results { left:0; right:auto; width:100%; }
  .service-title { grid-template-columns:auto minmax(0, 1fr) auto; }
  .service-title h2 { min-width:0; overflow-wrap:anywhere; }
  .back-to-top { grid-column:3; align-self:center; justify-self:end; justify-content:center; min-width:44px; min-height:44px; padding:.55rem; }
  .back-to-top span:last-child { display:none; }
  .website-section { align-items:flex-start; }
  .service-qr { width:88px; height:88px; }
  .medicare-service .service-services ul { columns:1; }
  .site-footer { flex-direction:column; }
}
@media (max-width:480px) {
  .masthead { padding:2.25rem 1.25rem 2rem; }
  .masthead h1,.masthead .site-title { max-width:12ch; font-size:clamp(2.2rem, 11vw, 2.8rem); }
  .contents { padding:1.75rem 1rem 2.5rem; }
  .category-card { min-height:128px; padding:1rem; }
  .breadcrumbs { padding:1rem; font-size:.9rem; }
  .category-hero { padding:2.25rem 1rem; }
  .category-hero-heading { gap:1rem; }
  .category-hero-icon { width:76px; height:75px; }
  .category-nav { padding:2rem 1rem; }
  .service-list { padding:1.5rem .75rem; }
  .service-title { gap:.75rem; padding:.85rem .75rem; }
  .website-section { flex-direction:column; gap:1rem; }
  .service-qr { width:104px; height:104px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .category-card { transition:none; } }
@media print { body { background:white; } .site-shell { width:100%; margin:0; box-shadow:none; } .back-to-top,.breadcrumbs,.site-search { display:none; } .service-card { break-inside:avoid; box-shadow:none; } }
