:root {
  --green: #0b8a4f;
  --green-2: #12a764;
  --blue: #0b72c9;
  --orange: #f08a24;
  --red: #ea3a3f;
  --ink: #15233b;
  --muted: #697789;
  --line: #d8e6f3;
  --bg: #edf8ff;
  --white: #fff;
  --shadow: 0 18px 42px rgba(29, 66, 104, .10);
  --soft-shadow: 0 12px 28px rgba(29, 66, 104, .08);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  font-family: Inter, Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: linear-gradient(180deg, #f8fdff 0%, var(--bg) 50%, #eaf5ff 100%);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(214,228,241,.85);
  box-shadow: 0 10px 34px rgba(25, 62, 94, .07);
  backdrop-filter: blur(18px);
}
.site-header__shell { width: 100%; margin: 0; }
.site-header__inner {
  min-height: 88px;
  padding: 8px 44px;
  display: flex;
  align-items: center;
  gap: 30px;
}
.brand {
  flex: 0 0 280px;
  min-width: 250px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-decoration: none;
  color: inherit;
}
.brand__logo {
  display: block;
  width: 175px;
  max-width: 100%;
  height: auto;
  margin-left: 12px;
  object-fit: contain;
}
.brand__tagline {
  width: 175px;
  margin-top: 2px;
  margin-left: 12px;
  text-align: center;
  font-size: 12px;
  line-height: 1.15;
  color: #4a5568;
  white-space: nowrap;
}
.main-nav {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 31px;
  min-width: 0;
}
.main-nav__link {
  position: relative;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  color: #16233c;
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap;
}
.main-nav__link:hover,
.main-nav__link.is-active { color: var(--green); }
.main-nav__link.is-active::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--green), #14a864);
}
.header-actions { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.select { position: relative; }
.select__button,
.profile-btn,
.burger-btn {
  appearance: none;
  border: 1px solid #d7e2ed;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(27, 64, 96, .05);
}
.select__button {
  height: 52px;
  min-width: 182px;
  padding: 0 18px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  font-size: 16px;
  font-weight: 800;
}
.select:first-child .select__button { min-width: 220px; }
.select--lang .select__button { min-width: 154px; }
.select__icon { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.select__chevron { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.select__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 100%;
  padding: 8px;
  background: #fff;
  border: 1px solid #e0e9f2;
  border-radius: 16px;
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: .16s ease;
  z-index: 12;
}
.select.is-open .select__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.select__option {
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  text-align: left;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.select__option:hover,
.select__option.is-selected { background: #effbf5; color: var(--green); }
.profile-btn {
  width: 56px; height: 56px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
}
.profile-btn svg, .burger-btn svg {
  width: 25px; height: 25px; fill: none; stroke: currentColor;
  stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
}
.burger-btn {
  display: none;
  width: 50px; height: 50px; border-radius: 16px;
  align-items: center; justify-content: center;
}
.mobile-panel { display: none; }

.companies-hero {
  padding: 26px 44px 24px;
}
.companies-hero__inner {
  width: 100%;
  border-radius: 30px;
  background:
    radial-gradient(circle at 78% 12%, rgba(11,114,201,.14), transparent 24%),
    radial-gradient(circle at 12% 78%, rgba(11,138,79,.12), transparent 22%),
    linear-gradient(135deg, #ffffff 0%, #f5fbff 48%, #ebf7ff 100%);
  border: 1px solid #d7e7f4;
  box-shadow: var(--shadow);
  padding: 28px;
}
.companies-hero__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}
.eyebrow {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #effbf5;
  color: var(--green);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.companies-hero h1 {
  margin: 0 0 8px;
  font-size: clamp(32px, 2.8vw, 48px);
  line-height: 1.08;
}
.companies-hero p {
  margin: 0;
  max-width: 760px;
  color: #516179;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 600;
}
.hero-action {
  height: 48px;
  padding: 0 20px;
  border-radius: 14px;
  background: linear-gradient(180deg, #079655, #05773f);
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  box-shadow: 0 10px 22px rgba(7,134,74,.22);
}
.hero-popular-row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.popular-company-card {
  min-height: 220px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.95);
  border: 1px solid #d9e8f5;
  box-shadow: var(--soft-shadow);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.popular-company-card:hover,
.catalog-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(29,66,104,.12);
  border-color: #b9d9ef;
}
.popular-company-card__top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}
.company-badge {
  padding: 6px 10px;
  border-radius: 999px;
  background: #edf7ff;
  color: #236fb1;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.popular-company-card h3 {
  margin: 0 0 10px;
  font-size: 22px;
}
.popular-company-card p {
  font-size: 14px;
  line-height: 1.45;
  color: #5e6c80;
}

.catalog-section {
  padding: 8px 44px 42px;
}
.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}
.section-head h2 {
  margin: 0;
  font-size: 32px;
}
.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.filter-pill {
  height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid #d8e6f3;
  background: #fff;
  color: #31455f;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.filter-pill.is-active {
  background: #eaf8ff;
  color: var(--blue);
  border-color: #bedcf4;
}
.catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.catalog-card {
  min-height: 250px;
  padding: 20px;
  border-radius: 24px;
  background: rgba(255,255,255,.94);
  border: 1px solid #d8e6f3;
  box-shadow: var(--soft-shadow);
  display: flex;
  gap: 18px;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.catalog-card__logo {
  width: 120px;
  min-width: 120px;
  min-height: 100px;
  border-radius: 18px;
  border: 1px solid #edf4fa;
  background: linear-gradient(180deg, #fff 0%, #f7fbff 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.catalog-card__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.catalog-card__meta {
  margin-bottom: 10px;
}
.catalog-card__meta h3 {
  margin: 0 0 4px;
  font-size: 24px;
}
.catalog-card__meta span {
  color: #617188;
  font-size: 14px;
  font-weight: 800;
}
.catalog-card__body p {
  margin: 0 0 14px;
  color: #56667c;
  font-size: 14px;
  line-height: 1.45;
}
.card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  margin-bottom: 14px;
}
.card-tags span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #edf7ff;
  color: #236fb1;
  font-size: 11px;
  font-weight: 900;
}
.card-tags span:nth-child(2n) { background: #effbf5; color: var(--green); }
.card-btn {
  width: fit-content;
  height: 40px;
  padding: 0 16px;
  border: 1px solid #30a969;
  border-radius: 12px;
  background: transparent;
  color: var(--green);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.company-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: left;
  font-size: 28px;
  line-height: .88;
  font-weight: 950;
  letter-spacing: -.02em;
}
.company-logo--cool { color: #1e6bb8; }
.company-logo--vento { color: #10a66c; }
.company-logo--arctic { color: #0a6bb7; }
.company-logo--thermo { color: #e24c35; }
.company-logo--eco { color: #15a05a; }
.company-logo--polar { color: #1872c0; }

.company-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .18s ease;
}
.company-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.company-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 24, 40, .42);
  backdrop-filter: blur(10px);
}
.company-modal__dialog {
  position: absolute;
  inset: 18px;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
  box-shadow: 0 30px 70px rgba(14, 35, 59, .22);
  border: 1px solid #d8e6f3;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.company-modal__header {
  padding: 24px 28px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #dce7f2;
  background: linear-gradient(135deg, #ffffff 0%, #edf8ff 100%);
}
.company-modal__identity {
  display: flex;
  align-items: center;
  gap: 18px;
}
.company-modal__identity .company-logo {
  width: 118px;
  height: 92px;
  border-radius: 20px;
  border: 1px solid #dfeaf3;
  background: #fff;
  font-size: 24px;
}
.company-modal__identity h2 {
  margin: 0 0 6px;
  font-size: 34px;
}
.company-modal__identity p {
  margin: 0;
  color: #617188;
  font-size: 15px;
  font-weight: 700;
}
.modal-close {
  width: 44px;
  height: 44px;
  border: 1px solid #d8e6f3;
  border-radius: 14px;
  background: #fff;
  color: #31455f;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.company-modal__tabs {
  padding: 16px 28px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  border-bottom: 1px solid #e3edf7;
}
.tab-btn {
  height: 42px;
  padding: 0 18px;
  border: 1px solid #d8e6f3;
  border-radius: 999px;
  background: #fff;
  color: #31455f;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  margin-bottom: 14px;
}
.tab-btn.is-active {
  background: #eaf8ff;
  color: var(--blue);
  border-color: #bedcf4;
}
.company-modal__content {
  padding: 24px 28px 30px;
  overflow: auto;
}
.tab-panel { display: none; }
.tab-panel.is-active { display: block; }
.tab-panel h3 {
  margin: 0 0 18px;
  font-size: 24px;
}
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) 320px;
  gap: 20px;
}
.about-main,
.metric-card,
.project-card,
.employee-card,
.shop-card {
  border: 1px solid #d8e6f3;
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--soft-shadow);
}
.about-main { padding: 22px; }
.about-main p {
  margin: 0 0 18px;
  color: #56667c;
  line-height: 1.58;
  font-size: 15px;
}
.about-points {
  display: grid;
  gap: 14px;
}
.about-points div {
  padding: 14px 16px;
  border-radius: 18px;
  background: #f7fbff;
  border: 1px solid #e4eef7;
}
.about-points strong {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
}
.about-points span { color: #56667c; font-size: 14px; font-weight: 700; }
.about-side {
  display: grid;
  gap: 16px;
}
.metric-card {
  min-height: 116px;
  padding: 18px;
}
.metric-card strong {
  display: block;
  color: #617188;
  font-size: 14px;
}
.metric-card span {
  display: block;
  margin-top: 12px;
  font-size: 42px;
  font-weight: 950;
  color: var(--green);
}
.projects-grid,
.employee-grid,
.shop-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.project-card,
.employee-card,
.shop-card {
  padding: 18px;
}
.project-thumb {
  height: 140px;
  border-radius: 18px;
  margin-bottom: 14px;
  background: linear-gradient(135deg, #dff1ff 0%, #f4fbff 100%);
  border: 1px solid #d7e7f4;
}
.project-card h4,
.employee-card h4,
.shop-card h4 {
  margin: 0 0 8px;
  font-size: 20px;
}
.project-card p,
.employee-card p,
.shop-card p {
  margin: 0 0 10px;
  color: #56667c;
  font-size: 14px;
  line-height: 1.45;
}
.project-meta,
.employee-meta,
.shop-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.project-meta span,
.employee-meta span,
.shop-meta span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #edf7ff;
  color: #236fb1;
  font-size: 11px;
  font-weight: 900;
}
.employee-rating {
  margin-top: 12px;
  color: #f1a629;
  font-weight: 900;
  font-size: 15px;
}
.shop-price {
  margin-top: 14px;
  font-size: 22px;
  font-weight: 950;
  color: var(--green);
}
.shop-card button {
  margin-top: 12px;
  width: 100%;
  height: 40px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, #079655, #05773f);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
}

@media (max-width: 1480px) {
  .hero-popular-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projects-grid, .employee-grid, .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1120px) {
  .main-nav, .header-actions { display: none; }
  .burger-btn { display: inline-flex; }
  .site-header__inner { justify-content: space-between; }
  .mobile-panel { display: block; max-height: 0; overflow: hidden; transition: max-height .2s ease; }
  .mobile-panel.is-open { max-height: 340px; border-top: 1px solid #e3edf7; }
  .mobile-nav { display: flex; flex-direction: column; gap: 8px; padding: 16px 24px 22px; }
  .mobile-nav .main-nav__link.is-active::after { display: none; }
  .companies-hero, .catalog-section { padding-left: 22px; padding-right: 22px; }
  .companies-hero__head, .section-head { flex-direction: column; align-items: start; }
  .hero-popular-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .site-header__inner { padding: 8px 18px; min-height: 78px; }
  .brand { min-width: 0; flex-basis: auto; }
  .brand__logo { width: 150px; margin-left: 12px; }
  .brand__tagline { width: 150px; margin-left: 12px; text-align: center; }
  .brand__tagline { display: none; }
  .hero-popular-row,
  .catalog-grid,
  .projects-grid,
  .employee-grid,
  .shop-grid { grid-template-columns: 1fr; }
  .catalog-card { flex-direction: column; }
  .catalog-card__logo { width: 100%; min-width: 0; min-height: 120px; }
  .company-modal__dialog { inset: 10px; }
  .company-modal__header { padding: 18px; }
  .company-modal__tabs { padding: 14px 18px 0; }
  .company-modal__content { padding: 18px; }
  .company-modal__identity { flex-direction: column; align-items: start; }
}


/* FULL WIDTH POPULAR COMPANIES BANNER — fixed */
.popular-banner {
  width: 100%;
  margin: 0;
  padding: 34px 44px 32px;
  background:
    radial-gradient(circle at 86% 10%, rgba(11,114,201,.16), transparent 22%),
    radial-gradient(circle at 14% 92%, rgba(11,138,79,.13), transparent 24%),
    linear-gradient(135deg, #ffffff 0%, #f4fbff 47%, #e6f5ff 100%);
  border-bottom: 1px solid #d6e7f4;
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.7);
}

.popular-banner__head {
  width: 100%;
  margin: 0 0 22px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.popular-banner__head h1 {
  margin: 0 0 8px;
  font-size: clamp(34px, 2.9vw, 50px);
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #07101f;
}

.popular-banner__head p {
  margin: 0;
  max-width: 820px;
  color: #516179;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 650;
}

.popular-banner__row {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.popular-banner .popular-company-card {
  min-height: 230px;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  border: 1px solid #d5e6f4;
}

/* hide old hero wrapper if browser cached markup from earlier class */
.companies-hero { display: none; }

@media (max-width: 1480px) {
  .popular-banner__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .popular-banner { padding: 24px 22px 28px; }
  .popular-banner__head { flex-direction: column; align-items: flex-start; }
  .popular-banner__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .popular-banner__row { grid-template-columns: 1fr; }
}


/* IMAGE-STYLE POPULAR BANNER */
.popular-banner {
  width: 100%;
  margin: 0;
  padding: 34px 44px 32px;
  background:
    radial-gradient(circle at 86% 10%, rgba(11,114,201,.16), transparent 22%),
    radial-gradient(circle at 14% 92%, rgba(11,138,79,.13), transparent 24%),
    linear-gradient(135deg, #ffffff 0%, #f4fbff 47%, #e6f5ff 100%);
  border-bottom: 1px solid #d6e7f4;
}

.popular-banner__head {
  width: 100%;
  margin: 0 0 22px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.popular-banner__head h1 {
  margin: 0 0 8px;
  font-size: clamp(34px, 2.9vw, 50px);
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #07101f;
}

.popular-banner__head p {
  margin: 0;
  max-width: 840px;
  color: #516179;
  font-size: 18px;
  line-height: 1.5;
  font-weight: 650;
}

.popular-banner__row {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}

.popular-company-card {
  overflow: hidden;
  min-height: 310px;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  border: 1px solid #d5e6f4;
  box-shadow: var(--soft-shadow);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.popular-company-card__body {
  padding: 16px 18px 18px;
}

.popular-company-card__body h3 {
  margin: 0 0 10px;
  font-size: 24px;
}

.popular-company-card__body p {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  color: #5e6c80;
}

.promo-visual {
  position: relative;
  min-height: 182px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.3);
}

.promo-visual::before,
.promo-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.promo-visual::before {
  background:
    linear-gradient(135deg, rgba(255,255,255,.16) 0%, transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.28));
}

.promo-visual::after {
  background-size: cover;
  background-position: center;
  opacity: .22;
  mix-blend-mode: screen;
}

.promo-title,
.promo-subtitle,
.promo-chip { position: relative; z-index: 1; }

.promo-title {
  font-size: 28px;
  line-height: .95;
  font-weight: 950;
  letter-spacing: -.02em;
}

.promo-subtitle {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.3;
  font-weight: 700;
  opacity: .95;
}

.promo-chip {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.28);
  font-size: 11px;
  font-weight: 900;
  backdrop-filter: blur(6px);
}

.promo-visual--cool {
  background: linear-gradient(135deg, #1e69b6 0%, #4cb4ff 46%, #86d7ff 100%);
}
.promo-visual--cool::after {
  background-image:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.9) 0 8%, transparent 8.5%),
    radial-gradient(circle at 80% 18%, rgba(255,255,255,.55) 0 17%, transparent 17.5%),
    linear-gradient(0deg, transparent 55%, rgba(255,255,255,.7) 56% 58%, transparent 59%),
    linear-gradient(90deg, transparent 58%, rgba(255,255,255,.7) 59% 61%, transparent 62%);
}

.promo-visual--vento {
  background: linear-gradient(135deg, #0e9f64 0%, #30c887 45%, #95f1c2 100%);
}
.promo-visual--vento::after {
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.82)),
    linear-gradient(35deg, transparent 45%, rgba(255,255,255,.9) 46% 52%, transparent 53%),
    linear-gradient(-35deg, transparent 45%, rgba(255,255,255,.9) 46% 52%, transparent 53%);
  background-size: 52px 14px, 90px 90px, 90px 90px;
  background-repeat: no-repeat, repeat, repeat;
  background-position: 18px 18px, center, center;
}

.promo-visual--arctic {
  background: linear-gradient(135deg, #0a66b0 0%, #58baf5 50%, #c8efff 100%);
}
.promo-visual--arctic::after {
  background-image:
    radial-gradient(circle, rgba(255,255,255,.95) 0 12%, transparent 13%),
    linear-gradient(0deg, transparent 47%, rgba(255,255,255,.95) 48% 52%, transparent 53%),
    linear-gradient(90deg, transparent 47%, rgba(255,255,255,.95) 48% 52%, transparent 53%),
    linear-gradient(45deg, transparent 47%, rgba(255,255,255,.9) 48% 52%, transparent 53%),
    linear-gradient(-45deg, transparent 47%, rgba(255,255,255,.9) 48% 52%, transparent 53%);
  background-size: 78px 78px;
  background-repeat: no-repeat;
  background-position: 78% 28%;
}

.promo-visual--thermo {
  background: linear-gradient(135deg, #df4534 0%, #ff8c50 48%, #ffd0b0 100%);
}
.promo-visual--thermo::after {
  background-image:
    radial-gradient(circle at 76% 28%, rgba(255,255,255,.95) 0 10%, transparent 10.5%),
    radial-gradient(circle at 74% 31%, rgba(255,255,255,.6) 0 20%, transparent 20.5%),
    radial-gradient(circle at 76% 28%, rgba(255,166,0,.55) 0 28%, transparent 29%);
}

.promo-visual--eco {
  background: linear-gradient(135deg, #0aa35f 0%, #57d987 46%, #d5ffd9 100%);
}
.promo-visual--eco::after {
  background-image:
    radial-gradient(circle at 80% 28%, rgba(255,255,255,.95) 0 10%, transparent 11%),
    radial-gradient(circle at 72% 54%, rgba(255,255,255,.75) 0 15%, transparent 16%),
    radial-gradient(circle at 83% 60%, rgba(255,255,255,.7) 0 12%, transparent 13%);
}

@media (max-width: 1480px) {
  .popular-banner__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .popular-banner { padding: 24px 22px 28px; }
  .popular-banner__head { flex-direction: column; align-items: flex-start; }
  .popular-banner__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .popular-banner__row { grid-template-columns: 1fr; }
}


/* CLEAN BANNER TEXT */
.popular-banner .eyebrow { display: none !important; }
.popular-banner__head { margin-bottom: 18px; }
.popular-banner__head h1 {
  margin: 0;
  max-width: 980px;
}
.popular-banner__head p { display: none !important; }
.popular-company-card {
  min-height: 268px;
}
.popular-company-card__body {
  padding: 14px 18px 16px;
}
.popular-company-card__body h3 {
  margin: 0;
  font-size: 22px;
}
.popular-company-card__body p { display: none !important; }


.services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.service-card {
  padding: 20px;
  border: 1px solid #d8e6f3;
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--soft-shadow);
}

.service-card h4 {
  margin: 0 0 10px;
  font-size: 22px;
}

.service-card p {
  margin: 0 0 14px;
  color: #56667c;
  font-size: 14px;
  line-height: 1.5;
}

.service-price {
  margin-bottom: 14px;
  color: #31455f;
  font-size: 14px;
  font-weight: 800;
}

.service-price strong {
  color: var(--green);
  font-size: 22px;
  margin-left: 6px;
}

.service-masters {
  margin-bottom: 14px;
}

.service-masters > span {
  display: block;
  margin-bottom: 8px;
  color: #617188;
  font-size: 13px;
  font-weight: 800;
}

.service-master-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.master-pill {
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #d8e6f3;
  background: #edf7ff;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.service-order-btn {
  width: 100%;
  height: 42px;
  border: 0;
  border-radius: 12px;
  background: linear-gradient(180deg, #079655, #05773f);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

@media (max-width: 760px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
}


.company-modal__header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}
.header-mini-btn,
.ghost-btn,
.primary-btn {
  height: 42px;
  padding: 0 16px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.header-mini-btn,
.ghost-btn {
  border: 1px solid #cfe1f0;
  background: #fff;
  color: #244a72;
}
.primary-btn {
  border: 0;
  background: linear-gradient(180deg, #079655, #05773f);
  color: #fff;
  box-shadow: 0 10px 22px rgba(7,134,74,.22);
}

.service-card {
  padding: 20px;
  border: 1px solid #d8e6f3;
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--soft-shadow);
}
.service-header-row {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
}
.service-header-row h4 { margin: 0 0 10px; font-size: 22px; }
.service-card p { margin: 0 0 14px; color: #56667c; font-size: 14px; line-height: 1.5; }
.service-price { margin-bottom: 14px; color: #31455f; font-size: 14px; font-weight: 800; }
.service-price strong { color: var(--green); font-size: 22px; margin-left: 6px; }
.service-selected-master {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #f7fbff;
  border: 1px solid #e1edf7;
  color: #516179;
  font-size: 13px;
  font-weight: 700;
}
.service-selected-master b { color: #10233d; }
.service-card__actions { display: flex; gap: 10px; }
.service-card__actions .ghost-btn,
.service-card__actions .primary-btn { flex: 1; }

.sub-modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .18s ease;
}
.sub-modal.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.sub-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 24, 40, .38);
  backdrop-filter: blur(10px);
}
.sub-modal__dialog {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(980px, calc(100vw - 28px));
  max-height: calc(100vh - 36px);
  overflow: auto;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
  box-shadow: 0 30px 70px rgba(14, 35, 59, .22);
  border: 1px solid #d8e6f3;
}
.sub-modal__dialog--master { width: min(760px, calc(100vw - 28px)); }
.sub-modal__dialog--requests { width: min(1100px, calc(100vw - 28px)); }
.sub-modal__header {
  padding: 20px 24px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #dce7f2;
  background: linear-gradient(135deg, #ffffff 0%, #edf8ff 100%);
}
.sub-modal__header h3 { margin: 0 0 6px; font-size: 28px; }
.sub-modal__header p { margin: 0; color: #617188; font-size: 14px; font-weight: 700; max-width: 720px; }

.request-form { padding: 22px 24px 24px; }
.request-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.request-form__grid label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: #31455f;
  font-size: 13px;
  font-weight: 800;
}
.request-form__full { grid-column: 1 / -1; }
.request-form input,
.request-form textarea {
  width: 100%;
  border: 1px solid #d6e5f2;
  background: #fff;
  border-radius: 14px;
  padding: 13px 14px;
  font: inherit;
  color: #10233d;
}
.request-form textarea { resize: vertical; min-height: 100px; }
.selected-master-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  border: 1px solid #d6e5f2;
  border-radius: 14px;
  padding: 8px 10px 8px 14px;
  background: #fff;
}
.selected-master-box strong { color: #10233d; font-size: 14px; }
.request-form__footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-top: 20px;
}
.form-note {
  max-width: 620px;
  color: #617188;
  font-size: 13px;
  line-height: 1.45;
}
.request-form__actions { display: flex; gap: 10px; }

.master-profile { padding: 22px 24px 24px; }
.master-profile__card {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
}
.master-profile__main,
.master-profile__side,
.requests-empty,
.request-card {
  border: 1px solid #d8e6f3;
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--soft-shadow);
}
.master-profile__main { padding: 22px; }
.master-profile__main h4 { margin: 0 0 6px; font-size: 30px; }
.master-profile__main p { margin: 0 0 14px; color: #56667c; line-height: 1.55; }
.master-meta-list { display: grid; gap: 12px; }
.master-meta-list div { padding: 13px 14px; border-radius: 16px; background: #f7fbff; border: 1px solid #e2edf7; }
.master-meta-list strong { display: block; font-size: 13px; margin-bottom: 5px; color: #31455f; }
.master-profile__side { padding: 18px; display: grid; gap: 12px; align-content: start; }
.load-badge {
  display: inline-flex; align-items: center; gap: 8px; width: fit-content;
  padding: 8px 12px; border-radius: 999px; font-size: 12px; font-weight: 900;
}
.load-badge--free { background: #effbf5; color: #0c8b4d; }
.load-badge--busy { background: #fff6e8; color: #c27815; }
.load-badge--overloaded { background: #fff0f0; color: #c43b41; }
.overload-box {
  padding: 14px; border-radius: 16px; border: 1px solid #ffd4d7; background: #fff4f5; color: #8d3037;
  font-size: 13px; line-height: 1.45; font-weight: 700;
}
.master-choose-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.master-choose-actions .primary-btn,
.master-choose-actions .ghost-btn { flex: 1; }

.requests-list { padding: 22px 24px 24px; display: grid; gap: 16px; }
.requests-empty { padding: 24px; color: #617188; font-size: 15px; font-weight: 700; }
.request-card { padding: 18px; }
.request-card__top {
  display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 12px;
}
.request-card h4 { margin: 0 0 4px; font-size: 24px; }
.request-card p { margin: 0 0 12px; color: #56667c; line-height: 1.5; }
.request-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.request-meta span, .status-pill {
  padding: 7px 10px; border-radius: 999px; font-size: 11px; font-weight: 900;
}
.request-meta span { background: #edf7ff; color: #236fb1; }
.status-pill--new { background: #fff6e8; color: #c27815; }
.status-pill--done { background: #effbf5; color: #0c8b4d; }
.status-pill--reviewed { background: #eaf2ff; color: #2168bb; }
.review-box {
  margin-top: 14px; padding: 14px; border-radius: 16px; border: 1px solid #dce8f3; background: #f8fbff;
}
.review-stars { display: flex; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.star-btn {
  width: 40px; height: 40px; border: 1px solid #d6e5f2; border-radius: 12px; background: #fff; cursor: pointer; font-size: 18px;
}
.star-btn.is-active { background: #fff6dd; border-color: #f4d48e; }
.review-box textarea {
  width: 100%; min-height: 90px; border: 1px solid #d6e5f2; border-radius: 14px; padding: 12px 14px; resize: vertical; font: inherit;
}
.review-submit-row { display: flex; justify-content: end; margin-top: 10px; }
.request-actions { display: flex; gap: 10px; flex-wrap: wrap; }

@media (max-width: 920px) {
  .request-form__grid, .master-profile__card { grid-template-columns: 1fr; }
  .request-form__footer { flex-direction: column; align-items: stretch; }
  .service-card__actions { flex-direction: column; }
}
@media (max-width: 760px) {
  .company-modal__header-actions { align-items: stretch; flex-direction: column-reverse; }
  .request-form, .master-profile, .requests-list { padding: 18px; }
  .sub-modal__header { padding: 18px; }
  .header-mini-btn, .ghost-btn, .primary-btn { width: 100%; }
  .selected-master-box { flex-direction: column; align-items: stretch; }
}


/* REGIONS PAGE */
.regions-page-hero {
  padding: 28px 36px 10px;
  background: linear-gradient(180deg, #f4fbff 0%, #eff8ff 100%);
  border-bottom: 1px solid #dbe9f5;
}
.regions-page-hero__top {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}
.regions-page-hero__top h1 {
  margin: 0 0 8px;
  font-size: clamp(34px, 3vw, 52px);
  line-height: 1.08;
}
.regions-page-hero__top p {
  margin: 0;
  color: #5e6c80;
  font-size: 18px;
  line-height: 1.5;
  max-width: 900px;
  font-weight: 650;
}
.regions-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}
.regions-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) 360px;
  gap: 18px;
  align-items: start;
}
.region-map-card,
.regions-summary-card {
  border: 1px solid #d8e6f3;
  border-radius: 26px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--soft-shadow);
}
.region-map-card { padding: 18px; }
.region-map-card__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.region-map-card__head h2 { margin: 0 0 4px; font-size: 26px; }
.region-map-card__head p { margin: 0; color: #617188; font-size: 14px; font-weight: 700; }
.region-map-card__stats {
  padding: 9px 14px;
  border-radius: 999px;
  background: #edf7ff;
  border: 1px solid #cfe3f4;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
}
.regions-map {
  width: 100%;
  height: 520px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #d8e6f3;
}
.regions-summary-card { padding: 18px; }
.regions-summary-card h3 { margin: 0 0 14px; font-size: 26px; }
.regions-summary-list { display: grid; gap: 10px; }
.region-summary-item {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid #d8e6f3;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.region-summary-item strong {
  display: block;
  margin-bottom: 4px;
  color: #10233d;
  font-size: 15px;
}
.region-summary-item span {
  color: #6a798f;
  font-size: 13px;
  font-weight: 700;
}
.region-summary-item b {
  min-width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #edf7ff;
  color: #236fb1;
  font-size: 13px;
}
.region-summary-item.is-active {
  background: linear-gradient(135deg, #f3fffb 0%, #dcf8ef 100%);
  border-color: #13b987;
  box-shadow: 0 0 0 2px rgba(18, 198, 144, 0.18), 0 10px 26px rgba(8, 92, 70, 0.12);
  transform: translateX(-3px);
}
.region-summary-item.is-active strong { color: #067a5c; }
.region-summary-item.is-active b { background: #0cab7d; color: #fff; }
.regions-catalog-section {
  padding-top: 24px;
}
.regions-empty {
  grid-column: 1 / -1;
  padding: 32px;
  border: 1px solid #d8e6f3;
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--soft-shadow);
  color: #617188;
  font-size: 15px;
  font-weight: 700;
}
.map-popup { font: 14px/1.45 Inter, Arial, sans-serif; }
.map-popup strong { color: #10233d; }
.map-popup-btn {
  margin-top: 10px;
  height: 34px;
  padding: 0 12px;
  border-radius: 10px;
  border: 1px solid #cfe1f0;
  background: #eff8ff;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
@media (max-width: 1180px) {
  .regions-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .regions-page-hero { padding: 22px 18px 10px; }
  .region-map-card, .regions-summary-card { padding: 14px; }
  .regions-map { height: 380px; }
}


/* REGIONS PAGE CLEAN TEXT */
.regions-page-hero .eyebrow { display: none !important; }
.regions-page-hero__top p { display: none !important; }
.regions-page-hero__top { margin-bottom: 10px; }
.regions-page-hero__top h1 { margin: 0; }
.region-map-card__head p { display: none !important; }
.regions-catalog-section .eyebrow { display: none !important; }


/* REGIONS MAP FIX — visible without external map CDN */
.regions-page-hero {
  padding-top: 18px;
}

.regions-layout {
  align-items: stretch;
}

.region-map-card {
  min-height: 560px;
}

.regions-map--fallback {
  position: relative;
  height: 470px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #cfe0ee;
  background:
    radial-gradient(circle at 70% 20%, rgba(23, 126, 211, .12), transparent 24%),
    radial-gradient(circle at 42% 58%, rgba(10, 138, 79, .12), transparent 26%),
    linear-gradient(135deg, #e7f6ff 0%, #f8fdff 58%, #e9f6ff 100%);
}

.tm-map-shape {
  position: absolute;
  left: 7%;
  top: 10%;
  width: 83%;
  height: 78%;
  border: 3px solid rgba(11, 138, 79, .68);
  border-radius: 34% 22% 33% 26% / 26% 34% 25% 33%;
  background:
    linear-gradient(135deg, rgba(255,255,255,.72), rgba(224, 245, 232, .58)),
    repeating-linear-gradient(40deg, rgba(11,138,79,.08) 0 1px, transparent 1px 26px);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.74),
    0 18px 36px rgba(21, 93, 66, .12);
  transform: skewX(-7deg) rotate(-1deg);
}

.tm-map-shape::before {
  content: "";
  position: absolute;
  left: 7%;
  top: 42%;
  width: 16%;
  height: 28%;
  border-radius: 50%;
  background: rgba(22, 125, 207, .16);
  filter: blur(.3px);
}

.tm-map-shape::after {
  content: "";
  position: absolute;
  inset: 9% 12%;
  border: 1px dashed rgba(11, 138, 79, .28);
  border-radius: 44% 28% 36% 30% / 30% 32% 28% 34%;
}

.map-region-name {
  position: absolute;
  z-index: 2;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  color: #31526e;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 8px 16px rgba(30, 85, 124, .08);
  transform: skewX(7deg);
}

.map-region-name.is-active {
  background: #0b8a4f;
  color: #fff;
}

.map-region-name--balkan { left: 18%; top: 42%; }
.map-region-name--dashoguz { left: 43%; top: 18%; }
.map-region-name--ahal { left: 42%; top: 56%; }
.map-region-name--lebap { left: 70%; top: 42%; }
.map-region-name--mary { left: 62%; top: 66%; }
.map-region-name--ashgabat { left: 38%; top: 66%; }

.fallback-markers {
  position: absolute;
  inset: 0;
  z-index: 5;
}

.fallback-marker {
  position: absolute;
  transform: translate(-50%, -100%);
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: center;
  color: #10233d;
}

.fallback-marker span {
  display: block;
  width: 24px;
  height: 24px;
  margin: 0 auto 7px;
  border-radius: 50% 50% 50% 0;
  background: #0b8a4f;
  border: 3px solid #fff;
  transform: rotate(-45deg);
  box-shadow: 0 8px 18px rgba(0, 98, 62, .28);
}

.fallback-marker span::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  left: 5.5px;
  top: 5.5px;
  border-radius: 50%;
  background: #fff;
}

.fallback-marker strong {
  display: inline-block;
  min-width: 96px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  border: 1px solid #d5e6f4;
  box-shadow: 0 8px 18px rgba(30, 85, 124, .09);
  font-size: 12px;
  font-weight: 900;
  transform: translateX(-36px);
}

.regions-catalog-section {
  border-top: 1px solid #dbe9f5;
}

@media (max-width: 760px) {
  .regions-map--fallback {
    height: 360px;
  }
  .fallback-marker strong {
    display: none;
  }
}


/* REAL REGIONS MAP — final override */
.regions-page-hero {
  padding: 24px 36px 10px;
  background: linear-gradient(180deg, #f4fbff 0%, #eff8ff 100%);
}

.regions-page-hero__top h1 {
  margin: 0;
  font-size: clamp(34px, 3vw, 52px);
  line-height: 1.08;
}

.regions-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) 360px;
  gap: 18px;
  align-items: start;
}

.region-map-card {
  min-height: auto;
  padding: 18px;
  border: 1px solid #d8e6f3;
  border-radius: 26px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--soft-shadow);
}

.regions-map {
  position: relative;
  width: 100%;
  height: 520px;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #cfe0ee;
  background: #dff1ff;
}

.regions-map--fallback,
.tm-map-shape,
.fallback-markers {
  all: unset;
}

.leaflet-container {
  font-family: Inter, Arial, Helvetica, sans-serif;
  background: #dff1ff;
}

.regions-map-marker span {
  width: 25px;
  height: 25px;
  display: block;
  border-radius: 50% 50% 50% 0;
  background: #0b8a4f;
  border: 3px solid #ffffff;
  transform: rotate(-45deg);
  box-shadow: 0 8px 18px rgba(0, 98, 62, .28);
}

.regions-map-marker span::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  left: 6px;
  top: 6px;
  border-radius: 50%;
  background: #ffffff;
}

.map-popup {
  min-width: 160px;
  font: 14px/1.45 Inter, Arial, sans-serif;
}

.map-popup strong {
  display: block;
  margin-bottom: 3px;
  color: #10233d;
  font-size: 15px;
}

.map-popup span {
  display: block;
  color: #52647a;
  font-size: 12px;
  font-weight: 700;
}

.map-popup-btn {
  margin-top: 10px;
  height: 34px;
  padding: 0 12px;
  border-radius: 10px;
  border: 1px solid #cfe1f0;
  background: #eff8ff;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.map-offline {
  height: 100%;
  display: grid;
  place-items: center;
  padding: 30px;
  color: #617188;
  font-weight: 800;
  text-align: center;
}

@media (max-width: 1180px) {
  .regions-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .regions-page-hero { padding: 22px 18px 10px; }
  .regions-map { height: 380px; }
}


/* SERVICES PAGE */
.services-store-hero {
  padding: 28px 36px 12px;
  background: linear-gradient(180deg, #f4fbff 0%, #eff8ff 100%);
  border-bottom: 1px solid #dbe9f5;
}
.services-store-hero__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}
.services-store-hero__head h1 {
  margin: 0;
  font-size: clamp(34px, 3vw, 52px);
  line-height: 1.08;
}
.services-store-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.services-store-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.services-store-search {
  flex: 1;
  max-width: 380px;
}
.services-store-search input {
  width: 100%;
  height: 52px;
  border: 1px solid #d6e5f2;
  border-radius: 16px;
  padding: 0 16px;
  background: rgba(255,255,255,.94);
  font: inherit;
  color: #10233d;
}
.services-store-stats {
  padding: 10px 14px;
  border-radius: 999px;
  background: #edf7ff;
  border: 1px solid #cfe3f4;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
}
.services-store-grid-section {
  padding: 26px 36px 42px;
  background: #edf7ff;
}
.services-store-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.service-store-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 18px;
  border: 1px solid #d8e6f3;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--soft-shadow);
}
.service-store-card__top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.service-store-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.service-store-brand__logo {
  width: 86px;
  min-width: 86px;
  min-height: 86px;
  padding: 10px;
  border-radius: 20px;
  font-size: 13px;
}
.service-store-brand__company {
  display: block;
  color: #10233d;
  font-size: 18px;
  font-weight: 900;
  margin-bottom: 4px;
}
.service-store-brand__region {
  color: #65768b;
  font-size: 13px;
  font-weight: 800;
}
.service-store-card__category {
  padding: 8px 12px;
  border-radius: 999px;
  background: #edf7ff;
  color: #236fb1;
  border: 1px solid #d0e2f1;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.service-store-card__body {
  margin-bottom: 16px;
}
.service-store-card__body h3 {
  margin: 0 0 10px;
  font-size: 28px;
  line-height: 1.08;
}
.service-store-card__body p {
  margin: 0 0 16px;
  color: #5d6d82;
  font-size: 14px;
  line-height: 1.55;
}
.service-store-card__price {
  color: #0b8a4f;
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 10px;
}
.service-store-card__rating {
  color: #f0a52d;
  font-size: 14px;
  font-weight: 900;
}
.service-store-masters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  margin-bottom: 16px;
}
.master-chip {
  border: 1px solid #d6e5f2;
  background: #f8fbff;
  color: #31526e;
  border-radius: 999px;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}
.service-store-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.services-empty {
  grid-column: 1 / -1;
  padding: 36px;
  border-radius: 24px;
  border: 1px solid #d8e6f3;
  background: #fff;
  box-shadow: var(--soft-shadow);
  color: #617188;
  font-size: 15px;
  font-weight: 800;
}
@media (max-width: 1180px) {
  .services-store-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .services-store-hero__head,
  .services-store-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .services-store-controls {
    justify-content: flex-start;
  }
  .services-store-search {
    max-width: none;
  }
}
@media (max-width: 760px) {
  .services-store-hero,
  .services-store-grid-section {
    padding-left: 18px;
    padding-right: 18px;
  }
  .services-store-grid {
    grid-template-columns: 1fr;
  }
  .service-store-card__top,
  .service-store-brand {
    flex-direction: column;
    align-items: flex-start;
  }
  .service-store-card__actions {
    grid-template-columns: 1fr;
  }
}


/* NEWS PAGE */
.news-hero {
  padding: 28px 36px 18px;
  background: linear-gradient(180deg, #f4fbff 0%, #eff8ff 100%);
  border-bottom: 1px solid #dbe9f5;
}

.news-hero__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 18px;
}

.news-hero__head h1 {
  margin: 0 0 12px;
  font-size: clamp(34px, 3vw, 52px);
  line-height: 1.08;
}

.news-source-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.news-source-badges span,
.news-category {
  padding: 8px 12px;
  border-radius: 999px;
  background: #edf7ff;
  color: #236fb1;
  border: 1px solid #cfe3f4;
  font-size: 12px;
  font-weight: 900;
}

.news-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.news-search {
  flex: 1;
  max-width: 420px;
}

.news-search input,
.company-news-form input,
.company-news-form select,
.company-news-form textarea {
  width: 100%;
  border: 1px solid #d6e5f2;
  border-radius: 14px;
  background: #fff;
  padding: 13px 14px;
  font: inherit;
  color: #10233d;
}

.news-search input {
  height: 52px;
}

.news-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.news-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 22px;
  padding: 26px 36px 42px;
  background: #edf7ff;
}

.news-layout--feed-only {
  grid-template-columns: minmax(0, 1fr);
}

.news-layout--feed-only .news-main {
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
}

.news-feed-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.news-feed-head h2 {
  margin: 0;
  font-size: 32px;
}

.news-feed-head span {
  padding: 9px 14px;
  border-radius: 999px;
  background: #edf7ff;
  border: 1px solid #cfe3f4;
  color: #236fb1;
  font-size: 12px;
  font-weight: 900;
}

.news-feed {
  display: grid;
  gap: 18px;
}

.news-card {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-height: 220px;
  border: 1px solid #d8e6f3;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--soft-shadow);
  overflow: hidden;
}

.news-card__image {
  position: relative;
  min-height: 220px;
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.25), transparent 18%),
    linear-gradient(135deg, #0b72c9, #5ec7ff);
}

.news-card__image--local {
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.25), transparent 18%),
    linear-gradient(135deg, #0b8a4f, #75d59a);
}

.news-card__image--companies {
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.25), transparent 18%),
    linear-gradient(135deg, #0b8a4f, #0b72c9);
}

.news-card__image--kigali {
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.25), transparent 18%),
    linear-gradient(135deg, #0b72c9, #17a05d);
}

.news-card__image--events {
  background:
    radial-gradient(circle at 72% 22%, rgba(255,255,255,.25), transparent 18%),
    linear-gradient(135deg, #f08a24, #0b72c9);
}

.news-card__image span {
  position: absolute;
  left: 16px;
  top: 16px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: #fff;
  border: 1px solid rgba(255,255,255,.3);
  font-size: 12px;
  font-weight: 900;
  backdrop-filter: blur(6px);
}

.news-card__body {
  padding: 22px;
}

.news-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.news-card__meta span {
  color: #617188;
  font-size: 12px;
  font-weight: 800;
}

.news-card h3 {
  margin: 0 0 12px;
  font-size: 26px;
  line-height: 1.15;
}

.news-card p {
  margin: 0 0 18px;
  color: #56667c;
  font-size: 15px;
  line-height: 1.55;
}

.news-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.news-sidebar {
  display: grid;
  gap: 18px;
  align-content: start;
}

.news-widget {
  padding: 18px;
  border: 1px solid #d8e6f3;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--soft-shadow);
}

.news-widget h3 {
  margin: 0 0 14px;
  font-size: 24px;
}

.source-list,
.agent-list,
.company-news-form {
  display: grid;
  gap: 10px;
}

.source-item {
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid #e1edf7;
  background: #f8fbff;
}

.source-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.source-item strong {
  color: #10233d;
  font-size: 14px;
}

.source-item span {
  min-width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #edf7ff;
  color: #236fb1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 900;
}


.news-empty {
  padding: 32px;
  border-radius: 24px;
  border: 1px solid #d8e6f3;
  background: #fff;
  color: #617188;
  font-weight: 800;
}

.news-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: .18s ease;
}

.news-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.news-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 24, 40, .42);
  backdrop-filter: blur(10px);
}

.news-modal__dialog {
  position: absolute;
  inset: 24px;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f5fbff 100%);
  border: 1px solid #d8e6f3;
  box-shadow: 0 30px 70px rgba(14, 35, 59, .22);
  overflow: auto;
}

.news-modal__header {
  padding: 24px 28px;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #dce7f2;
  background: linear-gradient(135deg, #ffffff 0%, #edf8ff 100%);
}

.news-modal__header span {
  color: #617188;
  font-size: 13px;
  font-weight: 800;
}

.news-modal__header h2 {
  margin: 8px 0 0;
  font-size: 34px;
  line-height: 1.15;
}

.news-modal__body {
  padding: 26px 28px 32px;
}

.news-modal__body p {
  color: #4f5d70;
  font-size: 17px;
  line-height: 1.65;
}

@media (max-width: 1180px) {
  .news-layout {
    grid-template-columns: 1fr;
  }
  .news-hero__head,
  .news-controls {
    flex-direction: column;
    align-items: stretch;
  }
  .news-filters {
    justify-content: flex-start;
  }
  .news-search {
    max-width: none;
  }
}

@media (max-width: 760px) {
  .news-hero,
  .news-layout {
    padding-left: 18px;
    padding-right: 18px;
  }
  .news-card {
    grid-template-columns: 1fr;
  }
  .news-card__image {
    min-height: 170px;
  }
  .news-modal__dialog {
    inset: 10px;
  }
}

.news-modal-image{width:100%;max-height:360px;object-fit:cover;border-radius:20px;margin-bottom:18px}.news-seo-box{margin-top:18px;padding:14px 16px;border-radius:16px;background:rgba(13,69,149,.06);border:1px solid rgba(13,69,149,.12);color:#33465f;line-height:1.65;font-size:13px}

/* Production: clickable project/employee/product cards and cart. Keeps original HVAC.TM design. */
.card-btn--inline,
.project-card .card-btn,
.employee-card .card-btn {
  margin-top: 12px;
  min-height: 38px;
  padding: 0 16px;
}
.shop-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.shop-card__actions button { margin-top: 0; }
.shop-card__actions button:last-child { background: linear-gradient(180deg, #0aa968, #05773f); }
.project-thumb[style] {
  background-size: cover;
  background-position: center;
}
.project-thumb--product {
  background:
    radial-gradient(circle at 80% 20%, rgba(11, 114, 201, .28), transparent 24%),
    linear-gradient(135deg, #e8f7ff 0%, #f7fbff 55%, #e4f3ec 100%);
}
.hvac-cart-button {
  position: fixed;
  right: 28px;
  bottom: 26px;
  z-index: 90;
  border: 0;
  border-radius: 999px;
  padding: 15px 20px;
  background: linear-gradient(180deg, #079655, #05773f);
  color: #fff;
  font-weight: 950;
  box-shadow: 0 18px 40px rgba(4, 119, 63, .28);
  cursor: pointer;
}
.hvac-cart-button b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 26px;
  height: 26px;
  margin-left: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
}
.sub-modal__dialog--cart { max-width: 760px; }
.cart-list { display: grid; gap: 12px; margin-top: 14px; }
.cart-empty {
  padding: 18px;
  border-radius: 18px;
  background: #f4fbff;
  border: 1px dashed #cddfed;
  font-weight: 800;
  color: #56667c;
}
.cart-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 18px;
  background: #f7fbff;
  border: 1px solid #dbeaf5;
}
.cart-row strong,
.cart-row span,
.cart-row small { display: block; }
.cart-row span,
.cart-row small { color: #617188; font-weight: 750; margin-top: 3px; }
.cart-qty { display: inline-flex; align-items: center; gap: 8px; }
.cart-qty button,
.cart-remove {
  border: 1px solid #d7e6f2;
  background: #fff;
  border-radius: 12px;
  min-width: 34px;
  height: 34px;
  font-weight: 950;
  cursor: pointer;
}
.cart-remove { padding: 0 12px; color: #b43737; }
.cart-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e1edf6;
}
.cart-footer strong { font-size: 22px; color: var(--green); }
.cart-footer div { display: flex; gap: 10px; flex-wrap: wrap; }
.product-specs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.product-specs div {
  padding: 14px;
  border-radius: 16px;
  background: #f7fbff;
  border: 1px solid #dbeaf5;
}
.product-specs b,
.product-specs span { display: block; }
.product-specs b { margin-bottom: 6px; font-size: 13px; color: #617188; }
.product-buy-btn { width: 100%; margin-top: 18px; }
.reviews-list { display: grid; gap: 10px; margin-top: 12px; }
.reviews-list blockquote {
  margin: 0;
  padding: 14px;
  border-radius: 16px;
  background: #f7fbff;
  border: 1px solid #dbeaf5;
}
.reviews-list blockquote b,
.reviews-list blockquote span { display: inline-block; margin-right: 8px; }
.reviews-list blockquote p { margin: 8px 0 0; color: #56667c; font-weight: 700; }
@media (max-width: 760px) {
  .cart-row { grid-template-columns: 1fr; }
  .cart-footer { align-items: stretch; flex-direction: column; }
  .product-specs { grid-template-columns: 1fr; }
  .shop-card__actions { grid-template-columns: 1fr; }
}

/* HVAC.TM news repair + knowledge base */
.news-feed { display: grid !important; gap: 18px !important; min-height: 220px; }
.news-card { opacity: 1 !important; visibility: visible !important; }
.news-layout--feed-only .news-main { max-width: 1280px; }

.knowledge-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 24px;
  align-items: end;
  padding: 38px 36px 30px;
  background: linear-gradient(135deg, #eef9ff, #f5fff8);
  border-bottom: 1px solid #d9edf7;
}
.knowledge-hero h1 { margin: 8px 0 12px; font-size: clamp(38px, 5vw, 68px); line-height: .95; color: #0b1b32; }
.knowledge-hero p { max-width: 780px; margin: 0; color: #56667c; font-size: 18px; line-height: 1.55; }
.section-kicker { display: inline-flex; padding: 8px 12px; border-radius: 999px; border: 1px solid #bfe8d0; background: #ecfff4; color: #078a4f; font-weight: 900; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.knowledge-search input { width: 100%; height: 54px; border: 1px solid #cfe3f4; border-radius: 16px; background: #fff; padding: 0 16px; font: inherit; color: #10233d; box-shadow: 0 12px 30px rgba(20, 72, 110, .08); }
.knowledge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 34px 36px 80px; background: #edf7ff; }
.knowledge-card { border: 1px solid #d8e6f3; border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: var(--soft-shadow); padding: 22px; min-height: 290px; }
.knowledge-card span { display: inline-flex; padding: 7px 11px; border-radius: 999px; background: #ecfff4; color: #078a4f; font-size: 12px; font-weight: 900; margin-bottom: 14px; }
.knowledge-card h2 { margin: 0 0 12px; color: #10233d; font-size: 24px; line-height: 1.15; }
.knowledge-card p { margin: 0 0 12px; color: #56667c; line-height: 1.55; font-size: 15px; }
.hvac-ai-chat { position: fixed; right: 24px; bottom: 22px; z-index: 1000; font-family: inherit; }
.hvac-ai-chat__toggle { border: 0; border-radius: 999px; background: #07965a; color: #fff; padding: 15px 19px; font-weight: 900; box-shadow: 0 18px 40px rgba(0, 120, 70, .28); cursor: pointer; }
.hvac-ai-chat__panel { display: none; width: min(380px, calc(100vw - 30px)); border: 1px solid #cfe3f4; border-radius: 24px; overflow: hidden; background: #fff; box-shadow: 0 24px 70px rgba(10, 45, 80, .24); }
.hvac-ai-chat__panel.is-open { display: block; }
.hvac-ai-chat__head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: #0b8a4f; color: #fff; }
.hvac-ai-chat__head button { border: 0; background: rgba(255,255,255,.18); color: #fff; border-radius: 10px; width: 30px; height: 30px; cursor: pointer; font-size: 20px; }
.hvac-ai-chat__messages { height: 280px; overflow: auto; padding: 14px; background: #f3f9ff; display: grid; gap: 10px; align-content: start; }
.ai-msg, .user-msg { padding: 11px 13px; border-radius: 16px; line-height: 1.45; font-size: 14px; }
.ai-msg { background: #fff; border: 1px solid #d7e7f3; color: #10233d; }
.user-msg { background: #dff6e9; color: #063c25; margin-left: 34px; }
.hvac-ai-chat__form { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 12px; background: #fff; border-top: 1px solid #d8e6f3; }
.hvac-ai-chat__form input { border: 1px solid #d6e5f2; border-radius: 13px; padding: 11px 12px; font: inherit; min-width: 0; }
.hvac-ai-chat__form button { border: 0; border-radius: 13px; padding: 0 13px; background: #07965a; color: #fff; font-weight: 900; cursor: pointer; }
@media (max-width: 980px) { .knowledge-hero { grid-template-columns: 1fr; } .knowledge-grid { grid-template-columns: 1fr; } }
@media (min-width: 981px) and (max-width: 1280px) { .knowledge-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* HVAC.TM Knowledge Hub v4 — news-like cards, 3 languages, fixed AI chat */
.knowledge-page { background: #edf7ff; min-height: calc(100vh - 120px); color: #10233d; }
.knowledge-hero--portal {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(310px, 430px) !important;
  gap: 28px !important;
  align-items: center !important;
  padding: 42px 38px 34px !important;
  background: linear-gradient(135deg, #eef9ff 0%, #f6fff9 100%) !important;
  border-bottom: 1px solid #d9edf7 !important;
}
.knowledge-hero__copy h1 { margin: 10px 0 14px !important; font-size: clamp(38px, 5vw, 72px) !important; line-height: .96 !important; color: #0b1b32 !important; letter-spacing: -.04em !important; }
.knowledge-hero__copy p { max-width: 850px !important; margin: 0 !important; color: #56667c !important; font-size: 18px !important; line-height: 1.55 !important; }
.knowledge-search-card { border: 1px solid #cfe3f4; border-radius: 24px; background: rgba(255,255,255,.92); padding: 18px; box-shadow: 0 22px 55px rgba(20,72,110,.11); }
.knowledge-search-card label { display:block; font-weight: 900; color:#10233d; margin-bottom:10px; }
.knowledge-search-card input { width: 100%; height: 52px; border: 1px solid #cfe3f4; border-radius: 16px; background:#fff; padding:0 15px; color:#10233d; font: inherit; outline: none; }
.knowledge-search-card input:focus { border-color:#07965a; box-shadow:0 0 0 4px rgba(7,150,90,.12); }
.knowledge-stats { margin-top: 12px; color:#078a4f; font-weight:900; }
.knowledge-toolbar { padding: 20px 38px 0; background: #edf7ff; }
.knowledge-tabs { display:flex; flex-wrap:wrap; gap:10px; }
.knowledge-tab { border:1px solid #d6e7f4; background:#fff; color:#1c3557; border-radius:999px; padding:12px 16px; font-weight:900; cursor:pointer; box-shadow:0 9px 22px rgba(20,72,110,.06); }
.knowledge-tab.is-active { background:#07965a; color:#fff; border-color:#07965a; }
.knowledge-layout--newslike { display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:24px; padding:28px 38px 90px; }
.knowledge-main, .knowledge-sidebar { min-width:0; }
.knowledge-section-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:18px; }
.knowledge-section-head h2 { margin:8px 0 0; color:#0b1b32; font-size:34px; letter-spacing:-.03em; }
.knowledge-feed { display:grid; gap:18px; }
.knowledge-news-card { display:grid; grid-template-columns: 260px minmax(0, 1fr); gap:0; border:1px solid #d6e7f4; border-radius:26px; background:rgba(255,255,255,.96); overflow:hidden; box-shadow:0 18px 45px rgba(20,72,110,.09); }
.knowledge-news-card__media { min-height:185px; display:flex; align-items:flex-end; padding:18px; background: linear-gradient(135deg, #1c9bdd, #65cfa2); position:relative; }
.knowledge-news-card__media:before { content:""; position:absolute; inset:18px; border:2px solid rgba(255,255,255,.18); border-radius:18px; }
.knowledge-news-card__media:after { content:"HVAC.TM"; position:absolute; right:18px; top:18px; color:rgba(255,255,255,.38); font-weight:1000; font-size:34px; letter-spacing:-.05em; }
.knowledge-news-card__media span { position:relative; z-index:1; display:inline-flex; padding:8px 12px; border-radius:999px; background:rgba(255,255,255,.20); color:#fff; font-weight:900; font-size:12px; backdrop-filter: blur(8px); }
.knowledge-news-card__body { padding:22px 24px; }
.knowledge-news-card__meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.knowledge-news-card__meta span { display:inline-flex; padding:7px 10px; border-radius:999px; background:#eef7ff; color:#1768a9; font-size:12px; font-weight:900; }
.knowledge-news-card__meta span:first-child { background:#ecfff4; color:#078a4f; }
.knowledge-news-card h3 { margin:0 0 10px; font-size:26px; line-height:1.12; color:#0b1b32; letter-spacing:-.025em; }
.knowledge-news-card p { margin:0 0 16px; color:#56667c; line-height:1.55; font-size:15px; }
.knowledge-read-btn, .knowledge-open-chat { border:0; border-radius:14px; background:#07965a; color:#fff; padding:12px 15px; font-weight:900; cursor:pointer; box-shadow:0 13px 28px rgba(7,150,90,.18); }
.knowledge-sidebar { display:grid; gap:18px; align-content:start; position:sticky; top:98px; }
.knowledge-side-card { border:1px solid #d6e7f4; border-radius:24px; background:rgba(255,255,255,.96); padding:20px; box-shadow:0 18px 45px rgba(20,72,110,.08); }
.knowledge-side-card h3 { margin:0 0 14px; color:#0b1b32; font-size:22px; }
.knowledge-side-card p { color:#56667c; line-height:1.5; margin:0 0 16px; }
.knowledge-topic-list { display:flex; flex-wrap:wrap; gap:9px; }
.knowledge-topic { border:1px solid #d6e7f4; background:#f6fbff; color:#1768a9; padding:9px 11px; border-radius:999px; font-weight:900; cursor:pointer; }
.knowledge-side-card--ai { background:linear-gradient(135deg,#ffffff,#edfff5); }
.knowledge-empty { border:1px dashed #b8d4e9; border-radius:22px; padding:26px; background:#fff; color:#56667c; font-weight:800; }
.knowledge-modal { position:fixed; inset:0; z-index:3000; display:grid; place-items:center; background:rgba(5,18,34,.56); backdrop-filter: blur(8px); padding:20px; }
.knowledge-modal__dialog { width:min(780px, 100%); max-height:88vh; overflow:auto; background:#fff; border-radius:28px; border:1px solid #d7e7f3; box-shadow:0 24px 90px rgba(5,18,34,.28); padding:28px; position:relative; }
.knowledge-modal__close { position:absolute; top:16px; right:16px; width:40px; height:40px; border:1px solid #d7e7f3; border-radius:14px; background:#f5fbff; color:#10233d; font-size:24px; cursor:pointer; }
.knowledge-modal__dialog h2 { margin:14px 48px 12px 0; color:#0b1b32; font-size:34px; line-height:1.1; }
.knowledge-modal__dialog p { color:#56667c; line-height:1.65; font-size:16px; }
.knowledge-modal__lead { font-weight:800; color:#1c3557 !important; }
.hvac-ai-chat--visible { position:fixed !important; right:24px !important; bottom:22px !important; z-index:2500 !important; display:block !important; }
.hvac-ai-chat__toggle { display:block !important; min-width:128px; }
.hvac-ai-chat__panel { margin-bottom:12px; }
@media (max-width: 1120px) {
  .knowledge-layout--newslike { grid-template-columns:1fr; }
  .knowledge-sidebar { position:static; grid-template-columns:1fr 1fr; }
}
@media (max-width: 820px) {
  .knowledge-hero--portal { grid-template-columns:1fr !important; padding:28px 18px !important; }
  .knowledge-toolbar, .knowledge-layout--newslike { padding-left:18px; padding-right:18px; }
  .knowledge-news-card { grid-template-columns:1fr; }
  .knowledge-news-card__media { min-height:150px; }
  .knowledge-sidebar { grid-template-columns:1fr; }
  .hvac-ai-chat--visible { right:14px !important; bottom:14px !important; }
}

/* HVAC.TM knowledge page cleanup: no sidebar/AI promo block, full-width article feed */
.knowledge-page .knowledge-layout--newslike { grid-template-columns: 1fr !important; }
.knowledge-page .knowledge-sidebar,
.knowledge-page .knowledge-side-card--ai,
.knowledge-page .hvac-ai-chat { display:none !important; }
.knowledge-page .knowledge-feed { width:100%; }

/* HVAC.TM final knowledge fixes */
.knowledge-page .knowledge-sidebar,
.knowledge-page .knowledge-side-card,
.knowledge-page .knowledge-side-card--ai { display:none !important; }
.knowledge-page .hvac-ai-chat { display:block !important; }
.knowledge-page .knowledge-hero__copy p { display:none !important; }
.hvac-ai-chat {
  position: fixed; right: 24px; bottom: 24px; z-index: 5000;
  width: 340px; max-width: calc(100vw - 32px); color: #10233d;
  font-family: inherit;
}
.hvac-ai-chat.is-collapsed .hvac-ai-chat__panel { display:none; }
.hvac-ai-chat__button {
  margin-left:auto; display:flex; align-items:center; gap:10px;
  border:0; border-radius:999px; background:#07965a; color:#fff;
  padding:14px 18px; font-weight:900; box-shadow:0 18px 45px rgba(7,150,90,.25);
  cursor:pointer;
}
.hvac-ai-chat__panel {
  margin-top:10px; border:1px solid #cfe3f4; border-radius:24px; background:#fff;
  box-shadow:0 24px 70px rgba(20,72,110,.22); overflow:hidden;
}
.hvac-ai-chat__head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; background:#ecfff4; font-weight:900; color:#078a4f; }
.hvac-ai-chat__close { border:0; background:#fff; color:#10233d; border-radius:10px; width:30px; height:30px; cursor:pointer; }
.hvac-ai-chat__body { padding:14px 16px; display:grid; gap:10px; max-height:260px; overflow:auto; }
.hvac-ai-chat__msg { padding:10px 12px; border-radius:16px; background:#f2f8ff; color:#1c3557; line-height:1.45; font-size:14px; }
.hvac-ai-chat__msg--user { background:#07965a; color:#fff; margin-left:42px; }
.hvac-ai-chat__form { display:flex; gap:8px; padding:12px; border-top:1px solid #e3edf6; }
.hvac-ai-chat__form input { flex:1; border:1px solid #cfe3f4; border-radius:14px; padding:11px 12px; font:inherit; min-width:0; }
.hvac-ai-chat__form button { border:0; border-radius:14px; background:#07965a; color:#fff; font-weight:900; padding:0 14px; cursor:pointer; }
@media (max-width: 720px){ .hvac-ai-chat{ right:12px; bottom:12px; width:calc(100vw - 24px); } }


/* Owner-OS published service card media */
.service-thumb {
  height: 138px;
  margin: -2px -2px 16px;
  border-radius: 17px;
  border: 1px solid #d7e7f4;
  background: linear-gradient(135deg, #dff1ff 0%, #f4fbff 100%);
  background-position: center;
  background-size: cover;
  display: grid;
  place-items: center;
  color: #87a6c4;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
}
.service-thumb--empty {
  background: linear-gradient(135deg, #e2f5ff 0%, #f8fbff 100%);
}

/* COMPANY_OWN_PROMOTION_START */
.company-promotion-zone{padding:15px 28px 4px;border-bottom:1px solid #e5edf4;background:linear-gradient(90deg,#f6fbff,#fff)}
.profile-promo-head{display:flex;align-items:center;gap:12px;margin-bottom:11px}.profile-promo-head span{font-weight:700;font-size:14px;color:#11243e}.profile-promo-head small{color:#60758f;font-size:12px}
.profile-promo-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px}
.profile-promo-card{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:10px;border:1px solid #dbe9f5;border-radius:14px;background:#fff}
.profile-promo-image{width:92px;height:94px;border-radius:11px;background:#edf4fa center/cover no-repeat}
.profile-promo-label{display:inline-flex;padding:3px 7px;border-radius:999px;background:#edf7ff;color:#3470a8;font-size:10px;font-weight:700;margin-bottom:5px}
.profile-promo-card h4{font-size:14px;margin:0 0 4px;color:#132640}.profile-promo-card p{font-size:12px;color:#62768e;margin:0 0 6px;line-height:1.35}.profile-promo-card b{display:inline-block;margin-right:10px;color:#13385f;font-size:13px}
@media(max-width:780px){.profile-promo-grid{grid-template-columns:1fr}.company-promotion-zone{padding:13px}}
/* COMPANY_OWN_PROMOTION_END */


/* COMPANY BRAND PHOTO HEADER FINAL V1 — banner only, never covers tabs/content */
.company-modal__header.company-modal__header--brand-photo{position:relative!important;isolation:isolate!important;height:232px!important;min-height:232px!important;flex:0 0 232px!important;box-sizing:border-box!important;padding:24px 28px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:20px!important;overflow:hidden!important;border-bottom:0!important;background:#0a1826!important;color:#fff!important}
.company-page-cover{position:absolute!important;inset:0!important;z-index:0!important;display:block;overflow:hidden}
.company-page-cover.is-hidden{display:none!important}
.company-page-cover__image{display:block!important;position:absolute!important;inset:-2%!important;width:104%!important;height:104%!important;object-fit:cover!important;object-position:center!important;filter:brightness(.61) saturate(1.02)!important;animation:companyBrandPhotoMove 18s ease-in-out infinite alternate!important}
.company-page-cover__shade{position:absolute!important;inset:0!important;background:linear-gradient(90deg,rgba(2,9,18,.83) 0%,rgba(2,9,18,.43) 49%,rgba(2,9,18,.58) 100%),linear-gradient(0deg,rgba(3,10,18,.5),transparent 57%)!important}
.company-modal__header--brand-photo .company-modal__identity,.company-modal__header--brand-photo .company-modal__header-actions{position:relative!important;z-index:2!important}
.company-modal__header--brand-photo .company-logo{background:#fff!important;border-color:rgba(255,255,255,.72)!important;box-shadow:0 10px 28px rgba(0,0,0,.19)!important}
.company-modal__header--brand-photo h2{color:#fff!important;text-shadow:0 3px 15px rgba(0,0,0,.68)!important;font-size:34px!important;line-height:1.12!important}
.company-modal__header--brand-photo p{color:#eef8ff!important;text-shadow:0 2px 11px rgba(0,0,0,.68)!important;font-weight:700!important;opacity:1!important}
.company-modal__header--brand-photo .header-mini-btn,.company-modal__header--brand-photo .modal-close{background:rgba(255,255,255,.94)!important;color:#16344c!important;border-color:rgba(255,255,255,.86)!important}
.company-modal__tabs{position:relative!important;z-index:3!important;background:#fff!important;padding-top:15px!important;opacity:1!important;filter:none!important;backdrop-filter:none!important}
.company-modal__content{position:relative!important;z-index:2!important;background:linear-gradient(180deg,#f6fbff,#f1f8fd)!important;opacity:1!important;filter:none!important}
.tab-panel,.tab-panel.is-active,.about-layout,.about-main,.metric-card{opacity:1!important;filter:none!important;backdrop-filter:none!important}
@keyframes companyBrandPhotoMove{from{transform:scale(1.01)}to{transform:scale(1.065)}}
@media(max-width:720px){.company-modal__header.company-modal__header--brand-photo{height:186px!important;min-height:186px!important;flex-basis:186px!important;padding:17px!important}.company-modal__header--brand-photo h2{font-size:24px!important}.company-modal__identity .company-logo{width:82px!important;height:68px!important;font-size:17px!important}}

/* HVAC_TM_F87_PUBLIC_ROLE_DIRECTORY_START */
.f87-promo{background:linear-gradient(145deg,#0d3136,#19565a)!important}.f87-promo.seller{background:linear-gradient(145deg,#594d17,#87731a)!important}.f87-promo.service{background:linear-gradient(145deg,#0d4d49,#12756e)!important}.f87-promo.installer{background:linear-gradient(145deg,#164f35,#228655)!important}.f87-promo.training{background:linear-gradient(145deg,#24245c,#4141a1)!important}
.f87-logo{background:#eef8f7!important;color:#164d4d!important}.f87-logo.seller{background:#fff8d9!important;color:#806b00!important}.f87-logo.service{background:#e5f8f5!important;color:#0d756d!important}.f87-logo.installer{background:#eaf9ef!important;color:#167342!important}.f87-logo.training{background:#eeeeff!important;color:#37379a!important}
.f87-owner-cta{width:min(1240px,calc(100% - 40px));margin:34px auto 58px;padding:30px 34px;border-radius:26px;background:linear-gradient(135deg,#0d4a49,#123a43);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 22px 55px rgba(12,57,62,.18)}.f87-owner-cta span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#a8e8de}.f87-owner-cta h2{margin:8px 0 8px;font-size:30px}.f87-owner-cta p{margin:0;max-width:820px;line-height:1.6;color:#d2e8e5}.f87-owner-cta a{flex:0 0 auto;display:inline-flex;padding:14px 20px;border-radius:999px;background:#fff;color:#123d40;text-decoration:none;font-weight:800}.f87-more{display:block;margin:22px auto 0;padding:12px 20px;border-radius:999px;border:1px solid #cbdedc;background:#fff;color:#174c4c;font-weight:800;cursor:pointer}
@media(max-width:760px){.f87-owner-cta{flex-direction:column;align-items:flex-start;padding:24px}.f87-owner-cta h2{font-size:25px}.f87-owner-cta a{width:100%;justify-content:center}}
/* HVAC_TM_F87_PUBLIC_ROLE_DIRECTORY_END */

/* ============================================================
   F138 — REGIONS SIDEBAR HEIGHT FIX
   Keep long administrative-region lists inside the map panel.
   The page must not become an endless vertical ribbon on countries
   with dozens of regions/districts.
   ============================================================ */
@media (min-width: 1181px) {
  .regions-layout {
    align-items: start;
  }

  .regions-summary-card {
    box-sizing: border-box;
    height: 606px;
    max-height: 606px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .regions-summary-card > h3 {
    flex: 0 0 auto;
  }

  .regions-summary-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-right: 5px;
  }
}

.regions-summary-list {
  scrollbar-width: thin;
  scrollbar-color: rgba(35,111,177,.38) transparent;
}
.regions-summary-list::-webkit-scrollbar { width: 8px; }
.regions-summary-list::-webkit-scrollbar-track { background: transparent; }
.regions-summary-list::-webkit-scrollbar-thumb {
  background: rgba(35,111,177,.30);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.regions-summary-list::-webkit-scrollbar-thumb:hover {
  background: rgba(35,111,177,.48);
  background-clip: padding-box;
}

/* Dense enough for large countries, without shrinking readability. */
.region-summary-item {
  flex: 0 0 auto;
}

@media (max-width: 1180px) {
  .regions-summary-card {
    display: flex;
    flex-direction: column;
    max-height: 470px;
    overflow: hidden;
  }
  .regions-summary-list {
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    padding-right: 5px;
  }
}

@media (max-width: 760px) {
  .regions-summary-card { max-height: 390px; }
}

/* F138 — prevent long generated/text logos from escaping the logo case. */
.regions-catalog-section .catalog-card__logo {
  overflow: hidden;
  padding: 8px;
  box-sizing: border-box;
  max-width: 120px;
  word-break: break-word;
  overflow-wrap: anywhere;
  font-size: clamp(16px, 1.6vw, 25px);
  line-height: .92;
}

/* ============================================================
   F142 — REAL ADMIN COMPANY LOGOS + stale CTA cleanup
   ============================================================ */
.company-logo,
.catalog-card__logo,
.service-store-brand__logo,
.tm-logo{
  position:relative;
  overflow:hidden;
}
.company-logo__fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  padding:8px;
  text-align:center;
  font-size:clamp(13px,1.15vw,20px);
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.02em;
  overflow:hidden;
}
.company-logo__image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  padding:8px;
  background:#fff;
  z-index:2;
}
.company-modal__identity .company-logo__image{padding:9px}
.service-store-brand__logo .company-logo__image{padding:5px}
.f87-owner-cta{display:none!important}
.popular-banner[hidden]{display:none!important}

/* ============================================================
   F165 — COUNTRY FOCUS / TOPO / WORLD / INTERACTIONS MAP
   ============================================================ */
.region-map-card__head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.region-map-toolbar{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.region-map-toolbar__group{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px;
  border:1px solid #d5e5ef;
  border-radius:999px;
  background:#f5fbff;
}
.region-map-tool{
  appearance:none;
  border:1px solid #d5e5ef;
  background:#fff;
  color:#18344a;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  font:800 12px/1 Inter,Arial,sans-serif;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(26,76,106,.06);
  transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.region-map-toolbar__group .region-map-tool{border-color:transparent;box-shadow:none;background:transparent}
.region-map-tool:hover{transform:translateY(-1px);border-color:#8ed8c1;box-shadow:0 7px 18px rgba(17,116,91,.12)}
.region-map-tool.is-active,
.region-map-tool[aria-pressed="true"]{
  background:#0d8f68;
  color:#fff;
  border-color:#0d8f68;
}
.region-map-tool--fullscreen{font-size:18px;min-width:38px;padding:5px 9px}
.regions-map-shell{position:relative}
.region-map-world-badge{
  position:absolute;
  left:14px;
  bottom:14px;
  z-index:480;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(7,41,45,.84);
  color:#fff;
  box-shadow:0 8px 22px rgba(6,31,36,.18);
  backdrop-filter:blur(10px);
  font:800 12px/1.1 Inter,Arial,sans-serif;
  pointer-events:none;
}
.region-map-world-badge[hidden]{display:none!important}
.hvac-focus-mask{position:absolute;pointer-events:none;overflow:hidden}
/* Mouse focus must not outline the bounding box of a transparent SVG country. */
.hvac-country-hit:focus,.hvac-region-hit:focus{outline:none}
.hvac-country-hit:focus-visible,.hvac-region-hit:focus-visible{
  stroke:#0b8469;stroke-width:2;stroke-opacity:1;
}
.hvac-company-cluster{background:transparent;border:0}
.hvac-company-cluster>span{
  display:flex;align-items:center;justify-content:center;box-sizing:border-box;
  width:36px;height:36px;border:2px solid #fff;border-radius:50%;
  background:var(--marker-accent,#159b78);color:#fff;
  box-shadow:0 2px 8px #17394840;font:800 13px/1 Inter,Arial,sans-serif;
}
.hvac-company-cluster--area>span{
  background:#fff;color:#16644e;border:2px dashed var(--marker-accent,#159b78);
}
.map-popup-area{display:block;margin:0 0 10px;font-size:13px;line-height:1.4}
.map-company-list .map-popup+.map-popup{border-top:1px solid #dbe8eb;margin-top:10px;padding-top:10px}
.leaflet-overlay-pane .hvac-interaction-line{
  stroke-dasharray:9 10;
  stroke-linecap:round;
  animation:hvacMapFlow 2.2s linear infinite;
  filter:drop-shadow(0 0 3px rgba(20,189,151,.4));
}
.leaflet-overlay-pane .hvac-interaction-line--deal{stroke:#0dbb83}
.leaflet-overlay-pane .hvac-interaction-line--negotiation{stroke:#3a8fe8}
.leaflet-overlay-pane .hvac-interaction-line--partner{stroke:#d4912b}
@keyframes hvacMapFlow{to{stroke-dashoffset:-38}}
.hvac-interaction-node{
  width:13px!important;
  height:13px!important;
  margin-left:-6px!important;
  margin-top:-6px!important;
  border-radius:50%;
  background:#0fb487;
  border:2px solid rgba(255,255,255,.95);
  box-shadow:0 0 0 5px rgba(15,180,135,.13),0 5px 14px rgba(4,72,61,.28);
}
.region-map-card:fullscreen,
.region-map-card:-webkit-full-screen{
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  max-height:none!important;
  padding:14px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:#f4fbfd!important;
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
}
.region-map-card:fullscreen .region-map-card__head,
.region-map-card:-webkit-full-screen .region-map-card__head{flex:0 0 auto;margin-bottom:10px}
.region-map-card:fullscreen .regions-map-shell,
.region-map-card:-webkit-full-screen .regions-map-shell{flex:1 1 auto;min-height:0}
.region-map-card:fullscreen .regions-map,
.region-map-card:-webkit-full-screen .regions-map{height:100%!important;border-radius:16px}
@media(max-width:1180px){
  .region-map-card__head{align-items:flex-start;flex-direction:column}
  .region-map-card__head-actions{width:100%;justify-content:space-between}
  .region-map-toolbar{justify-content:flex-start}
}
@media(max-width:720px){
  .region-map-toolbar{gap:5px}
  .region-map-tool{padding:7px 10px;font-size:11px}
  .region-map-card__stats{display:none}
  .region-map-world-badge{left:8px;bottom:8px;max-width:calc(100% - 16px);white-space:normal}
}
@media(prefers-reduced-motion:reduce){.leaflet-overlay-pane .hvac-interaction-line{animation:none}}

/* V77: compact AI search state for the live company directory. */
.catalog-directory__toolbar{justify-content:flex-end;margin-bottom:14px}
.catalog-ai-loader{
  grid-column:1/-1;
  min-height:210px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:#0a7f62;
}
.catalog-ai-loader__visual{
  position:relative;
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:radial-gradient(circle at 38% 32%,rgba(255,255,255,.98),rgba(211,249,239,.92) 55%,rgba(115,224,194,.42));
  box-shadow:0 16px 45px rgba(7,136,101,.18),inset 0 0 0 1px rgba(41,190,150,.2);
}
.catalog-ai-loader__visual svg{width:50px;height:50px;fill:none;stroke:#078965;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(7,137,101,.18));animation:catalogAiPulse 1.8s ease-in-out infinite}
.catalog-ai-loader__orbit{position:absolute;inset:-8px;border:2px solid transparent;border-top-color:#18bd8f;border-right-color:rgba(24,189,143,.28);border-radius:50%;animation:catalogAiOrbit 1.55s linear infinite}
.catalog-ai-loader__orbit--two{inset:8px;border-top-color:transparent;border-right-color:#56d9b4;border-bottom-color:rgba(86,217,180,.38);animation-direction:reverse;animation-duration:1.15s}
.catalog-ai-loader__search{position:absolute;width:15px;height:15px;border:3px solid #ffb029;border-radius:50%;right:4px;bottom:7px;background:#fff;box-shadow:0 4px 12px rgba(192,122,0,.2);animation:catalogAiSearch 1.8s ease-in-out infinite}
.catalog-ai-loader__search::after{content:"";position:absolute;width:9px;height:3px;border-radius:3px;background:#ffb029;right:-7px;bottom:-4px;transform:rotate(45deg);transform-origin:left center}
.catalog-ai-loader__label{display:flex;align-items:center;gap:7px;font:800 14px/1.2 Inter,Arial,sans-serif;letter-spacing:.03em}
.catalog-ai-loader__dots{display:inline-flex;align-items:center;gap:4px}
.catalog-ai-loader__dots i{width:5px;height:5px;border-radius:50%;background:#0aa77e;animation:catalogAiDot 1.2s ease-in-out infinite}
.catalog-ai-loader__dots i:nth-child(2){animation-delay:.16s}.catalog-ai-loader__dots i:nth-child(3){animation-delay:.32s}
.catalog-ai-loader--error{min-height:140px;color:#8a4e30;font-weight:800}
@keyframes catalogAiOrbit{to{transform:rotate(360deg)}}
@keyframes catalogAiPulse{0%,100%{transform:scale(.96)}50%{transform:scale(1.04)}}
@keyframes catalogAiSearch{0%,100%{transform:translate(-2px,-2px)}50%{transform:translate(5px,4px)}}
@keyframes catalogAiDot{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}
@media(max-width:720px){.catalog-directory__toolbar{justify-content:flex-start}.catalog-ai-loader{min-height:170px}.catalog-ai-loader__visual{width:78px;height:78px}}
@media(prefers-reduced-motion:reduce){.catalog-ai-loader__visual svg,.catalog-ai-loader__orbit,.catalog-ai-loader__search,.catalog-ai-loader__dots i{animation:none}}

/* ============================================================
   V81 — one compact company card on catalog/services/regions
   ============================================================ */
.catalog-grid,
.services-store-grid,
.popular-banner__row{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}
.catalog-card.f87-public-card{
  --company-accent:#159b78;
  min-width:0;
  min-height:360px;
  padding:12px;
  gap:11px;
  flex-direction:column;
  align-items:stretch;
  border-radius:20px;
  border-color:#d4e4ef;
  border-top:4px solid var(--company-accent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--company-accent) 18%,#fff) 0,#fff 38%);
  box-shadow:0 12px 30px rgba(31,72,98,.075);
}
.catalog-card.f87-public-card.seller{--company-accent:#c4a119}
.catalog-card.f87-public-card.service{--company-accent:#159b78}
.catalog-card.f87-public-card.installer{--company-accent:#238954}
.catalog-card.f87-public-card.training{--company-accent:#5956b8}
.catalog-card.f87-public-card:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--company-accent) 46%,#d4e4ef);
  box-shadow:0 20px 46px rgba(24,96,78,.13);
}
.catalog-card.f87-public-card .catalog-card__logo{
  width:100%;
  min-width:0;
  max-width:none;
  height:108px;
  min-height:108px;
  border-radius:15px;
  background:color-mix(in srgb,var(--company-accent) 24%,#fff)!important;
  border-color:color-mix(in srgb,var(--company-accent) 60%,#edf4fa);
}
.catalog-card.f87-public-card .company-logo__image{
  inset:6px;
  width:calc(100% - 12px);
  height:calc(100% - 12px);
  padding:2px;
  border-radius:9px;
  object-fit:contain;
}
.catalog-card.f87-public-card .catalog-card__body{
  flex:1 1 auto;
  width:100%;
}
.catalog-card.f87-public-card .catalog-card__meta{
  margin-bottom:7px;
}
.catalog-card.f87-public-card .catalog-card__meta h3{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:0 0 5px;
  min-height:41px;
  font-size:18px;
  line-height:1.14;
  letter-spacing:-.015em;
  color:#17273f;
}
.catalog-card__location-status{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  min-height:24px;
}
.catalog-card__location-status>span:first-child{
  color:#65758b;
  font-size:13px;
  font-weight:800;
}
.catalog-card__verified{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:4px 9px;
  border-radius:999px;
  background:#e9f9f1;
  color:#078457!important;
  font-size:11px!important;
  font-weight:900!important;
}
.catalog-card.f87-public-card .catalog-card__body>p{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  min-height:54px;
  margin:0 0 9px;
  color:#56677e;
  font-size:12.5px;
  line-height:1.42;
}
.catalog-card__footer{
  margin-top:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.catalog-card__facts{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  flex-wrap:wrap;
}
.catalog-card__category{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  max-width:100%;
  padding:5px 8px;
  border-radius:999px;
  background:#edf7ff;
  color:#236fb1;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
}
.catalog-card__rating{
  width:100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:42px;
  padding:8px 10px;
  border:1px solid #cddde8;
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#f8fbfd);
  color:#18344a;
  font-size:12px;
  font-weight:900;
}
.catalog-card__rating>span{color:#66778b;font-size:12px;font-weight:850}
.catalog-card__rating strong{display:inline-flex;align-items:center;gap:5px;color:#18344a;font-size:15px;font-weight:950}
.catalog-card__rating b{color:#f3a316;font-size:17px;line-height:1}
.catalog-card.f87-public-card .card-btn{
  width:100%;
  min-height:36px;
  padding:0 12px;
  border-radius:10px;
  background:#007f8d;
  border-color:#007f8d;
  color:#fff;
  box-shadow:0 3px 9px #007f8d24;
  transition:background .16s ease,border-color .16s ease;
}
.catalog-card.f87-public-card .card-btn:hover{
  background:#006774;
  border-color:#006774;
}
.catalog-card.f87-public-card .card-btn:focus-visible{
  outline:3px solid #00b8c870;
  outline-offset:3px;
}
.catalog-directory__toolbar{justify-content:space-between}
.directory-view-switch{
  display:inline-flex;align-items:center;gap:3px;padding:3px;
  border:1px solid #cfe3ef;border-radius:12px;background:#f4fafc;
}
.directory-view-switch button{
  border:0;border-radius:9px;padding:9px 13px;cursor:pointer;
  background:transparent;color:#426075;font:800 12px/1.2 Inter,Arial,sans-serif;
}
.directory-view-switch button[aria-pressed="true"]{background:#007f8d;color:#fff}
[data-directory-grid][data-view="list"]{grid-template-columns:1fr}
[data-directory-grid][data-view="list"] .catalog-card.f87-public-card{
  display:grid;grid-template-columns:156px minmax(0,1fr);min-height:0;gap:18px;
}
[data-directory-grid][data-view="list"] .catalog-card__body{
  display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:22px;
}
[data-directory-grid][data-view="list"] .catalog-card__meta{grid-column:1}
[data-directory-grid][data-view="list"] .catalog-card__meta h3{min-height:0}
[data-directory-grid][data-view="list"] .catalog-card__body>p{grid-column:1;min-height:0}
[data-directory-grid][data-view="list"] .catalog-card__footer{grid-column:2;grid-row:1 / 3;margin-top:0}
.popular-banner__controls{display:flex;align-items:center;gap:7px;flex-shrink:0}
.popular-banner__controls button{
  display:grid;place-items:center;width:40px;height:40px;padding:0;
  border:1px solid #c5e2e6;border-radius:12px;background:#fff;color:#007f8d;cursor:pointer;
}
.popular-banner__arrow{font:600 27px/1 Arial,sans-serif}
.popular-banner__pause{font:800 13px/1 Arial,sans-serif}
.popular-banner__controls button:hover{background:#007f8d;border-color:#007f8d;color:#fff}
.popular-banner__controls button:disabled{opacity:.4;cursor:default}
.popular-banner__viewport{--popular-visible:5;overflow:hidden;touch-action:pan-y}
.popular-banner .popular-banner__row{display:flex;gap:14px;will-change:transform}
.popular-banner__row>.catalog-card.f87-public-card{
  flex:0 0 calc((100% - (var(--popular-visible) - 1) * 14px) / var(--popular-visible));
}
@media(max-width:1280px){.popular-banner__viewport{--popular-visible:3}}
@media(max-width:900px){
  .popular-banner__viewport{--popular-visible:2}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:110px minmax(0,1fr)}
  [data-directory-grid][data-view="list"] .catalog-card__body{display:flex;flex-direction:column}
  [data-directory-grid][data-view="list"] .catalog-card__footer{width:100%}
  [data-directory-grid][data-view="list"] .catalog-card__rating{max-width:260px}
  [data-directory-grid][data-view="list"] .card-btn{max-width:260px}
}
@media(max-width:620px){
  .popular-banner__viewport{--popular-visible:1}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:82px minmax(0,1fr);gap:12px}
  .popular-banner__head{gap:12px;flex-wrap:wrap}
}
.company-modal__identity .company-logo{
  width:142px!important;
  height:110px!important;
  min-width:142px!important;
  border-radius:22px!important;
  font-size:27px!important;
}
.company-modal__identity .company-logo__image{padding:8px!important}
.header-mini-btn--claim{
  background:#079767!important;
  border-color:#079767!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(7,151,103,.25)!important;
}
.header-mini-btn--admin{
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  background:#007f8d!important;border-color:#007f8d!important;color:#fff!important;
}
.header-mini-btn--admin:hover{background:#006774!important}
.header-mini-btn--claim:hover{background:#067f58!important;transform:translateY(-1px)}
.header-mini-btn--contact{
  background:#0a83c7!important;
  border-color:#0a83c7!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(10,131,199,.24)!important;
}
.header-mini-btn--contact:hover{background:#076fa9!important;transform:translateY(-1px)}
.ownership-claim-dialog{
  width:min(760px,calc(100vw - 28px));
  max-height:min(860px,calc(100vh - 28px));
}
.ownership-claim-kicker{
  display:inline-flex;
  margin-bottom:8px;
  color:#0a8a64;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ownership-claim-form{padding:22px 24px 24px;overflow:auto}
.ownership-claim-company{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
  padding:14px 16px;
  border:1px solid #d8e8f0;
  border-radius:16px;
  background:#f3fbf8;
}
.ownership-claim-company span{color:#697b8f;font-size:12px;font-weight:800}
.ownership-claim-company strong{text-align:right;color:#153348;font-size:16px}
.ownership-claim-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.ownership-claim-grid label{display:flex;flex-direction:column;gap:7px;color:#25394f;font-size:13px;font-weight:850}
.ownership-claim-grid input,.ownership-claim-grid textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cedee9;
  border-radius:13px;
  background:#fff;
  color:#162a3e;
  font:650 14px/1.35 Inter,Arial,sans-serif;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.ownership-claim-grid input{height:45px;padding:0 13px}
.ownership-claim-grid textarea{min-height:118px;padding:12px 13px;resize:vertical}
.ownership-claim-grid input:focus,.ownership-claim-grid textarea:focus{border-color:#20a67d;box-shadow:0 0 0 4px rgba(32,166,125,.11)}
.ownership-claim-wide{grid-column:1/-1}
.ownership-claim-status{min-height:20px;margin:15px 0 2px;font-size:13px;font-weight:800}
.ownership-claim-status.is-loading{color:#4a6a80}
.ownership-claim-status.is-success{color:#087b55}
.ownership-claim-status.is-error{color:#b2413a}
.ownership-claim-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}
.ownership-claim-actions button{min-width:150px}
.company-contact-dialog{width:min(720px,calc(100vw - 28px));max-height:min(760px,calc(100vh - 28px))}
.company-contact-form{padding:22px 24px 24px;overflow:auto}
.company-contact-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.company-contact-summary>div{display:flex;flex-direction:column;gap:6px;padding:13px 15px;border:1px solid #d8e8f0;border-radius:15px;background:#f3fbf8}
.company-contact-summary span{color:#697b8f;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.company-contact-summary strong{color:#153348;font-size:15px;line-height:1.3}
.company-contact-message{display:flex;flex-direction:column;gap:8px;color:#25394f;font-size:13px;font-weight:850}
.company-contact-message textarea{width:100%;min-height:150px;box-sizing:border-box;padding:13px;border:1px solid #cedee9;border-radius:14px;background:#fff;color:#162a3e;font:650 14px/1.45 Inter,Arial,sans-serif;resize:vertical;outline:none}
.company-contact-message textarea:focus{border-color:#20a67d;box-shadow:0 0 0 4px rgba(32,166,125,.11)}
@media(max-width:1600px){
  .catalog-grid,.services-store-grid,.popular-banner__row{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1280px){
  .catalog-grid,.services-store-grid,.popular-banner__row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
  .catalog-grid,.services-store-grid,.popular-banner__row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .catalog-grid,.services-store-grid,.popular-banner__row{grid-template-columns:1fr}
  .catalog-card.f87-public-card{min-height:340px}
  .catalog-card.f87-public-card .catalog-card__logo{width:100%;min-width:0;min-height:105px;height:105px}
  .company-modal__identity .company-logo{width:96px!important;height:78px!important;min-width:96px!important;font-size:19px!important}
  .company-modal__header-actions{gap:7px!important}
  .header-mini-btn--claim,.header-mini-btn--contact{width:auto!important;padding:0 12px!important;font-size:11px!important}
  .ownership-claim-grid{grid-template-columns:1fr}
  .ownership-claim-wide{grid-column:auto}
  .ownership-claim-form{padding:18px}
  .ownership-claim-actions{flex-direction:column-reverse}
  .ownership-claim-actions button{width:100%;min-width:0}
  .company-contact-summary{grid-template-columns:1fr}
  .company-contact-form{padding:18px}
}

/* About content: the saved activity selection and uploaded company videos. */
#modalCompanyDescription { white-space: pre-line; overflow-wrap: anywhere; }
#modalActivities { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
#modalActivities .company-activity-tag { display:inline-flex; padding:7px 12px; border-radius:10px; background:#e2f6f5; color:#126963; font-size:13px; }
.company-about-videos[hidden] { display:none; }
.company-about-videos { display:grid; gap:20px; margin-top:22px; }
.company-about-videos figure { margin:0; min-width:0; }
.company-about-videos video { display:block; width:100%; max-height:540px; aspect-ratio:16/9; background:#0b1723; border-radius:16px; object-fit:contain; }
.company-about-videos figcaption { margin-top:8px; color:#56667c; font-size:14px; }

/* Stable catalog navigation and compact company identity. */
.catalog-directory__toolbar{
  position:sticky;
  top:var(--catalog-header-height,96px);
  z-index:30;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  padding:10px 0;
  margin-bottom:14px;
  background:#eff8ff;
  border-bottom:1px solid #dbe8f0;
}
.catalog-directory .catalog-filters{gap:8px;flex-wrap:wrap}
.catalog-directory [data-directory-filter][aria-pressed="true"]{
  background:#087f66;border-color:#087f66;color:#fff;
}
.catalog-directory [data-directory-filter]:focus-visible,
.catalog-directory [data-directory-reset]:focus-visible{
  outline:3px solid #138d76;outline-offset:3px;
}
[data-directory-grid]{min-height:360px;align-content:start}
[data-directory-grid][data-result-state="empty"]{display:flex;align-items:stretch}
.catalog-directory-empty{
  display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;
  min-height:320px;box-sizing:border-box;padding:28px;gap:14px;
  border:1px dashed #c7dce8;border-radius:18px;background:#f7fbfe;text-align:center;
}
.catalog-directory-empty p{margin:0;color:#617589;font-size:16px;line-height:1.5}
.catalog-card.f87-public-card .catalog-card__name-line{display:flex;align-items:flex-start;gap:8px}
.catalog-card.f87-public-card .catalog-card__meta h3{
  flex:1;min-width:0;min-height:46px;margin:0;
  font-size:20px;line-height:1.15;font-weight:800;letter-spacing:-.02em;color:#132b40;
}
.catalog-card.f87-public-card .catalog-card__shield{
  display:block;flex:0 0 36px;width:36px;height:42px;min-height:0;padding:0;
  border:0;border-radius:0;background:transparent;line-height:0;
}
.catalog-card__shield svg{display:block;width:100%;height:100%}
.catalog-card__foundation{margin-top:4px;color:#65798b;font-size:11px;line-height:1.4;font-weight:500}
.catalog-card__foundation b{font-weight:700}
.catalog-card.f87-public-card .catalog-card__body>p{color:#667a8e}
.catalog-card__activities{display:flex;flex-wrap:wrap;align-items:center;gap:5px;width:100%;min-width:0}
.catalog-card.f87-public-card .catalog-card__category{
  gap:4px;min-height:21px;padding:3px 7px;box-sizing:border-box;
  border-radius:7px;font-size:10.5px;line-height:1.2;font-weight:700;
}
.catalog-card__category svg{flex:0 0 13px;width:13px;height:13px}
.catalog-card__category>span{min-width:0;overflow-wrap:anywhere}
[data-directory-grid][data-view="list"]{width:100%;max-width:1120px;margin-inline:auto;gap:10px}
[data-directory-grid][data-view="list"] .catalog-card.f87-public-card{
  grid-template-columns:96px minmax(0,1fr);align-items:center;min-height:0;gap:14px;padding:10px;border-radius:16px;
}
[data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{
  width:96px;height:76px;min-height:76px;min-width:0;border-radius:12px;
}
[data-directory-grid][data-view="list"] .catalog-card__body{
  display:grid;grid-template-columns:minmax(0,1fr) 180px;grid-template-rows:auto auto auto;
  column-gap:16px;row-gap:5px;min-width:0;
}
[data-directory-grid][data-view="list"] .catalog-card__meta{grid-column:1;grid-row:1;margin:0}
[data-directory-grid][data-view="list"] .catalog-card__meta h3{min-height:0;font-size:19px}
[data-directory-grid][data-view="list"] .catalog-card__shield{flex-basis:30px;width:30px;height:35px}
[data-directory-grid][data-view="list"] .catalog-card__body>p{
  grid-column:1;grid-row:2;min-height:0;margin:0;font-size:12px;-webkit-line-clamp:2;
}
[data-directory-grid][data-view="list"] .catalog-card__footer{display:contents}
[data-directory-grid][data-view="list"] .catalog-card__activities{grid-column:1;grid-row:3;gap:4px}
[data-directory-grid][data-view="list"] .catalog-card__category{min-height:20px;padding:3px 6px;font-size:10px}
[data-directory-grid][data-view="list"] .catalog-card__rating{
  grid-column:2;grid-row:1;align-self:end;min-height:30px;padding:5px 8px;border-radius:9px;
}
[data-directory-grid][data-view="list"] .catalog-card__rating>span{font-size:10px}
[data-directory-grid][data-view="list"] .catalog-card__rating strong{font-size:13px}
[data-directory-grid][data-view="list"] .card-btn{
  grid-column:2;grid-row:2 / 4;align-self:start;min-height:32px;height:32px;margin:0;padding:0 10px;font-size:11px;
}
@media(max-width:900px){
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:76px minmax(0,1fr);gap:12px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{width:76px;height:68px;min-height:68px}
  [data-directory-grid][data-view="list"] .catalog-card__body{display:flex;gap:6px}
  [data-directory-grid][data-view="list"] .catalog-card__footer{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
  [data-directory-grid][data-view="list"] .catalog-card__activities{flex-basis:100%}
  [data-directory-grid][data-view="list"] .catalog-card__rating{width:auto;min-width:65px;align-self:auto}
  [data-directory-grid][data-view="list"] .catalog-card__rating>span{display:none}
  [data-directory-grid][data-view="list"] .card-btn{flex:1;width:auto;min-width:0;max-width:210px;align-self:auto}
}
@media(max-width:620px){
  .site-header .site-header__inner{gap:8px}
  .catalog-directory__toolbar{align-items:flex-start;gap:9px}
  .catalog-directory .catalog-filters{gap:6px}
  .catalog-directory .filter-pill{min-height:35px;padding:7px 11px;font-size:12px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:9px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{width:58px;height:58px;min-height:58px}
  [data-directory-grid][data-view="list"] .catalog-card__meta h3{font-size:17px}
}

/* Readable list cards and the shared verification shield. */
.catalog-grid,.services-store-grid{gap:22px}
.company-verified-shield{position:relative;display:block;flex:none;width:52px;height:68px;line-height:0;filter:drop-shadow(0 3px 3px #003c2424)}
.company-verified-shield img{display:block;width:100%;height:100%;object-fit:contain}
.catalog-card.f87-public-card .catalog-card__shield{flex-basis:52px;width:52px;height:68px}
.catalog-card.f87-public-card .catalog-card__meta h3{font-size:22px;min-height:0;line-height:1.22}
.catalog-card.f87-public-card .catalog-card__name-line{align-items:center;gap:12px}
.catalog-card.f87-public-card .catalog-card__body>p{font-size:14px;line-height:1.5;min-height:63px}
.catalog-card__foundation{font-size:12px}
.catalog-card.f87-public-card .catalog-card__category{font-size:12px;min-height:28px;padding:5px 8px;gap:6px}
.catalog-card__category svg{width:18px;height:18px;flex-basis:18px}
.catalog-card__activities{gap:6px}
[data-directory-grid][data-view="list"]{gap:20px}
[data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:140px minmax(0,1fr);gap:20px;padding:15px;min-height:142px;border-radius:18px}
[data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{width:140px;height:108px;min-height:108px}
[data-directory-grid][data-view="list"] .catalog-card__body{grid-template-columns:minmax(0,1fr) 185px;row-gap:8px;column-gap:20px;box-sizing:border-box;padding:8px 12px}
[data-directory-grid][data-view="list"] .catalog-card__meta h3{font-size:22px}
[data-directory-grid][data-view="list"] .catalog-card__shield{flex-basis:48px;width:48px;height:63px}
[data-directory-grid][data-view="list"] .catalog-card__body>p{font-size:14px;min-height:0}
[data-directory-grid][data-view="list"] .catalog-card__category{font-size:12px;min-height:28px;padding:4px 7px}
[data-directory-grid][data-view="list"] .catalog-card__activities{gap:6px}
[data-directory-grid][data-view="list"] .catalog-card__rating{min-height:36px;padding:7px 9px}
[data-directory-grid][data-view="list"] .catalog-card__rating>span{font-size:11px}
[data-directory-grid][data-view="list"] .catalog-card__rating strong{font-size:15px}
[data-directory-grid][data-view="list"] .card-btn{height:38px;min-height:38px;font-size:12px}
.company-modal__identity{min-width:0}
.company-modal__name{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:22px;min-width:0}
.company-modal__name h2{grid-column:1;grid-row:1;overflow-wrap:anywhere}
.company-modal__name p{grid-column:1;grid-row:2}
.company-modal__shield{grid-column:2;grid-row:1 / 3;width:80px;height:105px;align-self:center}
.company-modal__shield::after{content:"";position:absolute;inset:0;pointer-events:none;clip-path:polygon(50% 2%,96% 19%,96% 45%,90% 64%,76% 84%,50% 98%,24% 84%,10% 64%,4% 45%,4% 19%);background:linear-gradient(115deg,transparent 34%,#8ef8bf44 43%,#fff9c9d9 50%,#6be3b244 57%,transparent 66%);background-size:300% 100%;background-position:150% 0;opacity:0;animation:companyShieldSweep 5s ease-in-out infinite}
@keyframes companyShieldSweep{0%,5%,40%,100%{opacity:0;background-position:150% 0}12%{opacity:.9}32%{opacity:0;background-position:-150% 0}}
.company-modal__content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:24px}
.company-modal__content>.tab-panel.is-active{flex:1 0 auto}
.company-content-empty{grid-column:1/-1;padding:32px 22px;border:1px dashed #c5dce5;border-radius:18px;color:#61798b;background:#f8fcff;font-size:15px;text-align:center}
.commerce-card-image{height:170px;display:grid;place-items:center;border-radius:14px;background:#eff6f6;overflow:hidden;margin-bottom:14px}
.commerce-card-image img{display:block;width:100%;height:100%;object-fit:contain}
.commerce-card-image svg{width:52px;height:52px;color:#79a69a}
.shop-card,.service-card{min-width:0;display:flex;flex-direction:column}
.shop-card__actions{margin-top:auto}
.shop-card__actions .commerce-widget-button,.service-card__actions .commerce-widget-button{background:#edf7f6;border:1px solid #b9dcd5;color:#14665e}
.service-card__actions{flex-wrap:wrap;margin-top:auto}
.service-card__actions .commerce-widget-button{flex-basis:100%}
@media(max-width:900px){
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:100px minmax(0,1fr);gap:16px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{width:100px;height:88px;min-height:88px}
  [data-directory-grid][data-view="list"] .catalog-card__body{display:flex}
  .company-modal__name{column-gap:12px}
  .company-modal__shield{width:64px;height:84px}
}
@media(max-width:620px){
  [data-directory-grid][data-view="list"]{gap:16px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:12px}
  [data-directory-grid][data-view="list"] .catalog-card.f87-public-card .catalog-card__logo{width:72px;height:72px;min-height:72px}
  [data-directory-grid][data-view="list"] .catalog-card__body{padding:6px 8px}
  [data-directory-grid][data-view="list"] .catalog-card__meta h3{font-size:19px}
  [data-directory-grid][data-view="list"] .catalog-card__shield{flex-basis:36px;width:36px;height:48px}
  [data-directory-grid][data-view="list"] .catalog-card__body>p{font-size:13px}
  [data-directory-grid][data-view="list"] .catalog-card__category{font-size:11px;padding:4px 6px;gap:4px}
  [data-directory-grid][data-view="list"] .catalog-card__category svg{width:16px;height:16px;flex-basis:16px}
  .company-modal__shield{width:48px;height:63px}
  .company-modal__name{column-gap:10px}
  .company-modal__content{gap:18px}
  .company-modal__header.company-modal__header--brand-photo{height:auto!important;min-height:180px!important;flex-basis:auto!important;flex-shrink:0;flex-wrap:wrap;padding:14px!important;gap:12px!important}
  .company-modal__identity{width:100%;flex-direction:row;align-items:center;gap:12px}
  .company-modal__identity .company-logo{width:72px!important;height:64px!important;min-width:72px!important;flex:none}
  .company-modal__header--brand-photo .company-modal__name h2{font-size:20px!important}
  .company-modal__name p{font-size:12px}
  .company-modal__header-actions{width:100%;justify-content:flex-end;align-items:center;flex-direction:row;flex-wrap:wrap}
  .company-modal__header-actions .header-mini-btn{width:auto}
  .company-modal__tabs{padding:12px;gap:6px;flex-shrink:0}
  .company-modal__tabs .tab-btn{height:36px;margin:0;padding:0 12px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.company-modal__shield::after{animation:none}}

/* The region catalogue shares the compact company layout, not the full map width. */
.card-views{display:inline-flex;align-items:center;gap:5px;max-width:100%;margin-top:7px;color:#60788b;font-size:12px;font-weight:500;line-height:1.3}
.card-views svg{width:17px;height:17px;flex:none}.card-views b{font-weight:700}
.company-modal__header .card-views{color:#edf7ff}
#modalServices,#modalShop{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;align-items:stretch}
#modalServices .service-card,#modalShop .shop-card{min-width:0;padding:14px;overflow-wrap:anywhere}
#modalServices .service-card h4,#modalShop .shop-card h4{font-size:18px;line-height:1.35}
#modalServices .service-card__actions,#modalShop .shop-card__actions{display:flex;flex-direction:column;gap:8px}
#modalServices button,#modalShop button{width:100%;min-width:0;height:auto;min-height:40px;padding:9px;white-space:normal;line-height:1.3}
#modalServices .company-content-empty,#modalShop .company-content-empty{grid-column:1/-1}
.company-modal__identity,.company-modal__name{min-width:0}.company-modal__name h2{overflow-wrap:anywhere}
.company-modal__header.company-modal__header--brand-photo{height:auto!important;min-height:232px!important;flex:0 0 auto!important}
.company-modal__header-actions{min-width:0;max-width:100%;flex-wrap:wrap;flex-shrink:1}
.company-modal__header-actions button{max-width:100%;white-space:normal;line-height:1.3;overflow-wrap:anywhere}
.company-modal__header-actions button[hidden]{display:none!important}
@media(max-width:1199px){#modalServices,#modalShop{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){
 .company-modal__dialog{max-height:calc(100dvh - 20px)}
 .company-modal__header.company-modal__header--brand-photo{display:grid!important;grid-template-columns:minmax(0,1fr);min-height:0!important;padding:16px!important;gap:12px!important;max-height:55dvh;overflow:auto!important}
 .company-modal__identity{display:flex;flex-direction:row;align-items:center;gap:12px;padding-inline-end:34px}
 .company-modal__identity .company-logo{width:76px!important;min-width:76px!important;height:66px!important;flex:none}
 .company-modal__header--brand-photo h2{font-size:22px!important;line-height:1.25!important}
 .company-modal__header--brand-photo .company-modal__header-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px!important;position:static!important}
 .company-modal__header-actions .header-mini-btn{width:100%!important;min-width:0!important;min-height:40px;height:auto;padding:8px!important;font-size:12px!important}
 .company-modal__header-actions .modal-close{position:absolute;top:8px;inset-inline-end:8px;width:32px;height:32px;min-width:0;z-index:4}
 .company-modal__tabs{flex-shrink:0;padding:10px 14px;gap:6px;flex-wrap:nowrap;overflow-x:auto}
 .company-modal__tabs .tab-btn{flex:0 0 auto;white-space:nowrap;margin:0}
 .company-modal__content{min-height:0}
}
@media(max-width:800px){#modalServices,#modalShop{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){#modalServices,#modalShop{grid-template-columns:minmax(0,1fr)}}
@media(max-width:540px){
 .company-modal__name h2,.company-modal__name p{grid-column:1/-1}
 .company-modal__name .company-modal__shield{grid-row:3;grid-column:2}
 #modalCompanyViews{grid-row:3;grid-column:1}
 .company-modal__header .card-views>span{display:none}
}
.regions-catalog-section{scroll-margin-top:120px}
.regions-catalog-section>.section-head{max-width:1320px;margin-inline:auto;gap:18px}
html body #regionsCatalogGrid{width:100%;max-width:1320px;margin-inline:auto;min-width:0;align-content:start;gap:20px;box-sizing:border-box}
html body #regionsCatalogGrid[data-view="list"]{max-width:1120px;grid-template-columns:minmax(0,1fr)!important}
html body #regionsCatalogGrid[data-view="grid"]{grid-template-columns:repeat(3,minmax(0,1fr))!important}
html body #regionsCatalogGrid .catalog-card{min-width:0;box-sizing:border-box;overflow:hidden;isolation:isolate}
html body #regionsCatalogGrid .catalog-card__body{min-width:0}
html body #regionsCatalogGrid[data-view="list"] .catalog-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:20px;padding:15px;min-height:142px}
html body #regionsCatalogGrid[data-view="list"] .catalog-card__body{display:grid;grid-template-columns:minmax(0,1fr) 185px;grid-template-rows:auto auto auto;gap:8px 20px;padding:8px 12px}
html body #regionsCatalogGrid[data-view="list"] .catalog-card__body>p{min-height:0;grid-column:1;grid-row:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:14px;line-height:1.5}
html body #regionsCatalogGrid[data-view="list"] .catalog-card__logo{width:140px;height:108px;min-height:108px;min-width:0}
html body #regionsCatalogGrid[data-view="list"] .catalog-card__meta h3{font-size:22px;line-height:1.25}
html body #regionsCatalogGrid .regions-empty{grid-column:1/-1;min-height:170px;display:grid;place-items:center;padding:24px;border:1px dashed #b8d3dc;border-radius:18px}
@media(max-width:1100px){html body #regionsCatalogGrid[data-view="grid"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:900px){
 html body #regionsCatalogGrid[data-view="list"] .catalog-card{grid-template-columns:100px minmax(0,1fr);gap:16px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card__body{display:flex;flex-direction:column;gap:8px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card__logo{width:100px;height:88px;min-height:88px}
}
@media(max-width:620px){
 html body #regionsCatalogGrid[data-view="grid"]{grid-template-columns:minmax(0,1fr)!important}
 html body #regionsCatalogGrid{gap:16px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:12px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card__logo{width:72px;height:72px;min-height:72px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card__body{padding:6px 8px}
 html body #regionsCatalogGrid[data-view="list"] .catalog-card__meta h3{font-size:19px}
}

/* PDF export controls share the Shop tab's responsive width. */
.catalog-pdf-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:0 0 18px;min-width:0}.catalog-pdf-toolbar label,.catalog-pdf-select{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;font-weight:650;color:#48716c}.catalog-pdf-toolbar input,.catalog-pdf-select input{accent-color:#07836c;width:16px;height:16px;margin:0;flex:0 0 auto}.catalog-pdf-toolbar button{margin-left:auto;white-space:normal}.catalog-pdf-toolbar [role=status]{font-size:12px;color:#48716c;flex-basis:100%}.catalog-pdf-toolbar [role=status]:empty{display:none}.catalog-pdf-select{align-self:flex-end;padding:0 0 9px}.catalog-pdf-select span{font-size:11px}@media(max-width:540px){.catalog-pdf-toolbar button{width:100%;margin:0}.catalog-pdf-toolbar{gap:10px}}
