:root {
  --sofia-color-blue: #2f54c5;
  --sofia-color-blue-dark: #082e8e;
  --sofia-color-blue-light: #5078f0;
  --sofia-color-blue-soft: #e2e9ff;
  --sofia-color-fon: #f3f5fa;
  --sofia-color-accent: #df1f6a;
  --sofia-color-accent-dark: #c90054;
  --sofia-color-accent-deep: #6f002f;
  --sofia-color-accent-soft: #ecb4cb;
  --sofia-color-accent-tint: #f7e3eb;
  --sofia-color-black: #000000;
  --sofia-color-gray-85: #262626;
  --sofia-color-gray-70: #4d4d4d;
  --sofia-color-gray-55: #737373;
  --sofia-color-gray-40: #999999;
  --sofia-color-gray-20: #cccccc;
  --sofia-color-gray-15: #e4e4e4;
  --sofia-color-gray-5: #f7f7f7;
  --sofia-color-white: #ffffff;
  --sofia-color-emergency: #f5c518;

  --sofia-cat-environment: #2f991f;
  --sofia-cat-transport: #006da8;
  --sofia-cat-health: #e84c12;
  --sofia-cat-finance: #1888a5;
  --sofia-cat-education: #f1ae00;
  --sofia-cat-participate: #c90054;

  --sofia-font: "Sofia Sans", "Segoe UI", sans-serif;
  --sofia-h1: 68px;
  --sofia-h2: 52px;
  --sofia-h3: 36px;
  --sofia-h4: 28px;
  --sofia-h5: 24px;
  --sofia-h6: 20px;
  --sofia-h7: 18px;
  --sofia-h8: 16px;
  --sofia-nav: 19px;

  --sofia-wrapper-site: 1366px;
  --sofia-wrapper-header: 1400px;
  --sofia-wrapper-content: 1200px;
  --sofia-section-space: 70px;
  --sofia-gutter: 32px;
  --sofia-radius-xs: 4px;
  --sofia-radius-m: 8px;
  --sofia-radius-full: 1000px;
  --sofia-icon-16: 16px;
  --sofia-icon-24: 24px;
  --sofia-icon-50: 50px;
  --sofia-icon-70: 70px;
  --sofia-shadow-menu: 0 10px 20px #00000012;

  --sofia-theme-primary: var(--sofia-color-blue);
  --sofia-theme-primary-dark: var(--sofia-color-blue-dark);
  --sofia-theme-primary-light: var(--sofia-color-blue-light);
  --sofia-theme-primary-soft: var(--sofia-color-blue-soft);
  --sofia-theme-accent: var(--sofia-color-accent);
  --sofia-theme-accent-dark: var(--sofia-color-accent-dark);
  --sofia-theme-accent-deep: var(--sofia-color-accent-deep);
  --sofia-theme-accent-soft: var(--sofia-color-accent-soft);
  --sofia-theme-accent-tint: var(--sofia-color-accent-tint);
}

/* Named район overlays. html. beats :root (same element, :root is one pseudo-class). */
html.sofia-theme-lozenets, .sofia-theme-lozenets { --sofia-theme-primary: #1b6b45; --sofia-theme-accent: #5a2d82; }
html.sofia-theme-studentski, .sofia-theme-studentski { --sofia-theme-primary: #1e3a8c; --sofia-theme-accent: #e5a100; }
html.sofia-theme-pancharevo, .sofia-theme-pancharevo { --sofia-theme-primary: #0e7c7b; --sofia-theme-accent: #e85d04; }
html.sofia-theme-iskar, .sofia-theme-iskar { --sofia-theme-primary: #2563eb; --sofia-theme-accent: #df1f6a; }
html.sofia-theme-ovcha-kupel, .sofia-theme-ovcha-kupel { --sofia-theme-primary: #3d8fd4; --sofia-theme-accent: #e5a100; }
html.sofia-theme-bankya, .sofia-theme-bankya { --sofia-theme-primary: #0a2540; --sofia-theme-accent: #e5a100; }
html.sofia-theme-vitosha, .sofia-theme-vitosha { --sofia-theme-primary: #3d8b37; --sofia-theme-accent: #189be2; }
html.sofia-theme-vrabnitsa, .sofia-theme-vrabnitsa { --sofia-theme-primary: #2a9d8f; --sofia-theme-accent: #c1121f; }
html.sofia-theme-ilinden, .sofia-theme-ilinden { --sofia-theme-primary: #3a6ea5; --sofia-theme-accent: #c1121f; }
html.sofia-theme-krasna-polyana, .sofia-theme-krasna-polyana { --sofia-theme-primary: #2563eb; --sofia-theme-accent: #df1f6a; }
html.sofia-theme-krasno-selo, .sofia-theme-krasno-selo { --sofia-theme-primary: #e09f1f; --sofia-theme-accent: #2f54c5; }
html.sofia-theme-kremikovtsi, .sofia-theme-kremikovtsi { --sofia-theme-primary: #2d5a27; --sofia-theme-accent: #3d3d3d; }
html.sofia-theme-lyulin, .sofia-theme-lyulin { --sofia-theme-primary: #0d9488; --sofia-theme-accent: #ea580c; }
html.sofia-theme-mladost, .sofia-theme-mladost { --sofia-theme-primary: #38bdf8; --sofia-theme-accent: #84cc16; }
html.sofia-theme-nadezhda, .sofia-theme-nadezhda { --sofia-theme-primary: #1e3a5f; --sofia-theme-accent: #e5a100; }
html.sofia-theme-novi-iskar, .sofia-theme-novi-iskar { --sofia-theme-primary: #e07a5f; --sofia-theme-accent: #7b8cde; }

html[class*="sofia-theme-"]:not(.sofia-theme-city):not(.sofia-theme-district),
[class*="sofia-theme-"]:not(.sofia-theme-city):not(.sofia-theme-district) {
  --sofia-theme-primary-dark: color-mix(in srgb, var(--sofia-theme-primary) 78%, #000);
  --sofia-theme-primary-light: color-mix(in srgb, var(--sofia-theme-primary) 62%, #fff);
  --sofia-theme-primary-soft: color-mix(in srgb, var(--sofia-theme-primary) 16%, #fff);
  --sofia-theme-accent-dark: color-mix(in srgb, var(--sofia-theme-accent) 78%, #000);
  --sofia-theme-accent-deep: color-mix(in srgb, var(--sofia-theme-accent) 55%, #000);
  --sofia-theme-accent-soft: color-mix(in srgb, var(--sofia-theme-accent) 28%, #fff);
  --sofia-theme-accent-tint: color-mix(in srgb, var(--sofia-theme-accent) 14%, #fff);
}

html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  margin: 0;
  font-family: var(--sofia-font);
  font-size: var(--sofia-h7);
  line-height: 1.3;
  color: var(--sofia-color-gray-85);
  background: var(--sofia-color-white);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.4em;
  font-weight: 400;
  letter-spacing: -2px;
}

h1 { font-size: var(--sofia-h1); line-height: 1.1; letter-spacing: -3px; }
h2 { font-size: var(--sofia-h2); line-height: 1.2; letter-spacing: -3px; }
h3 { font-size: var(--sofia-h3); line-height: 1.2; letter-spacing: -3px; }
h4 { font-size: var(--sofia-h4); }
h5 { font-size: var(--sofia-h5); letter-spacing: 0; }
h6 { font-size: var(--sofia-h6); line-height: 1.5; letter-spacing: 0; font-weight: 600; }
