: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-environment-dark: #0d5e00;
  --sofia-cat-environment-light: #49c636;
  --sofia-cat-environment-soft: #86e577;
  --sofia-cat-environment-tint: #c5f9bc;
  --sofia-cat-transport: #006da8;
  --sofia-cat-transport-dark: #004d77;
  --sofia-cat-transport-light: #189be2;
  --sofia-cat-transport-soft: #87d2fa;
  --sofia-cat-transport-tint: #ceeeff;
  --sofia-cat-health: #e84c12;
  --sofia-cat-health-dark: #af2804;
  --sofia-cat-health-light: #ff6f3a;
  --sofia-cat-health-soft: #ffa17e;
  --sofia-cat-health-tint: #ffd7c8;
  --sofia-cat-finance: #1888a5;
  --sofia-cat-finance-dark: #034a5b;
  --sofia-cat-finance-light: #0aaad2;
  --sofia-cat-finance-soft: #6fd8f3;
  --sofia-cat-finance-tint: #cdf5ff;
  --sofia-cat-education: #f1ae00;
  --sofia-cat-education-dark: #c89100;
  --sofia-cat-education-light: #ffd400;
  --sofia-cat-education-soft: #f6e282;
  --sofia-cat-education-tint: #faf5d1;
  --sofia-cat-participate: #c90054;
  --sofia-cat-participate-dark: #6f002f;
  --sofia-cat-participate-light: #df1f6a;
  --sofia-cat-participate-soft: #ecb4cb;
  --sofia-cat-participate-tint: #f7e3eb;

  --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-p: 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);
}

/* City category schemes: title band + in-category image banners only. Chrome stays on Home themeKey.
   Institutional keys (administration, tourists, council, news) have no overlay. */
.sofia-titleband[data-category="environment"],
.sofia-main[data-category="environment"] .sofia-titleband,
.sofia-main[data-category="environment"] .sofia-image-banner,
.sofia-main[data-category="environment"] .air-section,
.sofia-section--category[data-category="environment"] {
  --sofia-theme-primary: var(--sofia-cat-environment);
  --sofia-theme-primary-dark: var(--sofia-cat-environment-dark);
  --sofia-theme-primary-light: var(--sofia-cat-environment-light);
  --sofia-theme-primary-soft: var(--sofia-cat-environment-tint);
  --sofia-wash: var(--sofia-theme-primary);
}
.sofia-titleband[data-category="transport"],
.sofia-main[data-category="transport"] .sofia-titleband,
.sofia-main[data-category="transport"] .sofia-image-banner,
.sofia-main[data-category="transport"] .air-section,
.sofia-section--category[data-category="transport"] {
  --sofia-theme-primary: var(--sofia-cat-transport);
  --sofia-theme-primary-dark: var(--sofia-cat-transport-dark);
  --sofia-theme-primary-light: var(--sofia-cat-transport-light);
  --sofia-theme-primary-soft: var(--sofia-cat-transport-tint);
  --sofia-wash: var(--sofia-theme-primary);
}
.sofia-titleband[data-category="health"],
.sofia-main[data-category="health"] .sofia-titleband,
.sofia-main[data-category="health"] .sofia-image-banner,
.sofia-main[data-category="health"] .air-section,
.sofia-section--category[data-category="health"] {
  --sofia-theme-primary: var(--sofia-cat-health);
  --sofia-theme-primary-dark: var(--sofia-cat-health-dark);
  --sofia-theme-primary-light: var(--sofia-cat-health-light);
  --sofia-theme-primary-soft: var(--sofia-cat-health-tint);
  --sofia-wash: var(--sofia-theme-primary);
}
.sofia-titleband[data-category="finance"],
.sofia-main[data-category="finance"] .sofia-titleband,
.sofia-main[data-category="finance"] .sofia-image-banner,
.sofia-main[data-category="finance"] .air-section,
.sofia-section--category[data-category="finance"] {
  --sofia-theme-primary: var(--sofia-cat-finance);
  --sofia-theme-primary-dark: var(--sofia-cat-finance-dark);
  --sofia-theme-primary-light: var(--sofia-cat-finance-light);
  --sofia-theme-primary-soft: var(--sofia-cat-finance-tint);
  --sofia-wash: var(--sofia-theme-primary);
}
.sofia-titleband[data-category="education"],
.sofia-main[data-category="education"] .sofia-titleband,
.sofia-main[data-category="education"] .sofia-image-banner,
.sofia-main[data-category="education"] .air-section,
.sofia-section--category[data-category="education"] {
  --sofia-theme-primary: var(--sofia-cat-education);
  --sofia-theme-primary-dark: var(--sofia-cat-education-dark);
  --sofia-theme-primary-light: var(--sofia-cat-education-light);
  --sofia-theme-primary-soft: var(--sofia-cat-education-tint);
  --sofia-wash: var(--sofia-theme-primary);
}
.sofia-titleband[data-category="participate"],
.sofia-main[data-category="participate"] .sofia-titleband,
.sofia-main[data-category="participate"] .sofia-image-banner,
.sofia-main[data-category="participate"] .air-section,
.sofia-section--category[data-category="participate"] {
  --sofia-theme-primary: var(--sofia-cat-participate);
  --sofia-theme-primary-dark: var(--sofia-cat-participate-dark);
  --sofia-theme-primary-light: var(--sofia-cat-participate-light);
  --sofia-theme-primary-soft: var(--sofia-cat-participate-tint);
  --sofia-wash: var(--sofia-theme-primary);
}

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; }
p { font-size: var(--sofia-p); }           