/* SwitzerHealth shared stylesheet (v3). Union of page styles; page-specific overrides remain inline. */
:root { --red:#D52B1E; --red-hover:#B82019; --charcoal:#2D2D2D; --black:#1B2A4A; --gray-700:#555; --gray-500:#6B6B6B; --gray-300:#CCC; --gray-200:#E5E5E5; --gray-100:#F5F5F5; --white:#FFF; --font:'Helvetica Neue', Helvetica, Arial, sans-serif; --max:1080px; --ease:cubic-bezier(0.25,0.1,0.25,1); }
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; scroll-padding-top:88px; }
body { font-family:var(--font); color:var(--charcoal); line-height:1.72; background:var(--white); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
a { color:inherit; text-decoration:none; }
img,svg { display:block; max-width:100%; }
.container { max-width:var(--max); margin:0 auto; padding:0 32px; }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--red); color:#FFF; padding:12px 18px; font-weight:600; z-index:10000; }
.skip-link:focus { left:12px; top:12px; outline:3px solid #FFF; outline-offset:2px; }
.top-bar { background:var(--black); color:rgba(255,255,255,0.85); font-size:0.78rem; letter-spacing:0.04em; padding:7px 0; }
.top-bar .container { display:flex; gap:32px; align-items:center; }
.top-bar a { color:rgba(255,255,255,0.85); display:inline-flex; align-items:center; gap:6px; }
.top-bar svg { width:13px; height:13px; fill:currentColor; }
header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.97); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--gray-200); transition:box-shadow 0.3s var(--ease); }
header.scrolled { box-shadow:0 1px 8px rgba(0,0,0,0.06); }
header .container { display:flex; align-items:center; justify-content:space-between; height:72px; }
.logo { display:flex; align-items:center; gap:10px; font-size:1.25rem; font-weight:700; letter-spacing:-0.025em; }
.logo-mark { width:34px; height:34px; border-radius:5px; overflow:hidden; flex-shrink:0; }
.logo-mark img { width:100%; height:100%; object-fit:cover; }
.logo-text span { color:var(--red); }
nav { display:flex; align-items:center; gap:24px; }
nav a.nav-link { font-size:0.78rem; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; color:var(--gray-700); transition:color 0.2s var(--ease); }
nav a.nav-link:hover, nav a.nav-link.active { color:var(--charcoal); }
nav a.nav-link.active { color:var(--red); }
nav a.nav-link:focus-visible, .btn:focus-visible { outline:2px solid var(--red); outline-offset:3px; border-radius:2px; }
.nav-care { position:relative; }
.nav-care > a::after { content:" \25BE"; font-size:0.7em; opacity:0.7; }
.nav-care-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(-6px); background:#FFF; border:1px solid var(--gray-200); border-radius:6px; box-shadow:0 12px 32px rgba(0,0,0,0.08); min-width:240px; padding:12px 0; margin-top:8px; opacity:0; visibility:hidden; transition:opacity 0.18s var(--ease), visibility 0.18s, transform 0.18s var(--ease); }
.nav-care:hover .nav-care-menu, .nav-care:focus-within .nav-care-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav-care-menu a { display:block; padding:9px 22px; font-size:0.88rem; font-weight:500; color:var(--charcoal); letter-spacing:0; text-transform:none; }
.nav-care-menu a.active { color:var(--red); }
.nav-care-menu a:hover { background:var(--gray-100); color:var(--red); }
.btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font); font-size:0.82rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; padding:10px 24px; border-radius:4px; border:none; cursor:pointer; transition:all 0.2s var(--ease); }
.btn-primary { background:var(--red); color:#FFF; }
.btn-primary:hover { background:var(--red-hover); }
.btn-outline { background:transparent; color:var(--charcoal); border:1.5px solid var(--gray-300); }
.btn-outline:hover { border-color:var(--charcoal); }
.btn svg { width:14px; height:14px; fill:currentColor; }
.btn:disabled { opacity:0.7; cursor:not-allowed; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span { display:block; width:22px; height:1.5px; background:var(--charcoal); margin:5px 0; }
section { padding:110px 0; }
section.compact { padding:72px 0; }
section.flush { padding:0; }
section.bg-light { background:var(--gray-100); }
section.bg-dark { background:var(--black); color:#FFF; }
.breadcrumb { padding:16px 0; font-size:0.82rem; color:var(--gray-700); border-bottom:1px solid var(--gray-200); background:var(--gray-100); }
.breadcrumb a { color:var(--gray-700); }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb .sep { margin:0 8px; color:var(--gray-300); }
.breadcrumb .current { color:var(--charcoal); font-weight:600; }
.hero { min-height:calc(100vh - 144px); display:flex; align-items:center; background:var(--black); color:#FFF; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.hero-text h1 { font-size:clamp(2.4rem,4.5vw,3.6rem); font-weight:700; line-height:1.08; letter-spacing:-0.03em; margin-bottom:20px; }
.hero-text h1 em { font-style:normal; color:var(--red); }
.hero-text .hero-category { font-size:1.05rem; line-height:1.55; color:rgba(255,255,255,0.85); max-width:460px; margin-bottom:16px; font-weight:500; }
.hero-text .subtitle { font-size:1rem; line-height:1.6; color:rgba(255,255,255,0.7); max-width:460px; margin-bottom:36px; font-style:italic; }
.hero-text .btn-row { display:flex; gap:12px; flex-wrap:wrap; }
.hero-visual { display:flex; align-items:center; justify-content:center; }
.hero-visual svg { width:100%; max-width:480px; }
.sh { margin-bottom:48px; }
.sh-label { font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--red); margin-bottom:12px; }
.sh h2 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; line-height:1.18; letter-spacing:-0.02em; color:var(--black); max-width:720px; }
section.bg-dark .sh h2 { color:#FFF; }
.sh p { font-size:1rem; color:var(--gray-700); max-width:620px; margin-top:14px; line-height:1.7; }
section.bg-dark .sh p { color:rgba(255,255,255,0.78); }
.sh.centered { text-align:center; }
.sh.centered h2, .sh.centered p { margin-left:auto; margin-right:auto; }
.divider { width:48px; height:2px; background:var(--red); margin:0 0 24px 0; }
.sh.centered .divider { margin:0 auto 24px; }
.lede { max-width:720px; }
.lede p { font-size:1.04rem; color:var(--charcoal); line-height:1.72; margin-bottom:18px; }
.lede p:last-child { margin-bottom:0; }
.lede strong { color:var(--black); }
.picture-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--gray-200); border:1px solid var(--gray-200); border-radius:6px; overflow:hidden; }
.pg { background:#FFF; padding:36px 28px; }
.pg-num { font-size:0.72rem; font-weight:600; letter-spacing:0.16em; color:var(--red); margin-bottom:14px; }
.pg h4 { font-size:1.05rem; font-weight:700; color:var(--black); margin-bottom:10px; letter-spacing:-0.01em; line-height:1.3; }
.pg p { font-size:0.94rem; color:var(--gray-700); line-height:1.65; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; }
.text-block p { margin-bottom:16px; font-size:1rem; color:var(--gray-700); line-height:1.7; }
.text-block p:last-child { margin-bottom:0; }
.text-block strong { color:var(--charcoal); }
.coverage-card { background:var(--gray-100); border-left:3px solid var(--red); padding:30px 32px; border-radius:4px; margin-top:24px; }
.coverage-card p { font-size:0.98rem; color:var(--charcoal); line-height:1.7; margin:0 0 12px 0; }
.coverage-card p:last-child { margin-bottom:0; }
.coverage-card strong { color:var(--black); }
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); border-radius:6px; overflow:hidden; }
.stat { padding:36px 32px; text-align:center; background:rgba(255,255,255,0.03); }
.stat-num { font-size:2.2rem; font-weight:700; letter-spacing:-0.03em; color:#FFF; line-height:1; margin-bottom:6px; }
.stat-label { font-size:0.85rem; letter-spacing:0.03em; color:rgba(255,255,255,0.75); line-height:1.45; }
.faq-list { max-width:720px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--gray-200); }
.faq-item summary { cursor:pointer; list-style:none; padding:22px 0; font-weight:600; font-size:1rem; color:var(--charcoal); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; font-size:1.4rem; font-weight:400; color:var(--red); }
.faq-item[open] summary::after { content:"−"; }
.faq-item p { padding:0 0 22px 0; color:var(--gray-700); font-size:0.98rem; line-height:1.7; max-width:640px; }
.form-wrap { max-width:560px; margin:0 auto; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-group { display:flex; flex-direction:column; margin-bottom:16px; }
label { font-size:0.78rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:6px; color:var(--gray-700); }
label .req { color:var(--red); }
input,textarea,select { font-family:var(--font); font-size:0.95rem; padding:12px 14px; border:1px solid var(--gray-300); border-radius:4px; outline:none; background:var(--white); color:var(--charcoal); transition:border-color 0.2s; }
input:focus,textarea:focus,select:focus { border-color:var(--charcoal); outline:2px solid var(--red); outline-offset:1px; }
textarea { resize:vertical; min-height:100px; }
.hp-field { position:absolute !important; left:-10000px !important; top:auto !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-consent { display:flex; align-items:flex-start; gap:10px; margin:8px 0 20px; padding:14px 16px; background:#FAFAFA; border:1px solid var(--gray-200); border-radius:4px; }
.form-consent input[type="checkbox"] { flex:0 0 auto; width:18px; height:18px; margin:2px 0 0 0; padding:0; cursor:pointer; accent-color:var(--red); }
.form-consent label { font-size:0.85rem; font-weight:400; letter-spacing:0; text-transform:none; color:var(--gray-700); line-height:1.55; margin:0; cursor:pointer; }
.form-consent label a { color:var(--charcoal); text-decoration:underline; }
.form-success,.form-error { display:none; padding:14px 16px; border-radius:4px; font-size:0.92rem; margin-top:16px; }
.form-success { background:#F0F8F0; border:1px solid #B5D9B5; color:#1F5C1F; }
.form-error { background:#FDF2F0; border:1px solid #F1B5AE; color:#82221B; }
.disclaimer { font-size:0.78rem; color:var(--gray-700); max-width:720px; margin:32px auto 0; text-align:center; line-height:1.6; }
footer { background:var(--black); color:rgba(255,255,255,0.75); padding:48px 0 40px; font-size:0.85rem; }
.footer-inner { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:28px; }
.footer-left { display:flex; align-items:center; gap:10px; }
.footer-left .logo-mark { width:28px; height:28px; border-radius:4px; }
.footer-left span { font-weight:600; color:rgba(255,255,255,0.92); }
.footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:6px 32px; }
.footer-nav a { color:rgba(255,255,255,0.75); font-size:0.85rem; padding:2px 0; }
.footer-nav a:hover { color:#FFF; }
.footer-meta { display:flex; gap:24px; flex-wrap:wrap; align-items:center; margin-top:24px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.12); }
.footer-meta a, .footer-meta span { color:rgba(255,255,255,0.7); font-size:0.82rem; display:inline-flex; align-items:center; gap:6px; }
.footer-meta a:hover { color:#FFF; }
.footer-meta svg { width:13px; height:13px; fill:currentColor; }
.footer-bottom { margin-top:22px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.12); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:0.78rem; color:rgba(255,255,255,0.6); }
.footer-bottom a { color:rgba(255,255,255,0.7); }
.footer-legal { display:flex; gap:18px; flex-wrap:wrap; }
.btt { position:fixed; bottom:24px; right:24px; width:40px; height:40px; background:var(--charcoal); border:none; border-radius:4px; color:#FFF; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.3s; z-index:50; }
.btt.visible { opacity:1; pointer-events:auto; }
.btt:hover { background:var(--red); }
.btt svg { width:16px; height:16px; fill:#FFF; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
img, svg { display: block; max-width: 100%; }
.top-bar a:hover { color: #FFF; }
.btn-white { background: #FFF; color: var(--charcoal); }
.btn-white:hover { background: var(--gray-100); }
.cats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cat {
      background: #FFF; border: 1px solid var(--gray-200); border-radius: 6px;
      padding: 32px 28px;
      transition: border-color 0.2s var(--ease), transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
      display: flex; flex-direction: column;
    }
.cat:hover { border-color: var(--charcoal); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.06); }
.cat-num { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin-bottom: 10px; }
.cat h3 { font-size: 1.15rem; font-weight: 700; color: var(--black); margin-bottom: 10px; letter-spacing: -0.01em; line-height: 1.25; }
.cat p { font-size: 0.95rem; color: var(--gray-700); line-height: 1.65; margin-bottom: 18px; flex-grow: 1; }
.cat a.cat-link { font-size: 0.82rem; font-weight: 600; color: var(--charcoal); letter-spacing: 0.04em; text-transform: uppercase; border-bottom: 1px solid var(--gray-300); padding-bottom: 2px; display: inline-block; align-self: flex-start; transition: color 0.15s var(--ease), border-color 0.15s var(--ease); }
.cat a.cat-link:hover { color: var(--red); border-color: var(--red); }
.how-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; overflow: hidden; }
.how { padding: 40px 32px; background: rgba(255,255,255,0.03); }
.how-num { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; color: rgba(255,255,255,0.55); margin-bottom: 14px; }
.how h4 { font-size: 1.1rem; font-weight: 700; color: #FFF; margin-bottom: 12px; letter-spacing: -0.01em; line-height: 1.3; }
.how p { font-size: 0.95rem; color: rgba(255,255,255,0.8); line-height: 1.65; }
.footer-bottom a:hover { color: #FFF; }
.btt:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.about-hero { background:var(--black); color:#FFF; padding:96px 0 84px; }
.about-hero h1 { font-size:clamp(2.2rem,4.5vw,3.4rem); font-weight:700; line-height:1.08; letter-spacing:-0.03em; max-width:820px; margin-bottom:18px; }
.about-hero h1 em { font-style:normal; color:var(--red); }
.about-hero p.lead { font-size:1.1rem; line-height:1.6; color:rgba(255,255,255,0.85); max-width:720px; }
.prose { max-width:720px; margin:0 auto; }
.prose h2 { font-size:clamp(1.5rem,2.6vw,1.95rem); font-weight:700; color:var(--black); margin:48px 0 16px; letter-spacing:-0.02em; line-height:1.2; }
.prose h2:first-child { margin-top:0; }
.prose h3 { font-size:1.1rem; font-weight:700; color:var(--black); margin:28px 0 10px; letter-spacing:-0.01em; }
.prose p { font-size:1.04rem; color:var(--gray-700); line-height:1.78; margin-bottom:18px; }
.prose p strong { color:var(--charcoal); }
.lineage-figure { margin:32px 0 48px; }
.lineage-figure img { width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; border-radius:6px; display:block; }
.lineage-figure figcaption { font-size:0.82rem; color:var(--gray-500); line-height:1.55; margin-top:16px; font-style:italic; }
.origin { background:var(--black); color:#FFF; padding:88px 0; }
.origin .container { max-width:820px; }
.origin .label { font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.7); margin-bottom:14px; }
.origin h2 { font-size:clamp(1.9rem,3.4vw,2.5rem); font-weight:700; line-height:1.18; letter-spacing:-0.02em; color:#FFF; margin-bottom:28px; max-width:680px; }
.origin p { font-size:1.08rem; color:rgba(255,255,255,0.85); line-height:1.78; margin-bottom:18px; max-width:680px; }
.origin p:last-child { margin-bottom:0; }
.origin .divider { width:48px; height:2px; background:var(--red); margin:0 0 24px 0; }
.creds-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:880px; margin:0 auto; }
.cred { background:var(--white); border:1px solid var(--gray-200); border-radius:6px; padding:32px 28px; }
.cred-tag { font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--red); margin-bottom:12px; display:inline-block; }
.cred h3 { font-size:1.1rem; font-weight:700; color:var(--black); margin-bottom:10px; letter-spacing:-0.01em; }
.cred p { font-size:0.95rem; color:var(--gray-700); line-height:1.7; }
.where-list { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:880px; margin:0 auto; }
.where { background:var(--white); border:1px solid var(--gray-200); border-radius:6px; padding:22px 22px; display:flex; align-items:center; gap:12px; transition:border-color 0.2s, transform 0.2s; }
.where:hover { border-color:var(--charcoal); transform:translateY(-1px); }
.where-bullet { width:8px; height:8px; background:var(--red); border-radius:50%; flex-shrink:0; }
.where-name { font-size:0.95rem; font-weight:600; color:var(--black); letter-spacing:-0.01em; }
.levels { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.1); border-radius:6px; overflow:hidden; }
.lvl { padding:32px 24px; background:rgba(255,255,255,0.03); }
.lvl h4 { font-size:1rem; font-weight:700; color:#FFF; margin-bottom:8px; letter-spacing:-0.01em; }
.lvl p { font-size:0.88rem; color:rgba(255,255,255,0.78); line-height:1.6; }
.audience { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.aud { background:#FFF; border:1px solid var(--gray-200); border-radius:6px; padding:32px 28px; }
.aud-tag { font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--red); margin-bottom:10px; display:inline-block; }
.aud h3 { font-size:1.1rem; font-weight:700; color:var(--black); margin-bottom:10px; letter-spacing:-0.01em; }
.aud p { font-size:0.94rem; color:var(--gray-700); line-height:1.65; }

/* ---- responsive ---- */
@media (max-width:900px) {
      header .container{ position:relative; } .nav-toggle{ display:block; }
      nav{ position:absolute; top:100%; left:0; right:0; background:#FFFFFF; flex-direction:column; padding:24px 32px; gap:14px; box-shadow:0 8px 24px rgba(0,0,0,0.08); border-top:1px solid var(--gray-200); opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity 0.25s, transform 0.25s, visibility 0.25s; z-index:9999; align-items:stretch; }
      nav.open{ opacity:1; visibility:visible; transform:translateY(0); }
      nav a.nav-link{ font-size:1rem; padding:4px 0; }
      .nav-care > a::after{ display:none; }
      .nav-care-menu{ position:static; transform:none; opacity:1; visibility:visible; background:var(--gray-100); border:none; box-shadow:none; padding:8px 0 12px; margin:4px 0 8px 0; border-radius:4px; }
      .nav-care-menu a{ padding:6px 14px; font-size:0.92rem; }
      nav .btn-primary{ text-align:center; justify-content:center; margin-top:4px; }
    }
@media (max-width:900px) { .hero-grid{ grid-template-columns:1fr; gap:48px; text-align:center; } .hero-text .hero-category, .hero-text .subtitle{ margin-left:auto; margin-right:auto; } .hero-text .btn-row{ justify-content:center; } .hero-visual{ order:-1; } .hero-visual svg{ max-width:320px; } }
@media (max-width:768px) { .picture-grid{ grid-template-columns:1fr; } }
@media (max-width:768px) { .two-col{ grid-template-columns:1fr; gap:40px; } }
@media (max-width:600px) { .stats-row{ grid-template-columns:1fr; } }
@media (max-width:600px) { .form-row{ grid-template-columns:1fr; } }
@media (max-width:768px) { .footer-nav{ grid-template-columns:1fr; gap:4px; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; } }
@media (max-width: 900px) { .cats-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .cats-grid { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .how-grid { grid-template-columns: 1fr; } }
@media (max-width:768px) { .creds-grid{ grid-template-columns:1fr; } }
@media (max-width:768px) { .where-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .where-list{ grid-template-columns:1fr; } }
@media (max-width:900px) { .levels{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .levels{ grid-template-columns:1fr; } }
@media (max-width:768px) { .audience{ grid-template-columns:1fr; } }
