/* Транспортен регистър (transporta.bg): нов облик.
   Тъмен „асфалт“ и зеленото от пина в логото; заглавия Oswald (като пътни табели), текст IBM Plex Sans, числа и етикети IBM Plex Mono.
   Първо за телефон (360 до 390 px), после 560 / 768 / 1024 / 1280. */

:root {
  --asphalt: #14191f;
  --asphalt-2: #1b2128;
  --asphalt-3: #252c35;
  --asphalt-4: #323b46;
  --on-dark: #eef1ea;
  --on-dark-2: #a8b1bb;
  --lime: #8cc63f;
  --lime-hi: #a2d75c;
  --lime-ink: #3c6a0f;
  --lime-wash: #eef6e2;
  --paper: #f1f2ed;
  --card: #fff;
  --line: #dadfd5;
  --line-2: #e7eae2;
  --ink: #14191f;
  --ink-2: #38414b;
  --muted: #5d6671;
  --r: 6px;
  --r-lg: 10px;
  --f-head: "Oswald", "Arial Narrow", sans-serif;
  --f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;
  --hdr-h: 60px;
  --hdr-vis: var(--hdr-h);
  --gut: 16px;
  --thumb-h: 64px;
}
@media (min-width: 768px) { :root { --gut: 24px; } }
@media (min-width: 1024px) { :root { --hdr-h: 76px; --thumb-h: 0px; } }
@media (min-width: 1280px) { :root { --gut: 32px; } }

/* Основа */
*, *::before, *::after { box-sizing: border-box; }
* { font-feature-settings: "locl" 0 !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--hdr-vis) + 16px); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 16px/1.6 var(--f-body);
  padding-bottom: calc(var(--thumb-h) + env(safe-area-inset-bottom));
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
body.sheet-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
h1, h2, h3 { margin: 0; font-family: var(--f-head); font-weight: 600; line-height: 1.15; letter-spacing: .005em; }
p, ul, ol, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
.i { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; border-radius: 4px; }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 200; background: var(--lime); color: var(--ink); padding: 10px 16px; border-radius: var(--r); font-weight: 600; }
.skip:focus { top: 12px; }
.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--gut); }

/* Етикети и броячи */
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font: 500 12px/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lime-ink); margin-bottom: 12px; }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: repeating-linear-gradient(90deg, currentColor 0 7px, transparent 7px 11px); }
.eyebrow--dark { color: var(--lime); }
.km { display: inline-flex; align-items: center; height: 22px; padding: 0 7px; border-radius: 4px; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); font: 500 12px/1 var(--f-mono); letter-spacing: .02em; white-space: nowrap; }
.km--lg { height: 28px; padding: 0 9px; font-size: 15px; background: var(--lime); color: var(--ink); border-color: transparent; }

/* Бутони */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 18px; border-radius: var(--r); border: 1.5px solid transparent;
  font: 500 15px/1.1 var(--f-head); letter-spacing: .06em; text-transform: uppercase; text-align: center;
  transition: background .15s, border-color .15s, color .15s, transform .15s;
}
.btn:active { transform: translateY(1px); }
.btn .i { width: 18px; height: 18px; }
.btn--sm { min-height: 40px; padding: 0 14px; font-size: 14px; }
.btn--lg { min-height: 54px; padding: 0 24px; font-size: 17px; }
.btn--block { width: 100%; }
.btn--lime { background: var(--lime); color: var(--ink); }
.btn--lime:hover { background: var(--lime-hi); }
.btn--line { background: var(--card); border-color: var(--line); color: var(--ink); }
.btn--line:hover { border-color: var(--ink); }
.btn--ink { background: var(--asphalt); color: #fff; }
.btn--ink:hover { background: var(--asphalt-3); }

/* Горна част */
.hdr { position: sticky; top: 0; z-index: 60; background: var(--asphalt); color: var(--on-dark); transition: transform .28s ease, box-shadow .2s; }
.hdr.is-scrolled { box-shadow: 0 6px 24px rgba(0, 0, 0, .22); }
.hdr.is-hidden { transform: translateY(-100%); }
.hdr__in { display: flex; align-items: center; gap: 14px; height: var(--hdr-h); }
.logo { display: block; flex: none; margin-right: auto; }
.logo img { height: 42px; width: auto; }
.hnav, .hdr .sf--bar, .hdr__cta { display: none; }
.hbtn { display: grid; place-items: center; width: 46px; height: 46px; border-radius: var(--r); color: #fff; background: var(--asphalt-3); }
.hbtn:hover { background: var(--asphalt-4); }
@media (min-width: 1024px) {
  .logo { margin-right: 6px; }
  .logo img { height: 50px; }
  .hdr__menu { display: none; }
  .hnav { display: flex; align-items: center; gap: 2px; }
  .hnav a, .hnav button { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px; border-radius: var(--r); font: 500 15px/1 var(--f-head); letter-spacing: .06em; text-transform: uppercase; color: var(--on-dark); }
  .hnav a:hover, .hnav button:hover, .hnav [aria-expanded="true"] { background: var(--asphalt-3); }
  .hnav [aria-current="page"] { color: var(--lime); }
  .hnav__cats .i:first-child { color: var(--lime); }
  .hnav__chev { width: 16px; height: 16px; transition: transform .2s; }
  .hnav [aria-expanded="true"] .hnav__chev { transform: rotate(180deg); }
  .hdr .sf--bar { display: flex; flex: 1; max-width: 420px; margin-left: auto; }
  .hdr__cta { display: inline-flex; }
}
@media (min-width: 1024px) and (max-width: 1179px) { .hdr__cta { display: none; } }

/* Търсачката */
.sf { display: grid; gap: 8px; }
.sf__q, .sf__cat { position: relative; display: flex; align-items: center; background: var(--card); border: 1.5px solid var(--line); border-radius: var(--r); }
.sf__q > .i { position: absolute; left: 14px; color: var(--muted); pointer-events: none; }
.sf input, .sf select { width: 100%; min-height: 50px; border: 0; background: none; outline: none; font-size: 16px; color: var(--ink); }
.sf input { padding: 0 14px 0 44px; }
.sf input::placeholder { color: #7a838d; }
.sf input::-webkit-search-cancel-button { cursor: pointer; }
.sf select { appearance: none; padding: 0 40px 0 14px; cursor: pointer; }
.sf__chev { position: absolute; right: 12px; color: var(--muted); pointer-events: none; }
.sf__q:focus-within, .sf__cat:focus-within { border-color: var(--lime); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lime) 35%, transparent); }
.sf .btn { min-height: 50px; }
.sf--hero { padding: 8px; background: color-mix(in srgb, var(--asphalt-3) 85%, transparent); border: 1px solid var(--asphalt-4); border-radius: var(--r-lg); backdrop-filter: blur(6px); }
.sf--hero .sf__q, .sf--hero .sf__cat { border-color: transparent; }
.sf--hero, .sf--page, .sf--sheet { grid-template-columns: minmax(0, 1fr) auto; }
.sf--hero .sf__q, .sf--page .sf__q, .sf--sheet .sf__q { grid-column: 1 / -1; }
@media (min-width: 768px) {
  .sf--hero, .sf--page { grid-template-columns: minmax(0, 1fr) minmax(0, 250px) auto; }
  .sf--hero .sf__q, .sf--page .sf__q { grid-column: auto; }
  .sf--hero .btn, .sf--page .btn { padding: 0 30px; }
}
.sf--bar { grid-template-columns: minmax(0, 1fr) auto; gap: 0; }
.sf--bar .sf__q { background: var(--asphalt-3); border-color: var(--asphalt-4); border-radius: var(--r) 0 0 var(--r); color: #fff; }
.sf--bar .sf__q > .i { color: var(--on-dark-2); }
.sf--bar input { min-height: 44px; color: #fff; }
.sf--bar input::placeholder { color: var(--on-dark-2); }
.sf--bar .btn { min-height: 44px; padding: 0 14px; border-radius: 0 var(--r) var(--r) 0; }
.sf--page { margin-top: 18px; }

/* Началото: пътят към хоризонта */
.hero { position: relative; overflow: hidden; background: radial-gradient(120% 90% at 78% 0%, #1f2730 0%, var(--asphalt) 55%); color: var(--on-dark); padding: 34px 0 0; isolation: isolate; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 40%, rgba(20, 25, 31, .5) 100%); }
.road { position: absolute; z-index: -2; right: 0; bottom: 0; width: 100%; height: 300px; opacity: .55; }
.road__surface { opacity: .9; }
.road__edge { fill: none; stroke: #4a5562; stroke-width: 2.4; }
.road__dash { fill: #f3f5f0; opacity: .35; animation: runway 2.6s linear infinite; animation-delay: calc(var(--i) * -.2s); }
.road__pin { animation: bob 3.4s ease-in-out infinite; transform-box: fill-box; }
@keyframes runway { 0%, 100% { opacity: .2; } 12% { opacity: .95; } 40% { opacity: .3; } }
@keyframes bob { 50% { translate: 0 -6px; } }
.hero__in { position: relative; padding-bottom: 26px; }
.hero h1 { font-size: clamp(34px, 9.6vw, 66px); font-weight: 600; line-height: 1.04; max-width: 15ch; color: #fff; }
.hero h1 em { font-style: normal; color: var(--lime); }
.hero__lead { margin: 16px 0 22px; max-width: 56ch; font-size: 17px; color: var(--on-dark-2); }
.hero__quick { display: flex; align-items: center; gap: 8px; margin: 16px calc(var(--gut) * -1) 0; padding: 0 var(--gut) 2px; overflow-x: auto; scrollbar-width: none; }
.hero__quick::-webkit-scrollbar { display: none; }
.hero__quick span { flex: none; font: 500 12px/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-2); }
.hero__quick a { flex: none; display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--asphalt-4); background: rgba(37, 44, 53, .7); font-size: 14px; white-space: nowrap; color: var(--on-dark); transition: border-color .15s, background .15s; }
.hero__quick a .i { width: 16px; height: 16px; color: var(--lime); }
.hero__quick a:hover { border-color: var(--lime); background: var(--asphalt-3); }
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px dashed var(--asphalt-4); margin-top: 6px; }
.facts > div { display: flex; flex-direction: column-reverse; gap: 4px; padding: 16px 10px 18px 0; }
.facts > div + div { padding-left: 12px; border-left: 1px dashed var(--asphalt-4); }
.facts dd { font: 600 clamp(24px, 7vw, 38px)/1 var(--f-head); color: var(--lime); }
.facts dt { font-size: 12.5px; line-height: 1.3; color: var(--on-dark-2); }
.facts--light { margin: 22px 0; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--card); }
.facts--light > div { padding: 16px; }
.facts--light > div + div { border-left-color: var(--line); padding-left: 16px; }
.facts--light dd { color: var(--lime-ink); }
.facts--light dt { color: var(--muted); }
@media (min-width: 768px) {
  .hero { padding-top: 56px; }
  .road { height: 380px; opacity: .75; }
  .hero__quick { flex-wrap: wrap; overflow: visible; margin: 18px 0 0; padding: 0; }
  .hero__quick span { margin-right: 4px; }
}
@media (min-width: 1024px) {
  .hero { padding-top: 72px; }
  .hero::before { background: linear-gradient(90deg, var(--asphalt) 30%, rgba(20, 25, 31, .6) 52%, transparent 70%); }
  .road { width: 66%; height: 100%; opacity: 1; }
  .hero__in { padding-bottom: 44px; max-width: 1240px; }
  .hero__in > * { max-width: 700px; }
  .hero__lead { font-size: 18px; }
  .facts { max-width: 700px; }
}

/* „На фокус“: билборд с горните банери */
.bb { padding: 22px 0 6px; }
.bb__frame { background: var(--asphalt); padding: 6px; border-radius: var(--r-lg); box-shadow: 0 10px 30px rgba(20, 25, 31, .14); }
.car__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.car__track::-webkit-scrollbar { display: none; }
.bb .car__slide { flex: 0 0 100%; scroll-snap-align: start; border-radius: 5px; overflow: hidden; background: #fff; }
.bb .car__slide img { width: 100%; aspect-ratio: 970 / 150; object-fit: cover; }
.bb__bar, .car__bar { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.bb__label { display: inline-flex; align-items: center; gap: 6px; font: 500 12px/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.bb__label .i { width: 15px; height: 15px; color: var(--lime-ink); }
.car__dots { display: flex; flex-wrap: wrap; gap: 5px; flex: 1; justify-content: center; }
.car__dots button { width: 18px; height: 4px; border-radius: 2px; background: #c8cdc3; transition: background .2s, width .2s; }
.car__dots button[aria-current="true"] { width: 30px; background: var(--lime-ink); }
.car__nav { display: flex; gap: 6px; }
.car__btn { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--r); background: var(--card); border: 1px solid var(--line); }
.car__btn:hover { border-color: var(--ink); }
@media (max-width: 559px) {
  .bb .car__dots { display: none; }
  .bb__bar { justify-content: space-between; }
  .bb__frame { padding: 4px; }
  .car__dots button { width: 10px; }
  .car__dots button[aria-current="true"] { width: 20px; }
}

/* Секции */
.sec { padding: 42px 0; }
.sec__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 24px; margin-bottom: 22px; }
.sec__head h2 { font-size: clamp(28px, 6.6vw, 42px); }
.sec__note { max-width: 42ch; color: var(--muted); font-size: 15px; }
.more { display: inline-flex; align-items: center; gap: 6px; font: 500 14px/1.2 var(--f-head); letter-spacing: .05em; text-transform: uppercase; color: var(--lime-ink); border-bottom: 2px solid currentColor; padding-bottom: 3px; }
.more .i { width: 16px; height: 16px; }
@media (min-width: 1024px) { .sec { padding: 64px 0; } }

/* Табелите на категориите (като знаци за посока) */
.sign {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 12px;
  min-height: 64px; padding: 10px 14px 10px 10px; border-radius: 8px;
  background: var(--asphalt-2); color: #fff;
  box-shadow: inset 0 0 0 3px var(--asphalt-2), inset 0 0 0 4.5px rgba(238, 241, 234, .78);
  transition: transform .18s, background .18s;
}
.sign:hover { background: var(--asphalt-3); box-shadow: inset 0 0 0 3px var(--asphalt-3), inset 0 0 0 4.5px var(--lime); }
.sign:hover .sign__go { transform: translateX(3px); color: var(--lime); }
.sign__ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 5px; background: var(--lime); color: var(--ink); }
.sign__ic .i { width: 22px; height: 22px; }
.sign__n { font: 500 17px/1.15 var(--f-head); letter-spacing: .04em; text-transform: uppercase; }
.sign .km { color: var(--on-dark-2); }
.sign__go { width: 18px; height: 18px; color: var(--on-dark-2); transition: transform .18s, color .18s; }

.cmap { display: grid; gap: 14px; }
.cmap__signs { display: grid; gap: 10px; }
.cmap__svc { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.cmap__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px 12px 12px; background: var(--asphalt-2); color: #fff; }
.cmap__head b { display: block; font: 500 18px/1.15 var(--f-head); letter-spacing: .04em; text-transform: uppercase; }
.cmap__head small { font-size: 13px; color: var(--on-dark-2); }
.cmap__head:hover .sign__go { color: var(--lime); transform: translateX(3px); }

/* „Услуги“: маршрут със спирки */
.route { padding: 8px 10px 10px; }
.route li { position: relative; break-inside: avoid; }
.route li::before { content: ""; position: absolute; left: 15px; top: 0; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--lime) 0 6px, transparent 6px 10px); }
.route a { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 44px; padding: 6px 8px 6px 32px; border-radius: var(--r); }
.route a::before { content: ""; position: absolute; left: 10px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--card); border: 2.5px solid var(--lime-ink); transition: background .15s; }
.route a:hover { background: var(--lime-wash); }
.route a:hover::before, .route a[aria-current="page"]::before { background: var(--lime); }
.route a[aria-current="page"] { background: var(--lime-wash); font-weight: 600; }
.route__ic .i { width: 18px; height: 18px; color: var(--muted); }
.route__n { font-size: 15px; line-height: 1.25; }
.route .km { color: var(--muted); }
@media (min-width: 560px) { .cmap--home .route, .cmap--menu .route { columns: 2; column-gap: 8px; } }
@media (min-width: 1024px) {
  .cmap--home { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); align-items: start; gap: 20px; }
  .cmap--home .sign { min-height: 74px; }
  .cmap--menu { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: start; gap: 18px; }
  .cmap--menu .route { columns: 3; }
}

/* Препоръчани (VIP): тъмна лента, карти */
.sec--vip { background: var(--asphalt); color: var(--on-dark); }
.sec--vip .sec__head h2 { color: #fff; }
.sec--vip .sec__note { color: var(--on-dark-2); }
.vips .car__track { gap: 12px; scroll-padding: 0 var(--gut); margin: 0 calc(var(--gut) * -1); padding: 4px var(--gut) 8px; }
.vip { flex: 0 0 min(84%, 330px); scroll-snap-align: start; display: flex; flex-direction: column; background: var(--card); color: var(--ink); border-radius: var(--r-lg); padding: 14px; position: relative; transition: transform .2s, box-shadow .2s; }
.vip:hover { transform: translateY(-3px); box-shadow: 0 0 0 2px var(--lime); }
.vip__logo { display: grid; place-items: center; aspect-ratio: 256 / 105; border-radius: var(--r); background: #fff; border: 1px solid var(--line-2); overflow: hidden; }
.vip__logo img { width: 100%; height: 100%; object-fit: contain; }
.vip__name { margin-top: 14px; font-size: 21px; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.vip__name a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.vip__text { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--ink-2); flex: 1; }
.vip__go { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); font: 500 13px/1.2 var(--f-mono); color: var(--lime-ink); }
.vip__go .i { width: 16px; height: 16px; }
.vip__go .i:last-child { margin-left: auto; }
.vips .car__btn { background: var(--asphalt-3); border-color: var(--asphalt-4); color: #fff; }
.vips .car__dots button { background: var(--asphalt-4); }
.vips .car__dots button[aria-current="true"] { background: var(--lime); }
@media (min-width: 768px) {
  .vips .car__track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; overflow: visible; margin: 0; padding: 0; }
  .vips .car__bar { display: none; }
}
@media (min-width: 1100px) { .vips .car__track { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Фирма в списък: билет */
.tickets { display: grid; gap: 14px; }
.ticket { --cut: 108px; position: relative; display: grid; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); transition: border-color .18s, box-shadow .18s; }
.ticket:hover { border-color: #b9c1b2; box-shadow: 0 10px 26px rgba(20, 25, 31, .08); }
.ticket::before, .ticket::after { content: ""; position: absolute; top: calc(var(--cut) - 10px); width: 20px; height: 20px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line); }
.ticket::before { left: -11px; clip-path: inset(0 0 0 50%); }
.ticket::after { right: -11px; clip-path: inset(0 50% 0 0); }
.ticket__logo { display: grid; place-items: center; height: var(--cut); padding: 12px 18px; border-bottom: 2px dashed var(--line); }
.ticket__logo img { max-height: 84px; width: auto; max-width: 100%; object-fit: contain; }
.ticket__logo span { color: #b4bcc4; }
.ticket__logo span .i { width: 42px; height: 42px; }
.ticket__body { padding: 14px 16px 16px; min-width: 0; }
.ticket__cats { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 6px; }
.ticket__cats a { font: 500 11.5px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--lime-ink); }
.ticket__cats a:hover { text-decoration: underline; }
.ticket__name { font-size: 22px; font-weight: 500; letter-spacing: .015em; line-height: 1.2; }
.ticket__name a:hover { color: var(--lime-ink); }
.ticket__meta { display: grid; gap: 6px; margin-top: 10px; font-size: 15px; color: var(--ink-2); }
.ticket__meta li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; }
.ticket__meta .i { width: 17px; height: 17px; margin-top: 3px; color: var(--muted); }
.ticket__meta span { overflow-wrap: anywhere; }
.ticket__meta a { color: var(--ink); border-bottom: 1px solid var(--line); }
.ticket__meta a:hover { border-color: var(--ink); }
.ticket__act { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ticket__act .btn { flex: 1 1 140px; }
@media (min-width: 700px) {
  .ticket { --cut: 230px; grid-template-columns: var(--cut) minmax(0, 1fr); }
  .ticket::before, .ticket::after { top: auto; left: calc(var(--cut) - 10px); right: auto; }
  .ticket::before { top: -11px; clip-path: inset(50% 0 0 0); }
  .ticket::after { bottom: -11px; clip-path: inset(0 0 50% 0); }
  .ticket__logo { height: auto; min-height: 150px; border-bottom: 0; border-right: 2px dashed var(--line); padding: 16px; }
  .ticket__body { padding: 18px 20px; }
  .ticket__act .btn { flex: 0 0 auto; }
}
@media (max-width: 699px) { .tickets--2 .ticket:nth-child(n+5) { display: none; } }
@media (min-width: 1100px) { .tickets--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tickets--2 .ticket { --cut: 190px; } }

/* Партньори */
.sec--partners { background: var(--card); border-top: 1px solid var(--line); }
.pl a { display: grid; place-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 6px; transition: border-color .15s, transform .15s; }
.pl a:hover { border-color: var(--lime-ink); transform: translateY(-2px); }
.pl img { width: 100%; aspect-ratio: 260 / 80; object-fit: contain; }
.pl--wall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 640px) { .pl--wall { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .pl--wall { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; } }
.pband { padding: 6px 0 40px; }
.pl--band { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(var(--gut) * -1); padding: 0 var(--gut) 4px; scroll-padding: 0 var(--gut); }
.pl--band::-webkit-scrollbar { display: none; }
.pl--band li { flex: 0 0 172px; scroll-snap-align: start; }
@media (min-width: 768px) {
  .pl--band { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: visible; margin: 0; padding: 0; }
  .pl--band li { flex: none; }
}

/* Покана към фирмите */
.cta { background: var(--lime); color: var(--ink); }
.cta__in { display: grid; gap: 22px; padding-top: 40px; padding-bottom: 40px; }
.cta .eyebrow { color: var(--ink); }
.cta h2 { font-size: clamp(28px, 6.4vw, 40px); }
.cta p:not(.eyebrow) { margin-top: 10px; max-width: 58ch; font-size: 16.5px; }
.cta__act { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }
.cta .btn--lime { background: var(--asphalt); color: #fff; }
.cta .btn--lime:hover { background: var(--asphalt-3); }
.cta__tel { display: inline-flex; align-items: center; gap: 8px; font: 500 20px/1 var(--f-head); letter-spacing: .04em; }
@media (min-width: 1024px) { .cta__in { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding-top: 52px; padding-bottom: 52px; } }

/* Лента със заглавието на вътрешните страници */
.band { background: var(--asphalt); color: var(--on-dark); padding: 14px 0 22px; }
.band h1 { font-size: clamp(28px, 7.4vw, 44px); font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: #fff; overflow-wrap: anywhere; }
.band__head { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
.band__ic { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 8px; background: var(--lime); color: var(--ink); box-shadow: inset 0 0 0 3px var(--lime), inset 0 0 0 4.5px rgba(20, 25, 31, .5); }
.band__ic .i { width: 28px; height: 28px; }
.band__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-top: 8px; color: var(--on-dark-2); font-size: 15px; }
.band--search h1 { margin-top: 14px; text-transform: none; }
.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 4px; font-size: 13.5px; color: var(--on-dark-2); }
.crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.crumbs a:hover { color: #fff; text-decoration: underline; }
.crumbs .i { width: 14px; height: 14px; opacity: .7; }
.crumbs [aria-current] span { color: var(--on-dark); }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 18px calc(var(--gut) * -1) 0; padding: 0 var(--gut) 2px; }
.chips::-webkit-scrollbar { display: none; }
.chips a { flex: none; display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--asphalt-4); color: var(--on-dark); font-size: 14px; white-space: nowrap; transition: border-color .15s, background .15s; }
.chips a .i { width: 16px; height: 16px; color: var(--lime); }
.chips a:hover { border-color: var(--lime); }
.chips a[aria-current="page"] { background: var(--lime); border-color: var(--lime); color: var(--ink); font-weight: 600; }
.chips a[aria-current="page"] .i { color: var(--ink); }
@media (min-width: 1024px) {
  .band { padding: 18px 0 30px; }
  .chips { flex-wrap: wrap; overflow: visible; margin: 22px 0 0; padding: 0; }
}

/* Две колони: списък + странична част */
.cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding-top: 22px; padding-bottom: 40px; }
.cols__main, .cols__side { min-width: 0; }
.cols__side { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-content: start; }
.box { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px; }
.box__t { display: flex; align-items: center; gap: 8px; font: 500 15px/1.2 var(--f-head); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
.box__t .i { width: 18px; height: 18px; color: var(--lime-ink); }
.scats { display: none; }
@media (min-width: 1024px) {
  .cols { grid-template-columns: minmax(0, 1fr) 310px; gap: 28px; padding-top: 30px; padding-bottom: 56px; }
  .scats { display: block; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px 10px 10px; }
  .scats .box__t { padding: 0 6px; }
  .scats > ul > li > a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 42px; padding: 6px 8px; border-radius: var(--r); font-size: 15px; font-weight: 500; }
  .scats > ul > li > a .i { width: 18px; height: 18px; color: var(--muted); }
  .scats > ul > li > a:hover { background: var(--paper); }
  .scats > ul > li > a[aria-current="page"] { background: var(--asphalt); color: #fff; }
  .scats > ul > li > a[aria-current="page"] .i, .scats > ul > li > a[aria-current="page"] .km { color: var(--lime); }
  .scats .km { color: var(--muted); }
  .route--side { padding: 2px 0 6px 6px; }
  .route--side a { min-height: 36px; padding-top: 3px; padding-bottom: 3px; }
  .route--side .route__ic { display: none; }
  .route--side a { grid-template-columns: minmax(0, 1fr) auto; }
  .route--side .route__n { font-size: 14px; }
  .cols__side { position: sticky; top: calc(var(--hdr-vis) + 16px); transition: top .28s; }
}

/* Страниране */
.pager { display: grid; justify-items: center; gap: 10px; margin-top: 26px; }
.pager__info { font: 500 13px/1 var(--f-mono); color: var(--muted); }
.pager ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pg { display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; border-radius: var(--r); background: var(--card); border: 1px solid var(--line); font: 500 15px/1 var(--f-mono); }
a.pg:hover { border-color: var(--ink); }
.pg[aria-current="page"] { background: var(--asphalt); border-color: var(--asphalt); color: var(--lime); }
.pg[aria-disabled="true"] { opacity: .4; }
.pg--next { gap: 6px; display: inline-flex; }
.pg--next span { font-family: var(--f-head); text-transform: uppercase; letter-spacing: .05em; font-size: 14px; }
.pg-gap { display: grid; place-items: center; width: 22px; color: var(--muted); }
@media (max-width: 420px) { .pg--next span { display: none; } }

/* Профил на фирма */
.band--firm { padding-bottom: 26px; }
.fhead { display: grid; gap: 16px; margin-top: 16px; }
.fhead__logo { display: grid; place-items: center; width: min(100%, 240px); aspect-ratio: 205 / 84; background: #fff; border-radius: var(--r); padding: 6px; box-shadow: 0 0 0 4px var(--asphalt-3); color: #b4bcc4; }
.fhead__logo img { width: 100%; height: 100%; object-fit: contain; }
.fhead__logo .i { width: 42px; height: 42px; }
.fhead__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.fhead__cats a { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 10px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--lime) 55%, transparent); color: var(--lime); font: 500 12px/1 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; }
.fhead__cats a .i { width: 15px; height: 15px; }
.fhead__cats a:hover { background: var(--lime); color: var(--ink); }
.fhead h1 { font-size: clamp(28px, 7.6vw, 46px); font-weight: 500; letter-spacing: .02em; color: #fff; overflow-wrap: anywhere; }
.fhead__addr { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; color: var(--on-dark-2); }
.fhead__addr .i { margin-top: 3px; color: var(--lime); }
@media (min-width: 768px) { .fhead { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 26px; } .fhead__logo { width: 240px; } }

.fgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding-top: 18px; padding-bottom: 28px; }
.fgrid__main, .fgrid__side { min-width: 0; }
.fgrid__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-content: start; }
@media (min-width: 1024px) {
  .fgrid { grid-template-columns: minmax(0, 1fr) 360px; grid-template-areas: "main side"; gap: 28px; padding-top: 30px; }
  .fgrid__main { grid-area: main; }
  .fgrid__side { grid-area: side; }
  .fgrid__side .wb { position: sticky; top: calc(var(--hdr-vis) + 16px); transition: top .28s; }
  .band--firm + .fgrid .wb { margin-top: -70px; }
}

/* „Товарителницата“: контактите */
.wb { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: 0 14px 34px rgba(20, 25, 31, .1); }
.wb__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; background: var(--asphalt-2); color: #fff; border-bottom: 3px solid var(--lime); }
.wb__head h2 { font-size: 17px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.wb__no { font: 500 12px/1 var(--f-mono); color: var(--lime); white-space: nowrap; }
.wb__ns { font-family: var(--f-body); }
.wb__calls { display: grid; gap: 8px; padding: 16px; border-bottom: 2px dashed var(--line); }
.wb__calls .btn { font-family: var(--f-mono); font-size: 16px; letter-spacing: .02em; text-transform: none; }
.wb__rows > div { padding: 12px 16px; border-bottom: 1px dashed var(--line); }
.wb__rows dt { display: flex; align-items: center; gap: 7px; font: 500 11.5px/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.wb__rows dt .i { width: 15px; height: 15px; }
.wb__rows dd { font-size: 15.5px; overflow-wrap: anywhere; }
.wb__rows dd a:not(.wb__nav) { color: var(--lime-ink); border-bottom: 1px solid color-mix(in srgb, var(--lime-ink) 35%, transparent); }
.wb__rows dd a:not(.wb__nav):hover { border-color: currentColor; }
.wb__nav { display: flex; width: fit-content; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 10px; border-radius: var(--r); background: var(--lime-wash); color: var(--lime-ink); font: 500 13px/1 var(--f-head); letter-spacing: .06em; text-transform: uppercase; }
.wb__nav .i { width: 15px; height: 15px; }
.wb__nav:hover { background: var(--lime); color: var(--ink); }
.wb__code { display: flex; align-items: center; gap: 12px; padding: 12px 16px 14px; }
.wb__code span { flex: 1; height: 34px; background: repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 11px, transparent 11px 12px, var(--ink) 12px 13px, transparent 13px 17px); opacity: .85; }
.wb__code b { font: 500 13px/1 var(--f-mono); letter-spacing: .2em; }

.art { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px 16px 20px; }
.art__t { display: flex; align-items: center; gap: 10px; font-size: 22px; font-weight: 500; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 14px; }
.art__t::before { content: ""; width: 6px; height: 22px; border-radius: 2px; background: var(--lime); }
.art__t .km { color: var(--muted); }
@media (min-width: 768px) { .art { padding: 24px 26px 26px; } }

.prose { font-size: 16.5px; line-height: 1.7; color: var(--ink-2); overflow-wrap: break-word; }
.prose > * + * { margin-top: 12px; }
.prose h2 { font-size: 24px; font-weight: 500; color: var(--ink); margin-top: 26px; }
.prose h3 { font-size: 17px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); margin-top: 22px; padding-top: 14px; border-top: 1px dashed var(--line); }
.prose > h3:first-child, .prose > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.prose strong { color: var(--ink); font-weight: 600; }
.prose a { color: var(--lime-ink); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.prose ul { display: grid; gap: 6px; }
.prose ul li { position: relative; padding-left: 22px; }
.prose ul li::before { content: ""; position: absolute; left: 3px; top: .62em; width: 8px; height: 8px; border-radius: 2px; background: var(--lime); }
.prose ol { padding-left: 22px; list-style: decimal; }
.prose blockquote { margin: 0; padding: 10px 16px; border-left: 4px solid var(--lime); background: var(--paper); }
.prose--lead { font-size: 18px; color: var(--ink); }
.tbl { overflow-x: auto; }
.prose table { border-collapse: collapse; width: 100%; font-size: 15px; }
.prose td, .prose th { border: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; }

.gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(140px, 44%), 1fr)); gap: 8px; }
.gal a { display: block; border-radius: var(--r); overflow: hidden; background: var(--paper); border: 1px solid var(--line-2); }
.gal img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.gal a:hover img { transform: scale(1.04); }
.gal--one { grid-template-columns: minmax(0, 520px); }
.gal--one img { aspect-ratio: auto; max-height: 420px; object-fit: contain; background: #fff; }

.mapbox { border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); background: var(--paper); }
.mapbox iframe { display: block; width: 100%; height: 260px; border: 0; }
.mapbox--tall iframe { height: 340px; }
@media (min-width: 768px) { .mapbox iframe { height: 320px; } }
.maplink { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 10px; padding: 12px 14px; border-radius: var(--r); border: 1px solid var(--line); }
.maplink > .i:first-child { color: var(--lime-ink); }
.maplink b { display: block; font: 500 15px/1.2 var(--f-head); letter-spacing: .05em; text-transform: uppercase; }
.maplink small { color: var(--muted); font-size: 14px; }
.maplink:hover { border-color: var(--ink); }

.kw { display: flex; flex-wrap: wrap; gap: 6px; }
.kw.is-cut .tag:nth-child(n+9) { display: none; }
.tag { display: inline-flex; align-items: center; min-height: 32px; padding: 0 11px; border-radius: 4px; border: 1px solid var(--line); background: var(--paper); font-size: 14px; }
.tag:hover { border-color: var(--lime-ink); color: var(--lime-ink); }
.kw__more { margin-top: 10px; font: 500 14px/1 var(--f-head); letter-spacing: .05em; text-transform: uppercase; color: var(--lime-ink); }

.rel { display: grid; gap: 8px; }
.rel a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 12px 8px 8px; border: 1px solid var(--line); border-radius: var(--r); }
.rel a:hover { border-color: var(--ink); }
.rel a > .i { width: 18px; height: 18px; color: var(--muted); }
.rel__logo { display: grid; place-items: center; width: 92px; aspect-ratio: 205 / 84; border-radius: 4px; background: #fff; border: 1px solid var(--line-2); overflow: hidden; color: #b4bcc4; }
.rel__logo img { width: 100%; height: 100%; object-fit: contain; }
.rel__n { font: 500 16px/1.25 var(--f-head); letter-spacing: .02em; }
@media (min-width: 768px) { .rel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* Статични страници и контакти */
.cols--page .cols__main { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px 16px; }
@media (min-width: 768px) { .cols--page .cols__main { padding: 30px 34px; } }
.ibox p { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-bottom: 10px; font-size: 15px; }
.ibox p .i { color: var(--muted); width: 18px; height: 18px; margin-top: 3px; }
.ibox a:not(.btn) { color: var(--lime-ink); }
.ibox .btn { margin-top: 6px; }
.ilinks { display: grid; padding: 6px; }
.ilinks a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 0 10px; border-radius: var(--r); font-size: 15px; }
.ilinks a .i { width: 16px; height: 16px; color: var(--muted); }
.ilinks a:hover { background: var(--paper); }
.ilinks a[aria-current="page"] { background: var(--asphalt); color: #fff; }
.ilinks a[aria-current="page"] .i { color: var(--lime); }

.ctgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding-top: 22px; padding-bottom: 44px; }
.ctgrid > * { min-width: 0; }
@media (min-width: 1024px) {
  .ctgrid { grid-template-columns: minmax(0, 1fr) 380px; grid-template-areas: "form co" "map map"; gap: 24px; padding-top: 30px; }
  .formbox { grid-area: form; }
  .wb--co { grid-area: co; align-self: start; }
  .ctmap { grid-area: map; }
}
.formbox { padding: 20px 16px; }
@media (min-width: 768px) { .formbox { padding: 26px 28px; } }
.form { display: grid; gap: 14px; }
.form__grid { display: grid; gap: 14px; }
@media (min-width: 640px) { .form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.field { display: grid; gap: 6px; }
.field label { font-size: 14px; font-weight: 600; }
.field i { font-style: normal; color: #b0412e; }
.field input, .field textarea { width: 100%; min-height: 50px; padding: 12px 14px; border-radius: var(--r); border: 1.5px solid var(--line); background: #fff; font-size: 16px; outline: none; }
.field textarea { resize: vertical; min-height: 150px; }
.field input:focus, .field textarea:focus { border-color: var(--lime-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--lime) 35%, transparent); }
.form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.form__note { font-size: 14px; color: var(--muted); }
.wb--co .wb__head h2 { font-size: 16px; }

/* Долна част */
.ftr { position: relative; background: var(--asphalt); color: var(--on-dark-2); padding: 46px 0 22px; font-size: 15px; }
.ftr::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: repeating-linear-gradient(90deg, var(--lime) 0 46px, transparent 46px 80px); }
.ftr h3 { font: 500 14px/1.2 var(--f-head); letter-spacing: .1em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.ftr a:hover { color: #fff; text-decoration: underline; }
.ftr__top { display: grid; gap: 30px; }
.ftr__brand img { height: 48px; width: auto; }
.ftr__brand p { margin-top: 14px; max-width: 44ch; font-size: 14.5px; line-height: 1.6; }
.ftr nav li { margin-bottom: 8px; }
.ftr__cols { columns: 2; column-gap: 18px; }
.ftr__cols li { break-inside: avoid; }
.ftr__contact p { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-bottom: 10px; }
.ftr__contact .i { width: 18px; height: 18px; color: var(--lime); margin-top: 3px; }
.ftr__contact small { color: #8a939d; }
.ftr__mid { display: grid; gap: 16px; margin-top: 34px; padding: 20px 0; border-top: 1px dashed var(--asphalt-4); border-bottom: 1px dashed var(--asphalt-4); }
.ftr__info { display: flex; flex-wrap: wrap; gap: 8px 22px; color: var(--on-dark); }
.regs { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; }
.regs span { width: 100%; font: 500 12px/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: #8a939d; }
.ftr__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; font-size: 13.5px; }
.ftr__by { display: flex; align-items: center; gap: 14px; }
.ftr__by img { height: 44px; width: auto; background: #fff; border-radius: 6px; padding: 4px 8px; }
.totop { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r); background: var(--asphalt-3); color: #fff; }
.totop:hover { background: var(--lime); color: var(--ink); }
@media (min-width: 768px) { .ftr__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .regs span { width: auto; } }
@media (min-width: 1100px) {
  .ftr { padding-top: 60px; }
  .ftr__top { grid-template-columns: 1.3fr .9fr 1.3fr 1.1fr; gap: 36px; }
  .ftr__mid { grid-template-columns: auto 1fr; justify-items: end; align-items: center; }
}

/* Лентата долу на телефона: търсене с палеца */
.thumb {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 6px;
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(20, 25, 31, .08);
}
.thumb__btn { display: grid; justify-items: center; gap: 2px; min-width: 64px; min-height: 48px; padding: 4px 6px; border-radius: var(--r); font-size: 11.5px; font-weight: 500; color: var(--ink-2); }
.thumb__btn .i { width: 22px; height: 22px; }
.thumb__btn[aria-current="page"] { color: var(--lime-ink); }
.thumb__btn[aria-expanded="true"] { background: var(--paper); }
.thumb__search { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border-radius: 999px; background: var(--paper); border: 1.5px solid var(--line); color: var(--muted); font-size: 15px; text-align: left; min-width: 0; }
.thumb__search .i { color: var(--lime-ink); }
.thumb__search span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.thumb--firm { grid-template-columns: minmax(0, 1fr) auto auto; }
.thumb__call { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; border-radius: 999px; background: var(--lime); color: var(--ink); font: 500 16px/1 var(--f-head); letter-spacing: .06em; text-transform: uppercase; }
@media (min-width: 1024px) { .thumb { display: none; } }

/* Листове: търсене, категории, меню */
.sheet { position: fixed; inset: 0; z-index: 90; }
.sheet__bg { position: absolute; inset: 0; background: rgba(12, 15, 19, .58); animation: fade .2s ease; }
.sheet__panel { position: absolute; background: var(--paper); overflow-y: auto; overscroll-behavior: contain; padding: 0 16px 24px; }
.sheet__head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: 10px; margin: 0 -16px 16px; padding: 12px 12px 12px 16px; background: var(--paper); border-bottom: 1px solid var(--line); }
.sheet__head--dark { background: var(--asphalt); border-color: var(--asphalt); }
.sheet__head--dark .logo img { height: 40px; }
.sheet__title { font-size: 20px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; margin-right: auto; }
.sheet__sub { display: none; font: 500 12px/1 var(--f-mono); color: var(--muted); }
.sheet__close { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r); background: var(--card); border: 1px solid var(--line); }
.sheet__head--dark .sheet__close { background: var(--asphalt-3); border-color: var(--asphalt-4); color: #fff; }
.slabel { margin: 20px 0 10px; font: 500 12px/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.sheet--full .sheet__panel { inset: 0; animation: up .24s ease; }
.sheet--full .sf { gap: 10px; }
.sheet--drop .sheet__panel { left: 0; right: 0; bottom: 0; max-height: 88vh; max-height: 88dvh; border-radius: 16px 16px 0 0; animation: up .26s ease; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
.sheet--drop .sheet__head { border-radius: 16px 16px 0 0; }
.sheet--right .sheet__panel { top: 0; right: 0; bottom: 0; width: min(360px, 90vw); animation: slide .24s ease; display: flex; flex-direction: column; gap: 16px; }
.sheet--right .sheet__head { margin-bottom: 0; }
.sheet.is-closing .sheet__bg { animation: fade .17s reverse forwards; }
.sheet.is-closing .sheet__panel { animation-duration: .17s; animation-direction: reverse; animation-fill-mode: forwards; }
@keyframes fade { from { opacity: 0; } }
@keyframes up { from { transform: translateY(24px); opacity: 0; } }
@keyframes slide { from { transform: translateX(30px); opacity: 0; } }
@keyframes drop { from { transform: translateY(-14px); opacity: 0; } }
.cmap--sheet .sign { min-height: 56px; }
.cmap--sheet .sign__ic { width: 36px; height: 36px; }
.mnav { display: grid; gap: 2px; }
.mnav a, .mnav button { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 0 12px; border-radius: var(--r); font-size: 16.5px; font-weight: 500; text-align: left; }
.mnav .i { color: var(--muted); }
.mnav a:hover, .mnav button:hover { background: var(--card); }
.mnav [aria-current="page"] { background: var(--card); box-shadow: inset 3px 0 0 var(--lime); }
.mnav__go { margin-left: auto; }
.mmeta { display: grid; gap: 10px; margin-top: auto; padding-top: 16px; border-top: 1px dashed var(--line); font-size: 15px; }
.mmeta a { display: flex; align-items: center; gap: 10px; }
.mmeta .i { color: var(--lime-ink); }
@media (min-width: 1024px) {
  .sheet--drop { top: var(--hdr-h); }
  .sheet--drop .sheet__bg { background: rgba(12, 15, 19, .42); }
  .sheet--drop .sheet__panel { top: 0; bottom: auto; max-height: calc(100vh - var(--hdr-h)); border-radius: 0 0 var(--r-lg) var(--r-lg); padding: 0 max(var(--gut), calc((100vw - 1240px) / 2 + var(--gut))) 26px; animation: drop .22s ease; box-shadow: 0 24px 50px rgba(0, 0, 0, .25); }
  .sheet--drop .sheet__head { margin: 0 0 18px; padding: 18px 0 14px; border-radius: 0; }
  .sheet--drop .sheet__sub { display: block; margin-right: auto; }
  .sheet--drop .sheet__title { margin-right: 6px; }
  .sheet--full .sheet__panel { inset: 8vh auto auto 50%; width: min(820px, 92vw); max-height: 84vh; transform: translateX(-50%); border-radius: var(--r-lg); animation: none; }
}

/* Снимки на цял екран */
.lb { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; background: rgba(10, 12, 15, .94); animation: fade .2s; }
.lb img { max-width: 94vw; max-height: 84vh; width: auto; border-radius: 4px; }
.lb__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; }
.lb__btn:hover { background: rgba(255, 255, 255, .22); }
.lb__close { top: 14px; right: 14px; }
.lb__prev { left: 12px; top: 50%; margin-top: -24px; }
.lb__next { right: 12px; top: 50%; margin-top: -24px; }
.lb__count { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; font: 500 13px/1 var(--f-mono); color: #cfd5db; }

/* Бисквитки */
.cookie { position: fixed; z-index: 70; left: 10px; right: 10px; bottom: calc(var(--thumb-h) + 14px + env(safe-area-inset-bottom)); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 14px 16px; background: var(--asphalt); color: var(--on-dark); border-radius: var(--r-lg); box-shadow: 0 14px 36px rgba(0, 0, 0, .3); font-size: 14.5px; }
.cookie p { flex: 1 1 240px; }
.cookie a { color: var(--lime); text-decoration: underline; }
@media (min-width: 1024px) { .cookie { left: auto; right: 24px; bottom: 24px; max-width: 460px; } }

/* Появяване при скрол */
.js .rv { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.js .rv.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .rv { opacity: 1; transform: none; }
}

/* ===== В WordPress ===== */
/* hidden скрива винаги, и при елементи с display: flex (бисквитките, бутоните на въртележката) */
[hidden] { display: none !important; }
/* лентата за бисквитките на приставката (uk-cookie-consent): темата има своя, със същата бисквитка catAccCookies */
#catapult-cookie-bar { display: none !important; }
/* скриптът ѝ бута страницата надолу с margin-top, докато бисквитката я няма (бежовата лента над горната лента);
   без transition събитието transitionend не идва и скриптът не слага височината. С лентата на WordPress (влязъл админ) остават 28px за нея */
html.has-cookie-bar, html.cookie-bar-top-bar { margin-top: 0 !important; transition: none !important; }
html.has-cookie-bar body.admin-bar { margin-top: 0 !important; }
html.has-cookie-bar:has(body.admin-bar) { margin-top: 28px !important; }
/* бележката в товарителницата: регистърът не отговаря на въпроси към фирмите */
.wb__note { display: flex; gap: 8px; margin: 14px 0 0; font-size: 13px; line-height: 1.45; color: var(--muted, #8a93a0); }
.wb__note .i { flex: none; width: 17px; height: 17px; margin-top: 1px; color: var(--lime, #8cc63f); }
.ftr__note, .ibox__note { font-size: 13px; line-height: 1.45; opacity: .8; margin: 0 0 10px; }
.notice { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; margin: 22px 0 10px; padding: 16px; border-radius: 16px; background: #fff; border: 1.5px solid #cfe3a8; }
.notice__ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--lime, #8cc63f); color: #14191f; }
.notice__ic .i { width: 22px; height: 22px; }
.notice p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; }
.notice .notice__t { margin-bottom: 4px; font-weight: 600; font-size: 16.5px; }
.contacts-lead { margin: 0 0 6px; font-size: 14px; font-weight: 600; opacity: .75; }
@media (max-width: 479px) { .notice { grid-template-columns: minmax(0, 1fr); } .notice .btn { width: 100%; } }
.msg { padding: 12px 14px; border-radius: 12px; margin: 0 0 14px; font-weight: 500; }
.msg--ok { background: #e9f5d8; color: #2f5a08; }
.msg--err { background: #fde8e6; color: #8a1d14; }
/* рекламата: вдясно на компютъра (по един банер в ред), на телефона и таблета каре между фирмите */
.ads { margin: 0 0 18px; }
.ads__t { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.ads__t .i { width: 15px; height: 15px; color: var(--lime, #8cc63f); }
.tickets { grid-template-columns: minmax(0, 1fr); }
.ads--inline { min-width: 0; padding: 14px 12px 10px; border: 1.5px solid #cfe3a8; border-radius: 16px; background: #fff; }
.ads--inline .pl--band { margin: 0 -12px; padding: 0 12px 4px; scroll-padding: 0 12px; }
.ads--side { display: none; }
@media (min-width: 1024px) { .ads--inline { display: none; } .ads--side { display: block; } .pl--side { display: grid; gap: 10px; } .pl--side img { width: 100%; height: auto; border-radius: 10px; } }

/* ===== Началото (в WordPress): „На фокус“ е най-горе, веднага под горната лента; после текстът и до него търсачката.
   На телефона и таблета търсачката в началото я няма (търсенето е в лентата долу), няма „често търсени“ и числа ===== */
.bb--top { padding: 14px 0 0; background: var(--asphalt); }
.bb--top .bb__frame { background: var(--asphalt-3); box-shadow: none; }
.bb--top .bb__bar { padding-bottom: 12px; }
.bb--top .bb__label, .bb--top .car__dots button { color: var(--on-dark-2); }
.bb--top .bb__label .i { color: var(--lime); }
.bb--top .car__btn { background: var(--asphalt-3); color: #fff; border-color: var(--asphalt-4); }
.hero { padding-top: 22px; }
.hero__in { padding-bottom: 30px; }
.hero__side { display: none; }
@media (max-width: 1023px) {
  .hero h1 { font-size: clamp(30px, 8vw, 46px); }
  .hero__lead { margin-bottom: 0; }
  .road { height: 220px; opacity: .45; }
}
@media (min-width: 1024px) {
  .hero { padding-top: 40px; }
  .hero__in { display: grid; grid-template-columns: minmax(0, 1.1fr) 400px; gap: 48px; align-items: center; padding-bottom: 44px; }
  .hero__in > * { max-width: none; }
  .hero h1 { font-size: clamp(40px, 4.2vw, 58px); }
  .hero__side { display: block; position: relative; padding: 22px; border-radius: var(--r-lg); background: rgba(37, 44, 53, .82); border: 1px solid var(--asphalt-4); backdrop-filter: blur(6px); box-shadow: 0 24px 48px -30px rgba(0, 0, 0, .7); }
  .hero__side::before { content: ""; position: absolute; left: 22px; right: 22px; top: -1px; height: 3px; border-radius: 0 0 3px 3px; background: var(--lime); }
  .hero__side-t { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font: 500 12px/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--lime); }
  .hero__side-t .i { width: 16px; height: 16px; }
  .hero__side .sf--hero { padding: 0; background: none; border: 0; backdrop-filter: none; grid-template-columns: minmax(0, 1fr); }
  .hero__side .sf--hero .sf__q, .hero__side .sf--hero .sf__cat { border-color: var(--asphalt-4); }
  .hero__side .sf--hero .btn { width: 100%; min-height: 48px; }
  .hero__side-n { margin: 14px 0 0; font: 500 12px/1.5 var(--f-mono); letter-spacing: .06em; color: var(--on-dark-2); }
  .road { width: 58%; }
  /* лупата горе се крие, докато търсачката в началото се вижда (иначе са две) */
  .hfind .hdr .sf--bar { visibility: hidden; opacity: 0; }
  .hdr .sf--bar { transition: opacity .25s, visibility .25s; }
}

/* пътят е зад текста вляво, търсачката вдясно стои на чист тъмен фон (без ефект върху ефект) */
@media (min-width: 1024px) {
  .hero::before { background: linear-gradient(90deg, transparent 0%, transparent 38%, rgba(20, 25, 31, .75) 52%, var(--asphalt) 62%); }
  .road { right: auto; left: 0; width: 58%; transform: scaleX(-1); opacity: .32; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 55%, transparent 100%); mask-image: linear-gradient(90deg, #000 0%, #000 55%, transparent 100%); }
  .hero__in { grid-template-columns: minmax(0, 1fr) 400px; }
  .hero__side { backdrop-filter: none; background: var(--asphalt-3); }
}

/* ===== Категорията в търсачката: собствен списък (main.js) вместо стандартния на браузъра =====
   всяка категория с иконата си (като табелите) и броя на фирмите; „Услуги“ е тъмна табела, подкатегориите са маршрут със спирки */
.cpick__ic { position: absolute; left: 11px; top: 50%; display: grid; place-items: center; width: 28px; height: 28px; margin-top: -14px; border-radius: 4px; background: var(--lime); color: var(--ink); pointer-events: none; }
.cpick__ic .i { width: 16px; height: 16px; }
.sf .cpick__in { width: 100%; min-height: 50px; padding: 0 40px 0 50px; border: 0; background: none; outline: none; font-size: 16px; color: var(--ink); cursor: pointer; text-overflow: ellipsis; }
.cpick__in::placeholder { color: var(--ink); opacity: 1; }
.cpick__in[readonly] { caret-color: transparent; }
.cpick .sf__chev { transition: transform .2s; }
.cpick.is-open .sf__chev { transform: rotate(180deg); }
.cpick__list { position: absolute; z-index: 40; left: -1.5px; right: -1.5px; top: calc(100% + 6px); min-width: 300px; max-height: 440px; overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 6px; list-style: none; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: 0 2px 6px rgba(20, 25, 31, .08), 0 28px 56px -22px rgba(20, 25, 31, .55); animation: cpick-in .16s ease-out; scrollbar-width: thin; }
.cpick__list--up { top: auto; bottom: calc(100% + 6px); }
@keyframes cpick-in { from { opacity: 0; transform: translateY(-4px); } }
.cpick__o { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 44px; padding: 6px 8px; border-radius: var(--r); color: var(--ink); font-size: 15px; line-height: 1.25; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cpick__oi { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 4px; background: var(--lime); color: var(--ink); }
.cpick__oi .i { width: 16px; height: 16px; }
.cpick__ot { min-width: 0; }
.cpick__ot small { display: block; margin-top: 2px; font: 400 12px/1.2 var(--f-body); color: var(--muted); letter-spacing: 0; text-transform: none; }
.cpick__o .km { color: var(--muted); }
.cpick__o:hover, .cpick__o[aria-selected="true"] { background: var(--lime-wash); }
.cpick__o.is-cur { background: var(--lime-wash); font-weight: 600; }
.cpick__o.is-cur .km { background: var(--lime); border-color: transparent; color: var(--ink); }
.cpick__o mark { background: none; color: var(--lime-ink); font-weight: 700; }
/* „Всички категории“ */
.cpick__o--all { margin-bottom: 4px; }
.cpick__o--all .cpick__oi { background: var(--asphalt); color: var(--lime); }
.cpick__o--all::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: -3px; border-bottom: 1px dashed var(--line); }
/* „Услуги“: тъмна табела */
.cpick__o--grp { margin-top: 8px; background: var(--asphalt-2); color: #fff; font: 500 15px/1.15 var(--f-head); letter-spacing: .05em; text-transform: uppercase; }
.cpick__o--grp .km { color: var(--on-dark-2); }
.cpick__o--grp small { color: var(--on-dark-2); }
.cpick__o--grp:hover, .cpick__o--grp[aria-selected="true"], .cpick__o--grp.is-cur { background: var(--asphalt-3); }
.cpick__o--grp mark { color: var(--lime); }
/* подкатегориите на „Услуги“: спирки по маршрута */
.cpick__o--sub { grid-template-columns: 18px minmax(0, 1fr) auto; gap: 9px; min-height: 40px; padding-left: 36px; font-size: 14.5px; color: var(--ink-2); }
.cpick__o--sub::before { content: ""; position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--lime) 0 6px, transparent 6px 10px); }
.cpick__o--sub::after { content: ""; position: absolute; left: 14px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--card); border: 2.5px solid var(--lime-ink); box-sizing: border-box; transition: background .15s; }
.cpick__o--sub:hover::after, .cpick__o--sub.is-cur::after, .cpick__o--sub[aria-selected="true"]::after { background: var(--lime); }
.cpick__o--sub .cpick__oi { width: 18px; height: 18px; background: none; color: var(--muted); }
.cpick__o--sub .cpick__oi .i { width: 17px; height: 17px; }
.cpick__empty { padding: 14px 10px; color: var(--muted); font-size: 14.5px; }

/* ===== Карето с търсачката в началото: по-широко, с „Често търсени“ (табели с броя на фирмите) и „Всички категории“ ===== */
@media (min-width: 1024px) {
  .hero { overflow: visible; z-index: 3; }
  .hero__in { grid-template-columns: minmax(0, 1fr) 440px; gap: 40px; }
  .hero__side { padding: 22px 22px 18px; }
  .hero__side-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
  .hero__side-head .hero__side-t { margin: 0; }
  .hero__side-head .hero__side-n { margin: 0; font: 500 11.5px/1.4 var(--f-mono); letter-spacing: .04em; color: var(--on-dark-2); white-space: nowrap; }
  .hero__side .sf--hero { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .hero__side .sf--hero .sf__q { grid-column: 1 / -1; }
  .hero__side .sf--hero .btn { width: auto; padding: 0 26px; }
  .hero__side-q { margin: 18px 0 10px; font: 500 11.5px/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-2); }
  .qsigns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
  .qsigns a { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-height: 46px; padding: 7px 9px 7px 8px; border: 1px solid var(--asphalt-4); border-radius: var(--r); background: var(--asphalt-2); color: var(--on-dark); font-size: 14px; line-height: 1.2; transition: border-color .15s, background .15s, transform .15s; }
  .qsigns a:hover { border-color: var(--lime); background: var(--asphalt); transform: translateY(-1px); }
  .qsigns__ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 4px; background: var(--lime); color: var(--ink); }
  .qsigns__ic .i { width: 16px; height: 16px; }
  .qsigns__n { min-width: 0; }
  .qsigns .km { color: var(--on-dark-2); }
  .hero__side-all { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; margin-top: 10px; border: 1px dashed var(--asphalt-4); border-radius: var(--r); background: none; color: var(--on-dark); font: 500 14px/1 var(--f-head); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: border-color .15s, color .15s; }
  .hero__side-all .i { width: 16px; height: 16px; color: var(--lime); }
  .hero__side-all .i:last-child { transition: transform .2s; }
  .hero__side-all:hover { border-color: var(--lime); color: var(--lime); }
  .hero__side-all:hover .i:last-child { transform: translateX(3px); }
}
@media (min-width: 1280px) { .hero__in { grid-template-columns: minmax(0, 1fr) 520px; gap: 48px; } }
@media (min-width: 1024px) and (max-width: 1279px) { .hero__side-head { flex-direction: column; align-items: flex-start; gap: 6px; } .hero__side-t { white-space: nowrap; } }

/* карето с търсачката: по-широко и по-ниско (на широк екран търсенето, категорията и „Търси“ са на един ред,
   честите категории са в 3 колони, „Всички категории“ е горе вдясно) */
@media (min-width: 1024px) {
  .hero__in { grid-template-columns: minmax(0, 1fr) 560px; gap: 36px; }
  .hero h1 { font-size: clamp(38px, 3.7vw, 52px); }
  .hero__side { padding: 20px 22px 22px; }
  .hero__side-head { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
  .hero__side-head .hero__side-all { width: auto; min-height: 34px; margin: 0; padding: 0 12px; font-size: 13px; }
  .hero__side-q { margin: 16px 0 8px; }
  .qsigns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .qsigns a { gap: 8px; min-height: 44px; padding: 6px 8px 6px 7px; font-size: 13.5px; }
  .qsigns__ic { width: 28px; height: 28px; }
  .qsigns .km { padding: 0 5px; font-size: 11px; height: 20px; }
}
@media (min-width: 1280px) {
  .hero__in { grid-template-columns: minmax(0, 1fr) 660px; gap: 40px; }
  .hero__side .sf--hero { grid-template-columns: minmax(0, 1fr) 236px auto; }
  .hero__side .sf--hero .sf__q { grid-column: auto; }
}
@media (min-width: 1280px) {
  .hero__in { grid-template-columns: minmax(0, 1fr) 720px; gap: 40px; }
  .hero__side .sf--hero { grid-template-columns: minmax(0, 1fr) 230px auto; }
  .hero__side .cpick__in { padding-right: 32px; }
  .hero__side .cpick .sf__chev { right: 9px; }
}
@media (min-width: 1024px) and (max-width: 1279px) { .qsigns .km { display: none; } .qsigns a { grid-template-columns: 28px minmax(0, 1fr); } }