:root {
  --color-primary: #2F4F4F;
  --color-primary-dark: #152326;
  --color-primary-light: #3A5B5B;
  --color-accent: #D99A32;
  --color-accent-dark: #BE7E1F;
  --color-background: #F5F6F3;
  --color-surface: #FFFFFF;
  --color-text: #1D2527;
  --color-text-secondary: #667174;
  --color-white: #FFFFFF;
  --color-line: rgba(29, 37, 39, .13);
  --shadow-soft: 0 28px 80px rgba(21, 35, 38, .10);
  --shadow-card: 0 18px 50px rgba(21, 35, 38, .08);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 28px;
  --site-gutter: clamp(22px, 3.3vw, 68px);
  --site-max: 1680px;
  --header-h: 86px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { min-width: 0; width: 100%; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  font-family: Inter, Arial, Helvetica, sans-serif;
  color: var(--color-text);
  background: var(--color-surface);
  line-height: 1.58;
  text-rendering: optimizeLegibility;
}
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
input, textarea, button { appearance: none; }
textarea { resize: vertical; }
ul, ol { padding-left: 1.2em; }

::selection { background: rgba(217,154,50,.25); color: var(--color-primary-dark); }

h1, h2, h3, h4 {
  line-height: 1.06;
  letter-spacing: -.035em;
  color: var(--color-text);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
h1 { font-size: clamp(46px, 6.4vw, 92px); }
h2 { font-size: clamp(34px, 4.1vw, 60px); }
h3 { font-size: clamp(20px, 1.8vw, 28px); }
p { color: var(--color-text-secondary); }

.site-shell {
  width: min(calc(100% - (var(--site-gutter) * 2)), var(--site-max));
  margin-inline: auto;
}

.site-shell > * { min-width: 0; }
.metrika-noscript { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.skip-link {
  position: fixed;
  left: 16px;
  top: 16px;
  transform: translateY(-160%);
  z-index: 2000;
  background: var(--color-accent);
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 800;
}
.skip-link:focus { transform: none; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--color-primary);
  font-size: 12px;
  line-height: 1;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .14em;
}
.eyebrow::before {
  content: "";
  width: 30px;
  height: 2px;
  background: currentColor;
}

.section { padding: clamp(90px, 8vw, 150px) 0; }
.section-soft { background: var(--color-background); }
.section-dark { background: var(--color-primary-dark); color: #fff; }
.section-dark h2, .section-dark h3 { color: #fff; }
.section-dark p { color: rgba(255,255,255,.68); }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* Defensive sizing for all form controls and grid descendants. */
.contact-form *,
.modal-panel * {
  min-inline-size:0;
}
