/* Без @layer: в темата стиловете трябва да надделяват над глобалните стилове на WordPress (те не са в слой). */
/* Прототип sandanski.bg — компоненти. Токените са в tokens.css. */

/* ───────────────────────── reset ───────────────────────── */

  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
  ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
  img, svg { display: block; max-width: 100%; }
  input, button, select, textarea { font: inherit; color: inherit; }
  button { cursor: pointer; }
  table { border-collapse: collapse; }


/* ───────────────────────── base ───────────────────────── */

  html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: calc(var(--header-h) + var(--s-4));
  }
  html[data-text-size="1"] { font-size: 112.5%; }
  html[data-text-size="2"] { font-size: 125%; }
  @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

  body {
    font-family: var(--ff-body);
    font-size: var(--fs-base);
    line-height: var(--lh-body);
    color: var(--c-ink);
    background: var(--c-canvas);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
  }
  h1, h2, h3, h4 {
    font-family: var(--ff-display);
    font-weight: 700;
    line-height: var(--lh-tight);
    letter-spacing: -0.01em;
    text-wrap: balance;
  }
  h1 { font-size: var(--fs-3xl); font-weight: 800; }
  h2 { font-size: var(--fs-2xl); }
  h3 { font-size: var(--fs-xl); line-height: var(--lh-snug); }
  p { text-wrap: pretty; }

  a { color: var(--c-primary-600); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
  a:hover { color: var(--c-primary); text-decoration-thickness: 2px; }

  :focus-visible {
    outline: 3px solid var(--c-focus);
    outline-offset: 2px;
    box-shadow: 0 0 0 6px var(--c-ink);
    border-radius: 2px;
  }
  [data-contrast="high"] :focus-visible { box-shadow: none; outline-color: #FFE14D; outline-width: 4px; }

  ::selection { background: var(--c-focus); color: #16202B; }
  time, .tnum { font-variant-numeric: tabular-nums; }


/* ───────────────────────── layout ───────────────────────── */

  .container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
  .stack > * + * { margin-block-start: var(--stack, var(--s-4)); }
  .cluster { display: flex; flex-wrap: wrap; gap: var(--cluster, var(--s-3)); align-items: center; }
  .section { padding-block: clamp(var(--s-7), 6vw, var(--s-9)); }
  .section--tint { background: var(--c-surface); border-block: 1px solid var(--c-line); }
  .section-head {
    display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between;
    gap: var(--s-3) var(--s-5); margin-block-end: var(--s-6);
  }
  .section-head p { color: var(--c-ink-2); max-inline-size: 60ch; margin-block-start: var(--s-2); }
  .eyebrow {
    font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--c-accent); margin-block-end: var(--s-2);
  }
  .grid { display: grid; gap: var(--s-5); }
  .layout-sidebar { display: grid; gap: var(--s-7); }
  @media (min-width: 60em) {
    .layout-sidebar { grid-template-columns: minmax(0, 1fr) 20rem; align-items: start; }
    .layout-sidebar--left { grid-template-columns: 18rem minmax(0, 1fr); }
  }


/* ───────────────────────── components ───────────────────────── */


  /* Пропускане към съдържанието */
  .skip-link {
    position: absolute; inset-inline-start: var(--s-4); inset-block-start: -10rem; z-index: 100;
    background: var(--c-focus); color: #16202B; padding: var(--s-3) var(--s-5);
    font-weight: 700; border-radius: var(--r-sm); text-decoration: none;
  }
  .skip-link:focus { inset-block-start: var(--s-4); }

  /* Лента „прототип“ */
  .demo-ribbon {
    background: var(--c-warn-50); color: var(--c-warn); font-size: var(--fs-sm);
    border-block-end: 1px solid color-mix(in srgb, var(--c-warn) 30%, transparent);
  }
  .demo-ribbon .container { display: flex; gap: var(--s-2); align-items: center; padding-block: var(--s-2); }
  .demo-ribbon strong { white-space: nowrap; }
  .ribbon-short { display: none; }
  @media (max-width: 39.99em) { .ribbon-long { display: none; } .ribbon-short { display: inline; } }
  .demo-tag {
    display: inline-flex; align-items: center; gap: 0.3em; padding: 0.1em 0.55em;
    font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--c-warn); background: var(--c-warn-50); border: 1px solid currentColor; border-radius: var(--r-pill);
    vertical-align: middle; line-height: 1.5;
  }

  /* Трикольор */
  .flag { height: 4px; background: linear-gradient(to right, var(--c-flag-white) 0 33.33%, var(--c-flag-green) 0 66.66%, var(--c-flag-red) 0); }

  /* Служебна лента */
  .utility-bar { background: var(--c-primary-900); color: var(--c-on-dark-2); font-size: var(--fs-sm); }
  .utility-bar .container { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); min-height: 2.75rem; }
  .utility-bar a, .utility-bar button {
    color: var(--c-on-dark); text-decoration: none; background: none; border: 0; padding: var(--s-2) 0;
    display: inline-flex; align-items: center; gap: var(--s-2); min-height: 2.75rem;
  }
  .utility-bar a:hover, .utility-bar button:hover { text-decoration: underline; color: var(--c-on-dark); }
  .utility-bar ul { display: flex; gap: var(--s-5); }
  .utility-bar .icon { width: 1.1rem; height: 1.1rem; opacity: 0.85; }
  .a11y-tools { display: flex; gap: var(--s-4); }
  .a11y-tools button[aria-pressed="true"] { color: var(--c-focus); }
  @media (max-width: 59.99em) { .utility-bar .utility-links { display: none; } .utility-bar .container { justify-content: flex-end; } }

  /* Хедър */
  .site-header {
    position: sticky; top: 0; z-index: 50;
    background: color-mix(in srgb, var(--c-surface) 96%, transparent);
    backdrop-filter: saturate(1.4) blur(10px);
    border-block-end: 1px solid var(--c-line);
  }
  .site-header > .container { display: flex; align-items: center; gap: var(--s-5); min-height: var(--header-h); }
  .brand { display: flex; align-items: center; gap: var(--s-3); text-decoration: none; color: var(--c-ink); margin-inline-end: auto; }
  .brand:hover { color: var(--c-ink); }
  .brand__mark { width: 2.75rem; height: auto; flex: none; }
  .brand__name { display: block; white-space: nowrap; font-family: var(--ff-display); font-weight: 800; font-size: 1.375rem; line-height: 1; letter-spacing: -0.01em; }
  .brand__sub { display: block; white-space: nowrap; font-size: 0.8125rem; color: var(--c-muted); letter-spacing: 0.04em; margin-block-start: 0.2rem; }

  .primary-nav > ul { display: flex; gap: 2px; }
  .nav-link {
    display: inline-flex; align-items: center; gap: var(--s-1); min-height: 2.75rem; padding: var(--s-2) 0.625rem;
    font-weight: 600; font-size: 1rem; color: var(--c-ink); background: none; border: 0; border-radius: var(--r-sm);
    text-decoration: none; white-space: nowrap;
  }
  .nav-link:hover { background: var(--c-primary-50); color: var(--c-primary); }
  .nav-link[aria-expanded="true"], .nav-link[aria-current="page"], .nav-link.is-current {
    color: var(--c-primary); background: var(--c-primary-50);
    box-shadow: inset 0 -3px 0 var(--c-primary);
  }
  .nav-link .icon { width: 1rem; height: 1rem; transition: transform var(--dur) var(--ease); }
  .nav-link[aria-expanded="true"] .icon { transform: rotate(180deg); }
  @media (max-width: 74.99em) { .primary-nav { display: none; } }

  .header-actions { display: flex; gap: var(--s-2); }
  .btn-icon {
    display: inline-flex; align-items: center; gap: var(--s-2); min-height: 2.75rem; min-width: 2.75rem; justify-content: center;
    padding: var(--s-2) var(--s-3); border: 1px solid var(--c-line); border-radius: var(--r-sm);
    background: var(--c-surface); color: var(--c-ink); font-weight: 600;
  }
  .btn-icon:hover { border-color: var(--c-primary); color: var(--c-primary); }
  .btn-icon .icon { width: 1.25rem; height: 1.25rem; }
  .btn-icon kbd {
    font: inherit; font-size: 0.75rem; padding: 0 0.4em; border: 1px solid var(--c-line); border-radius: 4px; color: var(--c-muted);
  }
  .menu-toggle { display: none; }
  @media (min-width: 75em) and (max-width: 92em) {
    .header-actions .btn-icon .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  }
  @media (max-width: 74.99em) { .menu-toggle { display: inline-flex; } }
  @media (max-width: 39.99em) {
    .btn-icon .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .btn-icon kbd, .brand__sub { display: none; }
  }

  /* Мега меню */
  .mega {
    position: absolute; inset-inline: 0; top: 100%;
    background: var(--c-surface); border-block: 1px solid var(--c-line); box-shadow: var(--shadow-2);
    padding-block: var(--s-6) var(--s-7);
  }
  .mega[hidden] { display: none; }
  .mega__inner { display: grid; grid-template-columns: minmax(15rem, 22rem) minmax(0, 1fr); gap: var(--s-8); align-items: start; }
  .mega__intro h2 { font-size: var(--fs-xl); margin-block-end: var(--s-2); }
  .mega__intro p { color: var(--c-ink-2); margin-block-end: var(--s-4); }
  .mega__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-2) var(--s-7); }
  .mega__intro p { white-space: normal; }
  .mega__cols a {
    display: block; padding: var(--s-2) var(--s-3); margin-inline: calc(-1 * var(--s-3));
    color: var(--c-ink); text-decoration: none; border-radius: var(--r-sm); font-weight: 600;
  }
  .mega__cols a span { display: block; font-weight: 400; font-size: var(--fs-sm); color: var(--c-muted); }
  .mega__cols a:hover { background: var(--c-primary-50); color: var(--c-primary); }

  /* Бутони и връзки-действия */
  .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
    min-height: 3rem; padding: var(--s-3) var(--s-5); border-radius: var(--r-sm);
    font-weight: 700; text-decoration: none; border: 2px solid var(--c-primary);
    background: var(--c-primary); color: var(--c-on-primary); transition: background var(--dur) var(--ease);
  }
  .btn:hover { background: var(--c-primary-600); border-color: var(--c-primary-600); color: var(--c-on-primary); }
  .btn--ghost { background: transparent; color: var(--c-primary); }
  .btn--ghost:hover { background: var(--c-primary-50); color: var(--c-primary); }
  .btn .icon { width: 1.25rem; height: 1.25rem; }
  .link-more {
    display: inline-flex; align-items: center; gap: var(--s-2); font-weight: 700; color: var(--c-primary);
    text-decoration: none; min-height: 2.75rem;
  }
  .link-more .icon { width: 1.25rem; height: 1.25rem; transition: transform var(--dur) var(--ease); }
  .link-more:hover { text-decoration: underline; }
  .link-more:hover .icon { transform: translateX(3px); }

  /* Етикети и статуси */
  .badge {
    display: inline-flex; align-items: center; gap: 0.35em; padding: 0.15em 0.6em; border-radius: var(--r-pill);
    font-size: var(--fs-sm); font-weight: 700; line-height: 1.4; white-space: nowrap;
    background: var(--c-primary-50); color: var(--c-primary);
  }
  .badge .icon { width: 0.95em; height: 0.95em; }
  .badge--active { background: var(--c-success-50); color: var(--c-success); }
  .badge--soon { background: var(--c-accent-50); color: var(--c-accent); }
  .badge--expired { background: transparent; color: var(--c-muted); border: 1px solid var(--c-line); }
  .badge--warn { background: var(--c-warn-50); color: var(--c-warn); }
  .badge--outline { background: transparent; border: 1px solid var(--c-border); color: var(--c-ink-2); }

  /* Hero */
  .hero {
    position: relative; overflow: hidden; isolation: isolate;
    background: var(--c-primary-900); color: var(--c-on-dark);
    padding-block: clamp(var(--s-7), 8vw, var(--s-10)) clamp(var(--s-8), 10vw, 9rem);
  }
  .hero__art { position: absolute; inset: auto 0 0 0; z-index: -1; width: 100%; height: auto; min-height: 60%; pointer-events: none; }
  [data-contrast="high"] .hero__art { display: none; }
  .hero h1 { color: var(--c-on-dark); max-inline-size: 18ch; }
  .hero__lead { font-size: var(--fs-lg); color: var(--c-on-dark-2); max-inline-size: 46ch; margin-block: var(--s-4) var(--s-6); }
  .hero-search { max-inline-size: 46rem; }
  .hero-search label { display: block; font-weight: 700; margin-block-end: var(--s-2); color: var(--c-on-dark); }
  .search-field {
    display: flex; align-items: stretch; background: var(--c-surface); border-radius: var(--r-md);
    box-shadow: var(--shadow-2); border: 2px solid transparent;
  }
  .search-field:focus-within { border-color: var(--c-focus); }
  .search-field .icon { width: 1.5rem; height: 1.5rem; margin: auto var(--s-2) auto var(--s-4); color: var(--c-muted); flex: none; }
  .search-field input {
    flex: 1; min-width: 0; border: 0; background: transparent; padding: var(--s-4) var(--s-2); font-size: var(--fs-lg); color: var(--c-ink);
  }
  .search-field input:focus, .search-field input:focus-visible { outline: none; box-shadow: none; }
  .search-field input::placeholder { color: var(--c-muted); }
  .search-field button { margin: var(--s-2); border-radius: var(--r-sm); }
  .suggest { margin-block-start: var(--s-4); font-size: var(--fs-sm); color: var(--c-on-dark-2); }
  .suggest a {
    color: var(--c-on-dark); text-decoration: none; padding: 0.3em 0.8em; border-radius: var(--r-pill);
    border: 1px solid color-mix(in srgb, var(--c-on-dark) 35%, transparent); display: inline-block; min-height: 2rem;
  }
  .suggest a:hover { background: color-mix(in srgb, var(--c-on-dark) 12%, transparent); color: var(--c-on-dark); }
  @media (max-width: 39.99em) { .search-field button .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } }

  /* Бързи услуги */
  .service-grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); }
  .service-grid--overlap { margin-block-start: calc(-1 * clamp(var(--s-7), 7vw, var(--s-9))); position: relative; }
  .service-tile {
    position: relative; display: grid; grid-template-columns: auto 1fr; gap: var(--s-1) var(--s-4); align-items: start; align-content: start;
    padding: var(--s-5); background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md);
    box-shadow: var(--shadow-1); transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
  }
  .service-tile:hover { border-color: var(--c-primary); transform: translateY(-2px); }
  .service-tile:focus-within { border-color: var(--c-primary); }
  .service-tile__icon {
    grid-row: span 2; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--r-md);
    background: var(--c-primary-50); color: var(--c-primary);
  }
  .service-tile__icon .icon { width: 1.6rem; height: 1.6rem; }
  .service-tile h3 { font-family: var(--ff-body); font-size: 1.125rem; font-weight: 700; line-height: var(--lh-snug); letter-spacing: 0; }
  .service-tile a { color: var(--c-ink); text-decoration: none; }
  .service-tile a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
  .service-tile a:focus-visible { outline: none; box-shadow: none; }
  .service-tile:has(a:focus-visible) { outline: 3px solid var(--c-focus); outline-offset: 2px; }
  .service-tile p { font-size: var(--fs-sm); color: var(--c-muted); line-height: 1.45; }
  @media (max-width: 39.99em) {
    .service-grid--overlap { grid-template-columns: 1fr 1fr; gap: var(--s-3); }
    .service-grid--overlap .service-tile { grid-template-columns: 1fr; padding: var(--s-4); gap: var(--s-2); }
    .service-grid--overlap .service-tile__icon { grid-row: auto; width: 2.5rem; height: 2.5rem; }
    .service-grid--overlap .service-tile h3 { font-size: 1rem; }
    .service-grid--overlap .service-tile p { display: none; }
    .service-grid--overlap .service-tile .badge { grid-column: 1; margin-block-start: 0; }
  }
  .service-tile .badge { grid-column: 2; justify-self: start; margin-block-start: var(--s-2); font-size: 0.8125rem; }

  /* Банер за важно съобщение */
  .alert {
    display: grid; grid-template-columns: auto 1fr auto; gap: var(--s-4); align-items: center;
    padding: var(--s-4) var(--s-5); border-radius: var(--r-md);
    background: var(--c-warn-50); color: var(--c-warn); border: 1px solid color-mix(in srgb, var(--c-warn) 35%, transparent);
  }
  .alert .icon { width: 1.75rem; height: 1.75rem; }
  .alert p { color: var(--c-ink); }
  .alert strong { color: var(--c-warn); }
  .alert a { color: var(--c-ink); font-weight: 700; }
  @media (max-width: 39.99em) { .alert { grid-template-columns: auto 1fr; } .alert > a { grid-column: 2; } }

  /* Обяви */
  .notice-list { display: grid; gap: var(--s-3); }
  .notice-card {
    position: relative; display: grid; gap: var(--s-2); padding: var(--s-4) var(--s-5);
    background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md);
    border-inline-start: 4px solid var(--c-primary);
  }
  .notice-card[data-status="soon"] { border-inline-start-color: var(--c-accent); }
  .notice-card[data-status="expired"] { border-inline-start-color: var(--c-line); }
  .notice-card[data-status="expired"] .notice-card__title a { color: var(--c-ink-2); }
  .notice-card:hover { border-color: var(--c-primary); }
  .notice-card__meta { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); font-size: var(--fs-sm); color: var(--c-muted); align-items: center; }
  .notice-card__meta .icon { width: 1em; height: 1em; display: inline-block; vertical-align: -0.12em; margin-inline-end: 0.25em; }
  .notice-card__kind { font-weight: 700; color: var(--c-primary); }
  .notice-card__title { font-family: var(--ff-body); font-size: 1.0625rem; font-weight: 600; line-height: 1.45; letter-spacing: 0; }
  .notice-card__title a { color: var(--c-ink); text-decoration: none; }
  .notice-card__title a::after { content: ""; position: absolute; inset: 0; }
  .notice-card__title a:hover { text-decoration: underline; }
  .notice-card__foot { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }
  .clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

  /* Табове/филтри като бутони */
  .chip-row { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-block-end: var(--s-5); }
  .chip {
    min-height: 2.5rem; padding: var(--s-1) var(--s-4); border-radius: var(--r-pill);
    border: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-ink); font-weight: 600; font-size: var(--fs-sm);
  }
  .chip[aria-pressed="true"] { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
  .chip:hover { border-color: var(--c-primary); }

  /* Новини */
  .news-grid { display: grid; gap: var(--s-5); }
  @media (min-width: 60em) { .news-grid { grid-template-columns: 1.35fr 1fr; align-items: start; } .news-grid .news-stack { display: grid; gap: var(--s-5); align-content: start; } }
  .news-card { position: relative; display: grid; gap: var(--s-3); align-content: start; }
  .news-card__media {
    position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-md); overflow: hidden;
    background: var(--c-primary-50);
  }
  .news-card__media svg { width: 100%; height: 100%; }
  .news-card__media .demo-tag { position: absolute; inset-block-end: var(--s-2); inset-inline-start: var(--s-2); }
  .news-card__meta { font-size: var(--fs-sm); color: var(--c-muted); display: flex; gap: var(--s-3); flex-wrap: wrap; }
  .news-card__meta b { color: var(--c-accent); font-weight: 700; }
  .news-card h3 { font-size: var(--fs-lg); line-height: var(--lh-snug); }
  .news-card h3 a { color: var(--c-ink); text-decoration: none; }
  .news-card h3 a::after { content: ""; position: absolute; inset: 0; }
  .news-card h3 a:hover { text-decoration: underline; }
  .news-card p { color: var(--c-ink-2); font-size: 1rem; }
  .news-card--lead h3 { font-size: var(--fs-xl); }
  .news-card--row { grid-template-columns: 9rem 1fr; gap: var(--s-4); align-items: start; }
  .news-card--row .news-card__media { aspect-ratio: 4 / 3; }
  .news-card--row h3 { font-size: 1.0625rem; font-family: var(--ff-body); letter-spacing: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .news-card--row .demo-tag { font-size: 0.625rem; padding: 0 0.4em; inset-block-end: var(--s-1); inset-inline-start: var(--s-1); }
  @media (max-width: 39.99em) { .news-card--row { grid-template-columns: 6.5rem 1fr; } }

  /* Общински съвет */
  .council { display: grid; gap: var(--s-5); }
  @media (min-width: 60em) { .council { grid-template-columns: 1fr 1.4fr; align-items: start; } }
  .panel {
    background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--s-5);
  }
  .panel h3 { font-size: var(--fs-lg); margin-block-end: var(--s-4); }
  .panel--dark { background: var(--c-primary); color: var(--c-on-primary); border-color: var(--c-primary); }
  .panel--dark h3, .panel--dark a { color: var(--c-on-primary); }
  .panel__sub { color: var(--c-on-dark-2); }
  [data-contrast="high"] .panel__sub { color: #fff; }
  [data-contrast="high"] .panel--dark { background: #000; color: #fff; border-color: #fff; }
  [data-contrast="high"] .panel--dark h3, [data-contrast="high"] .panel--dark a { color: #FFE14D; }
  .session-next { display: grid; grid-template-columns: auto 1fr; gap: var(--s-5); align-items: center; }
  .date-tile {
    display: grid; place-items: center; text-align: center; width: 5rem; padding: var(--s-2);
    border-radius: var(--r-md); background: var(--c-surface); color: var(--c-ink); line-height: 1.05;
  }
  .date-tile b { font-family: var(--ff-display); font-size: 2.25rem; font-weight: 800; }
  .date-tile span { font-size: 0.8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-accent); }
  .date-tile small { font-size: 0.75rem; color: var(--c-muted); }
  .date-tile--light { background: var(--c-primary-50); }
  .link-list { display: grid; }
  .link-list li { border-block-start: 1px solid var(--c-line); }
  .link-list li:first-child { border-block-start: 0; }
  .link-list a {
    display: grid; grid-template-columns: 1fr auto; gap: var(--s-1) var(--s-4); padding: var(--s-3) 0;
    color: var(--c-ink); text-decoration: none;
  }
  .link-list a:hover .link-list__title { text-decoration: underline; color: var(--c-primary); }
  .link-list__title { font-weight: 600; line-height: 1.4; }
  .link-list__meta { grid-column: 1 / -1; font-size: var(--fs-sm); color: var(--c-muted); }
  .link-list .icon { width: 1.25rem; height: 1.25rem; color: var(--c-primary); align-self: center; }

  /* Документи */
  .doc-types { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); margin-block-end: var(--s-6); }
  .doc-type {
    display: flex; gap: var(--s-3); align-items: center; padding: var(--s-4); border-radius: var(--r-md);
    background: var(--c-canvas); border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; font-weight: 700; line-height: 1.3;
  }
  .doc-type small { display: block; font-weight: 400; color: var(--c-muted); font-size: var(--fs-sm); }
  .doc-type .icon { width: 1.75rem; height: 1.75rem; color: var(--c-primary); flex: none; }
  .doc-type:hover { border-color: var(--c-primary); color: var(--c-primary); }
  .table-wrap { overflow-x: auto; border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
  .doc-table { width: 100%; font-size: 1rem; }
  .doc-table caption { text-align: start; padding: var(--s-4) var(--s-5) 0; font-weight: 700; color: var(--c-ink-2); }
  .doc-table th, .doc-table td { padding: var(--s-3) var(--s-4); text-align: start; vertical-align: top; border-block-end: 1px solid var(--c-line); }
  .doc-table thead th { font-size: var(--fs-sm); color: var(--c-muted); font-weight: 700; white-space: nowrap; }
  .doc-table tbody tr:last-child > * { border-block-end: 0; }
  .doc-table tbody tr:hover { background: var(--c-canvas); }
  .doc-table td:first-child { min-width: 18rem; }
  .doc-table a { font-weight: 600; color: var(--c-ink); }
  .doc-table a:hover { color: var(--c-primary); }
  .doc-table .nowrap { white-space: nowrap; }
  @media (max-width: 47.99em) {
    .doc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .doc-table, .doc-table tbody, .doc-table tr, .doc-table td, .doc-table th { display: block; }
    .doc-table tr { padding: var(--s-3) var(--s-4); border-block-end: 1px solid var(--c-line); }
    .doc-table td, .doc-table th { padding: var(--s-1) 0; border: 0; }
    .doc-table td:first-child { min-width: 0; }
    .doc-table td[data-label]::before { content: attr(data-label) ": "; color: var(--c-muted); font-size: var(--fs-sm); }
  }

  /* Файлове */
  .file-list { display: grid; gap: var(--s-2); }
  .file {
    display: grid; grid-template-columns: auto 1fr auto; gap: var(--s-4); align-items: center;
    padding: var(--s-3) var(--s-4); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface);
  }
  .file__ext {
    display: grid; place-items: center; width: 3rem; height: 3.5rem; border-radius: 6px;
    background: var(--c-accent-50); color: var(--c-accent); font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.03em;
  }
  .file__ext[data-ext="DOC"], .file__ext[data-ext="DOCX"] { background: var(--c-primary-50); color: var(--c-primary); }
  .file__ext[data-ext="XLS"], .file__ext[data-ext="XLSX"] { background: var(--c-success-50); color: var(--c-success); }
  .file__name { font-weight: 600; overflow-wrap: anywhere; line-height: 1.35; }
  .file__meta { display: block; font-size: var(--fs-sm); color: var(--c-muted); }
  @media (max-width: 39.99em) { .file { grid-template-columns: auto 1fr; } .file .btn { grid-column: 1 / -1; } }

  /* Събития */
  .events { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
  .event {
    position: relative; display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); padding: var(--s-4);
    background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md);
  }
  .event:hover { border-color: var(--c-primary); }
  .event h3 { font-family: var(--ff-body); font-size: 1.0625rem; letter-spacing: 0; line-height: 1.35; }
  .event h3 a { color: var(--c-ink); text-decoration: none; }
  .event h3 a::after { content: ""; position: absolute; inset: 0; }
  .event p { font-size: var(--fs-sm); color: var(--c-muted); margin-block-start: var(--s-1); }

  /* Сандански */
  .places { display: grid; gap: var(--s-5); align-items: center; }
  @media (min-width: 60em) { .places { grid-template-columns: 1fr 1fr; } }
  .places__art { border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4 / 3; background: var(--c-primary-50); position: relative; }
  .places__art .demo-tag { position: absolute; inset-block-end: var(--s-3); inset-inline-start: var(--s-3); }
  .place-links { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-block: var(--s-5); }
  .place-links a {
    padding: var(--s-2) var(--s-4); border-radius: var(--r-pill); border: 1px solid var(--c-border);
    color: var(--c-ink); text-decoration: none; font-weight: 600; background: var(--c-surface);
  }
  .place-links a:hover { border-color: var(--c-primary); color: var(--c-primary); }

  /* Футър */
  .site-footer { background: var(--c-primary-900); color: var(--c-on-dark-2); padding-block: var(--s-8) var(--s-5); margin-block-start: var(--s-8); }
  .site-footer h2 { font-size: 1.125rem; font-family: var(--ff-body); color: var(--c-on-dark); margin-block-end: var(--s-4); letter-spacing: 0; }
  .site-footer a { color: var(--c-on-dark); text-decoration: none; }
  .site-footer a:hover { text-decoration: underline; color: var(--c-on-dark); }
  .footer-grid { display: grid; gap: var(--s-6); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
  .footer-grid ul { display: grid; gap: var(--s-2); }
  .footer-contact address { font-style: normal; display: grid; gap: var(--s-2); }
  .footer-bottom {
    margin-block-start: var(--s-7); padding-block-start: var(--s-5); border-block-start: 1px solid color-mix(in srgb, var(--c-on-dark) 20%, transparent);
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); font-size: var(--fs-sm);
  }

  /* Диалози: търсене и мобилно меню */
  dialog { border: 0; padding: 0; color: var(--c-ink); background: var(--c-surface); max-width: none; max-height: none; }
  dialog::backdrop { background: rgb(8 47 58 / 0.55); backdrop-filter: blur(3px); }
  .search-dialog { width: min(100% - 2 * var(--s-4), 48rem); margin: 8vh auto auto; border-radius: var(--r-lg); box-shadow: var(--shadow-2); }
  .search-dialog__head { display: flex; gap: var(--s-2); align-items: center; padding: var(--s-4); border-block-end: 1px solid var(--c-line); }
  .search-dialog__head .search-field { flex: 1; box-shadow: none; border: 2px solid var(--c-border); }
  .search-dialog__head .search-field:focus-within { border-color: var(--c-primary); }
  .search-dialog__body { padding: var(--s-4) var(--s-5) var(--s-5); max-height: 60vh; overflow: auto; }
  .search-dialog__hint { color: var(--c-muted); font-size: var(--fs-sm); }
  .result-group + .result-group { margin-block-start: var(--s-5); }
  .result-group h3 { font-family: var(--ff-body); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-muted); margin-block-end: var(--s-2); }
  .result a { display: block; padding: var(--s-2) var(--s-3); margin-inline: calc(-1 * var(--s-3)); border-radius: var(--r-sm); color: var(--c-ink); text-decoration: none; }
  .result a:hover, .result a:focus-visible { background: var(--c-primary-50); }
  .result small { display: block; color: var(--c-muted); font-size: var(--fs-sm); }
  mark { background: color-mix(in srgb, var(--c-focus) 55%, transparent); color: inherit; border-radius: 2px; padding: 0 0.05em; }

  .drawer {
    margin: 0 0 0 auto; width: min(100%, 26rem); height: 100dvh; max-height: 100dvh;
    display: flex; flex-direction: column; box-shadow: var(--shadow-2);
  }
  .drawer:not([open]) { display: none; }
  .drawer__head { display: flex; justify-content: space-between; align-items: center; padding: var(--s-3) var(--s-4); border-block-end: 1px solid var(--c-line); }
  .drawer__body { overflow: auto; padding: var(--s-4); flex: 1; }
  .drawer__section { border-block-end: 1px solid var(--c-line); }
  .drawer__section > button {
    width: 100%; display: flex; justify-content: space-between; align-items: center; gap: var(--s-3);
    padding: var(--s-4) var(--s-1); background: none; border: 0; font-weight: 700; font-size: 1.125rem; text-align: start; min-height: 3rem;
  }
  .drawer__section > button .icon { width: 1.25rem; height: 1.25rem; transition: transform var(--dur) var(--ease); }
  .drawer__section > button[aria-expanded="true"] .icon { transform: rotate(180deg); }
  .drawer__section ul { padding-block-end: var(--s-3); }
  .drawer__section ul a { display: block; padding: var(--s-2) var(--s-3); color: var(--c-ink); text-decoration: none; border-radius: var(--r-sm); min-height: 2.75rem; }
  .drawer__section ul a:hover { background: var(--c-primary-50); }
  .drawer__section > ul:only-child { padding-block: 0; }
  .drawer__section > ul:only-child a { padding: var(--s-4) var(--s-1); font-size: 1.125rem; min-height: 3rem; }
  .drawer__utility { display: grid; gap: var(--s-2); padding-block: var(--s-5); }
  .drawer__utility a { font-weight: 600; }
  @media (prefers-reduced-motion: no-preference) {
    .drawer[open] { animation: drawer-in 200ms var(--ease); }
    .search-dialog[open] { animation: pop-in 160ms var(--ease); }
  }
  @keyframes drawer-in { from { transform: translateX(100%); } }
  @keyframes pop-in { from { opacity: 0; transform: translateY(-8px); } }

  /* Хлебна пътека и заглавие на страница */
  .page-head { background: var(--c-surface); border-block-end: 1px solid var(--c-line); padding-block: var(--s-5) var(--s-7); }
  .page-head h1 { font-size: var(--fs-2xl); max-inline-size: 32ch; }
  .page-head--record h1 { font-size: var(--fs-xl); line-height: var(--lh-snug); max-inline-size: 60ch; }
  .page-head p.lead { font-size: var(--fs-lg); color: var(--c-ink-2); max-inline-size: 60ch; margin-block-start: var(--s-3); }
  .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-2); list-style: none; padding: 0; font-size: var(--fs-sm); margin-block-end: var(--s-5); }
  .breadcrumbs li { display: flex; gap: var(--s-2); align-items: center; color: var(--c-muted); }
  .breadcrumbs li + li::before { content: "›"; color: var(--c-muted); }
  .breadcrumbs a { color: var(--c-ink-2); }

  /* Метаданни */
  .meta-list { display: grid; gap: 0; background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); overflow: hidden; }
  .meta-list div { display: grid; gap: 2px; padding: var(--s-3) var(--s-4); border-block-end: 1px solid var(--c-line); }
  .meta-list div:last-child { border-block-end: 0; }
  .meta-list dt { color: var(--c-muted); font-size: var(--fs-sm); }
  .meta-list dd { font-weight: 600; overflow-wrap: anywhere; }

  /* Филтри */
  .filters { background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md); padding: var(--s-5); }
  .filters .btn { width: 100%; }
  .filters h2 { font-size: var(--fs-lg); font-family: var(--ff-body); letter-spacing: 0; margin-block-end: var(--s-4); }
  .field { display: grid; gap: var(--s-1); margin-block-end: var(--s-4); }
  .field label, .field legend { font-weight: 700; font-size: 1rem; }
  .field input[type="search"], .field input[type="text"], .field select {
    min-height: 2.75rem; padding: var(--s-2) var(--s-3); border: 1px solid var(--c-border); border-radius: var(--r-sm); background: var(--c-surface); width: 100%;
  }
  .field fieldset { border: 0; padding: 0; margin: 0; }
  .check { display: flex; gap: var(--s-2); align-items: center; min-height: 2.75rem; }
  .check input { width: 1.25rem; height: 1.25rem; accent-color: var(--c-primary); }
  .results-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s-3); margin-block-end: var(--s-4); }
  .results-bar p { font-weight: 700; }
  .empty { padding: var(--s-7) var(--s-5); text-align: center; color: var(--c-ink-2); background: var(--c-surface); border: 1px dashed var(--c-border); border-radius: var(--r-md); }

  /* Съдържание (prose) */
  .prose { max-inline-size: 70ch; }
  .prose > * + * { margin-block-start: var(--s-4); }
  .prose h2 { font-size: var(--fs-xl); margin-block-start: var(--s-7); }
  .prose h3 { font-size: var(--fs-lg); margin-block-start: var(--s-6); }
  .prose ul, .prose ol { padding-inline-start: 1.4em; }
  .prose li + li { margin-block-start: var(--s-2); }
  .legal-text {
    padding: var(--s-5); background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md);
    font-size: 1.0625rem;
  }
  .legal-text__label { display: flex; gap: var(--s-2); align-items: center; font-size: var(--fs-sm); color: var(--c-muted); margin-block-end: var(--s-3); }
  .legal-text__label .icon { width: 1rem; height: 1rem; }
  .callout {
    padding: var(--s-4) var(--s-5); border-radius: var(--r-md); background: var(--c-primary-50); border-inline-start: 4px solid var(--c-primary);
  }
  .callout--accent { background: var(--c-accent-50); border-color: var(--c-accent); }
  .callout h2, .callout h3 { font-size: var(--fs-lg); margin-block-end: var(--s-2); margin-block-start: 0; }

  /* Стъпки (услуга) */
  .steps { counter-reset: step; list-style: none; padding: 0; display: grid; gap: var(--s-4); }
  .steps li { counter-increment: step; display: grid; grid-template-columns: 2.5rem 1fr; gap: var(--s-4); }
  .steps li::before {
    content: counter(step); display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%;
    background: var(--c-primary); color: var(--c-on-primary); font-weight: 800;
  }
  .steps h3 { font-family: var(--ff-body); font-size: 1.125rem; letter-spacing: 0; margin-block-end: var(--s-1); }
  .facts { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
  .fact { padding: var(--s-4); border-radius: var(--r-md); background: var(--c-surface); border: 1px solid var(--c-line); }
  .fact dt { font-size: var(--fs-sm); color: var(--c-muted); display: flex; gap: var(--s-2); align-items: center; }
  .fact dt .icon { width: 1.1rem; height: 1.1rem; color: var(--c-primary); }
  .fact dd { font-weight: 700; font-size: 1.125rem; margin-block-start: var(--s-1); }
  .channel { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); align-items: start; padding: var(--s-4); border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-surface); }
  .channel .icon { width: 1.75rem; height: 1.75rem; color: var(--c-primary); }
  .channel h3 { font-family: var(--ff-body); font-size: 1.0625rem; letter-spacing: 0; }

  /* Дневен ред */
  .agenda { list-style: none; padding: 0; display: grid; gap: var(--s-3); }
  .agenda > li {
    display: grid; grid-template-columns: 3rem 1fr; gap: var(--s-4); padding: var(--s-4) var(--s-5);
    background: var(--c-surface); border: 1px solid var(--c-line); border-radius: var(--r-md);
  }
  .agenda__n { font-family: var(--ff-display); font-size: 1.75rem; font-weight: 800; color: var(--c-primary); line-height: 1; }
  .agenda__links { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); margin-block-start: var(--s-2); font-size: var(--fs-sm); }
  .video-frame {
    aspect-ratio: 16 / 9; border-radius: var(--r-md); background: var(--c-primary-900); color: var(--c-on-dark);
    display: grid; place-items: center; text-align: center; padding: var(--s-5);
  }
  .video-frame .icon { width: 3.5rem; height: 3.5rem; margin-inline: auto; margin-block-end: var(--s-3); }
  .video-frame p { color: var(--c-on-dark-2); font-size: var(--fs-sm); max-inline-size: 36ch; }
  .video-frame a { color: var(--c-on-dark); }

  /* Тост */
  .toast {
    position: fixed; inset-block-end: var(--s-5); inset-inline: 0; margin-inline: auto; width: max-content; max-width: calc(100% - 2rem);
    background: var(--c-ink); color: var(--c-surface); padding: var(--s-3) var(--s-5); border-radius: var(--r-md); box-shadow: var(--shadow-2); z-index: 200;
  }
  [data-contrast="high"] .toast { background: #000; color: #fff; outline: 2px solid #fff; }

  .icon.icon-inline { display: inline-block; width: 1em; height: 1em; vertical-align: -0.125em; }
  .icon { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex: none; }


/* ───────────────────────── utilities ───────────────────────── */

  .visually-hidden {
    position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  .muted { color: var(--c-muted); }
  .mt-0 { margin-block-start: 0 !important; }
  .mt-5 { margin-block-start: var(--s-5); }
  .mt-6 { margin-block-start: var(--s-6); }
  .mt-7 { margin-block-start: var(--s-7); }
  [hidden] { display: none !important; }


@media print {
  .utility-bar, .site-header, .site-footer, .demo-ribbon, .filters, .btn, .skip-link { display: none !important; }
  body { background: #fff; font-size: 11pt; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; overflow-wrap: anywhere; }
}
