/* =====================================================================
   Monobrand Auto — Homepage theme layer (Bootstrap 5)
   v3 — Haval-accurate: graphite + white, SHARP corners, uppercase,
   photo-editorial cards, mint accent used as a whisper.
   Modelled on haval.ru / geely-motors.com / haval-official.com.
   ===================================================================== */

:root {
  --accent:      #00cabf;   /* Haval mint — used only on micro-accents */
  --ink:         #23272e;   /* soft charcoal — not pure black */
  --ink-2:       #2b3039;
  --paper:       #ffffff;
  --paper-2:     #f2f3f4;   /* light section bg (haval gray) */
  --paper-3:     #e7e9ea;   /* render backdrop */
  --line:        #e3e5e7;
  --line-dark:   rgba(255,255,255,.12);
  --text:        #121314;
  --muted:       #626970;
  --muted-2:     #9aa0a6;

  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: var(--text);
  --bs-border-radius: .5rem;
  --bs-border-radius-lg: .625rem;
  --radius: .5rem;       /* 8px  — cards, media, tiles */
  --radius-sm: .375rem;  /* 6px  — buttons, inputs, chips */
}

/* subtle rounding (Geely-style) on contained elements */
.model-card,.stock-card,.trim,.mega,.map-embed,.frow-media,.gallery-cell,.tile { border-radius: var(--radius); }
/* media inside cards: top corners clipped by the card (overflow:hidden), bottom flush — no own radius */
.model-card,.stock-card { overflow:hidden; }
.btn,.form-control,.form-select,.mega-item,.mega-thumb,.stock-badge,
.model-flag,.stock-flag,.trim .tag,.badge { border-radius: var(--radius-sm); }

html { scroll-behavior: smooth; }
/* overflow-x:clip (not hidden) — clips horizontal overflow WITHOUT creating a
   scroll container, so the sticky header (.nav-glass) actually pins to the top */
html { overflow-x: clip; }
body { background: var(--paper); overflow-x: clip; max-width: 100%; letter-spacing:.005em; }

/* ---------- Typography helpers ---------- */
.fw-600 { font-weight:600; } .fw-700 { font-weight:700; } .fw-800 { font-weight:800; }
.up  { text-transform: uppercase; letter-spacing:.12em; }
.up-2 { text-transform: uppercase; letter-spacing:.18em; }
.text-accent { color: var(--accent) !important; }
.text-muted-x { color: var(--muted) !important; }
.bg-ink   { background: var(--ink) !important; }
.section  { --section-bg:var(--paper); --section-hover-bg:#fff; padding: clamp(3.5rem, 6vw, 6rem) 0; }
.bg-paper-2 { --section-bg:var(--paper-2); --section-hover-bg:#fff; background: var(--paper-2) !important; }
.bg-white { --section-bg:#fff; --section-hover-bg:var(--paper-2); }

.eyebrow { font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color: var(--muted); }
.head { text-transform:uppercase; letter-spacing:.06em; font-weight:800; line-height:1.02; overflow-wrap:break-word; }
h1, h2, h3, .head, p { overflow-wrap:break-word; }
@media (max-width:575.98px){ .head.h1 { font-size:1.65rem; } }
.head-center { text-align:center; }
.head-center .eyebrow { display:block; margin-bottom:.6rem; }

/* ---------- Buttons: sharp, uppercase, arrow ---------- */
.btn {
  --bs-btn-font-weight:700;
  border-radius:var(--radius-sm); text-transform:uppercase; letter-spacing:.1em;
  font-size:.76rem; font-weight:700; padding:.85rem 1.5rem;
  display:inline-flex; align-items:center; gap:.6rem; transition:.18s;
}
.btn-lg { font-size:.82rem; padding:1rem 1.9rem; }
.btn .bi-arrow-right { transition: transform .2s; }
.btn:hover .bi-arrow-right { transform: translateX(4px); }

.btn-solid { background: var(--ink); color:#fff; border:1px solid var(--ink); }
.btn-solid:hover { background:#000; color:#fff; }
.btn-light { background:#fff; color:var(--ink); border:1px solid #fff; }
.btn-light:hover { background:transparent; color:#fff; border-color:#fff; }
.btn-outline-ink { background:transparent; color:var(--ink); border:1px solid var(--ink); }
.btn-outline-ink:hover { background:var(--ink); color:#fff; }
.btn-outline-light { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55); }
.btn-outline-light:hover { background:#fff; color:var(--ink); border-color:#fff; }

/* Card CTA — text + arrow link (instead of heavy filled buttons in cards) */
.card-link { display:inline-flex; align-items:center; gap:.4rem; font-size:.85rem; font-weight:700; color:var(--ink); text-decoration:none; }
.card-link:hover { color:var(--muted); }
.card-link .bi { transition:transform .2s; }
.card-link:hover .bi { transform:translateX(3px); }

/* Filter chips (pills) */
.chip { display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line); border-radius:999px;
  padding:.55rem 1.15rem; font-weight:600; font-size:.85rem; color:#3d414a; background:#fff; cursor:pointer;
  transition:background .18s, color .18s, border-color .18s; white-space:nowrap; -webkit-appearance:none; appearance:none; }
.chip:hover { border-color:#c9cdd4; color:var(--ink); }
.chip.active { background:var(--ink); color:#fff; border-color:var(--ink); }

/* Prose / plain info page content */
.page-prose { max-width:820px; }
.page-prose-wide { max-width:100%; }
.page-prose-wide > p,
.page-prose-wide > ul,
.page-prose-wide > ol { max-width:920px; }
.page-prose-wide .wp-block-image { margin:0 0 2rem; }
.page-prose-wide .wp-block-image img { width:100%; height:auto; }
.page-prose-wide .wp-block-group,
.page-prose-wide .wp-block-columns,
.page-prose-wide .wp-block-cover,
.page-prose-wide .wp-block-table { max-width:100%; }
.page-prose > p { color:var(--muted); line-height:1.78; margin-bottom:1.15rem; }
.page-prose h2 { text-transform:uppercase; letter-spacing:.03em; font-weight:800; font-size:1.35rem; margin:2.2rem 0 .8rem; color:var(--ink); }
.page-prose h3 { font-weight:800; font-size:1.05rem; margin:1.6rem 0 .5rem; color:var(--ink); }
.page-prose ul { color:var(--muted); line-height:1.7; padding-left:1.2rem; margin-bottom:1.15rem; }
.page-prose li { margin-bottom:.4rem; }
.page-prose a { color:var(--ink); }
.page-prose .lead { font-size:1.05rem; color:var(--text); line-height:1.65; }
.model-editorial { border-bottom:1px solid var(--line); }
.model-editorial .model-editorial-content { width:100%; max-width:none; }
.model-editorial .model-editorial-content > .alignwide,
.model-editorial .model-editorial-content > .alignfull,
.model-editorial .model-editorial-content > .wp-block-group { width:100%; max-width:none; margin-inline:0; }
.model-editorial .wp-block-image img { height:auto; max-width:100%; }

/* Horizontal scroll rail (carousel) */
.hscroll { display:flex; gap:1rem; overflow-x:auto; padding-bottom:.85rem; scroll-snap-type:x proximity; }
.hscroll > .hcol { flex:0 0 300px; max-width:300px; scroll-snap-align:start; }
.hscroll::-webkit-scrollbar { height:6px; }
.hscroll::-webkit-scrollbar-track { background:transparent; }
.hscroll::-webkit-scrollbar-thumb { background:#d3d7dc; border-radius:3px; }
@media (max-width:575.98px){ .hscroll > .hcol { flex-basis:82vw; max-width:82vw; } }

/* "Show all" link centered under a block (text + arrow, not a button) */
.more-link { display:inline-flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ink); text-decoration:none; }
.more-link:hover { color:var(--muted); }
.more-link .bi { transition:transform .2s; }
.more-link:hover .bi { transform:translateX(4px); }

/* ---------- Header / Nav (light) ---------- */
.site-nav { background:#fff; border-bottom:1px solid var(--line); }
.site-nav .navbar-brand { font-weight:800; letter-spacing:.3em; color:var(--ink); font-size:1.25rem; }
.site-nav .navbar-toggler { color:var(--ink); }
.site-nav .nav-link {
  color:#3a3f45 !important; font-weight:600; font-size:.8rem; letter-spacing:.1em;
  text-transform:uppercase; padding:.55rem .8rem !important; position:relative; white-space:nowrap;
}
.site-nav .brand {
  color:var(--ink); font-weight:800; letter-spacing:.22em; text-transform:uppercase;
  font-size:1rem; line-height:1.1; text-decoration:none; max-width:220px;
  white-space:normal; overflow-wrap:anywhere;
}
.site-nav.nav-overlay:not(.nav-solid) .brand { color:#fff; }
.site-nav.nav-overlay.nav-solid .brand { color:var(--ink); }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color:var(--ink) !important; }
.site-nav .nav-link.active::after {
  content:""; position:absolute; left:.8rem; right:.8rem; bottom:-.3rem; height:2px; background:var(--ink);
}

/* Top utility bar */
.topbar { background:var(--paper-2); border-bottom:1px solid var(--line); font-size:.8rem; color:var(--muted); }
.topbar-fixed { position:fixed; top:0; left:0; right:0; z-index:1032; }
.topbar a { color:var(--muted); text-decoration:none; }
.topbar a:hover { color:var(--ink); }
.topbar .tp-phone { color:var(--ink); font-weight:700; }
.nav-cta { color:var(--ink); text-transform:uppercase; letter-spacing:.1em; font-size:.78rem; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap; }
.nav-cta:hover { color:var(--muted); }
.nav-cta .ico { width:20px; height:20px; flex:0 0 auto; }
.nav-cta-button { padding:0; background:none; border:0; }
.nav-phone { color:var(--ink); font-weight:700; letter-spacing:.02em; font-size:.9rem; text-decoration:none; white-space:nowrap; }
.nav-phone:hover { color:var(--muted); }
/* icon-only header action (like Tenet) */
.nav-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; color:#3a3f45; font-size:1.2rem; text-decoration:none; transition:color .15s; }
.nav-icon:hover { color:var(--ink); }
.site-nav.nav-overlay .nav-icon { color:#fff; }
.site-nav.nav-overlay.nav-solid .nav-icon { color:var(--ink); }

/* Scroll-to-top button (all devices). Keep the lower-right Calltouch zone clear. */
/* same frosted glass as the header (.nav-glass / .nav-solid): white translucent + blur, dark ink arrow */
.to-top { position:fixed; right:1.1rem; bottom:calc(7rem + env(safe-area-inset-bottom, 0px)); z-index:1040; width:46px; height:46px; display:grid; place-items:center;
  background:rgba(255,255,255,.82); -webkit-backdrop-filter:saturate(180%) blur(16px); backdrop-filter:saturate(180%) blur(16px);
  border:1px solid var(--line); color:var(--ink); border-radius:.65rem; font-size:1.15rem;
  box-shadow:0 12px 30px -16px rgba(0,0,0,.45); cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .25s, transform .25s, background .2s, color .2s; }
.to-top.show { opacity:1; visibility:visible; transform:none; }
.to-top:hover { background:var(--ink); color:#fff; border-color:var(--ink); }

/* ===== Mobile off-canvas drill-down menu ===== */
body.mmenu-open { overflow:hidden; }
.mmenu { position:fixed; inset:0; z-index:1090; background:rgba(255,255,255,.8);
  -webkit-backdrop-filter:saturate(180%) blur(24px); backdrop-filter:saturate(180%) blur(24px); display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.mmenu.open { transform:none; }
.mmenu-head { display:flex; align-items:center; justify-content:space-between; padding:.75rem 1.25rem; border-bottom:1px solid var(--line); min-height:60px; }
.mmenu-head .brand { color:var(--ink); font-weight:800; letter-spacing:.28em; font-size:1.1rem; text-decoration:none; }
.mmenu-x { background:none; border:0; color:var(--ink); font-size:1.5rem; line-height:1; display:inline-flex; padding:.2rem; }
.mmenu-body { position:relative; flex:1 1 auto; overflow:hidden; }
.mmenu-track { display:flex; width:200%; height:100%; transition:transform .3s cubic-bezier(.4,0,.2,1); }
.mmenu.at-sub .mmenu-track { transform:translateX(-50%); }
.mmenu-panel { width:50%; height:100%; overflow-y:auto; -webkit-overflow-scrolling:touch; display:flex; flex-direction:column; }
.mm-link { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.05rem 1.25rem; color:var(--ink); text-decoration:none; text-transform:uppercase; letter-spacing:.06em; font-weight:700; font-size:.9rem; border-bottom:1px solid var(--paper-2); }
.mm-link .bi { color:var(--muted); font-size:1rem; }
.mm-link:active { background:var(--paper-2); }
.mm-subhead { display:flex; align-items:center; padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
.mm-back { background:none; border:0; color:var(--ink); display:inline-flex; align-items:center; gap:.6rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; font-size:.85rem; padding:0; }
.mm-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding:1.25rem; }
.mm-car { text-decoration:none; color:var(--ink); }
.mm-car-img { aspect-ratio:16/10; background:transparent center/cover no-repeat; margin-bottom:.5rem; }
.mm-car-name { font-weight:800; text-transform:uppercase; font-size:.85rem; letter-spacing:.03em; line-height:1.1; }
.mm-car-price { font-size:.76rem; color:var(--muted); margin-top:.15rem; }
.mmenu-foot { margin-top:auto; padding:1.25rem; border-top:1px solid var(--line); }
.mmenu-foot .hl-num { font-weight:800; color:var(--ink); font-size:1.15rem; text-decoration:none; }
.mmenu-foot .soc a { color:var(--ink); font-size:1.2rem; }
.mega-thumb { background:transparent center/cover no-repeat; }

/* ---------- Overlay header: transparent over hero → frosted glass on scroll ---------- */
.site-nav.nav-overlay { position:fixed; top:0; left:0; right:0; z-index:1030; border-bottom:1px solid transparent;
  background:linear-gradient(180deg, rgba(12,14,17,.45), rgba(12,14,17,0));
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.site-nav.nav-overlay .navbar-brand { color:#fff; }
.site-nav.nav-overlay .nav-link { color:rgba(255,255,255,.82) !important; }
.site-nav.nav-overlay .nav-link:hover, .site-nav.nav-overlay .nav-link.active { color:#fff !important; }
.site-nav.nav-overlay .nav-link.active::after { background:#fff; }
.site-nav.nav-overlay .nav-cta { color:#fff; }
.site-nav.nav-overlay .nav-cta:hover { color:rgba(255,255,255,.7); }
.site-nav.nav-overlay .nav-phone { color:#fff; }
.site-nav.nav-overlay.nav-solid .nav-phone { color:var(--ink); }
.site-nav.nav-overlay .navbar-toggler { color:#fff; }
/* frosted glass state (after scrolling past the hero) */
.site-nav.nav-overlay.nav-solid { background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px); backdrop-filter:saturate(180%) blur(16px);
  border-bottom-color:var(--line); box-shadow:0 8px 30px -20px rgba(0,0,0,.45); }
.site-nav.nav-overlay.nav-solid .navbar-brand { color:var(--ink); }
.site-nav.nav-overlay.nav-solid .nav-link { color:#3a3f45 !important; }
.site-nav.nav-overlay.nav-solid .nav-link:hover, .site-nav.nav-overlay.nav-solid .nav-link.active { color:var(--ink) !important; }
.site-nav.nav-overlay.nav-solid .nav-link.active::after { background:var(--ink); }
.site-nav.nav-overlay.nav-solid .nav-cta { color:var(--ink); }
.site-nav.nav-overlay.nav-solid .nav-cta:hover { color:var(--muted); }
.site-nav.nav-overlay.nav-solid .navbar-toggler { color:var(--ink); }

/* Frosted-glass sticky header for pages WITHOUT a photo hero.
   The gray topbar above it stays in normal flow and scrolls away; this bar
   sticks to the top once reached. Dark logo, dark nav links (defaults). */
.site-nav.nav-glass { position:sticky; top:0; z-index:1030;
  isolation:isolate; background:transparent;
  -webkit-backdrop-filter:none; backdrop-filter:none;
  border-bottom-color:transparent; box-shadow:none; }
.site-nav.nav-glass::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line);
  box-shadow:0 8px 30px -20px rgba(0,0,0,.45);
}

/* ---------- Image logo (replaces the text wordmark) ---------- */
.brand-logo { display:inline-flex; align-items:center; padding:0; }
.brand-logo img { width:auto; }
.navbar-brand.brand-logo img { height:17px; }
.mmenu-head .brand.brand-logo img { height:17px; }
.site-footer .brand.brand-logo img { height:19px; }
/* exactly one variant visible at a time: dark by default (light surfaces) */
.brand-logo .logo-dark { display:block; }
.brand-logo .logo-light { display:none; }
/* transparent overlay over the dark hero → show the WHITE logo, swap back when frosted */
.site-nav.nav-overlay:not(.nav-solid) .brand-logo .logo-dark { display:none; }
.site-nav.nav-overlay:not(.nav-solid) .brand-logo .logo-light { display:block; }

/* ---------- 404 page ---------- */
.hero.error-404-hero {
  position:relative;
  isolation:isolate;
  min-height:calc(100vh - var(--error-404-topbar-height, 0px));
  min-height:calc(100svh - var(--error-404-topbar-height, 0px));
  overflow:hidden;
  color:#fff;
}
.error-404-bg {
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.error-404-hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg, rgba(12,14,17,.78) 0%, rgba(12,14,17,.46) 46%, rgba(12,14,17,.08) 78%);
}
.error-404-content {
  position:relative;
  min-width:0;
  padding-top:7rem;
  padding-bottom:5rem;
}
.error-404-code {
  color:#fff;
  font-size:13rem;
  font-weight:800;
  line-height:.82;
  letter-spacing:0;
}
.error-404-hero .error-404-title {
  color:#fff;
  font-size:2.6rem;
  font-weight:800;
  line-height:1.05;
}
.error-404-lede {
  max-width:42rem;
  color:rgba(255,255,255,.82);
  font-size:1.05rem;
  line-height:1.65;
}
.error-404-home {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  color:#fff;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.12em;
  text-decoration:none;
  text-transform:uppercase;
}
.error-404-home:hover {
  color:rgba(255,255,255,.72);
}
.error-404-home .bi {
  transition:transform .2s;
}
.error-404-home:hover .bi {
  transform:translateX(4px);
}
@media (max-width:991.98px) {
  .error-404-code { font-size:8rem; }
  .error-404-hero .error-404-title { font-size:2.1rem; }
}
@media (max-width:575.98px) {
  .error-404-content {
    padding-top:6.5rem;
    padding-bottom:3.5rem;
  }
  .error-404-code { font-size:5.5rem; }
  .error-404-hero .error-404-title { font-size:1.65rem; }
  .error-404-lede { font-size:.95rem; }
}

/* Tighten the nav ≥1200px so the full menu fits on one row with the image logo
   (the phone number lives in the topbar, not the nav) */
@media (min-width:1200px){
  .site-nav .navbar-brand.brand-logo.me-4 { margin-right:1.1rem !important; }
  .site-nav .navbar-nav .nav-link { padding-left:.58rem !important; padding-right:.58rem !important; }
  .site-nav .nav-right { gap:1rem !important; }
}

/* Mega menu — full width, edge to edge */
.nav-mega { position: static; }
.mega {
  position:absolute !important; inset:100% 0 auto 0 !important; transform:none !important;
  width:auto !important; min-width:0 !important; margin:0 !important;
  border:0; border-top:1px solid var(--line); padding:2.25rem 0; border-radius:0;
  background:#fff; box-shadow:0 34px 60px -30px rgba(0,0,0,.28);
}
.mega-side { border-right:1px solid var(--line); }
.mega-title { text-transform:uppercase; letter-spacing:.04em; font-weight:800; font-size:1.5rem; line-height:1; color:var(--ink); }
.mega-side-text { color:var(--muted); font-size:.85rem; margin-top:1rem; max-width:230px; }
.mega-all { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.25rem; text-transform:uppercase; letter-spacing:.1em; font-size:.74rem; font-weight:700; color:var(--ink); text-decoration:none; }
.mega-all .bi { transition:transform .2s; }
.mega-all:hover .bi { transform:translateX(4px); }
.mega-phone { margin-top:1.5rem; }
.mega-phone a { font-weight:800; color:var(--ink); text-decoration:none; font-size:1.05rem; }
.mega-item { display:block; padding:1rem .5rem; text-align:center; text-decoration:none; color:var(--text); border-radius:var(--radius); transition:background .15s; }
.mega-item:hover { background:var(--paper-2); }
.mega-thumb { display:grid; place-items:center; margin-bottom:.6rem; min-height:96px; }
.thumb-car { width:82%; height:auto; max-height:100px; }
.mega-name { display:block; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:1rem; line-height:1.1; }
.mega-price { display:block; margin-top:.25rem; font-size:.85rem; color:var(--muted); }

/* ---------- Shared navigation v2 ---------- */
.site-nav {
  transition:transform .65s cubic-bezier(.33,1,.68,1), border-color .5s ease, box-shadow .5s ease;
}
.site-nav.nav-hidden { transform:translateY(-100%); }
.site-nav .nav-link,
.site-nav .nav-cta {
  font-size:.86rem;
  font-weight:400;
  letter-spacing:.01em;
  text-transform:none;
}
.site-nav .nav-link.dropdown-toggle::after,
.site-nav .nav-link.active::after {
  display:none;
}
.site-nav.nav-overlay {
  background:transparent;
  transition:transform .65s cubic-bezier(.33,1,.68,1), border-color .5s ease, box-shadow .5s ease;
}
.site-nav.nav-overlay::before,
.site-nav.nav-overlay::after {
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  transition:opacity .5s ease;
}
.site-nav.nav-overlay::before {
  top:0;
  right:0;
  left:0;
  height:180px;
  opacity:1;
  background:linear-gradient(180deg, rgba(12,14,17,.55) 0%, rgba(12,14,17,0) 100%);
}
.site-nav.nav-overlay::after {
  inset:0 0 auto 0;
  height:100%;
  opacity:0;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line);
  box-shadow:0 8px 30px -20px rgba(0,0,0,.45);
}
.site-nav.nav-overlay.nav-solid {
  background:transparent;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  border-bottom-color:transparent;
  box-shadow:none;
}
.site-nav.nav-overlay.nav-solid::before { opacity:0; }
.site-nav.nav-overlay.nav-solid::after { opacity:1; }
.site-nav .navbar-brand,
.site-nav .nav-link,
.site-nav .nav-cta,
.site-nav .nav-icon,
.site-nav .navbar-toggler {
  transition:color .5s ease;
}
.site-nav.nav-overlay .brand-logo {
  position:relative;
  display:inline-block;
}
.site-nav.nav-overlay .brand-logo .logo-dark,
.site-nav.nav-overlay .brand-logo .logo-light {
  display:block !important;
  transition:opacity .5s ease;
}
.site-nav.nav-overlay .brand-logo .logo-light {
  position:absolute;
  top:0;
  left:0;
  opacity:1;
}
.site-nav.nav-overlay .brand-logo .logo-dark { opacity:0; }
.site-nav.nav-overlay.nav-solid .brand-logo .logo-light { opacity:0; }
.site-nav.nav-overlay.nav-solid .brand-logo .logo-dark { opacity:1; }
.site-nav .mega {
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
}
.site-nav .mega-group + .mega-group { margin-top:1.75rem; }
.site-nav .mega-group-title {
  margin-bottom:.85rem;
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.site-nav .mega-link {
  display:flex;
  align-items:center;
  gap:.5rem;
  width:max-content;
  max-width:100%;
  padding:.42rem 0;
  color:#3a3f45;
  font-size:.86rem;
  font-weight:400;
  text-decoration:none;
}
.site-nav .mega-link .bi {
  color:var(--muted);
  font-size:.85rem;
  opacity:0;
  transform:translateX(-6px);
  transition:.18s;
}
.site-nav .mega-link:hover { color:var(--text); }
.site-nav .mega-link:hover .bi {
  opacity:1;
  transform:none;
}
.mega-hours {
  display:flex;
  align-items:center;
  gap:.45rem;
  margin-top:.45rem;
  color:var(--muted);
  font-size:.8rem;
  font-weight:400;
}
.site-nav .nav-phone-ic {
  padding:0;
  font-size:1.05rem;
}
.site-nav .nav-phone-ic.dropdown-toggle::after { display:none; }
.site-nav .phone-pop {
  min-width:262px;
  margin-top:.65rem;
  padding:1rem 1.1rem 1.05rem;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 18px 44px -26px rgba(0,0,0,.4);
}
.site-nav .phone-num {
  display:block;
  color:var(--ink);
  font-size:1.2rem;
  font-weight:800;
  letter-spacing:.01em;
  text-decoration:none;
}
.site-nav .phone-num:hover { color:var(--muted); }
.site-nav .phone-meta {
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  margin-top:.55rem;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.35;
}
.site-nav .phone-meta .bi {
  font-size:.9rem;
  line-height:1.2;
}
.site-nav .phone-cta {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  width:100%;
  margin-top:.95rem;
  padding-top:.85rem;
  color:var(--ink);
  font-size:.86rem;
  text-decoration:none;
  border-top:1px solid var(--line);
}
.site-nav .phone-cta .bi { transition:transform .2s; }
.site-nav .phone-cta:hover .bi { transform:translateX(4px); }

/* Mobile navigation uses the same tree as desktop, rendered as accordions. */
.mmenu {
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  backdrop-filter:saturate(180%) blur(16px);
}
.mmenu-body { overflow-y:auto; }
.mmenu-panel {
  width:100%;
  min-height:100%;
}
.mm-link {
  font-size:1rem;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
  border-bottom:0;
}
.mm-acc {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  width:100%;
  padding:1.05rem 1.25rem;
  color:var(--ink);
  background:none;
  border:0;
  font-size:1rem;
  font-weight:500;
  text-align:left;
}
.mm-acc .bi {
  color:var(--muted);
  transition:transform .2s;
}
.mm-acc[aria-expanded="true"] .bi { transform:rotate(180deg); }
.mm-quick { justify-content:space-between; }
.mm-quick .bi {
  color:var(--ink);
  font-size:1.15rem;
}
.mm-quick .ico {
  width:19px;
  height:19px;
}
.mm-actions { margin-top:.9rem; }
.mm-action-button { width:100%; background:none; border:0; text-align:left; }
.mm-sublink {
  display:block;
  padding:.55rem 1.25rem .55rem 2.1rem;
  color:var(--text);
  font-size:.95rem;
  text-decoration:none;
  border-bottom:0;
}
.mm-sublink:active { color:var(--ink); }
.mmenu-hotline-label {
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}

@media (min-width:1200px) {
  .site-nav .navbar-brand.brand-logo.me-4 { margin-right:1.1rem !important; }
  .site-nav .navbar-nav .nav-link {
    padding-right:.72rem !important;
    padding-left:.72rem !important;
  }
  .site-nav .nav-right { gap:1rem !important; }
}

/* ---------- Hero ---------- */
.hero { position:relative; min-height:88vh; overflow:hidden; color:#fff;
   background:#1b1f25 url(../img/placeholder.jpg) center/cover no-repeat; }
.hero::before { content:""; position:absolute; inset:0;
   background: linear-gradient(90deg, rgba(18,20,24,.82) 0%, rgba(18,20,24,.45) 48%, rgba(18,20,24,.05) 78%); }
.hero-car { display:none; }
.hero-content { position:relative; z-index:2; }
.hero .eyebrow { color:#d7dadf; }
.hero h1, .hero .h1 { color:#fff; font-weight:800; text-transform:uppercase; letter-spacing:.02em; line-height:.95; font-size:clamp(2.2rem,5vw,3.7rem); }
.hero-lede { color:#a9afb5; max-width:480px; }
.hero-tagline { color:#c7ccd4; font-weight:300; font-size:clamp(1.15rem,2.2vw,1.65rem); line-height:1.2; max-width:520px; }
.hero-price-big { font-size:clamp(1.5rem,2.4vw,2rem); font-weight:800; color:#fff; line-height:1; }
.hero-price-big small { display:block; font-size:.82rem; font-weight:500; color:#8b9197; margin-top:.4rem; }
.hero-price-line { color:#8b9197; font-size:.9rem; letter-spacing:.02em; }
.hero-price-line b { color:#fff; }
.hero-stats { border-top:1px solid var(--line-dark); }
.hero-stat b { font-size:1.55rem; font-weight:800; display:block; line-height:1; color:#fff; }
.hero-stat span { color:var(--muted-2); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }
.hero-dots { position:absolute; left:0; right:0; bottom:1.5rem; z-index:3; }
.hero-dot { width:28px; height:2px; background:rgba(255,255,255,.28); border:0; padding:0; margin:0 4px; }
.hero-dot.active { background:#fff; width:44px; }

/* ---------- Hero carousel (Bootstrap 5: autoplay + smooth slide + glass arrows) ---------- */
.hero-carousel { position:relative; }
.hero-carousel .carousel-item { transition: transform .7s cubic-bezier(.4,0,.2,1); }
/* frosted-glass side arrows — dark-over-photo family (BRANDBOOK §2) */
.hero-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:52px; height:52px; display:grid; place-items:center; border-radius:50%;
  border:1px solid rgba(255,255,255,.22); color:#fff; font-size:1.4rem; line-height:1; cursor:pointer;
  background:rgba(18,20,24,.35); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px);
  transition:background .2s, border-color .2s, transform .12s; }
.hero-arrow:hover { background:rgba(18,20,24,.55); border-color:rgba(255,255,255,.4); color:#fff; }
.hero-arrow:active { transform:translateY(-50%) scale(.92); }
.hero-arrow.prev { left:1.6rem; }
.hero-arrow.next { right:1.6rem; }
@media (max-width:575.98px){
  .hero-arrow { width:42px; height:42px; font-size:1.15rem; }
  .hero-arrow.prev { left:.6rem; }
  .hero-arrow.next { right:.6rem; }
}
/* indicator bars wired to Bootstrap carousel (reuse hero-dot look) */
.hero-dots.carousel-indicators { margin:0; bottom:1.5rem; z-index:3; }
.hero-dots.carousel-indicators [data-bs-target] { width:28px; height:2px; margin:0 4px; padding:0;
  border:0; border-top:0; border-bottom:0; border-radius:0; opacity:1; box-sizing:content-box; text-indent:0;
  background:rgba(255,255,255,.28); transition:width .3s ease, background .3s ease; }
.hero-dots.carousel-indicators [data-bs-target].active { width:44px; background:#fff; }


/* Smaller section headings */
.head.display-5 { font-size: clamp(1.6rem, 3vw, 2.3rem) !important; }
.head.display-6 { font-size: clamp(1.4rem, 2.6vw, 2rem) !important; }

/* ---------- Model cards (CPT models) ---------- */
.model-card { border:1px solid var(--line); background:#fff; transition:.2s; }
.model-card:hover { border-color:var(--ink); box-shadow:0 22px 40px -26px rgba(18,19,20,.35); }
.model-media { aspect-ratio:16/10; background:linear-gradient(180deg,#f6f7f8,var(--paper-3)); display:grid; place-items:center; position:relative; }
.model-media i { color:#b3b9bf; }
.model-eyebrow { font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.model-name { text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
.model-flag { position:absolute; top:.7rem; left:.7rem; background:rgba(18,20,24,.4); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px); color:#fff; border:1px solid rgba(255,255,255,.18); font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:.3rem .7rem; }
.model-flag.new { background:rgba(18,20,24,.4); color:#fff; }
.model-price { font-weight:800; }
.model-price small { color:var(--muted); font-weight:600; }

/* ---------- Signature photo-overlay cards ---------- */
.tile { position:relative; min-height:340px; display:flex; align-items:flex-end; padding:1.75rem; color:#fff; overflow:hidden; border:1px solid var(--line-dark); }
.tile::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,11,12,.05) 30%,rgba(10,11,12,.85)); z-index:1; }
.tile > * { position:relative; z-index:2; width:100%; }
.tile .t-title { text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.tile .t-sub { color:rgba(255,255,255,.72); font-size:.9rem; }
.tile-cta { display:inline-flex; align-items:center; gap:.6rem; text-transform:uppercase; letter-spacing:.1em; font-size:.74rem; font-weight:700; color:#fff; text-decoration:none; margin-top:1rem; }
.tile:hover .tile-cta .bi-arrow-right { transform: translateX(4px); }
.tile .bi-arrow-right { transition: transform .2s; }
/* backdrops (stand-in for photography) */
.ph1 { background:linear-gradient(135deg,#2b2f33,#0f1113); }
.ph2 { background:linear-gradient(135deg,#22303a,#0f1416); }
.ph3 { background:linear-gradient(135deg,#2f2a26,#121011); }
.ph4 { background:linear-gradient(135deg,#26292c,#0e1011); }
.ph5 { background:linear-gradient(135deg,#1d2a2a,#0e1313); }
.ph6 { background:linear-gradient(135deg,#2a2622,#101010); }

/* ---------- Stock cards (CPT stock) ---------- */
.stock-card { border:1px solid var(--line); background:#fff; transition:.2s; }
.stock-card:hover { border-color:var(--ink); box-shadow:0 18px 34px -24px rgba(0,0,0,.3); }
.stock-media { aspect-ratio:16/10; background:linear-gradient(180deg,#f6f7f8,var(--paper-3)); display:grid; place-items:center; position:relative; overflow:hidden; background-size:contain!important; background-position:center!important; background-repeat:no-repeat!important; }
.stock-media > .stock-image { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.stock-media i { color:#b3b9bf; }
.stock-flag { position:absolute; top:.7rem; left:.7rem; z-index:2; background:rgba(18,20,24,.4); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px); border:1px solid rgba(255,255,255,.18); color:#fff; font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:.28rem .6rem; }
.stock-name { text-transform:uppercase; letter-spacing:.04em; font-weight:800; }
.spec { font-size:.78rem; color:var(--muted); }
.spec i { color:#aab0b6; width:14px; }
.stock-credit { font-size:.74rem; color:var(--muted); }

/* ---------- USP ---------- */
.usp { border-top:2px solid var(--ink); padding-top:1.1rem; }
.usp .n { font-size:.72rem; color:var(--muted-2); font-weight:700; letter-spacing:.14em; }
.usp h3 { text-transform:uppercase; letter-spacing:.04em; font-weight:800; font-size:1rem; }

/* ---------- Lead band ---------- */
.lead-band { background:var(--ink); color:#fff; }
.form-control, .form-select { border-radius:0; padding:.85rem 1rem; border:1px solid var(--line); background:#fff; }
.form-control:focus, .form-select:focus { border-color:var(--ink); box-shadow:none; }
.lead-band .form-control, .lead-band .form-select { background:#191b1d; border:1px solid rgba(255,255,255,.16); color:#fff; }
.lead-band .form-control::placeholder { color:#7d8288; }
.lead-band .form-select option { color:#111; }

/* ---------- Dealer / map ---------- */
.map-embed { aspect-ratio:16/9; background:linear-gradient(135deg,#e6e8ea,#d0d4d8); position:relative; border:1px solid var(--line); }
.map-embed iframe,
.map-embed > ymaps,
.map-embed > div { width:100% !important; height:100% !important; display:block; }
.map-branches-shell,
.map-branches-shell > div,
.ct-map .map-branches-shell,
.ct-map .map-branches-shell > div { width:100% !important; height:100% !important; display:block; }
.map-pin { position:absolute; top:42%; left:50%; transform:translateX(-50%); color:var(--ink); font-size:2rem; }
.dealer-info li i { color:var(--ink); }

/* ---------- Footer (light, haval-style) ---------- */
.site-footer { background:#fff; border-top:1px solid var(--line); color:var(--muted); }
.site-footer .brand { color:var(--ink); font-weight:800; letter-spacing:.28em; }
.site-footer h6 { color:var(--ink); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:700; }
.site-footer a { color:var(--muted); text-decoration:none; font-size:.86rem; }
.site-footer a:hover { color:var(--ink); }
.site-footer .soc a { font-size:1.15rem; color:var(--ink); }
.site-footer .made-by { color:inherit; font-size:inherit; text-decoration:none; transition:color .2s; }
.site-footer .made-by:hover { color:var(--ink); }
.site-footer .made-by .bi { display:inline-block; font-size:.72rem; margin-left:.1rem; transition:transform .2s; }
.site-footer .made-by:hover .bi { transform:translate(2px,-2px); }
.disclaimer { font-size:.72rem; color:var(--muted); }

/* Breadcrumbs (shared) — chevron separator; horizontal scroll for long mobile trails */
.breadcrumbx { font-size:.78rem; color:var(--muted); display:flex; flex-wrap:nowrap; align-items:center; gap:0; overflow-x:auto; overflow-y:hidden; white-space:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.breadcrumbx::-webkit-scrollbar { display:none; }
.breadcrumbx > * { flex:0 0 auto; }
.breadcrumbx a { color:var(--muted); text-decoration:none; }
.breadcrumbx a:hover { color:var(--ink); }
.breadcrumbx .sep { display:inline-block; margin:0 .5rem; color:var(--muted-2); }
.breadcrumbx .sep i { font-size:.62rem; vertical-align:middle; }

/* SEO text block (bottom of pages, WordPress-editable area) */
.seo-text { background:var(--paper-2); }
.seo-text h2 { text-transform:uppercase; letter-spacing:.04em; font-weight:800; }
.seo-body { color:var(--muted); font-size:.9rem; line-height:1.7; max-width:960px; }
.seo-body p { margin-bottom:.9rem; }
.seo-body h3 { color:var(--ink); font-size:1rem; font-weight:800; margin:1.4rem 0 .6rem; }
.seo-body.clamped { max-height:9em; overflow:hidden; -webkit-mask-image:linear-gradient(#000 62%,transparent); mask-image:linear-gradient(#000 62%,transparent); }
.seo-more { background:none; border:0; padding:0; margin-top:.7rem; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); display:inline-flex; align-items:center; gap:.4rem; }
.seo-more:hover { color:var(--muted); }

/* Footer hotline */
.footer-hotline .hl-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted-2); }
.footer-hotline .hl-num { color:var(--ink); font-weight:800; font-size:1.15rem; text-decoration:none; }
.footer-hotline .hl-num:hover { color:var(--muted); }

/* Footer link groups: columns on desktop, accordions on mobile */
.footer-col-title { display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:0; padding:0; margin:0; text-align:left;
  color:var(--ink); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:700; }
.site-footer a.footer-col-title,
.site-footer a.footer-col-title:hover {
  color:var(--ink);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
  font-weight:700;
  text-decoration:none;
}
.footer-col-title .toggle-ic { display:none; color:var(--muted); font-size:1.25rem; line-height:1; width:20px; text-align:center; }
.footer-col-title .toggle-ic::before { content:"+"; }
.footer-col.open .footer-col-title .toggle-ic::before { content:"–"; }
.footer-collapse { margin-top:1rem; }
@media (max-width:991.98px){
  .footer-col { margin-top:0 !important; border-top:1px solid var(--line); }
  .footer-col-title { padding:.95rem 0; }
  .footer-col-title .toggle-ic { display:inline-flex; justify-content:center; }
  .footer-collapse { max-height:0; overflow:hidden; margin-top:0; padding-bottom:0; transition:max-height .32s ease, padding-bottom .32s ease; }
  .footer-col.open .footer-collapse { max-height:420px; padding-bottom:1rem; }
}

/* ---------- Model quick strip ---------- */
.model-strip { background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.model-strip a { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:700; text-decoration:none; padding:.4rem .2rem; }
.model-strip a:hover { color:var(--ink); }

/* ---------- Reveal ---------- */
.reveal { opacity:0; transform:translateY(20px); transition:.7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }

@media (max-width:991.98px){
  /* hero collapses to auto height — pad the top so content clears the fixed overlay nav */
  .hero { min-height:auto; padding-top:72px; padding-bottom:2rem; }
  .hero-car { position:static; width:100%; margin-top:1.5rem; }
  .mega { min-width:auto; }
}


/* ===================================================================
   Page-specific layers (appended from design/*.css for the WP port).
   Image url() rewritten ../assets/img/ -> ../img/ ; TEMP blocks dropped.
   =================================================================== */

/* ---- Model page (model/model.css) ---- */
/* =====================================================================
   Model detail page — component layer on top of shared theme.css
   (single-models.php). Sharp / monochrome / uppercase, Haval-style.
   ===================================================================== */

section[id] { scroll-margin-top: 112px; } /* offset for fixed header + sticky sub-nav */
.breadcrumbx { font-size:.76rem; color:var(--muted); letter-spacing:.02em; display:flex; flex-wrap:nowrap; align-items:center; gap:0; overflow-x:auto; overflow-y:hidden; white-space:nowrap; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.breadcrumbx::-webkit-scrollbar { display:none; }
.breadcrumbx > * { flex:0 0 auto; }
.breadcrumbx a { color:var(--muted); text-decoration:none; }
.breadcrumbx a:hover { color:var(--ink); }
.breadcrumbx .sep { margin:0 .5rem; color:var(--muted-2); }

/* ---------- Model hero (full-bleed photo, Haval-style) ---------- */
.mhero { position:relative; min-height:84vh; display:flex; align-items:center; overflow:hidden; color:#fff;
  background:#1b1f25 url(../img/placeholder.jpg) center/cover no-repeat; }
.mhero::before { content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(16,18,22,.82) 0%, rgba(16,18,22,.45) 46%, rgba(16,18,22,.04) 78%); }
.mhero-content { position:relative; z-index:2; }
.mhero-kicker { text-transform:uppercase; letter-spacing:.18em; font-weight:700; font-size:.82rem; color:#dfe2e6; }
.mhero-title { text-transform:uppercase; font-weight:800; letter-spacing:.01em; line-height:.95; color:#fff;
  font-size:clamp(2rem,4.4vw,3.4rem); }
.mhero-sub { color:#c7ccd2; font-size:clamp(1rem,1.5vw,1.15rem); }
.mhero-price { font-weight:800; font-size:clamp(1.35rem,2.1vw,1.85rem); color:#fff; }
@media (max-width:991.98px){ .mhero { min-height:88vh; padding:5rem 0 2rem; } }

/* ---------- Sticky sub-nav (follows the shared smart header) ---------- */
.msub { position:sticky; top:var(--site-nav-visible-height, 57px); z-index:1020; background:rgba(255,255,255,.9);
  transition:top .65s cubic-bezier(.33,1,.68,1);
  -webkit-backdrop-filter:saturate(180%) blur(10px); backdrop-filter:saturate(180%) blur(10px);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.msub .nav-a { color:#3a3f45; text-transform:uppercase; letter-spacing:.1em; font-size:.72rem; font-weight:700; text-decoration:none; padding:.9rem .1rem; display:inline-block; border-bottom:2px solid transparent; white-space:nowrap; }
.msub .nav-a:hover { color:var(--ink); }
.msub .nav-a.active { color:var(--ink); border-bottom-color:var(--ink); }
.msub .price-mini { font-weight:800; font-size:.9rem; }
.msub .price-mini small { color:var(--muted); font-weight:600; }

/* ---------- Stat band ---------- */
.statband { background:var(--ink); color:#fff; }
.stat b { font-size:clamp(1.8rem,3.2vw,2.4rem); font-weight:800; line-height:1; display:block; }
.stat u { text-decoration:none; color:var(--muted-2); font-weight:600; font-size:1rem; }
.stat span { color:var(--muted-2); font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; }
.stat + .stat { border-left:1px solid var(--line-dark); }

/* ---------- Feature rows ---------- */
.frow-media { aspect-ratio:4/3; background:linear-gradient(135deg,#e9ebec,#d3d7db); display:grid; place-items:center; }
.frow-media.dark { background:linear-gradient(135deg,#2a2e31,#111315); }
.frow-media i { color:#b3b9bf; font-size:2.2rem; }
.feat-check li { padding:.35rem 0; border-bottom:1px solid var(--line); font-size:.92rem; display:flex; gap:.6rem; align-items:flex-start; }
.feat-check li i { color:var(--ink); margin-top:.15rem; }

/* ---------- Full-bleed media band ---------- */
.mediafull { min-height:460px; background:linear-gradient(135deg,#333944,#20242b); color:#fff; display:flex; align-items:flex-end; position:relative; }
.mediafull::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%, rgba(8,9,10,.75)); }
.mediafull .container { position:relative; z-index:1; }

/* ---------- Gallery ---------- */
.gallery-cell { aspect-ratio:4/3; background:linear-gradient(135deg,#e9ebec,#d3d7db); border:0; display:grid; place-items:center; transition:.2s; }
.gallery-cell:hover { filter:brightness(.95); }
.gallery-cell i { color:#b3b9bf; font-size:1.6rem; }
/* gallery as horizontal scroll, 2 rows */
.gallery-hscroll { display:grid; grid-auto-flow:column; grid-template-rows:repeat(2,1fr); grid-auto-columns:clamp(220px,30vw,300px); gap:.75rem; overflow-x:auto; padding-bottom:.85rem; scroll-snap-type:x proximity; }
.gallery-hscroll > .gallery-cell { scroll-snap-align:start; }
.gallery-hscroll::-webkit-scrollbar { height:6px; }
.gallery-hscroll::-webkit-scrollbar-thumb { background:#d3d7dc; border-radius:3px; }
.auto-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.auto-gallery-archive { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.gallery-album-card { border:1px solid var(--line); background:#fff; border-radius:var(--radius); overflow:hidden; transition:.2s; }
.gallery-album-card:hover { border-color:var(--ink); box-shadow:0 20px 38px -28px rgba(18,19,20,.35); }
.gallery-album-cover { aspect-ratio:4/3; display:grid; place-items:center; background:linear-gradient(135deg,#e9ebec,#d3d7db); color:var(--muted-2); text-decoration:none; }
.gallery-album-cover i { font-size:2rem; }
.gallery-album-body { padding:1.25rem; }
.gallery-album-body a { color:var(--ink); text-decoration:none; }
.gallery-album-body a:hover { color:var(--muted); }
.gallery-lightbox { position:fixed; inset:0; z-index:1090; display:none; align-items:center; justify-content:center; padding:clamp(1rem,3vw,2rem); background:rgba(8,10,12,.78); backdrop-filter:blur(22px) saturate(130%); -webkit-backdrop-filter:blur(22px) saturate(130%); }
.gallery-lightbox.open { display:flex; }
.gallery-lightbox-frame { position:relative; width:min(1120px,100%); }
.gallery-lightbox-img { display:block; width:100%; max-height:78vh; object-fit:contain; background:rgba(255,255,255,.08); border-radius:var(--radius); box-shadow:0 28px 80px rgba(0,0,0,.35); }
.gallery-lightbox-caption { margin-top:.9rem; color:rgba(255,255,255,.74); font-size:.86rem; }
.gallery-lightbox-btn { position:absolute; z-index:2; display:grid; place-items:center; width:46px; height:46px; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#fff; background:rgba(255,255,255,.12); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.gallery-lightbox-btn:hover { background:rgba(255,255,255,.22); }
.gallery-lightbox-close { top:-58px; right:0; }
.gallery-lightbox-prev,
.gallery-lightbox-next { top:50%; transform:translateY(-50%); }
.gallery-lightbox-prev { left:-62px; }
.gallery-lightbox-next { right:-62px; }
@media (max-width:991.98px) {
  .auto-gallery-grid,
  .auto-gallery-archive { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gallery-lightbox-prev { left:.75rem; }
  .gallery-lightbox-next { right:.75rem; }
}
@media (max-width:575.98px) {
  .auto-gallery-grid,
  .auto-gallery-archive { grid-template-columns:1fr; }
  .gallery-lightbox { padding:1rem; }
  .gallery-lightbox-close { top:.75rem; right:.75rem; }
}

/* ---------- Trims / configurations ---------- */
.trim { border:1px solid var(--line); background:#fff; transition:.2s; overflow:hidden; }
.trim-media { aspect-ratio:16/10; background:#eef0f2; }
.trim-media img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.trim:hover { border-color:var(--ink); box-shadow:0 20px 38px -26px rgba(18,19,20,.35); }
.trim.popular { border-color:var(--ink); }
.trim .tag { background:var(--ink); color:#fff; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; padding:.3rem .6rem; align-self:flex-start; }
.trim h3 { text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
.trim .t-price { font-weight:800; font-size:1.15rem; }
.trim ul li { font-size:.84rem; color:var(--muted); padding:.25rem 0; display:flex; gap:.5rem; }
.trim ul li i { color:var(--ink); }

/* ---------- Spec accordion (Bootstrap override) ---------- */
.accordion-item { border:0; border-top:1px solid var(--line); background:transparent; }
.accordion-item:last-child { border-bottom:1px solid var(--line); }
.accordion-button { background:transparent !important; text-transform:uppercase; letter-spacing:.08em; font-weight:700; font-size:.84rem; color:var(--ink); padding:1.15rem .25rem; box-shadow:none !important; }
.accordion-button::after { filter:grayscale(1); }
.accordion-body { padding:.25rem .25rem 1.25rem; }
.spec-table { width:100%; }
.spec-table tr { border-bottom:1px solid var(--line); }
.spec-table tr:last-child { border-bottom:0; }
.spec-table td { padding:.7rem .25rem; font-size:.88rem; vertical-align:top; }
.spec-table td:first-child { color:var(--muted); width:55%; }
.spec-table td:last-child { text-align:right; font-weight:600; }

/* Comparison table — values differ per trim/version (columns) */
.spec-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.spec-compare { width:100%; border-collapse:collapse; min-width:720px; }
.spec-compare tr { --spec-row-bg: var(--section-bg, transparent); }
.spec-compare th, .spec-compare td { padding:.75rem 1rem; font-size:.86rem; border-bottom:1px solid var(--line); text-align:center; background:var(--spec-row-bg); }
.spec-compare thead th { position:sticky; top:0; text-transform:uppercase; letter-spacing:.04em; font-size:.7rem; font-weight:800; color:var(--ink); border-bottom:2px solid var(--ink); white-space:normal; min-width:150px; }
.spec-compare th:first-child, .spec-compare td:first-child { text-align:left; color:var(--muted); font-weight:500; width:26%; position:sticky; left:0; }
.spec-compare tbody tr:hover { --spec-row-bg:var(--section-hover-bg, #fff); }
.spec-trim-name { display:block; }
.spec-trim-variant { display:block; margin-top:.3rem; color:var(--muted); font-size:.64rem; font-weight:600; line-height:1.35; letter-spacing:0; text-transform:none; }

/* ---------- Model page: colour picker / ways-to-buy / reviews ---------- */
.color-stage { aspect-ratio:16/9; border-radius:var(--radius); background:var(--paper-2) center/contain no-repeat; border:1px solid var(--line); transition:filter .35s ease; }
.color-name { font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:1.05rem; }
.color-swatches { display:flex; flex-wrap:wrap; gap:.7rem; }
.color-swatch { position:relative; width:42px; height:42px; border-radius:50%; border:1px solid rgba(0,0,0,.14); background:var(--sw,#ccc); cursor:pointer; padding:0; transition:transform .12s, box-shadow .12s, border-color .12s; }
.color-swatch:hover { transform:scale(1.08); }
.color-swatch.active,
.color-swatch[aria-pressed="true"] { outline:2px solid var(--ink); outline-offset:3px; transform:none; }
.buy-card { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:1.5rem; height:100%; display:flex; flex-direction:column; transition:.2s; }
.buy-card:hover { border-color:var(--ink); box-shadow:0 18px 34px -24px rgba(0,0,0,.28); }
.buy-card .bi { font-size:1.75rem; color:var(--ink); }
.buy-card h3 { text-transform:uppercase; letter-spacing:.04em; font-weight:800; font-size:1rem; margin:.9rem 0 .4rem; }
.buy-card p { font-size:.85rem; color:var(--muted); line-height:1.55; flex:1; margin-bottom:1rem; }
.review-card { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:1.6rem; height:100%; display:flex; flex-direction:column; }
.review-stars { color:var(--ink); font-size:.82rem; letter-spacing:.14em; margin-bottom:.85rem; }
.review-card .r-text { color:var(--text); line-height:1.6; font-size:.9rem; flex:1; }
.review-card .r-author { margin-top:1.1rem; padding-top:1rem; border-top:1px solid var(--line); }
.review-card .r-author b { display:block; text-transform:uppercase; letter-spacing:.03em; font-size:.8rem; }
.review-card .r-author span { color:var(--muted-2); font-size:.78rem; }

/* ---------- Price-list dropdown (Комплектации header) ---------- */
.pl-dd .dropdown-toggle::after { margin-left:.55rem; }
.pl-dd .dropdown-menu { border:1px solid var(--line); border-radius:var(--radius); padding:.4rem; min-width:250px;
  box-shadow:0 18px 44px -26px rgba(0,0,0,.4); }
.pl-dd .dropdown-item { display:flex; flex-direction:column; gap:.05rem; padding:.6rem .8rem; border-radius:var(--radius-sm); white-space:normal; }
.pl-dd .dropdown-item span { text-transform:uppercase; letter-spacing:.03em; font-weight:800; font-size:.82rem; color:var(--ink); }
.pl-dd .dropdown-item small { color:var(--muted); font-size:.74rem; }
.pl-dd .dropdown-item:hover,
.pl-dd .dropdown-item:focus,
.pl-dd .dropdown-item:active,
.pl-dd .dropdown-item.active { background:var(--paper-2); color:var(--ink); }
.pl-dd .dropdown-item:active span,
.pl-dd .dropdown-item.active span { color:var(--ink); }
.pl-dd .dropdown-item:active small,
.pl-dd .dropdown-item.active small { color:var(--muted); }

/* ---- Catalog + single stock (stock/stock.css) ---- */
/* =====================================================================
   Catalog — Авто в наличии (CPT stock). Layer on top of shared theme.css
   ===================================================================== */

section[id]{ scroll-margin-top:90px; }

/* ---------- Page head ---------- */
.cat-head .count b { font-weight:800; color:var(--ink); }
.cat-sort { display:inline-flex; align-items:center; gap:.5rem; border:1px solid var(--line); background:#fff; padding:.55rem .9rem; font-size:.82rem; font-weight:600; color:var(--ink); cursor:pointer; }
.cat-sort i { color:var(--muted); }
.filters-toggle { display:none; }

/* ---------- Layout ---------- */
.cat-layout { display:grid; grid-template-columns:270px 1fr; gap:2rem; align-items:start; }
@media (max-width:991.98px){ .cat-layout { grid-template-columns:1fr; gap:1.25rem; } }

/* ---------- Filters ---------- */
.filters-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.filters-head h3 { text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:.9rem; margin:0; }
.filter-reset { background:none; border:0; padding:0; font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
.filter-reset:hover { color:var(--ink); }
.fgroup { border-top:1px solid var(--line); }
.fgroup:last-child { border-bottom:1px solid var(--line); }
.fgroup-title { width:100%; display:flex; align-items:center; justify-content:space-between; background:none; border:0; padding:.95rem 0; text-transform:uppercase; letter-spacing:.06em; font-weight:700; font-size:.76rem; color:var(--ink); }
.fgroup-title .ic { width:18px; text-align:center; color:var(--muted); font-size:1.15rem; line-height:1; }
.fgroup-title .ic::before { content:"–"; }
.fgroup.closed .fgroup-title .ic::before { content:"+"; }
.fgroup-body { padding-bottom:1.1rem; }
.fgroup.closed .fgroup-body { display:none; }
.fcheck { display:flex; align-items:center; gap:.6rem; padding:.3rem 0; font-size:.88rem; color:var(--text); cursor:pointer; }
.fcheck input { width:16px; height:16px; accent-color:var(--ink); flex:0 0 auto; }
.fcheck .cnt { margin-left:auto; color:var(--muted-2); font-size:.8rem; }
.price-inputs { display:flex; gap:.6rem; }
.price-inputs input { width:100%; border:1px solid var(--line); background:#fff; padding:.55rem .6rem; font-size:.85rem; }
.swatches { display:flex; flex-wrap:wrap; gap:.55rem; }
.swatch { width:26px; height:26px; border-radius:50%; border:1px solid rgba(0,0,0,.15); cursor:pointer; }
.swatch.sel { outline:2px solid var(--ink); outline-offset:2px; }

/* ---------- Active chips ---------- */
.active-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.achip { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--line); background:var(--paper-2); padding:.35rem .7rem; font-size:.8rem; }
.achip button { background:none; border:0; padding:0; color:var(--muted); line-height:1; }

/* ---------- Catalog grid + cards ---------- */
.st-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
@media (max-width:1199.98px){ .st-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:575.98px){ .st-grid { grid-template-columns:1fr; } }
.st-grid.wide { grid-template-columns:repeat(4,1fr); }
@media (max-width:1399.98px){ .st-grid.wide { grid-template-columns:repeat(3,1fr); } }
@media (max-width:991.98px){ .st-grid.wide { grid-template-columns:repeat(2,1fr); } }
@media (max-width:575.98px){ .st-grid.wide { grid-template-columns:1fr; } }

.st-card { position:relative; border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; transition:.2s; border-radius:var(--radius); overflow:hidden; }
.st-card:hover { border-color:var(--ink); box-shadow:0 18px 34px -24px rgba(0,0,0,.28); }
.st-card:hover .st-media { filter:brightness(.97); }
/* whole card is a link to the model page (stretched-link on the title) */
.st-title-link { color:var(--ink); text-decoration:none; }
.st-title-link:hover { color:var(--ink); }
/* keep favourite + booking clickable above the stretched-link overlay */
.st-fav, .st-more, .st-book { position:relative; z-index:2; }
.st-book { white-space:nowrap; }
.st-media { aspect-ratio:16/10; background-color:var(--paper-2); position:relative; overflow:hidden; background-size:contain!important; background-position:center!important; background-repeat:no-repeat!important; }
.st-media > .stock-image { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.st-flag { position:absolute; top:.8rem; left:.8rem; z-index:2; background:rgba(18,20,24,.4); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px); color:#fff; border:1px solid rgba(255,255,255,.18); font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; padding:.32rem .7rem; border-radius:var(--radius-sm); display:inline-flex; align-items:center; gap:.4rem; }
.st-flag .dot { width:7px; height:7px; border-radius:50%; background:#3ddc84; }
.st-fav { position:absolute; top:.7rem; right:.7rem; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:50%; color:#fff; cursor:pointer;
  background:rgba(18,20,24,.32); -webkit-backdrop-filter:saturate(160%) blur(8px); backdrop-filter:saturate(160%) blur(8px); font-size:1.05rem; transition:background .18s, color .18s, transform .12s; }
.st-fav:hover { background:rgba(18,20,24,.55); }
.st-fav:active { transform:scale(.9); }
.st-fav.active { color:#ff4d5e; background:rgba(255,255,255,.92); }
.st-body { padding:1rem 1.1rem 1.1rem; display:flex; flex-direction:column; flex:1; }
.st-name { text-transform:uppercase; letter-spacing:.03em; font-weight:800; font-size:1rem; margin:0; }
.st-config { font-size:.8rem; color:var(--muted); margin:.15rem 0 .7rem; }
.st-specs { display:flex; flex-wrap:wrap; gap:.35rem .9rem; font-size:.78rem; color:var(--muted); margin-bottom:.8rem; }
.st-specs span { display:inline-flex; align-items:center; gap:.3rem; }
.st-specs i { color:#aab0b6; }
.st-price { font-weight:800; font-size:1.15rem; }
.st-credit { font-size:.74rem; color:var(--muted); margin-bottom:.7rem; }
.st-dealer { font-size:.74rem; color:var(--muted); display:flex; align-items:flex-start; gap:.4rem; padding-top:.7rem; border-top:1px solid var(--line); margin-top:auto; }
.st-cta { margin-top:.85rem; }

/* ---------- Single stock car ---------- */
.ss-photo { aspect-ratio:16/10; background-color:var(--paper-2); border-radius:var(--radius); position:relative; overflow:hidden; background-size:contain!important; background-position:center!important; background-repeat:no-repeat!important; }
.ss-photo > .stock-image { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.ss-thumbs { display:flex; gap:.6rem; overflow-x:auto; padding:.12rem .12rem .65rem; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:var(--line) transparent; -webkit-overflow-scrolling:touch; }
.ss-thumb { flex:0 0 clamp(120px,23%,180px); width:auto; aspect-ratio:16/10; padding:0; border:0; background-color:var(--paper-2); border-radius:calc(var(--radius) - 3px); cursor:pointer; opacity:.55; overflow:hidden; transition:.15s; scroll-snap-align:start; background-size:contain!important; background-position:center!important; background-repeat:no-repeat!important; }
.ss-thumb > .stock-image { width:100%; height:100%; display:block; object-fit:contain; object-position:center; }
.ss-thumb.active, .ss-thumb:hover { opacity:1; outline:2px solid var(--ink); outline-offset:-2px; }
.ss-panel { background:var(--paper-2); border-radius:var(--radius); padding:1.6rem; }
.ss-specs { width:100%; }
.ss-specs td { padding:.65rem 0; font-size:.9rem; border-bottom:1px solid var(--line); }
.ss-specs td:first-child { color:var(--muted); }
.ss-specs td:last-child { text-align:right; font-weight:600; }
.ss-specs .ss-price-row td { border-bottom:0; padding-top:1rem; }
.ss-specs .ss-price-row td:last-child { font-weight:800; font-size:1.35rem; }
.ss-credit { font-size:.82rem; color:var(--muted); }

@media (max-width:767.98px){
  .stock-equipment-row {
    flex-wrap:nowrap;
    gap:1rem;
    overflow-x:auto;
    margin-right:0;
    margin-left:0;
    padding-bottom:.75rem;
    scroll-padding-inline:.1rem;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    scrollbar-color:var(--line) transparent;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
  }
  .stock-equipment-row > .stock-equipment-card {
    flex:0 0 min(82vw, 320px);
    width:min(82vw, 320px);
    max-width:none;
    padding-right:0;
    padding-left:0;
    scroll-snap-align:start;
  }
}

/* ---------- Mobile filters as toggle panel ---------- */
@media (max-width:991.98px){
  .filters-toggle { display:inline-flex; align-items:center; gap:.5rem; border:1px solid var(--ink); background:var(--ink); color:#fff; padding:.6rem 1.1rem; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
  .filters { display:none; margin-bottom:1rem; }
  .filters.open { display:block; }
}

/* ---- Offers (offers/offer.css) ---- */
/* =====================================================================
   Спецпредложения (CPT offers + category). On top of shared theme.css
   ===================================================================== */

.offer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media (max-width:991.98px){ .offer-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:575.98px){ .offer-grid { grid-template-columns:1fr; } }

.offer-card { position:relative; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:.2s; }
.offer-card:hover { border-color:var(--ink); box-shadow:0 18px 34px -24px rgba(0,0,0,.28); }
.offer-card:hover .offer-media { filter:brightness(.97); }
.offer-media { aspect-ratio:16/10; background:var(--paper-2) url(../img/placeholder.jpg) center/cover no-repeat; position:relative; }
.offer-media.o2 { background-image:linear-gradient(140deg,#20242b,#3a2024); }
.offer-media.o3 { background-image:linear-gradient(140deg,#181c24,#26303f); }
.offer-media.o4 { background-image:linear-gradient(140deg,#1d1c18,#3a3220); }
.offer-badge { position:absolute; top:.8rem; left:.8rem; background:rgba(18,20,24,.4); -webkit-backdrop-filter:saturate(160%) blur(12px); backdrop-filter:saturate(160%) blur(12px); color:#fff; border:1px solid rgba(255,255,255,.18); font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; padding:.32rem .7rem; border-radius:var(--radius-sm); }
.offer-body { padding:1.25rem 1.3rem 1.3rem; display:flex; flex-direction:column; flex:1; }
.offer-date { font-size:.72rem; color:var(--muted-2); text-transform:uppercase; letter-spacing:.08em; }
.offer-title { text-transform:uppercase; letter-spacing:.03em; font-weight:800; font-size:1.05rem; line-height:1.15; margin:.35rem 0 .55rem; }
.offer-title a { color:var(--ink); text-decoration:none; }
.offer-desc { font-size:.86rem; color:var(--muted); line-height:1.55; flex:1; }
.offer-cta { margin-top:.9rem; position:relative; z-index:2; }

/* featured big offer */
.offer-hero { position:relative; border-radius:var(--radius); overflow:hidden; min-height:340px; display:flex; align-items:flex-end; color:#fff; padding:2rem; }
.offer-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,12,15,.15),rgba(10,12,15,.85)); }
.offer-hero.bg { background:var(--paper-2) url(../img/placeholder.jpg) center/cover no-repeat; }
.offer-hero > * { position:relative; z-index:1; max-width:640px; }
.offer-hero .offer-badge { position:static; display:inline-block; margin-bottom:.8rem; }

/* ---------- Single offer detail page ---------- */
.offer-hero-lg { min-height:clamp(360px,52vh,560px); align-items:center; padding:clamp(2rem,5vw,4rem); }
.offer-hero-lg > * { max-width:720px; }
.offer-meta { font-size:.82rem; color:rgba(255,255,255,.85); display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin-bottom:1rem; }
.offer-meta i { margin-right:.35rem; }
.offer-benefit { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:1.3rem 1.35rem; height:100%; }
.offer-benefit .b-num { font-weight:800; font-size:1.5rem; line-height:1; color:var(--ink); }
.offer-benefit .b-label { font-size:.8rem; color:var(--muted); margin-top:.4rem; line-height:1.4; }
.offer-aside { border:1px solid var(--line); border-radius:var(--radius); background:#fff; padding:1.6rem; position:sticky; top:100px; height:max-content; align-self:flex-start; }
.offer-aside .oa-price { font-weight:800; font-size:1.5rem; }
.offer-aside .oa-note { font-size:.78rem; color:var(--muted); }
.offer-steps { counter-reset:step; display:flex; flex-direction:column; gap:1.4rem; }
.offer-step { position:relative; padding-left:3.4rem; min-height:2.4rem; }
.offer-step::before { counter-increment:step; content:counter(step); position:absolute; left:0; top:-.15rem; width:2.4rem; height:2.4rem; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#fff; font-weight:800; font-size:.95rem; }
.offer-step h3 { text-transform:uppercase; letter-spacing:.04em; font-weight:800; font-size:.95rem; margin:.2rem 0 .3rem; }
.offer-step p { font-size:.86rem; color:var(--muted); margin:0; line-height:1.5; }

/* ---- Contacts (contacts/contacts.css) ---- */
/* =====================================================================
   Контакты. On top of shared theme.css
   ===================================================================== */

.ct-map { aspect-ratio:16/10; background:linear-gradient(135deg,#e6e8ea,#d0d4d8); border-radius:var(--radius); position:relative; overflow:hidden; border:1px solid var(--line); }
.ct-map.map-embed { aspect-ratio:16/10; }
.ct-map .pin { position:absolute; top:42%; left:50%; transform:translateX(-50%); color:var(--ink); font-size:2rem; }
.ct-map .label { position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }

.ct-info li { display:flex; gap:.9rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.ct-info li i { color:var(--ink); font-size:1.25rem; flex:0 0 auto; margin-top:.1rem; }
.ct-info .lbl { font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted-2); }
.ct-info .val { font-weight:600; color:var(--ink); }
.ct-info .val a { color:var(--ink); text-decoration:none; }

.ct-dept { border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; height:100%; }
.ct-dept h3 { text-transform:uppercase; letter-spacing:.05em; font-weight:800; font-size:.9rem; }
.ct-dept .phone { font-weight:800; font-size:1.1rem; color:var(--ink); text-decoration:none; display:inline-block; margin:.3rem 0; }
.ct-dept .phone:hover { color:var(--muted); }
.ct-dept p { font-size:.82rem; color:var(--muted); margin:0; }

.ct-form { background:var(--paper-2); border-radius:var(--radius); padding:1.8rem; }
