/* DT502_SAFE_NAV_CONTRAST_TOKENS
   Fix navbar link contrast across all pages.
   Loaded last via assets/css/final_overrides.css (already included on all pages).
*/
:root{
  /* keep brand variables stable if missing elsewhere */
  --etl-red: #E52629;
  --etl-black: #1D1D1B;
  --etl-gray: #575756;
  --etl-red-dark: #8A0F0C;
  --etl-ui-radius: 18px;
  --etl-ui-radius-sm: 14px;
  --etl-ui-border: rgba(29,29,27,.10);
  --etl-ui-border-strong: rgba(29,29,27,.14);
  --etl-ui-surface: rgba(255,255,255,.94);
  --etl-ui-surface-strong: #ffffff;
  --etl-ui-shadow: 0 16px 34px rgba(17,24,39,.08);
  --etl-ui-shadow-hover: 0 20px 42px rgba(17,24,39,.12);
  --etl-btn-shadow: 0 8px 18px rgba(17,24,39,.06);
  --etl-btn-shadow-hover: 0 10px 22px rgba(17,24,39,.08);
}

/* Unified buttons */
:is(.btn-primary, .p-btn-primary, .rq-btn, .cp-btn-primary){
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 44px;
  padding: 11px 17px !important;
  border-radius: var(--etl-ui-radius-sm) !important;
  border: 1px solid rgba(229,38,41,.18) !important;
  background: linear-gradient(180deg, rgba(229,38,41,.96), rgba(205,30,33,.96)) !important;
  color: #fff !important;
  box-shadow: var(--etl-btn-shadow) !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, filter .18s ease !important;
  overflow: visible !important;
  position: relative;
}
:is(.btn-primary, .p-btn-primary, .rq-btn, .cp-btn-primary):hover{
  transform: translateY(-1px) !important;
  box-shadow:
    0 0 0 1px rgba(229,38,41,.20),
    0 0 0 6px rgba(229,38,41,.08),
    var(--etl-btn-shadow-hover) !important;
  filter: none;
}
:is(.btn-primary, .p-btn-primary, .rq-btn, .cp-btn-primary):focus-visible{
  outline: none;
  box-shadow:
    0 0 0 1px rgba(229,38,41,.22),
    0 0 0 6px rgba(229,38,41,.10),
    var(--etl-btn-shadow-hover) !important;
}

:is(.btn-outline, .btn, .acc-btn, .seg-btn, .geo-btn, .cp-btn, .cp-btn-ghost){
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 44px;
  padding: 11px 17px !important;
  border-radius: var(--etl-ui-radius-sm) !important;
  border: 1px solid rgba(29,29,27,.12) !important;
  background: rgba(255,255,255,.82) !important;
  color: rgba(29,29,27,.86) !important;
  box-shadow: 0 8px 18px rgba(17,24,39,.05) !important;
  font-weight: 650 !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease !important;
  overflow: visible !important;
  position: relative;
}
:is(.btn-outline, .btn, .acc-btn, .seg-btn, .geo-btn, .cp-btn, .cp-btn-ghost):hover{
  transform: translateY(-1px) !important;
  border-color: rgba(229,38,41,.22) !important;
  background: rgba(255,255,255,.98) !important;
  color: rgba(29,29,27,.94) !important;
  box-shadow:
    0 0 0 1px rgba(229,38,41,.16),
    0 0 0 6px rgba(229,38,41,.06),
    0 12px 24px rgba(17,24,39,.08) !important;
}
:is(.btn-outline, .btn, .acc-btn, .seg-btn, .geo-btn, .cp-btn, .cp-btn-ghost):focus-visible{
  outline: none;
  box-shadow:
    0 0 0 1px rgba(229,38,41,.18),
    0 0 0 6px rgba(229,38,41,.08),
    0 12px 24px rgba(17,24,39,.08) !important;
}

/* Unified cards */
:is(.card, .bento-card, .svc-card, .stat-card, .fleet-card, .logo-tile, .process-step, .presence-card, .contact-subcard, .a-card, .tariff-card, .dim-card, .doc-item, .price-factor, .ad-card){
  border-radius: var(--etl-ui-radius) !important;
  border: 1px solid var(--etl-ui-border) !important;
  background: var(--etl-ui-surface) !important;
  box-shadow: var(--etl-ui-shadow) !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease !important;
}
:is(.card, .bento-card, .svc-card, .stat-card, .fleet-card, .logo-tile, .process-step, .presence-card, .contact-subcard, .a-card, .tariff-card, .dim-card, .doc-item, .price-factor, .ad-card):hover{
  transform: translateY(-2px) !important;
  border-color: var(--etl-ui-border-strong) !important;
  box-shadow: var(--etl-ui-shadow-hover) !important;
}
:is(.card, .bento-card, .svc-card, .stat-card, .fleet-card, .logo-tile, .process-step, .presence-card, .contact-subcard, .a-card, .tariff-card, .dim-card, .doc-item, .price-factor, .ad-card):hover::before,
:is(.card, .bento-card, .svc-card, .stat-card, .fleet-card, .logo-tile, .process-step, .presence-card, .contact-subcard, .a-card, .tariff-card, .dim-card, .doc-item, .price-factor, .ad-card):hover::after{
  opacity: 0 !important;
  transform: none !important;
}

.is-clickable:hover{
  transform: translateY(-2px) !important;
  border-color: var(--etl-ui-border-strong) !important;
  box-shadow: var(--etl-ui-shadow-hover) !important;
  background: var(--etl-ui-surface-strong) !important;
}

html[data-theme="dark"]{
  --etl-ui-border: rgba(255,255,255,.12);
  --etl-ui-border-strong: rgba(255,255,255,.18);
  --etl-ui-surface: rgba(18,18,18,.92);
  --etl-ui-surface-strong: rgba(24,24,24,.96);
  --etl-ui-shadow: 0 18px 40px rgba(0,0,0,.34);
  --etl-ui-shadow-hover: 0 22px 46px rgba(0,0,0,.42);
}
html[data-theme="dark"] :is(.btn-outline, .btn, .acc-btn, .seg-btn, .geo-btn, .cp-btn, .cp-btn-ghost){
  background: rgba(20,20,20,.88) !important;
  color: rgba(236,236,236,.90) !important;
  border-color: rgba(255,255,255,.14) !important;
  box-shadow: 0 12px 26px rgba(0,0,0,.28) !important;
}
html[data-theme="dark"] :is(.btn-outline, .btn, .acc-btn, .seg-btn, .geo-btn, .cp-btn, .cp-btn-ghost):hover{
  background: rgba(28,28,28,.96) !important;
  color: rgba(244,244,244,.96) !important;
  border-color: rgba(255,255,255,.18) !important;
}

/* Scope tokens to the navbar so page-specific themes can't wash it out */
.etl-nav{
  --p-accent: var(--etl-red);
  --p-text: var(--etl-black);
  --p-text-muted: var(--etl-gray);
}

/* Force readable default state */
.etl-nav .p-link,
.etl-nav .p-dd-trigger{
  color: var(--p-text-muted) !important;
}

/* Hover/open state: dark text + red underline (underline already uses --p-accent in nav css) */
.etl-nav .p-link:hover,
.etl-nav .p-dd-trigger[aria-expanded="true"]{
  color: var(--p-text) !important;
}

/* Active page: accent red (both text and underline feel “selected”) */
.etl-nav .p-link.is-active{
  color: var(--p-accent) !important;
}

/* Dropdown items: readable too */
.etl-nav .p-dd-panel,
.etl-nav .p-dd-panel a{
  color: var(--p-text) !important;
}
.etl-nav .p-dd-panel a:hover{
  color: var(--p-accent) !important;
}

/* DT503_SAFE_NAV_UNIFY_COLORS */
/* Force readable navbar link colors across ALL pages (index is the reference). */
.p-nav{
  /* lock navbar token colors to prevent page-level overrides */
  --p-text: #1D1D1B;
  --p-text-muted: #575756;
  --p-accent: #E52629;
}
.p-nav .p-link{
  color: var(--p-text-muted) !important;
}
.p-nav .p-link:hover,
.p-nav .p-link:focus{
  color: var(--p-accent) !important;
}
/* active/current page */
.p-nav .p-link[aria-current="page"],
.p-nav .p-link.is-active,
.p-nav .p-link.active{
  color: var(--p-accent) !important;
}
/* dropdown links */
.p-nav .dd2-link{ color: var(--p-text-muted) !important; }
.p-nav .dd2-link:hover{ color: var(--p-accent) !important; }

/* ===== DT505_SAFE_GEO_STAGE1_CHIP ===== */
#geo .geo-mini { position: relative; }
#geo .geo-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  backdrop-filter: blur(10px);
}
#geo .geo-chip .geo-chip__dot{
  width: 8px; height: 8px; border-radius: 999px;
  background: #E52629;
  box-shadow: 0 0 0 6px rgba(229,38,41,.14);
}
#geo .geo-chip .geo-chip__label{
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(29,29,27,.62);
}
#geo .geo-chip .geo-chip__value{
  font-weight: 700;
  color: rgba(29,29,27,.88);
}

/* Map styling */
#geo .geo-svg { overflow: visible; }
#geo .geo-svg .geo-label {
  font-family: "Instrument Sans", system-ui;
  fill: rgba(29,29,27,.72);
}
#geo .geo-svg .geo-point {
  fill: rgba(29,29,27,.70);
  opacity: .50;
  transition: opacity .18s ease, transform .18s ease, fill .18s ease;
}
#geo .geo-svg .geo-point.is-active {
  fill: #E52629;
  opacity: 1;
  transform: scale(1.15);
}
#geo .geo-svg .geo-label.is-active {
  fill: rgba(29,29,27,.90);
}

/* Hub */
#geo .geo-svg .hub-glow { fill: #E52629; opacity: .22; }
#geo .geo-svg .hub-core { fill: #E52629; }
#geo .geo-svg .geo-hub {
  transform-box: fill-box;
  transform-origin: center;
  animation: etlHubPulse 2.6s ease-in-out infinite;
}
@keyframes etlHubPulse {
  0%   { transform: scale(1);   opacity: 1; }
  50%  { transform: scale(1.10); opacity: .85; }
  100% { transform: scale(1);   opacity: 1; }
}

/* Routes */
#geo .geo-svg .geo-route {
  stroke: #E52629;
  stroke-width: 3;
  opacity: .10;
  transition: opacity .18s ease, stroke-width .18s ease;
  stroke-linecap: round;
  stroke-dasharray: 7 7;
  animation: etlRouteDash 14s linear infinite;
}
@keyframes etlRouteDash { to { stroke-dashoffset: -140; } }
#geo .geo-svg .geo-route.is-active {
  opacity: .42;
  stroke-width: 3.5;
}
/* ===== /DT505_SAFE_GEO_STAGE1_CHIP ===== */


/* DT505d_SAFE_GEO_STAGE1_CHIP_FIX3: Stage1 живые маршруты + chip */
#geo .geo-chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  width:fit-content;
}
#geo .geo-chip .dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#E52629;
  box-shadow:0 0 0 4px rgba(229,38,41,.14);
}
#geo .geo-chip .label{
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:rgba(29,29,27,.60);
}
#geo .geo-chip .value{
  font-weight:700;
  color:rgba(29,29,27,.92);
}

/* кликабельность кнопок — на случай если псевдоэлемент карточки перекрывает */
#geo .geo-btn{ position:relative; z-index:2; pointer-events:auto; }
#geo .bento-card::before, #geo .bento-card::after{ pointer-events:none; }

/* стили SVG */
#geo .geo-svg .geo-label{
  font-family:"Instrument Sans", system-ui;
  fill:rgba(29,29,27,.72);
}
#geo .geo-svg .geo-point{
  fill:rgba(29,29,27,.70);
  opacity:.55;
  transition:opacity .18s ease, transform .18s ease, fill .18s ease;
}
#geo .geo-svg .geo-point.is-active{
  fill:#E52629;
  opacity:1;
  transform:scale(1.15);
}
#geo .geo-svg .geo-label.is-active{ fill:rgba(29,29,27,.90); }

#geo .geo-svg .hub-glow{ fill:#E52629; opacity:.22; }
#geo .geo-svg .hub-core{ fill:#E52629; }

#geo .geo-svg .geo-hub{
  transform-box:fill-box;
  transform-origin:center;
  animation:etlHubPulse 2.6s ease-in-out infinite;
}
@keyframes etlHubPulse{
  0%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.10); opacity:.85; }
  100%{ transform:scale(1); opacity:1; }
}

#geo .geo-svg .geo-route{
  stroke:#E52629;
  stroke-width:3;
  opacity:.12;
  transition:opacity .18s ease, stroke-width .18s ease;
  stroke-linecap:round;
  stroke-dasharray:7 7;
  animation:etlRouteDash 14s linear infinite;
}
@keyframes etlRouteDash{ to{ stroke-dashoffset:-140; } }
#geo .geo-svg .geo-route.is-active{
  opacity:.42;
  stroke-width:3.5;
}


/* DT506_SAFE_GEO_PREMIUM_FIX */
#geo .geo-list { position: relative; z-index: 5; }
#geo .geo-btn { position: relative; z-index: 6; pointer-events: auto; }
#geo .bento-card::before, #geo .bento-card::after { pointer-events: none; }

#geo .geo-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  width: fit-content;
}
#geo .geo-chip .dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #E52629;
  box-shadow: 0 0 0 6px rgba(229,38,41,.12);
}
#geo .geo-chip .k {
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(29,29,27,.55);
}
#geo .geo-chip strong {
  font-weight: 700;
  color: rgba(29,29,27,.90);
}

#geo .geo-svg-wrap {
  overflow: visible;
  border-radius: 18px;
}
#geo .geo-svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  margin: 0 auto;
}

#geo .geo-grid path {
  stroke: rgba(29,29,27,.10);
  stroke-width: 1;
}

#geo .geo-label {
  font-family: "Instrument Sans", system-ui;
  fill: rgba(29,29,27,.66);
}
#geo .geo-point {
  fill: rgba(29,29,27,.70);
  opacity: .55;
  transition: opacity .18s ease, transform .18s ease, fill .18s ease;
}
#geo .geo-point.is-active {
  fill: #E52629;
  opacity: 1;
  transform: scale(1.18);
}
#geo .geo-label.is-active {
  fill: rgba(29,29,27,.88);
}
#geo .hub-label { fill: rgba(29,29,27,.88); }


#geo .hub-glow {
  fill: #E52629;
  opacity: .22;
}
#geo .hub-core {
  fill: #E52629;
}
#geo .geo-hub {
  transform-box: fill-box;
  transform-origin: center;
  animation: etlHubPulse 2.6s ease-in-out infinite;
}
@keyframes etlHubPulse {
  0%   { transform: scale(1);   opacity: 1; }
  50%  { transform: scale(1.10); opacity: .85; }
  100% { transform: scale(1);   opacity: 1; }
}

#geo .geo-route {
  stroke: #E52629;
  stroke-width: 3.4;
  opacity: .10;
  transition: opacity .18s ease, stroke-width .18s ease;
  stroke-linecap: round;
  stroke-dasharray: 8 8;
  animation: etlRouteDash 14s linear infinite;
}
@keyframes etlRouteDash {
  to { stroke-dashoffset: -160; }
}
#geo .geo-route.is-active {
  opacity: .42;
  stroke-width: 3.8;
}

#geo .geo-legend rect {
  fill: rgba(255,255,255,.88);
  stroke: rgba(0,0,0,.06);
}
#geo .geo-legend circle {
  fill: #E52629;
}
#geo .geo-legend text {
  fill: rgba(29,29,27,.70);
  font-family: "Instrument Sans", system-ui;
}


/* === DT507_SAFE_GEO_SCANLIGHT: scan-light for geo routes, stabilize markers === */
#geo .geo-svg .geo-point.is-active{
  transform: none !important; /* no jumping */
}
#geo .geo-svg .geo-hub{
  animation: none !important; /* disable pulse transform */
}
#geo .geo-svg .hub-glow{
  animation: etlHubGlow 2.6s ease-in-out infinite;
}
@keyframes etlHubGlow{
  0%{ opacity: .18; }
  50%{ opacity: .34; }
  100%{ opacity: .18; }
}

/* Base routes stay calm */
#geo .geo-svg .geo-route{
  opacity: .14;
}

/* Scan-light overlay (created dynamically in JS as .geo-scan) */
#geo .geo-svg .geo-scan{
  stroke: #E52629;
  stroke-width: 5;
  opacity: .70;
  fill: none;
  filter: url(#etlGlow);
  stroke-linecap: round;
  stroke-dasharray: 18 240;
  animation: etlScanMove 1.35s linear infinite;
}
@keyframes etlScanMove{
  to{ stroke-dashoffset: -258; }
}


/* === DT507b_SAFE_GEO_SCANLIGHT_DOUBLE: add soft secondary scan layer === */
#geo .geo-svg .geo-scan-soft{
  stroke: #E52629;
  stroke-width: 10;
  opacity: .18;
  fill: none;
  filter: url(#etlGlow);
  stroke-linecap: round;
  stroke-dasharray: 34 280;
  animation: etlScanMoveSoft 1.65s linear infinite;
}
@keyframes etlScanMoveSoft{
  to{ stroke-dashoffset: -314; }
}

/* DT508_SAFE_GEO_RECENTER_SINGLESCAN: begin */
/* Keep only scan-light controls here; layout/centering is handled by premium layer */
#geo .geo-scan-soft,
#geo .geo-scan2,
#geo .geo-scan--soft {
  display: none !important;
  opacity: 0 !important;
}

/* Keep single scan light tasteful */
#geo .geo-scan,
#geo .geo-scan1,
#geo .geo-scan--hard {
  opacity: .72;
}
/* DT508_SAFE_GEO_RECENTER_SINGLESCAN: end */

/* DT509-DT512 legacy geo recenter rules were consolidated into premium_release_layer.css */
/* === SERVICE THEME CORE (общий язык для страниц услуг) === */
:root{
  --svc-accent: #E52629;          /* ETL red */
  --svc-ink: #0f1115;
  --svc-muted: #5f6672;
  --svc-card: #ffffff;
  --svc-line: rgba(15,17,21,.10);
  --svc-shadow: 0 18px 50px rgba(15,17,21,.08);
  --svc-radius: 28px;
}

/* Тема: море (sea.html) */
body.sea-page{
  --svc-hero-bg1: #0b1220;
  --svc-hero-bg2: #171a22;
  --svc-hero-grid: rgba(255,255,255,.06);
  --svc-hero-veil: rgba(229,38,41,.10); /* лёгкий ETL-red */
}

/* Тема: авто (avtoperevozka.html) */
body.avto-page{
  --svc-hero-bg1: #0d0f14;
  --svc-hero-bg2: #1b1c22;
  --svc-hero-grid: rgba(255,255,255,.06);
  --svc-hero-veil: rgba(229,38,41,.12);
}

/* === HERO === */
.svc-hero{
  margin: 28px auto 34px;
  border-radius: var(--svc-radius);
  overflow: hidden;
  box-shadow: var(--svc-shadow);
  background: radial-gradient(1200px 600px at 15% 15%, rgba(229,38,41,.18), transparent 55%),
              linear-gradient(135deg, var(--svc-hero-bg1), var(--svc-hero-bg2));
  position: relative;
}
.svc-hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(var(--svc-hero-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--svc-hero-grid) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity:.55;
  pointer-events:none;
}
.svc-hero::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(900px 420px at 78% 45%, rgba(255,255,255,.06), transparent 60%),
              radial-gradient(800px 420px at 18% 35%, var(--svc-hero-veil), transparent 55%);
  pointer-events:none;
}

.svc-hero-inner{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 22px;
  padding: 34px 34px;
  position: relative;
  z-index: 1;
}
@media (max-width: 980px){
  .svc-hero-inner{ grid-template-columns: 1fr; padding: 24px; }
}

.svc-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.82);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.svc-title{
  margin: 14px 0 10px;
  color:#fff;
  font-size: 44px;
  line-height: 1.02;
  letter-spacing: -0.02em;
}
.svc-lead{
  margin: 0 0 18px;
  color: rgba(255,255,255,.80);
  max-width: 56ch;
  font-size: 15.5px;
  line-height: 1.6;
}
.svc-pills{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px; }
.svc-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(229,38,41,.35);
  background: rgba(229,38,41,.10);
  color: rgba(255,255,255,.88);
  font-size: 13px;
}

.svc-media{
  border-radius: 22px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  min-height: 260px;
  position: relative;
  overflow:hidden;
}
.svc-media img{
  position:absolute;
  right: -10%;
  bottom: -10%;
  width: 120%;
  max-width: none;
  height:auto;
  opacity: .98;
  filter: drop-shadow(0 22px 40px rgba(0,0,0,.35));
  transform: rotate(-1deg);
}
@media (max-width: 980px){
  .svc-media{ min-height: 220px; }
  .svc-media img{ right:-14%; width: 130%; }
}

/* === Секции ниже: чтобы не было “пусто”, но и не тесно === */
.svc-section{ padding: 26px 0; }
.svc-h2{
  margin: 0 0 10px;
  font-size: 26px;
  letter-spacing: -.01em;
  color: var(--svc-ink);
}
.svc-sub{ margin:0 0 18px; color: var(--svc-muted); max-width: 70ch; }

.svc-grid3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 980px){
  .svc-grid3{ grid-template-columns: 1fr; }
}
.svc-card{
  background: var(--svc-card);
  border: 1px solid var(--svc-line);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 10px 30px rgba(15,17,21,.04);
}
.svc-card h3{ margin: 0 0 8px; font-size: 15.5px; }
.svc-card p{ margin: 0; color: var(--svc-muted); line-height: 1.55; font-size: 14px; }

/* === DT618_SAFE_HIDE_LEGACY_DROPDOWN_OVERRIDES BEGIN ===
   Some pages still render a second (legacy) dropdown UI.
   We keep the unified dropdown (.p-dd inside .p-has-dropdown) and hide legacy containers.
*/
.dropdown,
.dropdown-menu,
.etl-dd,
.etl-dropdown,
.dd,
.dd-menu,
.dd-open,
.nav-dropdown,
.services-dropdown,
.services__dropdown,
.nav-services-dropdown,
[data-dropdown],
[data-dd]{
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Ensure unified dropdown is not affected */
.p-has-dropdown .p-dd{
  display: none;
}
.p-has-dropdown.is-open .p-dd{
  display: block;
}
/* === DT618_SAFE_HIDE_LEGACY_DROPDOWN_OVERRIDES END === */

/* === DT999_SAFE_BTT_FOOTER_FINAL_HOTFIX === */
/* Keep back-to-top visible/working in both themes */
#etlBtt.etl-uibtt {
  position: fixed !important;
  right: 26px !important;
  bottom: 26px !important;
  z-index: 20050 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(14px) !important;
  pointer-events: none !important;
  display: flex !important;
}
#etlBtt.etl-uibtt.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}
html[data-theme="dark"] #etlBtt.etl-uibtt {
  background: linear-gradient(180deg, #1a1a1a, #111111) !important;
  border: 1px solid rgba(229, 38, 41, 0.45) !important;
  box-shadow:
    0 0 0 1px rgba(229, 38, 41, 0.28),
    0 12px 26px rgba(0, 0, 0, 0.44) !important;
}
@media (max-width: 768px) {
  #etlBtt.etl-uibtt {
    right: 14px !important;
    bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important;
    width: 46px !important;
    height: 46px !important;
  }
}

/* Compact footer without losing structure */
footer {
  padding-top: 6px !important;
  padding-bottom: 2px !important;
}
footer .footer-grid {
  gap: 6px !important;
}
footer .footer-col {
  gap: 1px !important;
  padding: 0 2px !important;
}
footer .footer-col:nth-child(2) .footer-links {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 8px !important;
  row-gap: 1px !important;
}
footer .footer-h {
  font-size: 12px !important;
  margin-bottom: 2px !important;
}
footer .footer-links a,
footer .footer-text {
  font-size: 12px !important;
  line-height: 1.28 !important;
}
footer .footer-presence-list {
  font-size: 11.5px !important;
}
footer .footer-bottom {
  margin-top: 2px !important;
  padding-top: 3px !important;
}
@media (max-width: 1200px) {
  footer .footer-col:nth-child(2) .footer-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 980px) {
  body#top footer {
    padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
  }
  body#top footer.mobile-app-footer-ready {
    padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
  }
  body#top footer.mobile-app-footer-ready .m-app-footer {
    gap: 6px !important;
    padding: 8px 10px !important;
  }
  body#top footer.mobile-app-footer-ready .m-app-footer__btn {
    min-height: 34px !important;
    font-size: 10.5px !important;
  }
}

@media (max-width: 768px) {
  body#top.index-page footer,
  body#top.index-page footer.mobile-app-footer-ready {
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Footer corner watermark pinned to bottom after footer compaction */
footer::after {
  top: auto !important;
  bottom: 0 !important;
  background-position: right bottom !important;
}

/* ============================================================
   BREADCRUMBS — глобальные стили
   ============================================================ */
.breadcrumb {
  padding: 10px 0 0;
}
.breadcrumb .container,
.breadcrumb__inner {
  max-width: 1440px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 48px);
}
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 12.5px;
  line-height: 1.4;
}
.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(29,29,27,0.48);
}
.breadcrumb__item + .breadcrumb__item::before {
  content: "/";
  color: rgba(29,29,27,0.28);
  font-size: 11px;
}
.breadcrumb__link {
  color: rgba(29,29,27,0.52);
  text-decoration: none;
  transition: color 0.15s ease;
}
.breadcrumb__link:hover {
  color: #E52629;
}
.breadcrumb__item--current {
  color: rgba(29,29,27,0.72);
  font-weight: 500;
}

/* Хлебные крошки на страницах со светлым .page-head или .svc-hero */
.page-head .breadcrumb,
.svc-hero .breadcrumb {
  padding-top: 0;
  margin-bottom: 6px;
}

/* Dark mode */
html[data-theme="dark"] .breadcrumb__item {
  color: rgba(255,255,255,0.38);
}
html[data-theme="dark"] .breadcrumb__item + .breadcrumb__item::before {
  color: rgba(255,255,255,0.20);
}
html[data-theme="dark"] .breadcrumb__link {
  color: rgba(255,255,255,0.42);
}
html[data-theme="dark"] .breadcrumb__link:hover {
  color: #E52629;
}
html[data-theme="dark"] .breadcrumb__item--current {
  color: rgba(255,255,255,0.68);
}

/* NIC final: iOS-style switches should use red fill without glow */
.theme-switch,
.theme-switch[aria-checked="true"],
.theme-switch__thumb,
.calc-switch .calc-switch-ui,
.calc-switch input[type="checkbox"]:checked + .calc-switch-ui,
html[data-theme="dark"] .calc-switch .calc-switch-ui,
html[data-theme="dark"] .calc-switch input[type="checkbox"]:checked + .calc-switch-ui {
  box-shadow: none !important;
}

.theme-switch:focus-visible,
.calc-switch input[type="checkbox"]:focus-visible + .calc-switch-ui {
  outline: none !important;
  box-shadow: none !important;
}

.theme-switch[aria-checked="true"] {
  background: #e52629 !important;
  border-color: #e52629 !important;
}

html[data-theme="dark"] .theme-switch[aria-checked="true"] {
  background: #e52629 !important;
  border-color: #e52629 !important;
}

.theme-switch[aria-checked="true"] .theme-switch__thumb {
  background: #ffffff !important;
}

.calc-switch input[type="checkbox"]:checked + .calc-switch-ui,
html[data-theme="dark"] .calc-switch input[type="checkbox"]:checked + .calc-switch-ui {
  background: #e52629 !important;
  border-color: #e52629 !important;
}

.calc-switch .calc-switch-ui,
html[data-theme="dark"] .calc-switch .calc-switch-ui,
html[data-theme="dark"] body#top.index-page #calculator .calc-switch input[type="checkbox"]:not(:checked) + .calc-switch-ui {
  background: rgba(15,23,42,.14) !important;
  background-image: none !important;
  border-color: rgba(0,0,0,.18) !important;
  box-shadow: none !important;
}

html[data-theme="dark"] .calc-switch input[type="checkbox"]:checked + .calc-switch-ui,
html[data-theme="dark"] body#top.index-page #calculator .calc-switch input[type="checkbox"]:checked + .calc-switch-ui,
body#top.index-page #calculator .calc-switch input[type="checkbox"]:checked + .calc-switch-ui {
  background: #e52629 !important;
  background-image: none !important;
  border-color: #e52629 !important;
  box-shadow: none !important;
}

/* На cargo/route страницах .page-head уже имеет padding */
.cargo-head .breadcrumb__inner,
.blog-head .breadcrumb__inner {
  padding-inline: 0;
}

/* ============================================================
   STICKY CTA BAR — фиксированная полоска внизу экрана
   ============================================================ */
.etl-sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 900;
  background: #1D1D1B;
  border-top: 1px solid rgba(229,38,41,0.35);
  box-shadow: 0 -4px 24px rgba(0,0,0,0.22);
  padding: 10px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transform: translateY(100%);
  opacity: 0;
  transition: transform 0.38s cubic-bezier(0.4,0,0.2,1), opacity 0.38s ease;
  will-change: transform;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}
.etl-sticky-cta.is-visible {
  transform: translateY(0);
  opacity: 1;
}
.etl-sticky-cta__text {
  font-size: 13px;
  line-height: 1.35;
  color: rgba(255,255,255,0.72);
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
}
.etl-sticky-cta__text strong {
  color: #fff;
  display: block;
  font-size: 14px;
  margin-bottom: 2px;
}
.etl-sticky-cta__text span {
  display: block;
}
.etl-sticky-cta__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.etl-sticky-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #E52629;
  color: #fff !important;
  font-size: 13.5px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 8px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.18s ease, box-shadow 0.18s ease;
  box-shadow: 0 4px 14px rgba(229,38,41,0.32);
}
.etl-sticky-cta__btn:hover {
  background: #c41f22;
  box-shadow: 0 6px 20px rgba(229,38,41,0.42);
}
.etl-sticky-cta__phone {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(255,255,255,0.88) !important;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease;
}
.etl-sticky-cta__phone:hover {
  color: #fff !important;
}
.etl-sticky-cta__close {
  background: none;
  border: none;
  cursor: pointer;
  color: rgba(255,255,255,0.4);
  padding: 4px;
  line-height: 1;
  transition: color 0.15s ease;
  flex-shrink: 0;
  font-size: 18px;
}
.etl-sticky-cta__close:hover {
  color: rgba(255,255,255,0.85);
}

/* Поднимаем кнопку "вверх" над полоской */
#etlBtt.etl-uibtt {
  bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  transition: bottom 0.3s ease, opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease !important;
}
body.etl-cta-hidden #etlBtt.etl-uibtt,
body:not(.etl-cta-shown) #etlBtt.etl-uibtt {
  bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
}
body.etl-cta-shown #etlBtt.etl-uibtt {
  bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
}

@media (max-width: 640px) {
  .etl-sticky-cta {
    padding: 10px 12px;
    gap: 8px;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .etl-sticky-cta__text {
    width: 100%;
  }
  .etl-sticky-cta__btn {
    font-size: 13px;
    padding: 8px 14px;
  }
  .etl-sticky-cta__phone {
    font-size: 13px;
  }
}

@media (max-width: 768px) {
  #indexStickyCta,
  #etlBtt.etl-uibtt {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
@media (max-width: 400px) {
  .etl-sticky-cta__actions {
    width: 100%;
  }
  .etl-sticky-cta__btn,
  .etl-sticky-cta__phone {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* Светлая тема */
html:not([data-theme="dark"]) .etl-sticky-cta {
  background: #1D1D1B;
}
/* Тёмная тема */
html[data-theme="dark"] .etl-sticky-cta {
  background: #111110;
  border-top-color: rgba(229,38,41,0.28);
  box-shadow: 0 -4px 28px rgba(0,0,0,0.45);
}

/* ============================================================
   MESSENGER FLOAT — плавающие кнопки Telegram + WhatsApp
   ============================================================ */
.etl-msg-float {
  position: fixed;
  left: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 890;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
}
.etl-msg-float.is-visible {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
body.etl-cta-shown .etl-msg-float {
  bottom: calc(72px + 10px + env(safe-area-inset-bottom, 0px));
}
.etl-msg-float__btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.22);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  flex-shrink: 0;
}
.etl-msg-float__btn:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 22px rgba(0,0,0,0.3);
}
.etl-msg-float__btn--tg {
  background: linear-gradient(180deg, #2AABEE, #229ED9);
}
.etl-msg-float__btn--wa {
  background: #25D366;
}
.etl-msg-float__btn svg {
  width: 26px;
  height: 26px;
  fill: #fff;
}
/* Tooltip при наведении */
.etl-msg-float__btn::before {
  content: attr(data-tip);
  position: absolute;
  left: 56px;
  background: rgba(29,29,27,0.92);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}
.etl-msg-float__btn:hover::before {
  opacity: 1;
}
@media (max-width: 640px) {
  .etl-msg-float {
    left: 12px;
  }
  .etl-msg-float__btn {
    width: 44px;
    height: 44px;
  }
  .etl-msg-float__btn::before {
    display: none;
  }
}

/* ── Lead popup ────────────────────────────────────────────────── */
.etl-lead-popup {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease;
}
.etl-lead-popup.is-open {
  opacity: 1;
  pointer-events: auto;
}
.etl-lead-popup__box {
  position: relative;
  background: #fff;
  border-radius: 16px;
  padding: 36px 32px 28px;
  max-width: 400px;
  width: 100%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
  transform: translateY(24px);
  transition: transform 0.3s ease;
}
.etl-lead-popup.is-open .etl-lead-popup__box {
  transform: translateY(0);
}
html[data-theme="dark"] .etl-lead-popup__box {
  background: #1a1a1a;
  color: #f0f0f0;
}
.etl-lead-popup__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  cursor: pointer;
  color: #888;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  transition: background 0.15s;
}
.etl-lead-popup__close:hover { background: rgba(0,0,0,0.07); color: #333; }
html[data-theme="dark"] .etl-lead-popup__close:hover { background: rgba(255,255,255,0.1); color: #eee; }
.etl-lead-popup__badge {
  display: inline-block;
  background: #E52629;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 16px;
}
.etl-lead-popup__icon {
  margin: 0 auto 16px;
  width: 48px;
  height: 48px;
}
.etl-lead-popup__title {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 10px;
  color: #1D1D1B;
}
html[data-theme="dark"] .etl-lead-popup__title { color: #f0f0f0; }
.etl-lead-popup__sub {
  font-size: 14px;
  color: #575756;
  line-height: 1.5;
  margin: 0 0 20px;
}
html[data-theme="dark"] .etl-lead-popup__sub { color: #aaa; }
.etl-lead-popup__form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}
.etl-lead-popup__input {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  font-size: 15px;
  outline: none;
  transition: border-color 0.18s;
  background: #fff;
  color: #1D1D1B;
  box-sizing: border-box;
}
.etl-lead-popup__input:focus { border-color: #E52629; }
html[data-theme="dark"] .etl-lead-popup__input {
  background: #262626;
  border-color: #3a3a3a;
  color: #f0f0f0;
}
.etl-lead-popup__submit {
  width: 100%;
  padding: 13px;
  background: #E52629;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s, transform 0.12s;
}
.etl-lead-popup__submit:hover { background: #c41f22; transform: translateY(-1px); }
.etl-lead-popup__submit:disabled { opacity: 0.7; cursor: default; transform: none; }
.etl-lead-popup__hint {
  font-size: 11px;
  color: #aaa;
  margin: 0;
  line-height: 1.5;
}
.etl-lead-popup__hint a { color: inherit; text-decoration: underline; }
.etl-lead-popup__thanks {
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.etl-lead-popup__thanks h3 {
  font-size: 22px;
  font-weight: 700;
  margin: 0;
  color: #1D1D1B;
}
html[data-theme="dark"] .etl-lead-popup__thanks h3 { color: #f0f0f0; }
.etl-lead-popup__thanks p {
  font-size: 14px;
  color: #575756;
  margin: 0;
  line-height: 1.5;
  text-align: center;
}
html[data-theme="dark"] .etl-lead-popup__thanks p { color: #aaa; }
.etl-lead-popup__close-thanks {
  margin-top: 8px;
  padding: 10px 28px;
  border: 1.5px solid #ddd;
  background: transparent;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  color: #575756;
  transition: border-color 0.15s;
}
.etl-lead-popup__close-thanks:hover { border-color: #E52629; color: #E52629; }
@media (max-width: 480px) {
  .etl-lead-popup__box { padding: 28px 20px 22px; border-radius: 12px; }
  .etl-lead-popup__title { font-size: 19px; }
}

/* ── Похожие услуги — мобильный адаптив ────────────────────────── */
@media (max-width: 640px) {
  [id$="-related-h"] + div,
  .sea-rel-grid {
    grid-template-columns: 1fr !important;
  }
}
@media (min-width: 641px) and (max-width: 900px) {
  [id$="-related-h"] + div,
  .sea-rel-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 768px) {
  .etl-promo {
    display: none !important;
  }
}

/* Global mobile cleanup after replacing legacy bottom navigation */
@media (max-width: 768px) {
  body#top.etl-monolith-nav-ready {
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
  }

  body#top.etl-monolith-nav-ready footer,
  body#top.etl-monolith-nav-ready footer.mobile-app-footer-ready {
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)) !important;
  }

  body#top.etl-monolith-nav-ready #m-bottom-nav,
  body#top.etl-monolith-nav-ready .m-app-footer,
  body#top.etl-monolith-nav-ready .p-mobile-menu,
  body#top.etl-monolith-nav-ready .p-mobile-menu-btn {
    display: none !important;
  }

  body#top.etl-monolith-nav-ready {
    overflow-x: clip !important;
  }

  body#top.etl-monolith-nav-ready main,
  body#top.etl-monolith-nav-ready section,
  body#top.etl-monolith-nav-ready footer,
  body#top.etl-monolith-nav-ready .container {
    max-width: 100% !important;
  }
}

@media (max-width: 1024px) {
  body#top {
    overflow-x: hidden !important;
  }

  body#top img,
  body#top svg,
  body#top video,
  body#top iframe {
    max-width: 100%;
  }

  body#top .table-wrap,
  body#top .table-scroll,
  body#top .table-responsive,
  body#top .pricing-table-wrap,
  body#top .pdf-table-wrap,
  body#top .pdf-library,
  body#top .doc-library,
  body#top .schedule-table-wrap {
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body#top :is(
    a.btn,
    button,
    .btn,
    .btn-primary,
    .btn-outline,
    .btn-ghost,
    .etl-sidebar-btn,
    summary,
    .p-link,
    .p-mobile-link
  ) {
    min-height: 44px;
  }

  body#top :is(input, select, textarea) {
    min-height: 44px;
    font-size: 16px;
  }
}
@media (max-width: 768px) {
  body#top footer {
    padding-top: 16px !important;
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body#top footer .footer-grid {
    gap: 14px !important;
  }

  body#top footer .footer-col {
    gap: 10px !important;
    padding: 12px 0 !important;
  }

  body#top footer .footer-col + .footer-col {
    padding-top: 12px !important;
  }

  body#top footer .footer-h {
    font-size: 14px !important;
    margin-bottom: 6px !important;
  }

  body#top footer .footer-links {
    gap: 8px !important;
  }

  body#top footer .footer-links a,
  body#top footer .footer-text,
  body#top footer .footer-city-contact span,
  body#top footer .footer-bottom {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  body#top footer .footer-city-link {
    min-height: 34px !important;
    padding: 6px 11px !important;
    font-size: 12px !important;
  }

  body#top footer .footer-social.footer-social--pack .footer-social__link--pack {
    width: 40px !important;
    height: 40px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer {
    padding: 12px 14px !important;
    gap: 10px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__brand-text strong {
    font-size: 14px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__brand-text span {
    font-size: 12px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__btn {
    min-height: 42px !important;
    font-size: 12.5px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__chips a {
    min-height: 32px !important;
    font-size: 11px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__meta {
    font-size: 11.5px !important;
    gap: 6px !important;
  }
}

@media (max-width: 1024px) and (orientation: landscape) and (max-height: 540px) {
  body#top footer {
    padding-top: 12px !important;
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body#top footer .footer-grid {
    gap: 10px !important;
  }

  body#top footer .footer-h {
    font-size: 13px !important;
  }

  body#top footer .footer-links a,
  body#top footer .footer-text,
  body#top footer .footer-city-contact span,
  body#top footer .footer-bottom {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
}

/* FINAL MOBILE FOOTER UX PASS */
@media (max-width: 768px) {
  body#top footer {
    padding-top: 20px !important;
    padding-bottom: calc(22px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body#top footer .footer-grid {
    gap: 18px !important;
  }

  body#top footer .footer-col {
    gap: 12px !important;
    padding: 14px 0 !important;
  }

  body#top footer .footer-col + .footer-col {
    padding-top: 14px !important;
  }

  body#top footer .footer-h {
    font-size: 15px !important;
    margin-bottom: 8px !important;
  }

  body#top footer .footer-links {
    gap: 10px !important;
  }

  body#top footer .footer-links a,
  body#top footer .footer-text,
  body#top footer .footer-city-contact span,
  body#top footer .footer-bottom {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  body#top footer .footer-links a,
  body#top footer .footer-city-link,
  body#top footer .footer-social__link,
  body#top footer .footer-social__link--pack {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  body#top footer .footer-city-link {
    padding: 8px 14px !important;
    font-size: 13px !important;
    min-height: 40px !important;
  }

  body#top footer .footer-social.footer-social--pack .footer-social__link--pack {
    width: 44px !important;
    height: 44px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer {
    padding: 16px 16px !important;
    gap: 12px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__brand-text strong {
    font-size: 15px !important;
    line-height: 1.25 !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__brand-text span {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__actions {
    gap: 10px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__btn {
    min-height: 46px !important;
    font-size: 13px !important;
    border-radius: 12px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__chips {
    gap: 8px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__chips a {
    min-height: 36px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__meta {
    font-size: 12px !important;
    gap: 8px !important;
  }
}

@media (max-width: 1024px) and (orientation: landscape) and (max-height: 540px) {
  body#top footer {
    padding-top: 12px !important;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body#top footer .footer-grid {
    gap: 12px !important;
  }

  body#top footer .footer-h {
    font-size: 13px !important;
  }

  body#top footer .footer-links a,
  body#top footer .footer-text,
  body#top footer .footer-city-contact span,
  body#top footer .footer-bottom {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  body#top footer.mobile-app-footer-ready .m-app-footer__btn {
    min-height: 40px !important;
    font-size: 12px !important;
  }
}

/* Unified service icons: sea.html is the reference */
body.service-page :is(.svc-icon, .svc-ico) {
  position: relative !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 15px !important;
  border: 1px solid rgba(12,19,30,.10) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(241,245,250,.92)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 8px 18px rgba(10,18,30,.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: rgba(18,24,34,.92) !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
}

body.service-page :is(.svc-icon, .svc-ico)::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 3px !important;
  background: linear-gradient(180deg, rgba(229,38,41,.96), rgba(160,24,27,.88)) !important;
}

body.service-page :is(.svc-icon, .svc-ico)::after {
  content: "" !important;
  position: absolute !important;
  inset: 8px !important;
  border-radius: 11px !important;
  border: 1px solid rgba(12,19,30,.06) !important;
  pointer-events: none !important;
}

body.service-page :is(.svc-icon, .svc-ico) i {
  position: relative !important;
  z-index: 1 !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

html[data-theme="dark"] body.service-page :is(.svc-icon, .svc-ico) {
  border-color: rgba(255,255,255,.08) !important;
  background: linear-gradient(180deg, rgba(26,26,26,.96), rgba(14,14,14,.98)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 10px 22px rgba(0,0,0,.28) !important;
  color: rgba(245,247,250,.94) !important;
}

html[data-theme="dark"] body.service-page :is(.svc-icon, .svc-ico)::after {
  border-color: rgba(255,255,255,.08) !important;
}

/* DT_CURSOR_FIX: явное cursor:none на интерактивных элементах.
   Специфичность (0,1,2) > (0,1,1) у html.etl-cursor-on * — устраняет
   браузерный «флэш» нативного курсора на <a>, <button>, summary при
   CSS-переходах и быстрых движениях мыши. */
html.etl-cursor-on a,
html.etl-cursor-on a:hover,
html.etl-cursor-on a:focus,
html.etl-cursor-on button,
html.etl-cursor-on button:hover,
html.etl-cursor-on summary,
html.etl-cursor-on [role="button"],
html.etl-cursor-on [data-href],
html.etl-cursor-on .is-clickable {
  cursor: none !important;
}

/* DT_CURSOR_FIX_MAGNETIC: зеркальные правила для класса от global_nav_footer_theme.js
   на страницах без main.js (cases, privacy, reviews и др.) */
html.etl-magnetic-cursor-on a,
html.etl-magnetic-cursor-on a:hover,
html.etl-magnetic-cursor-on a:focus,
html.etl-magnetic-cursor-on button,
html.etl-magnetic-cursor-on button:hover,
html.etl-magnetic-cursor-on summary,
html.etl-magnetic-cursor-on [role="button"],
html.etl-magnetic-cursor-on [data-href],
html.etl-magnetic-cursor-on .is-clickable {
  cursor: none !important;
}

/* DT_CURSOR_FIX_BURGER: специфичность (1,2,1) перебивает nav_dark_monolith
   body#top #p-header.p-header .p-burger (1,2,1) — последнее правило побеждает */
html.etl-cursor-on body#top #p-header .p-burger,
html.etl-magnetic-cursor-on body#top #p-header .p-burger {
  cursor: none !important;
}

/* DT_MOBILE_FIX_IOS_ZOOM: iOS Safari автозумирует страницу при фокусе на input/select/textarea
   если font-size < 16px. Применяем глобально на всех страницах для всех полей ввода. */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="range"]):not([type="file"]),
  select,
  textarea {
    font-size: max(16px, 1em) !important;
  }
}

/* DT_MOBILE_FIX_GRID: inline repeat(4,1fr) и .svc-kpis не адаптируются на мобильных —
   на 640px переходим к 2 колонкам, на 480px к 1 колонке. */
@media (max-width: 640px) {
  [style*="grid-template-columns:repeat(4,1fr)"],
  .svc-kpis {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  [style*="grid-template-columns:repeat(4,1fr)"],
  .svc-kpis {
    grid-template-columns: 1fr !important;
  }
}

/* DT_MOBILE_FIX_TABLE: таблицы route-table и svc-spec-table могут выходить за пределы экрана.
   На мобильных делаем block + overflow-x:auto для горизонтального скролла. */
@media (max-width: 768px) {
  .route-table,
  .svc-spec-table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}
