:root{--red:#D32F2F;--red-dark:#B71C1C;--text:#1F1F1F;--muted:#4B5563;--muted-2:#6B7280;--bg:#fff;--bg-soft:#F5F7F8;--border:#E5E7EB;--shadow:0 10px 30px rgba(0,0,0,.06);--radius:14px;--max:1200px}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.65}
a{color:inherit;text-decoration:none}a.underline{text-decoration:underline;text-underline-offset:3px}a:hover{color:var(--red-dark)}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:64px;height:64px}
.brand .name{font-weight:700;letter-spacing:.02em;text-transform:uppercase;font-size:14px;line-height:1.1}
.brand .tag{color:var(--muted);font-size:12px}
.nav{display:flex;align-items:center;gap:18px;font-size:14px;color:var(--muted)}
.nav a{padding:8px 8px;border-radius:10px}.nav a:hover{background:var(--bg-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;padding:12px 16px;font-weight:600;border:1px solid transparent;transition:all .15s ease;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark)}
.btn-secondary{background:#fff;color:var(--red);border-color:rgba(211,47,47,.35)}.btn-secondary:hover{border-color:var(--red);background:rgba(211,47,47,.06)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--bg-soft)}
.mobile-toggle{display:none;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff}
.hero{padding:44px 0 26px}.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center}
.kicker{color:var(--muted);font-weight:600;letter-spacing:.02em;text-transform:uppercase;font-size:12px}
h1{font-size:clamp(34px,4.4vw,54px);line-height:1.1;margin:10px 0 14px}
.lede{color:var(--muted);font-size:18px;max-width:56ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 8px}
.trustline{font-size:13px;color:var(--muted-2)}
.media{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.media img{width:100%;height:auto;display:block}
.section{padding:44px 0}.section.soft{background:var(--bg-soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.section h2{font-size:clamp(24px,3vw,34px);line-height:1.2;margin:0 0 10px}.section p{margin:0 0 14px;color:var(--muted)}
.hr-red{width:80px;height:3px;background:var(--red);border-radius:99px;margin:10px 0 18px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.list{margin:0;padding-left:18px;color:var(--muted)}.list li{margin:8px 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.card h3{margin:0 0 6px;font-size:18px}.card p{margin:0 0 10px;color:var(--muted);font-size:14px}
.card a{color:var(--red);font-weight:600;font-size:14px}
.callout{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.callout h3{margin:0 0 8px}.callout p{margin:0 0 12px}
.badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;color:var(--muted)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;color:var(--muted);font-weight:600}
.field input,.field select,.field textarea{font:inherit;padding:12px 12px;border-radius:12px;border:1px solid var(--border);background:#fff}
.field textarea{min-height:120px;resize:vertical}.field.full{grid-column:1/-1}
.footer{background:#1F1F1F;color:#fff;margin-top:40px}
.footer-inner{padding:32px 0;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px}
.footer .muted{color:rgba(255,255,255,.72)}.footer a{color:rgba(255,255,255,.82)}.footer a:hover{color:#fff}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand img{width:40px;height:40px;object-fit:contain;filter:none}
.footer small{color:rgba(255,255,255,.6);display:block;margin-top:10px}
.footer-links{display:flex;flex-direction:column;gap:8px;font-size:14px}
.breadcrumb{padding:18px 0 0;font-size:13px;color:var(--muted-2)}
.breadcrumb a{color:var(--muted-2);text-decoration:underline;text-underline-offset:3px}.breadcrumb a:hover{color:var(--red-dark)}
@media (max-width:920px){.brand img{width:52px;height:52px}.grid{grid-template-columns:1fr}.cols{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.nav{display:none}.mobile-toggle{display:inline-flex}.header-inner{padding:12px 0}.form{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}}
.mobile-drawer{display:none;border-top:1px solid var(--border);background:#fff}
.mobile-drawer.open{display:block}.mobile-drawer .container{padding:12px 24px 18px}
.mobile-drawer a{display:block;padding:10px 8px;border-radius:10px;color:var(--muted)}
.mobile-drawer a:hover{background:var(--bg-soft);color:var(--text)}


/* ---- Image integrations (generated) ---- */
.media picture{display:block}
.media picture img{width:100%;height:auto;display:block}
.media-caption{padding:10px 12px;font-size:13px;color:var(--muted);border-top:1px solid var(--border);background:rgba(255,255,255,.55)}

.figure{margin:18px 0 22px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.figure picture{display:block}
.figure img{width:100%;height:auto;display:block}
.figure figcaption{padding:10px 12px;font-size:14px;color:var(--muted);border-top:1px solid var(--border);background:rgba(255,255,255,.55)}

.card picture{display:block;margin-bottom:10px}
.card-thumb{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--border);background:var(--bg-soft)}



/* =========================================================
   Accessibility + Readability overrides (v2)
   Goals:
   - Larger default type
   - Higher contrast
   - Less beige / less "muddy" UI
   - Better focus states
   - More comfortable line-height and spacing
   ========================================================= */

:root{
  /* Neutral UI palette (less beige) */
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --surface-2: #F8FAFC;
  --border-2: #E5E7EB;
  --text: #0F172A;         /* slate-900 */
  --muted: #334155;        /* slate-700 */
  --muted-2:#475569;       /* slate-600 */
  --link: var(--red);
  --shadow-2: 0 10px 25px rgba(2,6,23,.08);
}

/* Type scale */
html{font-size:18px;}
body{
  background: var(--surface-2);
  color: var(--text);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
p, li{font-size:1rem;}
.small, .fineprint{font-size:.95rem;}

h1{font-size:2.35rem; letter-spacing:-.02em; line-height:1.15;}
h2{font-size:1.65rem; letter-spacing:-.01em; line-height:1.2;}
h3{font-size:1.25rem; line-height:1.25;}

@media (max-width: 760px){
  html{font-size:17px;}
  h1{font-size:2.05rem;}
  h2{font-size:1.45rem;}
}

/* Improve section spacing */
.section{padding:72px 0;}
@media (max-width: 760px){ .section{padding:56px 0;} }

/* Cards / panels: remove beige feel */
.card, .panel, .box, .learn-card, .resource-card{
  background: var(--surface) !important;
  border: 1px solid var(--border-2) !important;
  box-shadow: var(--shadow-2);
}
.card * , .panel * { color: inherit; }

/* Buttons: slightly larger and clearer */
.btn, button, .button{
  font-size:1rem;
  line-height:1.1;
  padding:12px 18px;
}
.btn-primary, .button-primary{
  background: var(--red);
  border-color: var(--red);
}
.btn-primary:hover, .button-primary:hover{background: var(--red-dark);}

/* Links: clearer affordance */
a{color: var(--link);}
a:hover{text-decoration: underline;}
a:focus-visible{outline: 3px solid rgba(211,47,47,.35); outline-offset: 3px; border-radius:10px;}

/* Focus for all interactive elements */
:where(button, a, input, textarea, select, summary, [tabindex]):focus-visible{
  outline: 3px solid rgba(211,47,47,.35);
  outline-offset: 3px;
}

/* Images: render slightly brighter and crisper without over-processing */
figure img, .figure img, .hero img, img.diagram, img.learn-illustration{
  filter: brightness(1.06) contrast(1.06) saturate(1.05);
}

/* Ensure diagrams aren't constrained too small */
.figure, figure{margin:0;}
figure{max-width: 100%;}
figure img{width:100%; height:auto; display:block; border-radius:16px;}

/* Larger nav text */
.nav a{font-size:1rem;}

/* === Design polish & mobile ergonomics (v3) === */
:root{
  /* Ensure "soft" sections match the new neutral background (avoid beige cast). */
  --bg-soft: var(--surface-2);
}

/* Better line-length for readability */
.lede,
.section p,
.card p,
.panel p{max-width:70ch;}

/* Consistent minimum tap targets */
.btn,
button,
.mobile-toggle,
.nav a{min-height:44px;}

/* Skip link (keyboard accessibility) */
.skip-link{
  position:absolute;
  left:-9999px;
  top:10px;
  background:#fff;
  border:2px solid rgba(211,47,47,.45);
  padding:10px 12px;
  border-radius:12px;
  z-index:2000;
  color: var(--text);
  box-shadow: var(--shadow-2);
}
.skip-link:focus{left:12px;}

/* Header: keep it tidy on small screens */
.header-inner{min-height:72px;}
.header .brand img{width:56px;height:56px;}

@media (max-width: 920px){
  .header-inner{min-height:64px;}
  .header .brand img{width:48px;height:48px;}
}

/* On very small screens, move the primary CTA into the drawer to prevent crowding */
@media (max-width: 520px){
  .header-cta{display:none;}
  .brand .name{font-size:12px;}
  .brand .tagline{display:none;}
  .header-inner{gap:10px;}
}

/* Mobile drawer: clearer, more app-like */
.mobile-drawer{
  border:1px solid var(--border-2);
  box-shadow: var(--shadow-2);
}
.mobile-drawer.open{animation: drawerDown .18s ease-out;}
@keyframes drawerDown{from{transform:translateY(-8px);opacity:.0}to{transform:none;opacity:1}}
.mobile-drawer a{padding:12px 10px; font-size:1rem;}
.mobile-drawer a:hover{background: rgba(2,6,23,.04); text-decoration:none;}

/* Buttons: subtle elevation on hover (desktop) */
@media (hover:hover){
  .btn:hover{transform: translateY(-1px);}
  .btn:active{transform: translateY(0px);}
}

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