*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:var(--space-20)}
body{min-height:100dvh;line-height:1.65;font-family:var(--font-body,sans-serif);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);text-wrap:balance;line-height:1.2;color:var(--color-text)}
p{text-wrap:pretty}
::selection{background:rgba(0,85,165,.15);color:var(--color-text)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
button{cursor:pointer;background:none;border:none}
a,button,[role=button],input,textarea,select{transition:color var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}

/* Skip link */
.skip-link{position:absolute;top:-100%;left:var(--space-4);z-index:9999;padding:var(--space-3) var(--space-6);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);text-decoration:none}
.skip-link:focus{top:var(--space-4)}

/* Container */
.container{max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(var(--space-4),4vw,var(--space-8))}
.container--default{max-width:var(--content-wide)}

/* Section */
.section{padding-block:clamp(var(--space-12),7vw,var(--space-24))}
.section-sm{padding-block:clamp(var(--space-8),4vw,var(--space-16))}

/* Labels */
.section-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-3)}
.section-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-4);line-height:1.2}
.section-desc{font-size:var(--text-base);color:var(--color-text-muted);max-width:60ch;line-height:1.7}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:.75em 1.5em;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;border:2px solid transparent;line-height:1.4;transition:background var(--transition),color var(--transition),box-shadow var(--transition),border-color var(--transition),transform 120ms cubic-bezier(.16,1,.3,1)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}
.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 4px 16px rgba(26,111,245,.35)}
.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-border)}
.btn-secondary:hover{background:var(--color-primary-light);border-color:var(--color-primary)}
.btn-lg{padding:.85em 2em;font-size:var(--text-base);border-radius:var(--radius-xl)}

/* Badge */
.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2em .7em;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1.6}
.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}
.badge-success{background:var(--color-success-light);color:var(--color-success)}
.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}

/* Card — без hover-анимации */
.card{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid rgba(26,35,64,.08);box-shadow:var(--shadow-sm);overflow:hidden}

/* Divider */
hr,.divider{border:none;border-top:1px solid var(--color-divider);margin:var(--space-8) 0}

/* Forms */
.form-group{display:flex;flex-direction:column;gap:var(--space-2)}
.form-label{font-size:var(--text-sm);font-weight:600}
.form-input,.form-textarea,.form-select{padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);font-family:var(--font-body);outline:none;width:100%;transition:border-color var(--transition),box-shadow var(--transition)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-faint)}
.form-input:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-highlight)}
