/* Reset (короткий) */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; tab-size:4; }
body{ margin:0; line-height:1.5; }
img,svg,video,canvas{ display:block; max-width:100%; height:auto; }
button,input,select,textarea{ font:inherit; color:inherit; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6,p,figure{ margin:0; }

/* Токены */
:root{
  --bg:#ffffff;
  --text:#0f172a;
  --muted:#64748b;
  --border:#e2e8f0;
  --brand:#2563eb;
  --brand-ghost:#eef2ff;
  --radius:12px;
  --shadow:0 6px 24px rgba(0,0,0,.08);
  --brand:#2563eb;          /* основной */
  --brand-800:#1e3a8a;      /* тёмный фон callout */
  --brand-900:#172554;      /* ещё темнее, если нужно */
  --on-brand:#ffffff;       /* текст/иконки поверх тёмного */
}

html,body{
  background:var(--bg);
  color:var(--text);
  font-family:"Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

/* Вспомогательные */
.container{ max-width:1100px; margin-inline:auto; padding-inline:16px; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Типографика */
.h1{ font:700 clamp(28px,4vw,42px)/1.2 Inter, sans-serif; }
.h2{ font:700 clamp(22px,3vw,32px)/1.25 Inter, sans-serif; }
.h3{ font:600 18px/1.3 Inter, sans-serif; }
.lead{ color:var(--muted); }

.alert-success{
  --bs-alert-bg:    #0052cc;
  --bs-alert-color: #ffffff;  
  --bs-alert-border-color: #0043a3; 
}

.alert{
  border-width: 0;
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}