/* ---- Variables ---- */
:root {
  --header-h:   62px;
  --ac:         #2369b0;
  --fsb-bar:    #ef2b15;
  --ac-dk:      color-mix(in srgb, var(--ac) 80%, #000);
  --ac-lt:      color-mix(in srgb, var(--ac) 12%, #fff);
  --bg:         #f8f9fb;
  --card:       #ffffff;
  --border:     #e5e7eb;
  --text:       #111827;
  --muted:      #6b7280;
  --head-bg:    #1b262f;
  --font-head:  'Nunito Sans', sans-serif;
  --font-body:  'Open Sans', sans-serif;
  --layout-max:   none;
  --layout-pad-h: 2rem;
  --sidebar-w:    270px;
  --grid-cols:    4;
  --badge-flash: #7caf0d;
  --badge-mix: 75%;
  --badge-dest:  #2563eb;
  --badge-new:   #10b981;
  --badge-nuevo: #0d9488;
  --badge-nuevo-text: #ffffff;
  --badge-oficial: #0d9488;
  --badge-oficial-text: #ffffff;
  --badge-km0: #0891b2;
  --badge-km0-text: #ffffff;
  --badge-renting: #0369a1;
  --badge-renting-text: #ffffff;
  --badge-ocasion: #475569;
  --badge-ocasion-text: #ffffff;
  --badge-novedad: var(--ac);
  --badge-saving:      #ef2b15;
  --badge-flash-text:  #ffffff;
  --badge-dest-text:   #ffffff;
  --badge-new-text:    #ffffff;
  --badge-saving-text: #ffffff;
  --badge-sold-bg:     #1a1a1a;
  --badge-sold-text:   #ffffff;
  --badge-res-bg:      #ca8a04;
  --badge-res-text:    #ffffff;
  --badge-plazas:      #0369a1;
  --badge-plazas-text: #ffffff;
  --badge-iva:       #0891b2;
  --badge-iva-text:  #ffffff;
  --badge-4x4:       #334155;
  --badge-4x4-text:  #ffffff;
  --badge-fs:    .82rem;
  --badge-pad:   .26rem .72rem;
  --vspec-color: #5a564f;
}
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; scrollbar-gutter: stable; }
.ls-restoring .results { opacity: 0; }
body { font-family: var(--font-body); background: var(--bg); color: var(--text); font-size: 15px; line-height: 1.55; overflow-x: clip; position: relative; }
/* Hide native scrollbar on touch devices (no sense showing it on phones/tablets) */
@media (pointer: coarse) {
  html { scrollbar-width: none; -ms-overflow-style: none; }
  html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; width: 0; height: 0; }
}
@media (max-width: 480px) {
  :root { --layout-pad-h: .75rem; }
  .page { padding-top: 1rem; padding-bottom: 1rem; }
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; }

/* ---- Header ---- */
.site-header {
  background: var(--head-bg);
  color: #fff;
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
}
body { padding-top: var(--header-h, 62px); }
.header-inner {
  max-width: var(--layout-max); margin: 0 auto; padding: 0 var(--layout-pad-h);
  display: flex; align-items: center; gap: 1.5rem; height: 62px;
}
.header-brand { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; text-decoration: none; }
.header-logo { height: 30px; object-fit: contain; }
.header-name { font-family: var(--font-head); font-weight: 600; font-size: 1.2rem; letter-spacing: .01em; color: #fff; }
.header-search {
  flex: 1; max-width: 420px; position: relative;
  display: flex; align-items: center;
}
.header-search input {
  width: 100%; padding: .45rem 2.5rem .45rem .85rem;
  background: rgba(255,255,255,.10); border: 1.5px solid rgba(255,255,255,.18);
  border-radius: 7px; color: #fff; font-size: .82rem;
  transition: background .15s, border-color .15s;
}
.header-search input::placeholder { color: rgba(255,255,255,.45); }
.header-search input:focus { outline: none; background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.4); }
.header-search button {
  position: absolute; right: .55rem; background: none; border: none; color: rgba(255,255,255,.6);
  display: flex; align-items: center; padding: 0;
}
.header-collapse { flex: 1; display: flex; align-items: center; gap: 1.5rem; }
.header-nav { display: flex; align-items: center; gap: .45rem; margin-left: auto; }
.header-nav a {
  padding: .4rem .75rem; border-radius: 6px; font-size: .82rem; line-height: 16px; font-weight: 500;
  color: #fff; border: 1px solid transparent; transition: background .12s, color .12s, border-color .12s;
  white-space: nowrap;
}
.header-nav a:not(.nav-cta):not(.nav-favs):not(.nav-icon) { border-color: rgba(255,255,255,.12); background-clip: padding-box; }
.header-nav a.nav-icon { display: inline-flex; align-items: center; }
.nav-contact-m { display: none; }
.header-nav a:hover { background: rgba(255,255,255,.12); color: #fff; }
.header-nav a.active { color: #fff; }
@media (min-width: 769px) {
  /* pagina actual: anillo de 2px (acento; en botones de acento, color del texto) */
  .header-nav a.active { outline: 1px solid var(--ac); outline-offset: -1px; }
  .header-nav a.nav-cta.active { outline: 1px solid currentColor; outline-offset: -1px; }
  .header-nav .nav-sub a.active { outline: none; }
}
.header-nav .nav-cta {
  background: var(--ac); color: #fff; font-weight: 600;
}
.header-nav a.nav-cta.active { background: var(--ac); }
/* Submenus de cabecera (1 nivel): en escritorio se abren al pasar el cursor o al enfocar */
.nav-has-sub { position: relative; }
.nav-parent-row { display: inline-flex; align-items: center; gap: .1rem; }
.nav-caret { display: inline-flex; align-items: center; justify-content: center; padding: .35rem; background: transparent; border: 0; color: #fff; cursor: pointer; border-radius: 6px; opacity: .85; }
.nav-caret:hover { opacity: 1; background: rgba(255,255,255,.12); }
.nav-caret svg { transition: transform .15s; }
.nav-sub {
  position: absolute; top: 100%; left: 0; min-width: 210px; z-index: 250;
  display: flex; flex-direction: column; gap: .12rem; margin-top: 11px; padding: .45rem;
  background: color-mix(in srgb, var(--card, #fff) 92%, transparent);
  -webkit-backdrop-filter: blur(12px) saturate(1.15); backdrop-filter: blur(12px) saturate(1.15);
  border: 1px solid var(--border); border-radius: 14px;
  opacity: 0; visibility: hidden; transform: translateY(10px) scale(.98); transform-origin: top left;
  transition: opacity .22s cubic-bezier(.22,1,.36,1), transform .22s cubic-bezier(.22,1,.36,1), visibility .22s;
}
.nav-sub::before { content: ''; position: absolute; top: -11px; left: 0; right: 0; height: 11px; }
.nav-sub-scroll { max-height: 288px; overflow-y: auto; overflow-x: hidden; padding-right: 2px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--ac) 35%, transparent) transparent; }

.nav-has-sub:hover .nav-sub, .nav-has-sub:focus-within .nav-sub { opacity: 1; visibility: visible; transform: none; }
.nav-has-sub:hover .nav-caret svg, .nav-has-sub:focus-within .nav-caret svg { transform: rotate(180deg); }
.header-nav .nav-sub a { display: block; white-space: nowrap; border-color: transparent; padding: .55rem .8rem; border-radius: 9px; font-family: var(--font-head); font-weight: 600; font-size: .78rem; line-height: 1.25; color: var(--text); transition: background .16s ease; } /* mismo formato de texto que los items del desplegable de telefonos */
.header-nav .nav-sub a:hover { background: color-mix(in srgb, var(--ac) 8%, transparent); color: var(--text); }
.header-nav .nav-sub a:not(.nav-cta):not(.nav-favs):not(.nav-icon) { border-color: transparent; }
.nav-sub-hd { margin: -.45rem -.45rem .35rem; padding: .6rem .85rem .55rem; font-family: var(--font-head); font-weight: 700; font-size: .82rem; letter-spacing: .01em; color: var(--text); background: var(--bg); border-bottom: 1px solid var(--border); border-radius: 13px 13px 0 0; white-space: nowrap; }
.nav-sub-badge { display: none; }
/* Favorites: theme variable (defaults to accent if not configured) */
:root { --fav-color: #2369b0; }
:root { --card-hover-border: #2369b0; }:root { --chat-ac: #e9872b; }/* Favorites: header nav button with count badge */
.header-nav a.nav-favs { display: inline-flex; align-items: center; gap: .35rem; position: relative; }
.header-nav a.nav-favs svg { fill: none; transition: fill .15s; }
.header-nav a.nav-favs:hover svg, .header-nav a.nav-favs.active svg { fill: var(--fav-color); }
.nav-favs-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
  background: var(--fav-color); color: #fff; font-size: .65rem; font-weight: 700;
}
/* Favorites: card button - line icon by default, fills on hover or when active */
.vcard { position: relative; }
.vcard-fav {
  position: absolute; top: .5rem; right: .5rem; z-index: 6;
  width: 32px; height: 32px; padding: 0; border: none; border-radius: 50%;
  background: rgba(255,255,255,.92); color: #475569;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: color .14s, background .14s, transform .14s;
}
.vcard-fav svg { width: 18px; height: 18px; pointer-events: none; fill: none; transition: fill .15s; }
.vcard-fav:hover { background: #fff; color: var(--fav-color); transform: scale(1.08); }
.vcard-fav:hover svg { fill: var(--fav-color); }
.vcard-fav.is-fav { color: var(--fav-color); }
.vcard-fav.is-fav svg { fill: var(--fav-color); }
/* Disable favorite button on sold/reserved cards */
.vcard--sold .vcard-fav, .vcard--reserved .vcard-fav {
  opacity: .35; cursor: not-allowed; pointer-events: none;
}
/* WhatsApp button on card - placed below fav button if present, else at top */
.vcard-wa {
  position: absolute; top: .5rem; right: .5rem; z-index: 6;
  width: 32px; height: 32px; padding: 0; border: none; border-radius: 50%;
  background: rgba(255,255,255,.92); color: #25D366;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .14s, transform .14s, color .14s;
  text-decoration: none;
}
.vcard-fav ~ .vcard-wa { top: calc(.5rem + 38px); }
.vcard-wa:hover { background: #25D366; color: #fff; transform: scale(1.08); }
.vcard-wa svg { width: 18px; height: 18px; pointer-events: none; }
/* Hamburger (mobile only) */
.header-menu-btn { display: none; margin-left: auto; background: none; border: none; color: #fff; padding: .35rem; border-radius: 6px; align-items: center; justify-content: center; }
.header-menu-btn:hover { background: rgba(255,255,255,.10); }
.header-menu-btn .hmb-close { display: none; }
.header-menu-btn.open .hmb-open { display: none; }
.header-menu-btn.open .hmb-close { display: block; }
.header-search-btn { display: none; background: none; border: none; color: #fff; padding: .35rem .4rem; border-radius: 6px; align-items: center; justify-content: center; }
.header-search-btn:hover { background: rgba(255,255,255,.10); }
.header-search-btn.open { background: rgba(255,255,255,.14); }
/* Telefono de centros en la cabecera */
.header-phone { position: relative; display: flex; align-items: center; margin-left: .35rem; }
.header-phone-m { display: none; }
.header-phone-btn--icon { padding: .35rem .4rem; border-color: transparent; background: none; }
.header-phone-btn--icon:hover { background: rgba(255,255,255,.10); }
.site-header:has(.header-phone.open) { z-index: 600; }
.header-phone-btn { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .5rem; border-radius: 6px; border: none; background: none; color: #fff; cursor: pointer; transition: background .12s; }
.header-phone-btn:hover { background: rgba(255,255,255,.12); }
.header-phone-btn-label { display: none; }
.header-phone-btn svg { flex-shrink: 0; }
.header-phone-dd { position: absolute; top: 100%; right: 0; margin-top: 12px; width: 300px; max-width: calc(100vw - 2rem); background: var(--card, #fff); color: var(--text); border: 1px solid var(--border); border-radius: 14px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .22s cubic-bezier(.22,1,.36,1), transform .22s cubic-bezier(.22,1,.36,1), visibility .22s; z-index: 200; }
.header-phone:hover .header-phone-dd, .header-phone.open .header-phone-dd { opacity: 1; visibility: visible; transform: none; }
.header-phone-dd::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }

.header-phone-hd { display: flex; align-items: center; gap: .5rem; font-family: var(--font-head); font-weight: 700; font-size: .82rem; padding: .7rem 1rem .65rem; color: var(--text); background: var(--bg); border-bottom: 1px solid var(--border); border-radius: 13px 13px 0 0; }
.header-phone-hd svg { color: var(--ac); flex-shrink: 0; }
.header-phone-list { max-height: 264px; overflow-y: auto; overscroll-behavior: contain; padding: .4rem; }
.header-phone-list::-webkit-scrollbar { width: 7px; }
.header-phone-list::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--ac) 35%, transparent); border-radius: 7px; }
.header-phone-item { display: flex; flex-direction: column; gap: .15rem; padding: .55rem .8rem; border-radius: 8px; text-decoration: none; color: var(--text); transition: background .14s; }
.header-phone-item:first-child { border-top: none; }
.header-phone-dd .header-phone-item:hover { background: color-mix(in srgb, var(--ac) 8%, transparent); }
.header-phone .header-phone-item { color: var(--text); }
.header-phone-loc { display: flex; align-items: baseline; gap: .4rem; max-width: 100%; min-width: 0; }
.header-phone-name { flex: 0 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: var(--font-head); font-weight: 600; font-size: .78rem; line-height: 1.25; color: var(--text); }
.header-phone-city { flex: 0 0 auto; white-space: nowrap; font-size: .72rem; color: var(--muted); line-height: 1.25; }
.header-phone-num { display: inline-flex; align-items: center; gap: .35rem; font-family: var(--font-body); font-size: .8rem; color: var(--ac); font-weight: 500; letter-spacing: .01em; }
.header-phone-num svg { flex-shrink: 0; }
.header-favs-mobile { display: none; align-items: center; gap: .3rem; position: relative; color: #fff; text-decoration: none; padding: .35rem .4rem; border-radius: 6px; }
.header-favs-mobile svg { fill: none; }
.header-favs-mobile.active svg { fill: var(--fav-color); }
@media (max-width: 768px) {
  :root { --header-h: 50px; }
  .header-inner { gap: .45rem; padding-left: 1rem; padding-right: 1rem; height: 50px; }
  .site-header { transition: transform .3s ease; }
  .site-header.header-retracted { transform: translateY(-100%); }
  .header-logo { height: 21px; }
  .header-favs-mobile { display: inline-flex; margin-left: 0; }
  .header-menu-btn { display: flex; margin-left: 0; }
  .header-collapse {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: .85rem;
    background: var(--head-bg); padding: 1rem var(--layout-pad-h) calc(1.25rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(255,255,255,.12);
    max-height: calc(100dvh - var(--header-h, 50px)); overflow-y: auto;
    overscroll-behavior: contain; z-index: 1101;
  }
  .header-collapse.open { display: flex; }
  .site-header:has(.header-collapse.open) { z-index: 1100; }
  .hdr-backdrop { position: fixed; inset: 0; background: rgba(15,18,24,.45); z-index: 1099; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
  .header-search-btn { display: flex; margin-left: auto; }
  .header-search {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    max-width: none; z-index: 199;
    background: var(--head-bg); padding: 1rem var(--layout-pad-h) 1.25rem;
    border-top: 1px solid rgba(255,255,255,.12);
  }
  .header-search.open { display: flex; }
  .header-nav a.nav-favs { display: none; }
  .header-search input { font-size: .95rem; padding: .65rem 2.5rem .65rem 1rem; }
  .header-search button { right: calc(var(--layout-pad-h) + .6rem); }
  .header-nav { flex-direction: column; align-items: stretch; gap: .35rem; margin-left: 0; }
  .header-nav a { padding: .7rem .85rem; font-size: .95rem; }
  .header-nav .nav-cta { margin-left: 0; text-align: center; }
  /* Submenus en movil: acordeon dentro del drawer (se abre con la clase .open) */
  .nav-has-sub { position: static; display: block; }
  .nav-parent-row { display: flex; align-items: center; justify-content: space-between; gap: .35rem; }
  .nav-parent-row .nav-parent { flex: 1; }
  .nav-caret { padding: .55rem .6rem; }
  .nav-sub { position: static; display: none; min-width: 0; margin: .2rem 0 .35rem .6rem; padding: .1rem 0 .1rem .55rem; border: 0; border-left: 1px solid rgba(255,255,255,.16); border-radius: 0; background: transparent; opacity: 1; visibility: visible; transform: none; }
  .nav-sub::before, .nav-sub::after { display: none; }
  .nav-sub-scroll { max-height: none; overflow: visible; }
  .header-nav .nav-sub a { color: #fff; padding: .5rem .7rem; border-radius: 8px; }
  .nav-sub-hd { display: none; }
  .nav-sub-badge { display: inline-flex; align-items: center; margin-left: .5rem; font-size: .6rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: .14rem .5rem; border-radius: 999px; background: color-mix(in srgb, var(--ac) 16%, transparent); color: inherit; }
  .header-nav .nav-sub a:hover { background: rgba(255,255,255,.12); color: #fff; }
  .nav-has-sub.open .nav-sub { display: flex; }
  .nav-has-sub:focus-within .nav-caret svg { transform: none; }
  .nav-has-sub.open .nav-caret svg { transform: rotate(180deg); }
  /* En movil el hover no debe abrir el submenu (solo el toggle .open) */
  .nav-has-sub:hover .nav-sub, .nav-has-sub:focus-within .nav-sub { display: none; }
  .nav-has-sub.open:hover .nav-sub, .nav-has-sub.open:focus-within .nav-sub { display: flex; }
  .header-phone-d { display: none; }
  .header-nav a.header-contact-d { display: none; }
  .nav-contact-m { display: block; }
  .header-phone-m { display: flex; margin-left: 0; }
  .header-phone-m ~ .header-favs-mobile { margin-left: 0; }
  .header-phone:hover .header-phone-dd { opacity: 0; visibility: hidden; }
  .header-phone.open .header-phone-dd { opacity: 1; visibility: visible; }
  .header-phone-m .header-phone-dd { position: fixed; top: calc(var(--header-h, 62px) + 2px); right: 1rem; left: auto; width: min(320px, calc(100vw - 2rem)); margin-top: 0; }
  .header-phone-m .header-phone-dd::after { right: 16px; }
  .header-phone-m .header-phone-dd::before { display: none; }
  .header-phone-list { max-height: 60vh; }
}

/* ---- Page wrapper ---- */
.page { max-width: var(--layout-max); margin: 0 auto; padding: 1.5rem var(--layout-pad-h) 1.5rem; }
.page.detail-page { max-width: 1200px; }
@media (max-width: 840px) { .promo-hero-wrap + .page { padding-top: 1.5rem; } }

/* ---- Promos ---- */
.promo-hero-wrap { width: 100%; margin: 0; padding: 0; }
/* Hero compartido: varias promos hero con el mismo scope comparten el espacio y rotan (carrusel) */
.promo-hero--carousel { position: relative; }
.promo-hero--carousel .hero-slide { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity .55s ease; }
.promo-hero--carousel .hero-slide:first-child { position: relative; }  /* el 1er hero fija la altura del carrusel */
.promo-hero--carousel .hero-slide.is-active { opacity: 1; pointer-events: auto; }
.promo-hero--carousel .hero-dots { position: absolute; left: 0; right: 0; bottom: .7rem; z-index: 7; display: flex; justify-content: center; gap: .45rem; }
.promo-hero--carousel .hero-dot { box-sizing: border-box; width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 1px solid rgba(0,0,0,.28); background: rgba(255,255,255,.55); cursor: pointer; transition: background .15s, transform .15s; }
.promo-hero--carousel .hero-dot:hover { background: rgba(255,255,255,.85); }
.promo-hero--carousel .hero-dot.is-active { background: #fff; transform: scale(1.2); }
@media (prefers-reduced-motion: reduce) { .promo-hero--carousel .hero-slide { transition: none; } }
.entregas-slider-wrap { position: relative; }
.entregas-slider { display: flex; gap: .8rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 6px 2px .4rem; }
.entregas-slider::-webkit-scrollbar { display: none; }
.entregas-slider.is-dragging { scroll-behavior: auto; scroll-snap-type: none; cursor: grabbing; }
.entregas-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 30px; height: 30px; border-radius: 50%; border: none; background: color-mix(in srgb, var(--ac) 78%, transparent); color: #fff; display: none; align-items: center; justify-content: center; cursor: pointer; transition: transform .15s, background .15s; }
.entregas-nav svg { width: 15px; height: 15px; }
.entregas-nav:hover { transform: translateY(-50%) scale(1.1); background: var(--ac); }
.entregas-nav--prev { left: 6px; } .entregas-nav--next { right: 6px; }
@media (hover: hover) and (min-width: 880px) { .entregas-slider-wrap.ent-scrollable:hover .entregas-nav { display: flex; } }
.entregas-item { position: relative; flex: 0 0 auto; height: 240px; border-radius: 12px; overflow: hidden; scroll-snap-align: start; border: 2px solid transparent; transition: transform .18s ease, border-color .18s ease; }
.entregas-item:hover { transform: translateY(-3px); border-color: var(--card-hover-border, var(--ac)); }
.entregas-slider.is-dragging .entregas-item:hover { transform: none; border-color: transparent; }
.entregas-img { height: 100%; width: auto; max-width: none; object-fit: cover; display: block; background: #f1f5f9; -webkit-user-drag: none; user-select: none; }
.entregas-item--square { aspect-ratio: 1/1; }
.entregas-item--portrait { aspect-ratio: 4/5; }
.entregas-item--landscape { aspect-ratio: 16/9; }
.entregas-item--square .entregas-img, .entregas-item--portrait .entregas-img, .entregas-item--landscape .entregas-img { width: 100%; }
.entregas-wm { position: absolute; z-index: 2; pointer-events: none; }
.entregas-wm--center { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.entregas-wm--tl { top: 7%; left: 7%; } .entregas-wm--tr { top: 7%; right: 7%; }
.entregas-wm--bl { bottom: 7%; left: 7%; } .entregas-wm--br { bottom: 7%; right: 7%; }
@media (max-width: 640px) { .entregas-item { height: 168px; } }
.promo-hero { position: relative; container-type: inline-size; overflow: hidden; }
/* Piezas publicitarias (hero, sus elementos y las promos): no seleccionables ni arrastrables */
.promo-hero, .promo-hero *, .promo-slot, .promo-slot * { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.promo-hero img, .promo-slot img, .hero-el--img img { -webkit-user-drag: none; }
/* Promo hero por dispositivo (mobile/desktop) */
@media (max-width:640px){ .promo-block[data-device="desktop"], .promo-slot[data-device="desktop"]{ display:none !important; } }
@media (min-width:641px){ .promo-block[data-device="mobile"], .promo-slot[data-device="mobile"]{ display:none !important; } }
@media (max-width:640px){ .promo-hero--carousel .hero-slide[data-device="desktop"], .promo-hero--carousel .hero-dot[data-device="desktop"]{ display:none !important; } }
@media (min-width:641px){ .promo-hero--carousel .hero-slide[data-device="mobile"], .promo-hero--carousel .hero-dot[data-device="mobile"]{ display:none !important; } }
.promo-hero--carousel .hero-slide.is-lead{ position: relative; }
/* Altura del carrusel reservada desde el 1er paint (sin CLS): el 1er slide VISIBLE de cada dispositivo es position:relative por CSS, sin esperar a que el JS ponga is-lead. Necesario porque en movil el 1er slide puede ser solo-desktop (display:none). */
.promo-hero--carousel .hero-slide.hero-slide--lead-d{ position: relative; }
@media (max-width:640px){
  .promo-hero--carousel .hero-slide.hero-slide--lead-d:not(.hero-slide--lead-m){ position: absolute; }
  .promo-hero--carousel .hero-slide.hero-slide--lead-m{ position: relative; }
}
.hero-els { position: absolute; inset: 0; z-index: 6; pointer-events: none; }
.hero-els { container-type: size; }
.hero-el { position: absolute; line-height: 1.15; }
.hero-el--text { pointer-events: none; white-space: pre-wrap; text-shadow: 0 .02em .16em rgba(0,0,0,.4); max-width: 92%; }
.hero-el--btn { pointer-events: auto; display: inline-block; padding: .55em 1.2em; border-radius: .16em; color: #fff; text-decoration: none; font-weight: 500; white-space: nowrap; transition: transform .14s; }
.hero-el--btn:hover { transform: translateY(-2px); }
.hero-el--pico { isolation: isolate; }
.hero-el--pico::before { content: ''; position: absolute; background: var(--hbg); z-index: -1; }
.hero-el--pico-br::before { inset: 0 -.9em 0 0; clip-path: polygon(0 0, calc(100% - .9em) 0, 100% 100%, 0 100%); }
.hero-el--pico-tr::before { inset: 0 -.9em 0 0; clip-path: polygon(0 0, 100% 0, calc(100% - .9em) 100%, 0 100%); }
.hero-el--pico-bl::before { inset: 0 0 0 -.9em; clip-path: polygon(.9em 0, 100% 0, 100% 100%, 0 100%); }
.hero-el--pico-tl::before { inset: 0 0 0 -.9em; clip-path: polygon(0 0, 100% 0, 100% 100%, .9em 100%); }
.hero-el--img { line-height: 0; }
.hero-el--img img { border-radius: inherit; }
.hero-el--icon { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.hero-el--icon svg { height: 100%; width: auto; display: block; }
.hero-el--icon.hero-el--icon-bg { aspect-ratio: 1; border-radius: 18%; }
.hero-el--icon.hero-el--icon-bg svg { height: 62%; width: auto; }
.hero-inline-ico { display: inline-block; width: var(--hico, 1em); height: var(--hico, 1em); vertical-align: -0.125em; }
@keyframes heroAnFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes heroAnZoom { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: none; } }
@keyframes heroAnSlideL { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: none; } }
@keyframes heroAnSlideR { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }
@keyframes heroAnSlideU { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: none; } }
@keyframes heroAnSlideD { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes heroAnFadeLoop { 0% { opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { opacity: 0; } }
@keyframes heroAnZoomLoop { 0% { opacity: 0; transform: scale(.85); } 15% { opacity: 1; transform: none; } 85% { opacity: 1; transform: none; } 100% { opacity: 0; transform: scale(1.1); } }
@keyframes heroAnSlideLLoop { 0% { opacity: 0; transform: translateX(-30px); } 15% { opacity: 1; transform: none; } 85% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateX(30px); } }
@keyframes heroAnSlideRLoop { 0% { opacity: 0; transform: translateX(30px); } 15% { opacity: 1; transform: none; } 85% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateX(-30px); } }
@keyframes heroAnSlideULoop { 0% { opacity: 0; transform: translateY(-30px); } 15% { opacity: 1; transform: none; } 85% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(30px); } }
@keyframes heroAnSlideDLoop { 0% { opacity: 0; transform: translateY(30px); } 15% { opacity: 1; transform: none; } 85% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-30px); } }
@media (prefers-reduced-motion: reduce) { .hero-el { animation: none !important; } }
@media (min-width: 761px) { .hero-el--d-hide { display: none !important; } }
@media (max-width: 760px) { .hero-el--m-hide { display: none !important; } }
/* Movil: el hero CON VIDEO muestra el recorte de la mitad opuesta (zoom 2x). Los elementos (cqw) se referenciaban al ancho COMPLETO -> salian minusculos y descuadrados. Solucion: hero-els pasa a ser el contenedor de query a 200% de ancho = referencia la MITAD (cqw 2x) y se mapea a la mitad visible (video dcha -> mitad izq en left:0; video izq -> mitad dcha en left:-100%). */
@media (max-width: 760px) {
  .phv .hero-els { container-type: size; width: 200%; right: auto; }
  .phv-has-half .phv-inner { height: auto; aspect-ratio: var(--phv-half-ar, 1.95); }
  .phv--right .hero-els { left: 0; }
  .phv--left .hero-els { left: -100%; }
  /* Recorte movil personalizado: hero-els se adapta a la fraccion real */
  .phv-has-crop .hero-els { width: var(--phv-crop-w, 200%); }
  .phv-has-crop.phv--left .hero-els { left: var(--phv-crop-left, -100%); }
  /* Recorte movil del hero NORMAL (sin video): re-referencia el contenedor de los elementos a la mitad visible */
  .promo-hero.hero-mcrop .hero-els { container-type: size; width: var(--hm-crop-w, 200%); }
  .promo-hero.hero-mcrop--l .hero-els { left: 0; right: auto; }
  .promo-hero.hero-mcrop--r .hero-els { left: var(--hm-crop-left, -100%); right: auto; }
}
.promo-slot { border-radius: 10px; border: 1px solid var(--border); overflow: hidden; position: relative; background: var(--card); animation: fadeUp .35s both; }
.promo-slot-inner { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none; color: #fff; }
.promo-slot-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
video.promo-slot-media { object-fit: cover; }
/* En movil, cuando el slot (no testimonial) queda SOLO en su fila (1-col o ultima impar), no tiene altura propia (todo su contenido es position:absolute) y colapsa -> se le da aspect-ratio; con vecina en 2-col, el stretch del grid manda. */
@media (max-width: 640px) { .promo-slot:not(.promo-slot--testi):not(.promo-slot--icono) { aspect-ratio: 3 / 4; } }
.promo-slot-text { position: relative; z-index: 1; padding: .85rem; background: linear-gradient(to bottom, transparent, rgba(0,0,0,.62)); display: flex; flex-direction: column; gap: .15rem; }
.promo-slot-title { font-family: var(--font-head); font-size: .95rem; font-weight: 700; color: #fff; line-height: 1.2; }
.promo-slot-sub   { font-size: .75rem; color: rgba(255,255,255,.8); }
.promo-slot--icono { display: flex; }
.promo-slot-icono-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .5rem; padding: 1.5rem 1.1rem; width: 100%; }
.promo-slot-ico-wrap { display: inline-flex; align-items: center; justify-content: center; color: var(--ac); flex-shrink: 0; }
.promo-slot-ico { flex-shrink: 0; }
.promo-slot-ico-wrap--sm .promo-slot-ico { width: 38px; height: 38px; }
.promo-slot-ico-wrap--md .promo-slot-ico { width: 52px; height: 52px; }
.promo-slot-ico-wrap--lg .promo-slot-ico { width: 68px; height: 68px; }
.promo-slot-ico-wrap--bg { border-radius: 16px; }
.promo-slot-ico-wrap--bg.promo-slot-ico-wrap--sm { padding: .55rem; border-radius: 12px; }
.promo-slot-ico-wrap--bg.promo-slot-ico-wrap--md { padding: .7rem; border-radius: 15px; }
.promo-slot-ico-wrap--bg.promo-slot-ico-wrap--lg { padding: .85rem; border-radius: 19px; }
.promo-slot--icono .promo-slot-title { color: var(--text); font-size: 1rem; }
.promo-slot--icono .promo-slot-sub { position: static; color: var(--muted); font-size: .82rem; line-height: 1.4; padding: 0; background: none; }
.promo-slot-cta { margin-top: .4rem; display: inline-flex; align-items: center; background: var(--ac); color: #fff; border-radius: 8px; padding: .5rem .95rem; font-size: .82rem; font-weight: 700; text-decoration: none; transition: filter .14s, transform .14s; }
.promo-slot-cta:hover { transform: translateY(-1px); }
.promo-slot-txt--sm .promo-slot-title { font-size: .9rem; }
.promo-slot-txt--sm .promo-slot-sub { font-size: .75rem; }
.promo-slot-txt--md .promo-slot-title { font-size: 1rem; }
.promo-slot-txt--md .promo-slot-sub { font-size: .82rem; }
.promo-slot-txt--lg .promo-slot-title { font-size: 1.2rem; }
.promo-slot-txt--lg .promo-slot-sub { font-size: .95rem; }
.pb-btn.promo-slot-cta--sm { font-size: .76rem; padding: .42rem .85rem; }
.pb-btn.promo-slot-cta--md { font-size: .85rem; padding: .55rem 1.1rem; }
.pb-btn.promo-slot-cta--lg { font-size: .98rem; padding: .7rem 1.5rem; }
/* ================================================================
   TESTIMONIAL PROMO - SLOT CARD
   Stars band bleeds flush to card top+sides via overflow:hidden clip
   ================================================================ */
/* Nacen con max-height:0;overflow:hidden;visibility:hidden via inline style (render_cards.php).
   animation:none bloquea la GPU layer del compositor hasta que data-init confirma posición. */
.promo-slot--testi:not([data-init]) { animation: fadeUp 9999s both; }
.promo-slot--testi[data-init] { animation: fadeUp .35s both; }
.promo-slot--testi { background: var(--card); display: flex; flex-direction: column; max-height: var(--vg-card-h, 9999px); }
.promo-slot-inner--testi { flex: 1; min-height: 0; display: flex; flex-direction: column; color: var(--text); text-decoration: none; }
.pb-testi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; align-items: stretch; }
.pb-testi-grid .pb-testi-card { max-height: none; }
.pb-testi-grid .pb-testi-card--full .promo-testi-quote { -webkit-mask-image: none; mask-image: none; overflow: visible; }
.pb-testi-grid .pb-testi-card--partial .promo-testi-quote { -webkit-mask-image: none; mask-image: none; flex: 0 0 auto; max-height: 8.7em; overflow: hidden; }
.pb-testi-grid .pb-testi-card--partial .promo-testi-quote.is-clamped { -webkit-mask-image: linear-gradient(to bottom, black 65%, transparent 100%); mask-image: linear-gradient(to bottom, black 65%, transparent 100%); }
@media (max-width: 600px) { .pb-testi-grid { grid-template-columns: 1fr; } }
.promo-testi-body { padding: 0 1.3rem 1.35rem; display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* SVG stars - base; colores via CSS vars heredadas de .promo-testi-body */
.promo-testi-stars { display: flex; align-items: center; gap: .32rem; }
.promo-testi-star  { display: block; flex-shrink: 0; width: 28px; height: 28px; }
.promo-testi-star.star-f path { fill: var(--testi-star, #f59e0b); }
.promo-testi-star.star-e path { fill: color-mix(in srgb, var(--testi-star, #f59e0b) 22%, transparent); }

/* Google G: always full-color inside white circle */
.promo-testi-g-wrap {
  width: 28px; height: 28px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  margin-left: auto;
}
.promo-testi-glogo { width: 17px; height: 17px; display: block; }

/* Slot: accent-colored header band (color var), stars use config color, default white */
.promo-slot--testi .promo-testi-stars { background: var(--testi-band, var(--ac)); margin: 0 -1.3rem 1.1rem; padding: .82rem 1.3rem .88rem; }
.promo-slot--testi .promo-testi-star  { width: 28px; height: 28px; }
.promo-slot--testi .promo-testi-star.star-f path { fill: var(--testi-star, #fff); }
.promo-slot--testi .promo-testi-star.star-e path { fill: color-mix(in srgb, var(--testi-star, #fff) 28%, transparent); }

/* Quote: heading font italic */
.promo-testi-quote { font-family: var(--font-head); font-size: 1.08rem; font-weight: 500; font-style: italic; line-height: 1.45; color: var(--text); margin: 0; flex: 1; }
.tx-emoji { font-style: normal; }
.promo-testi-quote::before { content: none; }
.promo-testi-quote::after  { content: none; }
/* Slot only: fill remaining height in the card, fade at bottom */
.promo-slot--testi .promo-testi-quote {
  flex: 1; overflow: hidden; min-height: 0;
  -webkit-mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 65%, transparent 100%);
}
/* Slot only: large CSS open-quote watermark above text */
.promo-slot--testi .promo-testi-quote::before {
  content: '\201C'; display: block; font-style: normal; font-family: var(--font-head);
  font-size: 3.2rem; font-weight: 800; color: var(--ac); opacity: .22;
  line-height: .72; margin-bottom: .22rem;
}

/* Author */
.promo-testi-meta { display: flex; flex-direction: column; gap: .08rem; margin-top: .9rem; padding-top: .65rem; border-top: 1px solid var(--border); }
.promo-testi-name { font-family: var(--font-head); font-size: .92rem; font-weight: 700; letter-spacing: .01em; color: var(--text); }
.promo-testi-role { font-size: .74rem; color: var(--muted); }
/* "Seguir leyendo" - slot cards only */
.promo-testi-readmore {
  display: inline-flex; align-items: center; gap: .22rem; margin-top: .75rem;
  font-size: .75rem; font-weight: 600; color: var(--ac);
  text-decoration: none; background: none; border: none; padding: 0; cursor: pointer; flex-shrink: 0;
}
.promo-testi-readmore svg { flex-shrink: 0; }

/* ================================================================
   TESTIMONIAL PROMO - FULL-WIDTH ZONES
   Dark background (head-bg = same as site header), editorial layout
   2-column grid: quote left | author right, divided by accent line
   ================================================================ */
.promo-testi .promo-inner--testi {
  background: var(--head-bg); border-radius: 10px; color: #fff;
  display: flex; align-items: center; justify-content: center; padding: 2rem 2.5rem;
}
.promo-testi .promo-inner--testi .promo-testi-body { padding: 0; }

/* Full-width: gold filled (o var CSS), faint white empty */
.promo-block.promo-testi .promo-testi-star.star-f path { fill: var(--testi-star, #f59e0b); }
.promo-block.promo-testi .promo-testi-star.star-e path { fill: rgba(255,255,255,.16); }

/* Large decorative open-quote in accent above quote text */
.promo-block.promo-testi .promo-testi-quote::before {
  content: '\201C'; display: block; font-style: normal; font-family: var(--font-head);
  font-weight: 800; color: var(--testi-band, var(--ac)); opacity: .75; line-height: .72; margin-bottom: .3rem;
}
.promo-block.promo-testi .promo-testi-quote { color: rgba(255,255,255,.92); }
.promo-block.promo-testi .promo-testi-name  { color: #fff; }
.promo-block.promo-testi .promo-testi-role  { color: rgba(255,255,255,.48); }
.promo-block.promo-testi .promo-testi-meta  { border-top: none; margin-top: 0; padding-top: 0; }

/* Interstitial */
.promo-interstitial.promo-testi .promo-inner--testi { padding: 1.85rem 2.5rem; }
.promo-interstitial.promo-testi .promo-testi-body {
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr;
  column-gap: 2.5rem; row-gap: .4rem; align-items: start; max-width: 900px; width: 100%;
}
.promo-interstitial.promo-testi .promo-testi-stars { grid-column: 1; grid-row: 1; }
.promo-interstitial.promo-testi .promo-testi-star  { width: 28px; height: 28px; }
.promo-interstitial.promo-testi .promo-testi-quote { grid-column: 1; grid-row: 2; font-size: 1.12rem; align-self: center; }
.promo-interstitial.promo-testi .promo-testi-quote::before { font-size: 2.8rem; }
.promo-interstitial.promo-testi .promo-testi-meta  { grid-column: 2; grid-row: 1 / 3; align-self: center; border-left: 2px solid var(--testi-band, var(--ac)); padding-left: 2rem; min-width: 155px; }
.promo-interstitial.promo-testi .promo-testi-name  { font-size: .96rem; }
.promo-interstitial.promo-testi .promo-testi-role  { font-size: .78rem; }

/* Hero */
.promo-hero.promo-testi .promo-inner--testi { padding: 2.5rem 3rem; min-height: 160px; }
.promo-hero.promo-testi .promo-testi-body {
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr;
  column-gap: 3rem; row-gap: .5rem; align-items: start; max-width: 980px; width: 100%;
}
.promo-hero.promo-testi .promo-testi-stars { grid-column: 1; grid-row: 1; }
.promo-hero.promo-testi .promo-testi-star  { width: 34px; height: 34px; }
.promo-hero.promo-testi .promo-testi-quote { grid-column: 1; grid-row: 2; font-size: 1.35rem; align-self: center; }
.promo-hero.promo-testi .promo-testi-quote::before { font-size: 3.8rem; }
.promo-hero.promo-testi .promo-testi-meta  { grid-column: 2; grid-row: 1 / 3; align-self: center; border-left: 2px solid var(--testi-band, var(--ac)); padding-left: 2.5rem; min-width: 175px; }
.promo-hero.promo-testi .promo-testi-name  { font-size: 1.06rem; }
.promo-hero.promo-testi .promo-testi-role  { font-size: .86rem; }

/* Top listing */
/* top_listing con imagen: ancho completo de columna, sin fondo de acento */
.promo-top_listing .promo-inner:has(.promo-img),
.promo-top_listing .promo-inner--img {
  background: none !important; padding: 0; min-height: 0;
}
.promo-top_listing .promo-img {
  display: block !important; width: 100% !important; height: auto !important;
  max-height: 240px; object-fit: cover; object-position: center;
  border-radius: 10px !important; flex-shrink: initial;
}
.promo-top_listing video.promo-img { height: 180px !important; }
.promo-top_listing .promo-inner:has(.promo-img) .promo-text,
.promo-top_listing .promo-inner--img .promo-text {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 1;
  padding: 1rem 1.5rem;
  background: linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 0 0 10px 10px;
}
.promo-top_listing .promo-title { color: #fff; }
.promo-top_listing.promo-testi .promo-inner--testi { padding: 1.6rem 2rem; }
.promo-top_listing.promo-testi .promo-testi-body {
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr;
  column-gap: 2rem; row-gap: .35rem; align-items: start; max-width: 800px; width: 100%;
}
.promo-top_listing.promo-testi .promo-testi-stars { grid-column: 1; grid-row: 1; }
.promo-top_listing.promo-testi .promo-testi-star  { width: 26px; height: 26px; }
.promo-top_listing.promo-testi .promo-testi-quote { grid-column: 1; grid-row: 2; font-size: 1rem; align-self: center; }
.promo-top_listing.promo-testi .promo-testi-quote::before { font-size: 2.4rem; }
.promo-top_listing.promo-testi .promo-testi-meta  { grid-column: 2; grid-row: 1 / 3; align-self: center; border-left: 2px solid var(--testi-band, var(--ac)); padding-left: 1.75rem; min-width: 135px; }
.promo-top_listing.promo-testi .promo-testi-name  { font-size: .9rem; }
.promo-top_listing.promo-testi .promo-testi-role  { font-size: .76rem; }

@media (max-width: 600px) {
  .promo-interstitial.promo-testi .promo-testi-body,
  .promo-hero.promo-testi .promo-testi-body,
  .promo-top_listing.promo-testi .promo-testi-body { grid-template-columns: 1fr; }
  .promo-interstitial.promo-testi .promo-testi-meta,
  .promo-hero.promo-testi .promo-testi-meta,
  .promo-top_listing.promo-testi .promo-testi-meta {
    grid-column: 1; grid-row: auto; border-left: none;
    border-top: 2px solid var(--testi-band, var(--ac)); padding-left: 0; padding-top: .6rem;
  }
}

.promo-block { width: 100%; }
.promo-inner {
  display: flex; align-items: center; gap: 1.25rem;
  background: linear-gradient(135deg, var(--ac) 0%, var(--ac-dk) 100%);
  border-radius: 10px; overflow: hidden; padding: 1.5rem 2rem;
  color: #fff;
}
.promo-hero .promo-inner { min-height: 160px; }
.promo-img { height: 100px; width: auto; object-fit: contain; border-radius: 6px; flex-shrink: 0; }
video.promo-img { object-fit: cover; }
.promo-hero .promo-img { height: 130px; }
.promo-text { display: flex; flex-direction: column; gap: .3rem; }
.promo-title { font-family: var(--font-head); font-size: 1.55rem; font-weight: 700; line-height: 1.2; }
.promo-hero .promo-title { font-size: 2rem; }
.promo-sub { font-size: .88rem; opacity: .85; }
/* Hero con imagen: full-bleed, sin fondo, imagen a cover */
.promo-hero .promo-inner:has(.promo-img),
.promo-hero .promo-inner--img {
  display: block; position: relative;
  background: none !important; border-radius: 0; padding: 0;
  overflow: hidden; min-height: 0;
}
.promo-hero .promo-img {
  display: block !important; width: 100% !important; height: auto !important;
  object-fit: initial; border-radius: 0 !important; flex-shrink: initial;
}
.promo-hero .promo-inner--img picture, .promo-hero .promo-inner:has(.promo-img) picture { display: block; line-height: 0; }
.promo-hero video.promo-img { height: 340px !important; }
/* Hero con elementos posicionados: la caja de coordenadas se bloquea al MISMO
   aspecto que el editor (40/11) para que sea WYSIWYG; solo el ancho se adapta. */
.promo-hero:has(.hero-els) .promo-inner--img,
.promo-hero:has(.hero-els) .promo-inner:has(.promo-img) { aspect-ratio: 40 / 11; min-height: 0; }
.promo-hero:has(.hero-els) .promo-inner--img .promo-img,
.promo-hero:has(.hero-els) .promo-inner:has(.promo-img) .promo-img { height: 100% !important; object-fit: cover; }
/* Corte de ALTURA maxima del hero (linea horizontal del editor): el aspect-ratio resultante
   (--hero-hcrop-ar) fija el alto de la caja; el contenido (imagen + elementos) se ancla ARRIBA
   y lo que sobra por abajo queda oculto (la promo-hero ya es overflow:hidden). */
.promo-hero-wrap { container-type: inline-size; }   /* para referenciar el ancho real del hero (100cqw) */
.promo-hero.hero-hcrop, .promo-hero.phv.hero-hcrop { max-height: calc(100cqw / var(--hero-hcrop-ar)); }
/* Los elementos del hero se posicionan sobre la ALTURA COMPLETA (40/11) para que NO se
   compriman con el recorte; el exceso se oculta con el overflow del hero, igual que la imagen. */
.promo-hero.hero-hcrop .hero-els { height: calc(100cqw * 11 / 40); bottom: auto; }
.promo-hero .promo-inner:has(.promo-img) .promo-text,
.promo-hero .promo-inner--img .promo-text {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 1;
  padding: 1.5rem 2.5rem;
  background: linear-gradient(to top, rgba(0,0,0,.52) 0%, transparent 100%);
}
.promo-hero .promo-title { color: #fff; font-size: 2rem; }
.promo-hero .promo-sub   { color: rgba(255,255,255,.88); }
.promo-hero .promo-tint { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.phv .phv-tint { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-particles { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-particles canvas { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; }
/* Efectos del hero (sin zoom/paneo): luz, brillo, color, revelado */
.promo-fx-shine, .promo-fx-foco, .promo-fx-tinte { position: relative; }
.promo-fx-shine::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%); background-size: 250% 100%; background-position: 160% 0; animation: heroShine 6s ease-in-out infinite; }
@keyframes heroShine { 0% { background-position: 160% 0; } 50%, 100% { background-position: -60% 0; } }
.promo-fx-brillo .promo-img, .promo-fx-brillo .phv-bg { animation: heroBrillo 3.6s ease-in-out infinite; will-change: filter; }
@keyframes heroBrillo { 0%, 100% { filter: brightness(1) saturate(1); } 50% { filter: brightness(1.34) saturate(1.45) contrast(1.07); } }
.promo-fx-foco::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(circle at 50% 45%, rgba(255,255,255,.45), transparent 42%); background-size: 200% 200%; background-repeat: no-repeat; background-position: -10% 50%; animation: heroFoco 7s ease-in-out infinite alternate; }
@keyframes heroFoco { 0% { background-position: -10% 50%; } 100% { background-position: 110% 50%; } }
.promo-fx-tinte::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: var(--ac); mix-blend-mode: soft-light; opacity: 0; animation: heroTinte 5s ease-in-out infinite; }
@keyframes heroTinte { 0%, 100% { opacity: .12; } 50% { opacity: .78; } }
.promo-fx-revelado .promo-img, .promo-fx-revelado .phv-bg { animation: heroReveal 1.4s cubic-bezier(.7, 0, .25, 1) both; }
@keyframes heroReveal { 0% { clip-path: inset(0 100% 0 0); } 100% { clip-path: inset(0 0 0 0); } }
.promo-hero .promo-fx-shine .promo-text, .promo-hero .promo-fx-foco .promo-text, .promo-hero .promo-fx-tinte .promo-text { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .promo-fx-brillo .promo-img, .promo-fx-brillo .phv-bg, .promo-fx-revelado .promo-img, .promo-fx-revelado .phv-bg { animation: none; } .promo-fx-shine::after, .promo-fx-foco::after, .promo-fx-tinte::after { animation: none; opacity: 0; } }
/* ---- Hero con vídeo adyacente ---- */
.phv { position: relative; }
.phv-inner { display: block; position: relative; height: 360px; overflow: hidden; text-decoration: none; }
.phv-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.phv--right .phv-bg { object-position: left center; }
.phv--left  .phv-bg { object-position: right center; }
.phv-text { position: absolute; top: 0; bottom: 0; z-index: 2; width: 50%; display: flex; flex-direction: column; justify-content: center; gap: .5rem; padding: 2.5rem 3rem; }
.phv--right .phv-text { left: 0; background: linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.12) 72%, transparent); }
.phv--left  .phv-text { right: 0; align-items: flex-end; text-align: right; background: linear-gradient(270deg, rgba(0,0,0,.62), rgba(0,0,0,.12) 72%, transparent); }
.phv-title { font-family: var(--font-head); font-size: 2rem; font-weight: 600; line-height: 1.15; color: #fff; }
.phv-sub { font-size: .95rem; color: rgba(255,255,255,.9); line-height: 1.4; }
.phv-video { position: absolute; top: 1.6rem; bottom: 1.6rem; z-index: 3; max-width: 48%; border-radius: 12px; overflow: hidden; background: #000; display: flex; align-items: center; justify-content: center; }
.phv--right .phv-video { right: 1.6rem; }
.phv--left  .phv-video { left: 1.6rem; }
.phv-video > video  { height: 100%; width: auto; max-width: 100%; object-fit: contain; display: block; }
.phv-video > iframe { height: 100%; width: auto; max-width: 100%; aspect-ratio: 16 / 9; display: block; border: 0; }
@media (max-width: 760px) {
  .phv-inner { height: 200px; }
  .phv-text, .phv--left .phv-text, .phv--right .phv-text { width: 100%; left: 0; right: 0; align-items: flex-start; text-align: left; padding: 1.4rem 1.5rem; background: linear-gradient(0deg, rgba(0,0,0,.62), rgba(0,0,0,.18)); }
  .phv-title { font-size: 1.5rem; }
  .phv-video, .phv--left .phv-video, .phv--right .phv-video { position: static; width: 100%; max-width: 100%; height: 200px; border-radius: 0; }
  .phv-video > video  { width: 100%; height: 100%; object-fit: contain; }
  .phv-video > iframe { width: 100%; height: 100%; aspect-ratio: auto; }
  .phv-bg, .phv--right .phv-bg, .phv--left .phv-bg { object-position: center center; }
  .phv--right .phv-bg.phv-bg--half { object-position: left center; }
  .phv--left .phv-bg.phv-bg--half { object-position: right center; }
  .phv-m-image .phv-video, .phv-m-both .phv-video { display: none !important; }
  .phv-m-video .phv-inner { display: none !important; }
}
.promo-interstitial { grid-column: 1 / -1; }
.promo-interstitial .promo-inner { padding: 1rem 1.5rem; }
.promo-interstitial .promo-title { font-size: 1.1rem; }
.promo-sidebar_cta .promo-inner { padding: 1rem; flex-direction: column; align-items: flex-start; text-align: left; }
.promo-sidebar_cta .promo-title { font-size: 1rem; }
@media (max-width: 600px) { .promo-title { font-size: 1.1rem !important; } .promo-hero .promo-img { display: none; } }

/* ---- Listing layout ---- */
.listing-wrap { display: grid; grid-template-columns: var(--sidebar-w) 1fr; gap: 1.5rem; align-items: start; }
.listing-wrap > .sidebar, .listing-wrap > .results { min-width: 0; }
.results, .pb-inner-section { min-width: 0; }
.results.is-loading .vehicle-grid { opacity: .5; transition: opacity .15s; pointer-events: none; }
@media (max-width: 840px) { .listing-wrap { grid-template-columns: 1fr; } }

/* Filter layout: top mode (desktop only — reverts to off-canvas on mobile) */
@media (min-width: 841px) {
  .listing-wrap--top { display: block; }
  .listing-wrap--top .sidebar {
    position: sticky; top: 62px; max-height: none; overflow: visible;
    width: 100%; margin-bottom: 1.25rem; border-radius: 10px;
    z-index: 100;
  }
  .listing-wrap--top .sb-head { display: none; }
  /* horizontal row of filter sections */
  .listing-wrap--top #fform {
    display: flex; flex-wrap: wrap; align-items: center; gap: .4rem;
    padding: .6rem .75rem;
  }
  .listing-wrap--top #fform > input[type="hidden"] { display: none; }
  .listing-wrap--top .km0-row { padding: 0; border: none; }
  .listing-wrap--top .km0-label { width: auto; }
  /* each section becomes a menu item */
  .listing-wrap--top .fg { position: relative; border-bottom: none; }
  .listing-wrap--top .fgh {
    border: 1.5px solid var(--border); border-radius: 8px;
    padding: .42rem .7rem; gap: .35rem;
  }
  .listing-wrap--top .fg:hover .fgh,
  .listing-wrap--top .fgh:hover { border-color: var(--ac); background: var(--card); }
  .listing-wrap--top .fgl { flex: initial; }
  /* dropdown panel: hidden by default, shown on hover */
  .listing-wrap--top .fgb {
    display: none;
    position: absolute; top: calc(100% + 5px); left: 0; z-index: 50;
    min-width: 240px; max-width: 340px;
    background: var(--card); border: 1px solid var(--border); border-radius: 10px;
    padding: .8rem 1rem;
  }
  .listing-wrap--top .fg:hover .fgb { display: block; }
  /* keep dropdown open while hovering a small bridge gap */
  .listing-wrap--top .fg::after {
    content: ''; position: absolute; top: 100%; left: 0; right: 0; height: 7px;
  }
  .listing-wrap--top .fgc { transform: none; }
  .listing-wrap--top .fg:hover .fgc { transform: rotate(180deg); }
  .listing-wrap--top .filter-btn-clear,
  .listing-wrap--top .sb-clear { width: auto; margin: 0; padding: .42rem .85rem; }
  /* dropdowns near the right edge open leftwards */
  .listing-wrap--top .fg:nth-last-child(-n+3) .fgb { left: auto; right: 0; }
}

/* ---- Sidebar ---- */
.sidebar {
  background: var(--card); border-radius: 10px; border: 1px solid var(--border);
  position: sticky; top: 74px;
  max-height: calc(100vh - 90px); overflow-y: auto;
  scrollbar-width: thin; scrollbar-color: var(--border) transparent;
}
/* Desktop sidebar layout: sidebar becomes JS-managed fixed (anchored to wrap top until sticky, then to wrap bottom near footer) */
@media (min-width: 841px) {
  .listing-wrap:not(.listing-wrap--top) { display: block; }
  .listing-wrap:not(.listing-wrap--top) > .sidebar {
    position: fixed;
    width: var(--sidebar-w);
    max-height: calc(100vh - 90px); overflow-y: auto;
    z-index: 50;
    visibility: hidden;            /* hide until JS positions it (avoids flash over hero) */
  }
  .listing-wrap:not(.listing-wrap--top) > .sidebar.is-positioned {
    visibility: visible;
  }
  .listing-wrap:not(.listing-wrap--top) > .results {
    margin-left: calc(var(--sidebar-w) + 1.5rem);
  }
}
.sidebar::-webkit-scrollbar { width: 3px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
.sb-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: .75rem 1rem .6rem;
  position: sticky; top: 0; background: var(--card); z-index: 1;
  border-bottom: 1px solid var(--border);
}
.sb-title { font-family: var(--font-head); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.sb-clear { font-size: .7rem; font-weight: 600; color: var(--ac); cursor: pointer; background: none; border: none; padding: 0; }
.sb-close { display: none; background: none; border: none; color: var(--muted); cursor: pointer; padding: 0; }
/* Km0 pill */
.km0-row { padding: .55rem 1rem; border-bottom: 1px solid var(--border); }
.tax-badges { display: flex; flex-wrap: wrap; gap: .35rem; padding: .55rem 1rem; border-bottom: 1px solid var(--border); }
.listing-wrap--top .tax-badges { padding: 0 0 .55rem; border: none; }
.tax-badge { display: inline-flex; align-items: center; padding: .32rem .62rem; border-radius: 999px; border: 1.5px solid var(--tb-c, var(--border)); background: var(--bg); font-size: .74rem; font-weight: 600; color: var(--tb-c, var(--text)); text-decoration: none; white-space: nowrap; transition: border-color .12s, background .12s, color .12s; }
.tax-badge:hover { border-color: var(--tb-c, var(--ac)); color: var(--tb-c, var(--ac)); }
.tax-badge.on { border-color: var(--tb-c, var(--ac)); background: var(--tb-c, var(--ac)); color: var(--tb-t, #fff); }
/* Badges de condicion/renting con su color de etiqueta (Todos y Furgonetas quedan con el acento) */
.tax-badge[data-tax="ocasion"] { --tb-c: var(--badge-ocasion); --tb-t: var(--badge-ocasion-text); }
.tax-badge[data-tax="km0"]     { --tb-c: var(--badge-km0);     --tb-t: var(--badge-km0-text); }
.tax-badge[data-tax="nuevos"]  { --tb-c: var(--badge-nuevo);   --tb-t: var(--badge-nuevo-text); }
.tax-badge[data-tax="renting"] { --tb-c: var(--badge-renting); --tb-t: var(--badge-renting-text); }
.km0-label {
  display: flex; align-items: center; gap: .5rem;
  width: 100%; padding: .3rem .55rem; border-radius: 7px;
  border: 1.5px solid var(--border); background: var(--bg);
  font-size: .78rem; font-weight: 500; color: var(--text); cursor: pointer;
  transition: all .12s;
}
.km0-label.on { border-color: var(--ac); background: var(--ac-lt); color: var(--ac); }
.km0-label input { display: none; }
/* Icons */
.fgh-icon { width: 14px; height: 14px; flex-shrink: 0; color: var(--ac); }
.km0-icon { width: 13px; height: 13px; flex-shrink: 0; }
.vspec-icon { width: 11px; height: 11px; flex-shrink: 0; opacity: .7; vertical-align: -1px; margin-right: 2px; }
.spec-key-icon { width: 14px; height: 14px; flex-shrink: 0; color: var(--ac); }
/* Filter groups */
.fg { border-bottom: 1px solid var(--border); }
.fg:last-child { border-bottom: none; }
.fgh { display: flex; align-items: center; gap: .4rem; padding: .55rem 1rem; cursor: pointer; user-select: none; }
.fgh:hover { background: color-mix(in srgb, var(--bg) 70%, transparent); }
.fgl { font-size: .73rem; font-weight: 600; color: var(--text); flex: 1; }
.fg-badge { font-size: .58rem; font-weight: 700; background: var(--fsb-bar, var(--ac)); color: #fff; padding: .12rem .38rem; border-radius: 10px; line-height: 1; display: none; }
.fg-badge.on { display: inline; }
.fgc { color: var(--muted); flex-shrink: 0; transition: transform .18s; }
.fg.closed .fgc { transform: rotate(-90deg); }
.fgb { padding: .25rem 1rem .75rem; }
.fg.closed .fgb { display: none; }
/* Checkbox list */
.chk-list { display: flex; flex-direction: column; max-height: 188px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
.chk-group-h { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--muted, #94a3b8); padding: .45rem .25rem .2rem; }
.chk-list::-webkit-scrollbar { width: 3px; }
.chk-list::-webkit-scrollbar-thumb { background: var(--border); }
.chk-item { display: flex; align-items: center; gap: .5rem; padding: .22rem .25rem; cursor: pointer; border-radius: 4px; }
.chk-item:hover { background: var(--bg); }
.chk-item input { width: 14px; height: 14px; flex-shrink: 0; accent-color: var(--ac); cursor: pointer; }
.chk-item span { font-size: .775rem; }
.chk-search { width: 100%; padding: .3rem .6rem; margin-bottom: .35rem; border: 1.5px solid var(--border); border-radius: 6px; font-size: .75rem; background: var(--bg); color: var(--text); }
.chk-search:focus { outline: none; border-color: var(--ac); }
/* Range slider */
/* Toggle Deslizar / Escribir */
.fmode { position: relative; display: flex; gap: 0; margin: .7rem 1rem .55rem; padding: 3px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; }
.fmode-thumb { position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; width: calc((100% - 6px) / 2); border-radius: 6px; background: var(--ac); transition: transform .3s cubic-bezier(.4,0,.2,1); }
.fmode[data-active="write"] .fmode-thumb { transform: translateX(100%); }
.fmode-btn { position: relative; z-index: 1; flex: 1 1 0; padding: .28rem; font-size: .64rem; font-weight: 600; border: none; background: none; color: var(--text); opacity: .6; border-radius: 6px; cursor: pointer; transition: color .2s, opacity .2s; }
.fmode-btn:hover { opacity: .85; }
.fmode-btn.on { color: #fff; opacity: 1; }
.rsl-write { display: none; gap: .45rem; align-items: center; }
.rsl-write input { width: 100%; min-width: 0; padding: .42rem .5rem; border: 1.5px solid var(--border); border-radius: 7px; font-size: .82rem; background: var(--card); color: var(--text); -moz-appearance: textfield; }
.rsl-write span { flex-shrink: 0; color: var(--muted); }
#fform.mode-write .rsl, #fform.mode-write .rsl-vals { display: none; }
#fform.mode-write .rsl-write { display: flex; }
.rsl-wrap { padding: .1rem 0 .3rem; }
.rsl { position: relative; height: 20px; margin: .9rem .5rem .35rem; }
.rsl-track { position: absolute; top: 50%; transform: translateY(-50%); left: 0; right: 0; height: 3px; background: var(--border); border-radius: 2px; }
.rsl-fill { position: absolute; height: 3px; background: var(--ac); border-radius: 2px; }
.rsl-thumb { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; }
.rsl-thumb::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--card); border: 2.5px solid var(--ac); cursor: pointer; pointer-events: all; }
.rsl-thumb::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: var(--card); border: 2.5px solid var(--ac); cursor: pointer; pointer-events: all; box-sizing: border-box; }
.rsl-thumb:focus { outline: none; }
.rsl-vals { display: flex; justify-content: space-between; font-size: .72rem; font-weight: 500; color: var(--text); padding: 0 .1rem; }
/* Chips */
.chips { display: flex; flex-wrap: wrap; gap: .28rem; }
.fchip { display: inline-flex; align-items: center; padding: .2rem .6rem; border-radius: 20px; font-size: .72rem; font-weight: 500; border: 1.5px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; transition: all .12s; }
.fchip:hover { border-color: var(--ac); color: var(--ac); }
.fchip.on { background: var(--ac); border-color: var(--ac); color: #fff; }
/* Color swatches */
.color-swatches { display: grid; grid-template-columns: repeat(5, 1fr); gap: .35rem .25rem; padding: .1rem 0; }
.color-swatch { position: relative; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: .18rem; }
.color-swatch input { position: absolute; opacity: 0; width: 0; height: 0; }
.color-swatch-dot {
  display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%;
  border: 2px solid transparent; outline: 2px solid transparent;
  transition: outline-color .12s;
}
.color-swatch input:checked + .color-swatch-dot { outline: 2px solid var(--ac); outline-offset: 2px; }
.color-swatch-dot svg { display: none; }
.color-swatch input:checked + .color-swatch-dot svg { display: block; }
.color-swatch-label { font-size: .58rem; text-align: center; color: var(--muted); line-height: 1.1; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Filter clear btn */
.filter-btn-clear { display: block; width: 100%; text-align: center; padding: .42rem; margin: .5rem 1rem .75rem; width: calc(100% - 2rem); border-radius: 7px; font-size: .78rem; font-weight: 600; color: var(--muted); border: 1.5px solid var(--border); background: var(--bg); cursor: pointer; }
.filter-btn-clear:hover { background: var(--border); }
/* Mobile toggle button */
.filter-toggle-btn { display: none; align-items: center; gap: .45rem; background: var(--card); border: 1.5px solid var(--border); border-radius: 8px; padding: .4rem .85rem; font-size: .78rem; font-weight: 600; color: var(--text); cursor: pointer; flex-shrink: 0; }
.filter-toggle-badge { background: var(--fsb-bar, var(--ac)); color: #fff; font-size: .6rem; font-weight: 700; padding: .1rem .35rem; border-radius: 10px; display: none; }
.filter-toggle-badge.on { display: inline; }
.sb-collapse { display: none; background: none; border: none; color: var(--muted); cursor: pointer; padding: .2rem .25rem; border-radius: 6px; align-items: center; }
.sb-collapse:hover { background: var(--border); }
.listing-wrap.filters-collapsed > .sidebar { display: none !important; }
@media (min-width: 841px) {
  .listing-wrap:not(.listing-wrap--top) .sb-collapse { display: inline-flex; }
  .listing-wrap.filters-collapsed > .results { margin-left: 0 !important; }
  body.filters-collapsed .filter-summary-bar { display: block; }
  body.filters-collapsed .filter-toggle-btn { display: flex; }
  body.filters-collapsed { padding-bottom: 62px; }
}
.filter-summary-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 200; background: var(--bg, #fff); border-top: 1px solid var(--border, #e2e8f0); padding: .5rem .7rem; display: none; }
.fsb-inner { width: 100%; display: flex; align-items: center; gap: .55rem; background: var(--fsb-bar, var(--ac)); color: #fff; border: none; border-radius: 10px; padding: .55rem .85rem; cursor: pointer; font-size: .8rem; font-family: inherit; transition: transform .14s; }
.fsb-inner:hover { transform: translateY(-1px); }
.fsb-inner > svg { flex-shrink: 0; }
.fsb-text { flex: 1; min-width: 0; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fsb-edit { flex-shrink: 0; font-weight: 700; opacity: .92; }
.fsb-sep { color: color-mix(in srgb, var(--fsb-bar, var(--ac)) 62%, #000); font-weight: 700; }
@media (max-width: 840px) { .filter-summary-bar.on { display: block; } body:has(.filter-summary-bar.on) { padding-bottom: 62px; } body:has(.filter-summary-bar.on) .chat-widget { bottom: calc(62px + 1rem); } }
.filter-summary-bar--afin.on { display: block; }
body:has(.filter-summary-bar--afin.on) { padding-bottom: 60px; }
.fsb-afin { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.fsb-afin-l { display: inline-flex; align-items: center; gap: .5rem; font-size: .86rem; font-weight: 600; color: var(--ac); }
.fsb-afin-l svg { color: var(--ac); flex-shrink: 0; }
.fsb-afin-off { font-size: .8rem; font-weight: 600; color: var(--muted); text-decoration: none; border: 1px solid var(--border); border-radius: 8px; padding: .3rem .7rem; white-space: nowrap; }
.fsb-afin-off:hover { border-color: var(--ac); color: var(--ac); }
.sb-overlay { display: none; }
@media (max-width: 840px) {
  .filter-toggle-btn { display: flex; }
  .sidebar { position: fixed; top: 0; left: -310px; width: 290px; height: 100vh; max-height: 100vh; border-radius: 0; z-index: 400; transition: left .22s ease-out; }
  .sidebar.open { left: 0; }
  .sb-close { display: flex; align-items: center; }
  .sb-overlay { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 399; opacity: 0; pointer-events: none; transition: opacity .22s; }
  .sb-overlay.open { opacity: 1; pointer-events: all; }
}

/* ---- Results bar ---- */
.results-bar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem; flex-wrap: wrap; gap: .5rem;
}
@media (max-width: 840px) {
  /* Keep filter access (toggle button) always visible while scrolling */
  .results-bar { position: sticky; top: var(--sticky-top, var(--header-h, 62px)); transition: top .3s ease; z-index: 100; background: var(--bg); padding: .5rem 0; margin: 0 calc(-1 * var(--layout-pad-h)) 1rem; padding-left: var(--layout-pad-h); padding-right: var(--layout-pad-h); }
}
.results-count { font-size: .82rem; color: var(--muted); }
.results-count strong { color: var(--text); font-weight: 600; }
/* ---- Geolocalización ---- */
.geo-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin: 0 0 1rem; }
.geo-btn { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .75rem; border-radius: 8px; font-size: .8rem; font-weight: 600; cursor: pointer; border: 1.5px solid var(--border); background: var(--card); color: var(--text); transition: border-color .14s, background .14s; }
.geo-btn--near { background: var(--ac); color: #fff; border-color: var(--ac); }
/* Hover unificado de botones de acento: mismo efecto que "Cerca de mi" */
.header-nav a.nav-cta:hover, .geo-btn--near:hover, .btn-primary:hover, .form-submit:hover, .cookie-btn-accent:hover, .vcard-cta--filled:hover, .sticky-cta-info:hover, .chat-send:hover { background: color-mix(in srgb, var(--ac) 88%, #000); }
.geo-btn--prov:hover { border-color: var(--ac); color: var(--ac); }
.geo-btn.is-loading { opacity: .7; cursor: default; }
.geo-status { font-size: .84rem; font-weight: 600; color: var(--text); display: inline-flex; align-items: center; gap: .4rem; }
.geo-status a { color: var(--ac); font-weight: 600; }
.geo-btn[hidden], .geo-status[hidden] { display: none !important; }
.geo-note { font-size: .72rem; color: var(--muted); flex-basis: 100%; }
.vcard-distance { display: flex; width: fit-content; align-items: center; gap: .28rem; margin-top: .35rem; font-size: .76rem; font-weight: 700; color: var(--ac); }
.vcard-distance svg { flex-shrink: 0; }
.vcard-loc { display: flex; width: fit-content; align-items: center; gap: .28rem; margin-top: .35rem; font-size: .74rem; font-weight: 600; color: var(--muted); }
.vcard-loc svg { flex-shrink: 0; color: var(--ac); }
.vcard-env { line-height: 0; }
.vcard-env--photo-tl, .vcard-env--photo-tr, .vcard-env--photo-bl, .vcard-env--photo-br { position: absolute; z-index: 4; }
.vcard-env--photo-tl { top: .5rem; left: .5rem; }
.vcard-env--photo-tr { top: .5rem; right: .5rem; }
.vcard-env--photo-bl { bottom: .5rem; left: .5rem; }
.vcard-env--photo-br { bottom: .5rem; right: .5rem; }
.vcard-env--body { margin: .15rem 0 .35rem; line-height: 0; }
.env-label { display: inline-block; vertical-align: middle; }
.env-label--sm { width: 24px; height: 24px; }
.env-label--md { width: 33px; height: 33px; }
.env-label--lg { width: 44px; height: 44px; }
.detail-env { margin: .2rem 0 1rem; line-height: 0; }
.detail-env .env-label { border: 3px solid #fff; border-radius: 50%; box-sizing: content-box; }
.vcard-cd { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; column-gap: .5rem; row-gap: .25rem; margin: .45rem 0 .1rem; width: fit-content; max-width: 100%; }
.vcard-cd--align-left { margin-left: 0; margin-right: auto; }
.vcard-cd--align-center { margin-left: auto; margin-right: auto; }
.vcard-cd--align-right { margin-left: auto; margin-right: 0; }
.vcard-cd-label { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #fff; }
.vcard-cd-units { display: inline-flex; gap: .3rem; align-items: flex-end; }
.vcard-cd-u { display: inline-flex; align-items: baseline; gap: .08rem; background: #fff; border-radius: 7px; padding: .3rem .44rem; }
.vcard-cd-u b { font-family: var(--font-head); font-size: 1.05rem; font-weight: 800; line-height: 1; color: var(--text); font-variant-numeric: tabular-nums; }
.vcard-cd-u i { font-size: .6rem; font-style: normal; font-weight: 700; color: var(--muted); line-height: 1; }
.vcard-cd--urgent .vcard-cd-u b { color: #dc2626; }
.vcard-cd-u--s { padding: .2rem .32rem; }
.vcard-cd-u--s b { font-weight: 500; font-size: .82rem; }
.vcard-cd-u--s i { font-size: .6rem; }
.vcard-cd--urgent .vcard-cd-u--d { display: none; }
.vcard-cd--over { position: absolute; left: .5rem; right: .5rem; bottom: .5rem; z-index: 5; margin-top: 0; margin-bottom: 0; }
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-cd--over { bottom: 2.7rem; }
.vcard-novedad { position: absolute; left: .5rem; bottom: .5rem; z-index: 6; }
.vcard-iva-br { position: absolute; right: .5rem; bottom: .5rem; z-index: 6; display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-novedad, .vcard-photo-wrap:has(.vcard-cd--over) .vcard-novedad { bottom: 2.7rem; }
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-iva-br, .vcard-photo-wrap:has(.vcard-cd--over) .vcard-iva-br { bottom: 2.7rem; }
.vcard-env--inline { display: inline-flex; align-items: center; }
.vcard-env--float-l { float: left; margin: 0 .5rem .25rem 0; line-height: 0; }
.vcard-env--float-r { float: right; margin: 0 0 .25rem .5rem; line-height: 0; }
.vcard-body.vcard-body--envfloat { display: block; }
.vcard-body.vcard-body--envfloat .vcard-specs { clear: both; }
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-env--photo-bl,
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-env--photo-br { bottom: 2.7rem; }
.vcard-photo-wrap:has(.vcard-fav) .vcard-env--photo-tr { top: calc(.5rem + 40px); }
.vcard-photo-wrap:has(.vcard-wa) .vcard-env--photo-tr { top: calc(.5rem + 78px); }
.vcard-photo-wrap:has(.vcard-badges > span) .vcard-env--photo-tl { top: calc(.5rem + 30px); }
.vcard-distance-msg { font-weight: 600; opacity: .9; }
.vcard-ribbon { padding: .42rem .7rem; font-size: .76rem; font-weight: 700; line-height: 1.25; text-align: center; letter-spacing: .02em; text-transform: uppercase; background: color-mix(in srgb, var(--ac) 14%, #fff); color: var(--ac); }
.vcard-ribbon--sz-s { padding: .3rem .55rem; font-size: .66rem; }
.vcard-ribbon--sz-l { padding: .54rem .9rem; font-size: .92rem; }
.vcard-ribbon-until { display: inline-block; margin-left: .45em; font-size: .82em; font-weight: 600; letter-spacing: 0; text-transform: none; opacity: .8; }
.vcard-ribbon--over { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; }
.vcard-social { display: flex; width: fit-content; align-items: center; gap: .3rem; margin-top: .35rem; font-size: .72rem; font-weight: 700; color: var(--muted); }
.vcard-social svg { flex-shrink: 0; opacity: .7; }
.vcard-cta { display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; text-align: center; margin-top: .7rem; min-height: 44px; padding: .5rem .75rem; border-radius: 8px; font-family: var(--font-head); font-weight: 700; font-size: .85rem; line-height: 1.15; }
.vcard-cta--filled { background: var(--ac); color: #fff; border: 1px solid var(--ac); }
.vcard-cta--outline { background: transparent; color: var(--ac); border: 1px solid var(--ac); }
.vcard:hover .vcard-cta { filter: brightness(.95); }
.vcard-social--now { color: #16a34a; }
.vsoc-dot { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #16a34a; flex-shrink: 0; }
.vsoc-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #16a34a; animation: spPulse 1.8s ease-out infinite; }
.detail-social { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; align-items: center; margin-bottom: 1.25rem; }
.dsoc { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 600; color: var(--muted); }
.dsoc-now { color: #16a34a; font-weight: 700; }
.dsoc svg { flex-shrink: 0; opacity: .8; }
.dsoc-dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: #16a34a; flex-shrink: 0; }
.dsoc-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #16a34a; animation: spPulse 1.8s ease-out infinite; }
@keyframes spPulse { 0% { transform: scale(1); opacity: .5; } 100% { transform: scale(2.6); opacity: 0; } }
/* Sort selector (custom dropdown - fully stylable cross-browser) */
.sort-dd { position: relative; display: inline-block; }
.sort-dd-trigger {
  display: inline-flex; align-items: center; gap: .55rem;
  background: var(--card); border: 1.5px solid var(--border); border-radius: 8px;
  padding: .42rem .85rem;
  font-family: inherit; cursor: pointer;
  transition: border-color .14s;
}
.sort-dd-trigger:hover, .sort-dd.open .sort-dd-trigger { border-color: var(--ac); }
.sort-dd-label {
  font-size: .68rem; font-weight: 700; color: var(--muted);
  text-transform: uppercase; letter-spacing: .05em;
}
.sort-dd-value {
  font-size: .82rem; font-weight: 600; color: var(--text);
}
.sort-dd-chevron { color: var(--muted); transition: transform .15s; }
.sort-dd.open .sort-dd-chevron { transform: rotate(180deg); color: var(--ac); }
.sort-dd-menu {
  position: absolute; top: calc(100% + 6px); right: 0;
  min-width: 220px;
  background: var(--card); border: 1px solid var(--border); border-radius: 8px;
  padding: .22rem 0; margin: 0;
  list-style: none;
  display: none;
  z-index: 100;
}
.sort-dd.open .sort-dd-menu { display: block; }
.sort-dd-menu li {
  padding: .35rem .9rem;
  font-size: .8rem; font-weight: 500;
  color: var(--text);
  cursor: pointer;
  transition: background .12s, color .12s;
  white-space: nowrap;
}
.sort-dd-menu li:hover { background: color-mix(in srgb, var(--ac) 8%, transparent); }
.sort-dd-menu li.active { color: var(--ac); font-weight: 700; background: color-mix(in srgb, var(--ac) 6%, transparent); }
@media (max-width: 480px) {
  .sort-dd-label { display: none; }
  .sort-dd-menu { right: auto; left: 0; }
}
/* Grupos de la barra de resultados */
.rb-side { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.rb-side--left { justify-content: flex-start; }
.rb-side--right { justify-content: flex-end; margin-left: auto; }
@media (max-width: 840px) {
  .results-bar { flex-direction: column; align-items: stretch; gap: .55rem; }
  .rb-side { flex-wrap: nowrap; min-width: 0; gap: .3rem; }
  .rb-side--left { justify-content: flex-start; }
  .rb-side--right { justify-content: flex-end; margin-left: 0; }
  .rb-side .filter-toggle-btn, .rb-side .save-search-btn, .rb-side .geo-btn { padding: .38rem .45rem; font-size: .73rem; white-space: nowrap; flex-shrink: 0; }
  .rb-side .js-clear-filters { font-size: .74rem !important; white-space: nowrap; flex-shrink: 0; }
  .rb-side--right .sort-dd { flex: 1 1 auto; min-width: 0; }
  .rb-side--right .sort-dd-trigger { width: 100%; max-width: 100%; padding: .4rem .55rem; }
  .rb-side--right .sort-dd-value { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .rb-side--right .sort-dd-chevron { flex-shrink: 0; }
}
@media (max-width: 640px) {
  .rb-side--right { max-width: 100%; min-width: 0; }
  .sort-dd { min-width: 0; max-width: 100%; }
  .rb-side--right .sort-dd { flex: 0 1 auto; }
  .sort-dd-trigger { display: flex; width: 100%; max-width: 100%; padding: .4rem .55rem; overflow: hidden; }
  .sort-dd-value { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .sort-dd-label, .sort-dd-chevron { flex-shrink: 0; }
  .sort-dd-menu { left: auto; right: 0; max-width: calc(100vw - 2 * var(--layout-pad-h)); }
  .save-search-btn { white-space: nowrap; padding: .42rem .6rem; }
  .js-clear-filters { white-space: nowrap; }
}

/* ---- Vehicle grid ---- */
.vehicle-grid {
  display: grid;
  /* Maximo = --grid-cols en pantallas anchas; escalona 4->3->2 segun el ancho minimo de tarjeta antes de movil */
  grid-template-columns: repeat(auto-fill, minmax(max(275px, calc((100% - (var(--grid-cols) - 1) * 1rem) / var(--grid-cols))), 1fr));
  gap: 1rem;
}
@media (max-width: 640px)  { .vehicle-grid { grid-template-columns: repeat(2, 1fr) !important; gap: .6rem; } .vcard { min-width: 0; } }
@media (max-width: 480px)  { .vehicle-grid { grid-template-columns: 1fr !important; } }
@media (max-width: 640px) {
  .vcard-cta { font-size: .8rem; padding: .5rem .4rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .vcard-body { padding: .65rem; }
}
@media (pointer: coarse) {
  .vcard-fav, .vcard-wa { width: 40px; height: 40px; }
  .vcard-fav svg, .vcard-wa svg { width: 19px; height: 19px; }
  .vcard-fav ~ .vcard-wa { top: calc(.5rem + 46px); }
}
@media (max-width: 480px) {
  .testimonials-title { font-size: 1.25rem; }
  .centro-page-title { font-size: 1.4rem; }
  .centers-title { font-size: 1.1rem; }
}

/* ---- Infinite scroll sentinel / loader ---- */
.infinite-sentinel {
  height: 2px;
  margin-top: 2rem;
}
.infinite-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: 1.5rem 0;
  color: var(--muted);
  font-size: .82rem;
}
.infinite-loading-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--ac);
  animation: infDot .9s ease-in-out infinite;
}
.infinite-loading-dot:nth-child(2) { animation-delay: .15s; }
.infinite-loading-dot:nth-child(3) { animation-delay: .30s; }
@keyframes infDot {
  0%, 80%, 100% { transform: scale(.6); opacity: .4; }
  40%           { transform: scale(1);  opacity: 1; }
}

/* ---- Vehicle card ---- */
.vcard {
  background: var(--card); border-radius: 10px; border: 1px solid var(--border);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .25s ease-out, border-color .25s ease-out;
  animation: fadeUp .35s both;
  contain: layout paint; content-visibility: auto; contain-intrinsic-size: auto 340px; /* salta render de cards fuera de pantalla (perf movil) */
}
@media (max-width: 640px) { .vcard { contain-intrinsic-size: auto 500px; } } /* CLS: la card movil 1-col mide ~500px, evita el salto al renderizar */
/* Prevent text selection during scrollbar drag (no inline style toggling = no reflow) */
.is-dragging-scroll, .is-dragging-scroll * { user-select: none !important; }
body.card-hover-lift   .vcard:hover { transform: translateY(-5px); }
body.card-hover-scale  .vcard:hover { transform: scale(1.03); }
body.card-hover-accent .vcard:hover { transform: translateY(-3px); border-color: var(--card-hover-border, var(--ac)); }
body.card-hover-lift   .flow-node:hover { transform: translateY(-5px); }
body.card-hover-scale  .flow-node:hover { transform: scale(1.03); }
body.card-hover-accent .flow-node:hover { transform: translateY(-3px); border-color: var(--card-hover-border, var(--ac)); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; } }
.vcard:nth-child(1)  { animation-delay: .03s; }
.vcard:nth-child(2)  { animation-delay: .06s; }
.vcard:nth-child(3)  { animation-delay: .09s; }
.vcard:nth-child(4)  { animation-delay: .12s; }
.vcard:nth-child(5)  { animation-delay: .15s; }
.vcard:nth-child(6)  { animation-delay: .18s; }
.vcard:nth-child(7)  { animation-delay: .21s; }
.vcard:nth-child(8)  { animation-delay: .24s; }
.vcard-photo-wrap { position: relative; display: block; width: 100%; aspect-ratio: 4/3; background: var(--border); overflow: hidden; }
.vcard-photo-wrap::before { content: ''; display: block; padding-top: 75%; } /* 4:3 box fallback for browsers without aspect-ratio */
.vcard-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: cover; }
/* ---- Hover FX en la imagen de la card ---- */
.vcard--hfx-zoom .vcard-photo, .vcard--hfx-zoom .vcard-slide,
.vcard--hfx-bright .vcard-photo, .vcard--hfx-bright .vcard-slide,
.vcard--hfx-zoombright .vcard-photo, .vcard--hfx-zoombright .vcard-slide,
.vcard--hfx-gray .vcard-photo, .vcard--hfx-gray .vcard-slide,
.vcard--hfx-saturate .vcard-photo, .vcard--hfx-saturate .vcard-slide { transition: transform .5s ease, filter .35s ease; will-change: transform, filter; }
.vcard--hanchor-top .vcard-photo, .vcard--hanchor-top .vcard-slide { transform-origin: center top; }
.vcard--hanchor-bottom .vcard-photo, .vcard--hanchor-bottom .vcard-slide { transform-origin: center bottom; }
.vcard--hfx-zoom:hover .vcard-photo, .vcard--hfx-zoom:hover .vcard-slide,
.vcard--hfx-zoombright:hover .vcard-photo, .vcard--hfx-zoombright:hover .vcard-slide { transform: scale(1.07); }
.vcard--hfx-bright:hover .vcard-photo, .vcard--hfx-bright:hover .vcard-slide,
.vcard--hfx-zoombright:hover .vcard-photo, .vcard--hfx-zoombright:hover .vcard-slide { filter: brightness(1.12); }
.vcard--hfx-gray .vcard-photo, .vcard--hfx-gray .vcard-slide { filter: grayscale(1); }
.vcard--hfx-gray:hover .vcard-photo, .vcard--hfx-gray:hover .vcard-slide { filter: grayscale(0); }
.vcard--hfx-saturate:hover .vcard-photo, .vcard--hfx-saturate:hover .vcard-slide { filter: saturate(1.45) contrast(1.04); }
.vcard--hfx-shine .vcard-photo-wrap::after {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(115deg, transparent 32%, rgba(255,255,255,.38) 50%, transparent 68%);
  transform: translateX(-130%); transition: transform .75s ease;
}
.vcard--hfx-shine:hover .vcard-photo-wrap::after { transform: translateX(130%); }
@media (prefers-reduced-motion: reduce) {
  .vcard--hfx-zoom:hover .vcard-photo, .vcard--hfx-zoom:hover .vcard-slide,
  .vcard--hfx-zoombright:hover .vcard-photo, .vcard--hfx-zoombright:hover .vcard-slide { transform: none; }
  .vcard--hfx-shine .vcard-photo-wrap::after { display: none; }
}
/* En tactil no hay hover real: el :hover se queda pegado al tocar la card y escala/altera la foto (la descuadra) ademas de crear un stacking context sobre los badges. Se neutralizan. */
@media (hover: none) {
  .vcard--hfx-zoom .vcard-photo, .vcard--hfx-zoom .vcard-slide,
  .vcard--hfx-zoombright .vcard-photo, .vcard--hfx-zoombright .vcard-slide,
  .vcard--hfx-bright .vcard-photo, .vcard--hfx-bright .vcard-slide,
  .vcard--hfx-gray .vcard-photo, .vcard--hfx-gray .vcard-slide,
  .vcard--hfx-saturate .vcard-photo, .vcard--hfx-saturate .vcard-slide { transform: none !important; filter: none !important; }
  .vcard--hfx-shine .vcard-photo-wrap::after { display: none; }
  /* En tactil el :hover se queda PEGADO tras tocar el boton -> el corazon se veia lleno aunque se quitara de favoritos. El estado real lo da .is-fav. */
  .vcard-fav:hover { background: rgba(255,255,255,.92); color: #475569; transform: none; }
  .vcard-fav:hover svg { fill: none; }
  .vcard-fav.is-fav:hover { color: var(--fav-color); }
  .vcard-fav.is-fav:hover svg { fill: var(--fav-color); }
  .vcard-wa:hover { background: rgba(255,255,255,.92); color: #25D366; transform: none; }
}
.vcard-photo-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #c8c3bc; }
.vcard-slider { position: absolute; inset: 0; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; }
.vcard-slider::-webkit-scrollbar { display: none; }
.vcard-slide { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; display: block; }
.vcard-slide--last { position: relative; }
.vcard-slide-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vcard-slide--last::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,.28); }
.vcard-slide-more-in { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1; display: inline-flex; align-items: center; gap: .3rem; background: var(--ac); color: #fff; font-family: var(--font-head); font-size: .76rem; font-weight: 700; padding: .35rem .8rem; border-radius: 6px; white-space: nowrap; }
.vcard-slide-more-in--transp { background: color-mix(in srgb, var(--ac) var(--badge-mix), transparent); }
.vcard-slide-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.42); color: #fff; display: none; align-items: center; justify-content: center; cursor: pointer; }
.vcard-slide-arrow--prev { left: .4rem; }
.vcard-slide-arrow--next { right: .4rem; }
.vcard-slide-count { display: none; }
.vcard-slidebar { display: none; }
@media (max-width: 640px) {
  .vcard-slide-count { display: inline-flex; align-items: center; position: absolute; bottom: 8px; right: 8px; z-index: 6; background: rgba(0,0,0,.55); color: #fff; font-size: .62rem; font-weight: 700; line-height: 1; height: 16px; box-sizing: border-box; padding: 0 .42rem 1px; border-radius: 10px; pointer-events: none; font-variant-numeric: tabular-nums; }
  .vcard-photo-wrap:has(.vcard-slide-count) .vcard-iva-br { bottom: 2.3rem; }
  .vcard-slidebar { display: block; position: relative; height: 3px; background: var(--border); overflow: hidden; }
  .vcard-slidebar-fill { position: absolute; top: 0; left: 0; height: 100%; background: var(--ac); transition: transform .2s ease; }
}
@media (min-width: 641px) {
  .vcard-slider--mobile { overflow-x: hidden; }
  .vcard-slider--mobile .vcard-slide:not(:first-child) { display: none; }
  .vcard-slider--all { overflow-x: hidden; }
  .vcard-photo-wrap:hover .vcard-slider--all ~ .vcard-slide-arrow { display: flex; }
}
.vcard-badges { position: absolute; top: .5rem; left: .5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; } /* align-start: cada badge a su ancho (sin estirar al mas ancho), como el grupo inferior derecho */
.badge {
  font-family: var(--font-head); font-size: var(--badge-fs,.6rem); font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase; padding: var(--badge-pad,.18rem .5rem); border-radius: 4px;
  line-height: 1; display: inline-flex; align-items: center; gap: .28em;
}
.badge-icon { width: 1em; height: 1em; flex-shrink: 0; stroke-width: 2.5; }
.badge-flash    { background: var(--badge-flash);   color: var(--badge-flash-text); }
.badge-dest     { background: var(--badge-dest);    color: var(--badge-dest-text); }
.badge-new      { background: var(--badge-new);     color: var(--badge-new-text); }
.badge-nuevo   { background: var(--badge-nuevo);   color: var(--badge-nuevo-text); }
.badge-oficial { background: var(--badge-oficial); color: var(--badge-oficial-text); }
.badge--fmt-outlined.badge-oficial { border-color: var(--badge-oficial); color: var(--badge-oficial) !important; background: transparent !important; }
.badge--transp.badge-oficial { background: color-mix(in srgb, var(--badge-oficial) var(--badge-mix), transparent); }
.oficial-h1-badge { display:inline-flex; align-items:center; gap:.4rem; margin:-.35rem 0 1.1rem; padding:.3rem .65rem; border-radius:999px; background:transparent; border:1.5px solid var(--badge-oficial); color:var(--badge-oficial); font-size:.82rem; font-weight:600; line-height:1; }
.oficial-h1-badge svg { width:15px; height:15px; }
@media (min-width:700px){
  #seo-h1-slot:has(.oficial-h1-badge){ display:flex; flex-wrap:wrap; align-items:center; column-gap:.75rem; row-gap:.35rem; margin:.2rem 0 1rem; }
  #seo-h1-slot:has(.oficial-h1-badge) .listing-seo-h1{ margin:0; }
  #seo-h1-slot:has(.oficial-h1-badge) .oficial-h1-badge{ margin:0; }
}
.badge-km0     { background: var(--badge-km0);     color: var(--badge-km0-text); }
.badge-renting { background: var(--badge-renting); color: var(--badge-renting-text); }
.badge-novedad  { background: var(--badge-novedad); color: #fff; }
.badge-saving   { background: var(--badge-saving);  color: var(--badge-saving-text); }
.badge-reserved { background: var(--badge-res-bg);  color: var(--badge-res-text); }
.badge-plazas   { background: var(--badge-plazas);  color: var(--badge-plazas-text); }
.badge-iva      { background: var(--badge-iva);      color: var(--badge-iva-text); }
.badge-4x4      { background: var(--badge-4x4);      color: var(--badge-4x4-text); }
/* Badge formats */
.badge--fmt-rect    { border-radius: 3px; }
.badge--fmt-pill    { border-radius: 999px; padding-left: .7rem; padding-right: .7rem; }
.badge--fmt-pill.badge--sm { padding-left: .55rem; padding-right: .55rem; }
.badge--fmt-pill.badge--lg { padding-left: .9rem;  padding-right: .9rem; }
/* Desktop: badges de card/ficha un poco mas pequenos (el movil baja mas, en la media query de abajo). */
.vcard-photo-wrap .badge, .vd-gal-badges .badge, .vd-gal-iva-br .badge, .rsv-photo-badge { font-size: calc(var(--badge-fs, .7rem) * .88); padding: .26em .55em .14em; }
/* Movil: badges sobre la card y sobre la galeria de la ficha un poco mas pequenos (no afecta WhatsApp/favoritos). */
@media (max-width: 640px) {
  .vcard-photo-wrap .badge, .vd-gal-badges .badge, .vd-gal-iva-br .badge, .rsv-photo-badge { font-size: calc(var(--badge-fs, .7rem) * .82); padding: .31em .6em .19em; letter-spacing: .04em; }
  .vcard-badges { gap: .2rem; }
}
/* El badge de AHORRO (importe rebajado) destaca sobre el resto: ~25% mayor.
   El padding va en em, escala solo con la fuente. */
.badge.badge-saving { font-size: calc(var(--badge-fs, .6rem) * 1.25); }
.vcard-photo-wrap .badge.badge-saving, .vd-gal-badges .badge.badge-saving, .vd-gal-iva-br .badge.badge-saving { font-size: calc(var(--badge-fs, .7rem) * 1.12); }
@media (max-width: 640px) {
  .vcard-photo-wrap .badge.badge-saving, .vd-gal-badges .badge.badge-saving, .vd-gal-iva-br .badge.badge-saving { font-size: calc(var(--badge-fs, .7rem) * 1.02); }
}
.badge--fmt-outlined { background: transparent !important; border: 1.5px solid; }
.badge--fmt-outlined.badge-flash    { border-color: var(--badge-flash);  color: var(--badge-flash)  !important; }
.badge--fmt-outlined.badge-dest     { border-color: var(--badge-dest);   color: var(--badge-dest)   !important; }
.badge--fmt-outlined.badge-new      { border-color: var(--badge-new);    color: var(--badge-new)    !important; }
.badge--fmt-outlined.badge-nuevo   { border-color: var(--badge-nuevo);   color: var(--badge-nuevo)   !important; background: transparent !important; }
.badge--fmt-outlined.badge-km0     { border-color: var(--badge-km0);     color: var(--badge-km0)     !important; background: transparent !important; }
.badge--fmt-outlined.badge-renting { border-color: var(--badge-renting); color: var(--badge-renting) !important; background: transparent !important; }
.badge--fmt-outlined.badge-iva      { border-color: var(--badge-iva);    color: var(--badge-iva)    !important; }
.badge--fmt-outlined.badge-4x4      { border-color: var(--badge-4x4);    color: var(--badge-4x4)    !important; }
.badge--fmt-outlined.badge-novedad  { border-color: var(--badge-novedad); color: var(--badge-novedad) !important; }
.badge--fmt-outlined.badge-saving   { border-color: var(--badge-saving);  color: var(--badge-saving)  !important; }
.badge--fmt-outlined.badge-reserved { border-color: var(--badge-res-bg); color: var(--badge-res-bg) !important; }
.badge--fmt-outlined.badge-plazas   { border-color: var(--badge-plazas); color: var(--badge-plazas) !important; }
/* Transparent style (only applies to rect/pill; outlined ignores it) */
.badge--transp.badge-flash    { background: color-mix(in srgb, var(--badge-flash)   var(--badge-mix), transparent); }
.badge--transp.badge-dest     { background: color-mix(in srgb, var(--badge-dest)    var(--badge-mix), transparent); }
.badge--transp.badge-new      { background: color-mix(in srgb, var(--badge-new)     var(--badge-mix), transparent); }
.badge--transp.badge-nuevo   { background: color-mix(in srgb, var(--badge-nuevo)   var(--badge-mix), transparent); }
.badge--transp.badge-km0     { background: color-mix(in srgb, var(--badge-km0)     var(--badge-mix), transparent); }
.badge--transp.badge-renting { background: color-mix(in srgb, var(--badge-renting) var(--badge-mix), transparent); }
.badge--transp.badge-novedad  { background: color-mix(in srgb, var(--badge-novedad) var(--badge-mix), transparent); }
.badge--transp.badge-saving   { background: color-mix(in srgb, var(--badge-saving)  var(--badge-mix), transparent); }
.badge--transp.badge-reserved { background: color-mix(in srgb, var(--badge-res-bg)  var(--badge-mix), transparent); }
.badge--transp.badge-plazas   { background: color-mix(in srgb, var(--badge-plazas)  var(--badge-mix), transparent); }
.badge--transp.badge-iva      { background: color-mix(in srgb, var(--badge-iva)     var(--badge-mix), transparent); }
.badge--transp.badge-4x4      { background: color-mix(in srgb, var(--badge-4x4)     var(--badge-mix), transparent); }
/* Badge animation states */
.badge--anim { transform: scale(0.4); opacity: 0; }
.no-anim-init .badge--anim { transform: none; opacity: 1; }
.card-in-view .badge--anim-pop   { animation: badgePop   .4s ease forwards; }
.card-in-view .badge--anim-slide { animation: badgeSlide .38s ease forwards; }
.card-in-view .badge--anim-all   { animation: badgePop   .4s ease forwards; }
/* Galeria de ficha: dispara la animacion configurada en CARGA (el badge esta above-the-fold; en las cards el reveal lo activa .card-in-view via IntersectionObserver, que aqui no existe). */
.vd-gal-badges .badge--anim-pop, .vd-gal-iva-br .badge--anim-pop   { animation: badgePop   .4s ease forwards; }
.vd-gal-badges .badge--anim-slide, .vd-gal-iva-br .badge--anim-slide { animation: badgeSlide .38s ease forwards; }
.vd-gal-badges .badge--anim-all, .vd-gal-iva-br .badge--anim-all   { animation: badgePop   .4s ease forwards; }
@media (prefers-reduced-motion: reduce) { .vd-gal-badges .badge--anim, .vd-gal-iva-br .badge--anim { opacity: 1; transform: none; animation: none; } }
@keyframes badgePop   { from { transform: scale(0.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes badgeSlide { from { transform: translateX(-14px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.vcard--sold     { opacity: .55; pointer-events: none; }
.vcard--sold .vcard-wa { pointer-events: auto; } /* WhatsApp button stays clickable on sold cards (different message) */
.vcard--reserved { opacity: .82; }
.vcard-sold-overlay, .vcard-reserved-overlay {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.28);
}
.vcard-reserved-overlay { background: rgba(202,138,4,.18); }
.vcard-sold-overlay span, .vcard-reserved-overlay span {
  font-family: var(--font-head); font-size: .78rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .1em;
  padding: .3rem .8rem; border-radius: 4px;
}
.vcard-sold-overlay span     { background: var(--badge-sold-bg); color: var(--badge-sold-text); }
.vcard-reserved-overlay span { background: var(--badge-res-bg);  color: var(--badge-res-text); }
.vcard-sold-overlay span.ov-transp     { background: color-mix(in srgb, var(--badge-sold-bg) var(--badge-mix), transparent); }
.vd-gal-ov { pointer-events: none; z-index: 6; border-radius: 10px; overflow: hidden; } /* overlay ficha: mismo radio que .gallery-main-img, sin bloquear clic/zoom */
@media (min-width: 961px) {
  /* en desktop la imagen de ficha es grande: los badges escalan acorde */
  .vd-gal-badges .badge, .vd-gal-iva-br .badge { font-size: calc(var(--badge-fs, .7rem) * 1.12); padding: .3em .65em .18em; }
  /* el badge de AHORRO destaca tambien en la ficha: ~25% mayor que el resto
     (la regla generica de arriba igualaba a 1.12 todos los de la galeria) */
  .vd-gal-badges .badge.badge-saving, .vd-gal-iva-br .badge.badge-saving { font-size: calc(var(--badge-fs, .7rem) * 1.40); }
  .vd-gal-ov span { font-size: 1.06rem; padding: .42rem 1.15rem; border-radius: 6px; }
}
.vcard-reserved-overlay span.ov-transp { background: color-mix(in srgb, var(--badge-res-bg)  var(--badge-mix), transparent); }
/* Card body */
.vcard-body { padding: .85rem; display: flex; flex-direction: column; flex: 1; }
/* Make sizes */
.vcard-make { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--ac); margin-bottom: .12rem; }
.vcard-make--sm { font-size: .55rem; }
.vcard-make--lg { font-size: .72rem; }
/* Model sizes */
.vcard-model { font-family: var(--font-head); font-size: 1rem; font-weight: 700; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vcard-model--sm { font-size: .82rem; }
.vcard-model--lg { font-size: 1.15rem; }
.vcard-model--hero { font-size: 1.25rem; white-space: normal; line-height: 1.15; }
.vcard-model--hero.vcard-model--lg { font-size: 1.4rem; }
/* Version sizes */
.vcard-ver { font-size: .7rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: .5rem; }
.vcard-ver--sm { font-size: .6rem; }
.vcard-ver--lg { font-size: .78rem; }
/* Make sub (layout C) */
.vcard-make--sub { font-size: .6rem; letter-spacing: .12em; color: var(--muted); margin-top: .1rem; margin-bottom: .3rem; }
/* Layout B: inline make + model */
.vcard-headline { display: flex; align-items: baseline; gap: .45rem; flex-wrap: wrap; margin-bottom: .1rem; }
.vcard-headline .vcard-make { margin-bottom: 0; }
/* Specs */
.vcard-specs { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .65rem; }
.vcard-specs--sm .vspec { font-size: .58rem; }
.vcard-specs--lg .vspec { font-size: .72rem; }
.vspec { font-size: .65rem; background: var(--bg); color: var(--vspec-color,#5a564f); padding: .15rem .4rem; border-radius: 4px; white-space: nowrap; }
/* Price sizes */
.vcard-foot { display: flex; align-items: baseline; justify-content: space-between; margin-top: auto; gap: .5rem; }
.vcard-price { font-family: var(--font-head); font-size: 1.15rem; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }
.vcard-price--sm { font-size: .95rem; }
.vcard-price--lg { font-size: 1.35rem; }
.vcard-price-old { font-size: .72rem; color: #a09b93; text-decoration: line-through; font-variant-numeric: tabular-nums; }
.vcard-price-old--sm { font-size: .72rem; }
.vcard-price-old--md { font-size: .9rem; }
.vcard-price-old--lg { font-size: 1.1rem; }
.vcard-financing { font-size: 1.15rem; color: var(--ac); font-weight: 600; font-variant-numeric: tabular-nums; }
.vcard-financing--sm { font-size: .95rem; }
.vcard-financing--lg { font-size: 1.35rem; }
.vcard-financing--badge { display: inline-block; padding: .14rem .5rem; border-radius: 6px; font-weight: 700; line-height: 1.3; background: var(--fin-bg, color-mix(in srgb, var(--ac) 9%, #fff)); color: var(--fin-text, var(--ac)); }
.vcard-financing--emph .vfin-affix { font-size: .66em; font-weight: 600; opacity: .72; }
.vcard-financing--emph .vfin-amount { font-weight: 700; }
.vcard-financing--below { margin-top: .1rem; }
.vcard-foot--fin-inline { align-items: flex-end; }
.vcard-financing--left, .vcard-financing--right { align-self: flex-end; padding-bottom: .12rem; white-space: nowrap; }
/* Layout D: price side */
.vcard-foot--D { flex-direction: row; align-items: flex-end; }
/* Testimonials section */
.site-testimonials {
  background: var(--card); border-top: 1px solid var(--border); padding: 3rem var(--layout-pad-h);
}
.testimonials-inner { max-width: var(--layout-max); margin: 0 auto; }
.testimonials-title {
  font-family: var(--font-head); font-size: 1.5rem; font-weight: 600;
  color: var(--text); margin-bottom: 1.5rem; text-align: center;
}
.testimonials-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem;
}
.tcard {
  background: var(--bg); border: 1px solid var(--border); border-radius: 10px;
  padding: 1.25rem; display: flex; flex-direction: column; gap: .6rem;
}
.tcard-stars { display: flex; gap: .2rem; }
.tcard-star  { color: #fbbf24; font-size: 1rem; line-height: 1; }
.tcard-star--empty { color: var(--border); }
.tcard-text { font-size: .9rem; line-height: 1.65; color: var(--text); flex: 1; }
.tcard-text::before { content: '\201C'; }
.tcard-text::after  { content: '\201D'; }
.tcard-author { display: flex; flex-direction: column; gap: .08rem; margin-top: auto; }
.tcard-name  { font-weight: 700; font-size: .82rem; color: var(--text); }
.tcard-cargo { font-size: .72rem; color: var(--muted); }
/* Centers section */
.site-centers {
  background: var(--bg); border-top: 1px solid var(--border); padding: 2.5rem var(--layout-pad-h);
}
.centers-inner { max-width: var(--layout-max); margin: 0 auto; }
.centers-title {
  font-family: var(--font-head); font-size: 1.25rem; font-weight: 800;
  color: var(--text); margin-bottom: 1.25rem;
}
.centers-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(max(180px, calc((100% - 2.25rem) / 4)), 1fr)); gap: .75rem;
}
.center-card {
  background: var(--card); border: 1px solid var(--border); border-radius: 8px;
  padding: .9rem 1rem; display: flex; flex-direction: row; align-items: flex-start; gap: .75rem;
}
.center-body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; flex: 1; }
.center-thumb { width: 84px; height: 84px; border-radius: 12px; overflow: hidden; background: var(--border); margin: 0; flex-shrink: 0; }
.center-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.center-name { font-weight: 700; font-size: .88rem; color: var(--text); }
a.center-card { text-decoration: none; transition: border-color .14s, transform .14s; cursor: pointer; }
a.center-card:hover { border-color: var(--ac); transform: translateY(-2px); }
.pb-centers-prov-list { display: flex; flex-direction: column; gap: .55rem; }
.pb-centers-prov { border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; overflow: hidden; }
.pb-centers-prov > summary { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .72rem 1rem; cursor: pointer; list-style: none; font-weight: 600; color: #1e3d5a; }
.pb-centers-prov > summary::-webkit-details-marker { display: none; }
.pb-centers-prov > summary:hover { background: #f8fafc; }
.pb-prov-count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5em; height: 1.5em; padding: 0 .45em; margin-left: .45rem; font-size: .72rem; font-weight: 600; color: var(--ac); background: color-mix(in srgb, var(--ac) 12%, #fff); border-radius: 999px; }
.pb-prov-chev { flex-shrink: 0; transition: transform .2s ease; color: #94a3b8; }
.pb-centers-prov[open] > summary .pb-prov-chev { transform: rotate(180deg); }
.pb-centers-prov-body { display: grid; gap: .55rem; padding: .6rem 1rem 1rem; }
.centro-page-header { margin-bottom: 1.4rem; display: flex; align-items: flex-start; gap: 1rem; }
.centro-page-headbody { flex: 1; min-width: 0; }
.centro-page-thumb { width: 96px; height: 96px; border-radius: 14px; overflow: hidden; background: var(--border); margin: 0; flex-shrink: 0; }
.centro-page-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.centro-page-title { font-family: var(--font-head); font-size: 1.8rem; font-weight: 600; color: var(--text); margin: 0 0 .25rem; }
.centro-page-loc { font-size: .9rem; color: var(--muted); margin-bottom: .6rem; }
.centro-page-contact { display: flex; flex-direction: column; gap: .25rem; margin-bottom: .6rem; }
.centro-page-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .9rem; }
.centro-action { display: inline-flex; align-items: center; gap: .3rem; padding: .34rem .68rem; border-radius: 7px; font-size: .75rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .14s, color .14s, transform .14s; }
.centro-action svg { flex-shrink: 0; }
.centro-action--map { background: var(--ac); color: #fff; border: 1.5px solid var(--ac); }
.centro-action--call { background: var(--card); color: var(--ac); border: 1.5px solid var(--ac); }
.centro-action:hover { transform: translateY(-1px); }
.centro-action--call:hover { background: var(--ac); color: #fff; }
.centro-action--mobile { display: none; }
@media (max-width: 840px) { .centro-action--mobile { display: inline-flex; } }
.centro-page-desc { font-size: .95rem; color: var(--text); line-height: 1.6; max-width: 760px; margin: 0; }
/* Cabecera de centro en movil: los tamanos van AQUI (despues de la regla base) porque el override previo (@media 480) estaba ANTES de la base y no ganaba -> el H1 se quedaba en 1.8rem siempre. */
@media (max-width: 640px) {
  .centro-page-title { font-size: 1.35rem; }
  .centro-page-desc { font-size: .875rem; line-height: 1.55; }
  .centro-page-thumb { width: 68px; height: 68px; border-radius: 11px; }
  .centro-page-header { gap: .75rem; }
}
@media (max-width: 460px) {
  .centro-page-title { font-size: 1.2rem; }
}
.center-loc  { font-size: .75rem; color: var(--muted); }
.center-addr, .center-tel { display: flex; align-items: flex-start; gap: .32rem; font-size: .72rem; color: var(--muted); line-height: 1.35; }
.center-addr svg, .center-tel svg { flex-shrink: 0; margin-top: .12rem; color: var(--ac); }
.center-card--soon { cursor: default; }
.center-soon { display: inline-flex; align-items: center; gap: .25rem; align-self: flex-start; font-size: .68rem; font-weight: 600; color: var(--ac); background: color-mix(in srgb, var(--ac) 13%, #fff); padding: .12rem .45rem; border-radius: 999px; margin: .05rem 0 .1rem; }
.center-soon svg { flex-shrink: 0; }
.pb-zone { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.pb-zone--footer { padding-top: .5rem; }

/* Modular page builder sections (inside .results column) */
.pb-vehicles-section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.pb-inner-section { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--border); }
/* Above the grid: separator below instead of above */
.pb-inner-section--pre { margin-top: 0; padding-top: 0; border-top: none; margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
/* Page-builder block: device visibility + optional separator */
@media (max-width: 640px) { .pb-dev-desktop { display: none !important; } }
@media (min-width: 641px) { .pb-dev-mobile { display: none !important; } }
.pb-inner-section.pb-nosep, .pb-vehicles-section.pb-nosep { border-top: none; padding-top: 0; margin-top: 1.5rem; }
.pb-inner-section--pre.pb-nosep { border-bottom: none; padding-bottom: 0; margin-top: 0; margin-bottom: 1.5rem; }
/* Bloques de estructura (page-builder) dentro de la FICHA: misma separacion que los bloques nativos
   (1.25rem = gap de .detail-info), sin los separadores grandes del page-builder. Sea cual sea el bloque. */
.detail-main:has(+ .vd-extra-blocks), .detail-main:has(+ .vd-similares-section) { padding-bottom: 0; }
.vd-extra-blocks { padding-top: 0; padding-bottom: 0; }
.vd-extra-blocks > .pb-inner-section, .vd-extra-blocks > .pb-vehicles-section,
.vd-struct-inline > .pb-inner-section, .vd-struct-inline > .pb-vehicles-section { margin-top: 1.25rem; padding-top: 0; border-top: none; }
.vd-struct-inline > .pb-inner-section:first-child, .vd-struct-inline > .pb-vehicles-section:first-child { margin-top: 0; }
.vd-similares-section.page { padding-top: 0; }
.pb-inner-title {
  font-family: var(--font-head); font-size: 1.1rem; font-weight: 600;
  color: var(--text); margin-top: 0; margin-bottom: 1rem;
}
.pb-inner-title .pb-title-ico { width: 1em; height: 1em; vertical-align: -.12em; margin-right: .4rem; display: inline-block; }
h1.pb-inner-title { font-size: 2rem; line-height: 1.15; }
h2.pb-inner-title { font-size: 1.5rem; line-height: 1.2; }
h3.pb-inner-title { font-size: 1.2rem; }
h4.pb-inner-title { font-size: 1.02rem; }
h1.pb-inner-title { color: #2369b0; }
h2.pb-inner-title { color: #2369b0; }
h3.pb-inner-title { color: #2369b0; }
h4.pb-inner-title { color: #2369b0; }
.cms-static-title, .listing-seo-h1, .centro-page-title, .detail-title, .page-hero-inner h1, .cms-static-content h1, .cms-grid-text-inner h1, .pb-html-body h1 { color: #2369b0 !important; }.cms-static-content h2, .cms-grid-text-inner h2, .pb-html-body h2 { color: #2369b0 !important; }.cms-static-content h3, .cms-grid-text-inner h3, .pb-html-body h3 { color: #2369b0 !important; }.cms-static-content h4, .cms-grid-text-inner h4, .pb-html-body h4 { color: #2369b0 !important; }@media (max-width: 640px) {
  h1.pb-inner-title { font-size: 1.3rem; }
  h2.pb-inner-title { font-size: 1.1rem; }
  h3.pb-inner-title { font-size: 1rem; }
  h4.pb-inner-title { font-size: .88rem; }
  .page-hero h1 { font-size: 1.45rem; }
  .cms-grid-text-inner h1, .cms-grid-text-inner h2, .pb-html-body h1, .pb-html-body h2 { font-size: 1rem; }
  .cms-grid-text-inner h3, .pb-html-body h3 { font-size: .94rem; }
}
.pb-inner-title--center { text-align: center; }
.pb-inner-title--right { text-align: right; }
.pb-inner-testi-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .85rem;
}
.pb-inner-centers-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .65rem;
}
/* ---- Carrocería filter block ---- */
.carroceria-grid { display: grid; --col: 120px; grid-template-columns: repeat(auto-fit, minmax(var(--col), 1fr)); gap: .6rem; }
.carroceria-grid--nofit { grid-template-columns: repeat(auto-fill, var(--col)); justify-content: start; }
.carroceria-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem;
  padding: 1rem .75rem; border: 1.5px solid var(--border); border-radius: 10px;
  background: var(--card); text-decoration: none; transition: border-color .14s, transform .14s;
}
.carroceria-btn:hover { border-color: var(--ac); transform: translateY(-2px); }
.marcas-grid { display: grid; --col: 116px; grid-template-columns: repeat(auto-fit, minmax(var(--col), 1fr)); gap: .6rem; }
.marcas-grid--nofit { grid-template-columns: repeat(auto-fill, var(--col)); justify-content: start; }
.marca-logo { display: flex; align-items: center; justify-content: center; min-height: 72px; padding: .9rem 1rem; background: var(--card); border: 1px solid var(--border); border-radius: 10px; text-decoration: none; transition: transform .12s, border-color .12s; }
.marca-logo:hover { transform: translateY(-2px); border-color: var(--ac); }
.marca-logo img { max-width: 100%; max-height: 42px; object-fit: contain; }
.marca-logo--bw img { filter: grayscale(1); opacity: .7; transition: filter .15s, opacity .15s; }
.marca-logo--bw:hover img { filter: grayscale(0); opacity: 1; }
.marca-logo-tint { display: block; width: 100%; height: 42px; mask-size: contain; mask-repeat: no-repeat; mask-position: center; -webkit-mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; }
.marca-logo--noimg::after { content: attr(data-name); font-size: .82rem; font-weight: 700; color: var(--text); }
.marca-logo img, .marca-logo-tint { pointer-events: none; }
.marca-logo, .marca-logo img { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
.marcas-grid--s { --col: 94px; }
.marcas-grid--s .marca-logo { min-height: 56px; padding: .6rem .7rem; }
.marcas-grid--s .marca-logo img { max-height: 28px; }
.marcas-grid--s .marca-logo-tint { height: 28px; }
.marcas-grid--l { --col: 150px; }
.marcas-grid--l .marca-logo { min-height: 96px; padding: 1.2rem 1.3rem; }
.marcas-grid--l .marca-logo img { max-height: 58px; }
.marcas-grid--l .marca-logo-tint { height: 58px; }
.marca-all-txt { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 700; color: var(--ac); text-align: center; }
.carroceria-btn.active { border-color: var(--ac); background: color-mix(in srgb, var(--ac) 8%, var(--card)); }
.carroceria-ico { display: flex; align-items: center; justify-content: center; height: 38px; width: 100%; }
.carroceria-svg { max-width: 76px; max-height: 38px; width: auto; height: auto; }
.carroceria-label { font-size: .78rem; font-weight: 600; color: var(--text); text-align: center; }

/* Page-builder buttons / search / quick-filter blocks */
.pb-btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; font-family:var(--font-head); font-weight:600; font-size:.9rem; line-height:1.1; padding:.7rem 1.4rem; border-radius:8px; text-decoration:none; cursor:pointer; border:1.5px solid var(--ac); transition:transform .12s, background .12s, color .12s; }
.pb-btn--accent { background:var(--ac); color:#fff; }
.pb-btn--accent:hover { transform:translateY(-2px); }
.pb-btn--normal { background:transparent; color:var(--ac); }
.pb-btn--normal:hover { transform:translateY(-2px); }
.pb-btn--bold { font-weight: 800; }
.pb-btn--2x { font-size:1.25rem; padding:1.1rem 2.6rem; border-radius:10px; }
@media (max-width:640px) { .pb-btn--2x { flex:0 0 calc(50% - .35rem); font-size:.95rem; padding:.8rem .9rem; } }
.pb-botones { display:flex; flex-wrap:wrap; gap:.7rem; }
.pb-nl { max-width:560px; }
.pb-nl--center { margin-left:auto; margin-right:auto; }
.pb-nl--right { margin-left:auto; }
.pb-nl-row { display:flex; gap:.5rem; }
.pb-nl-row input { flex:1; min-width:0; padding:.72rem .95rem; border:1.5px solid var(--border); border-radius:9px; background:var(--card); color:var(--text); font-size:.95rem; }
.pb-nl-row input:focus { outline:none; border-color:var(--ac); }
.pb-nl-hp { display:none !important; }
.pb-nl-note { font-size:.76rem; color:var(--muted); margin:.55rem 0 0; }
.pb-nl-msg { margin-top:.65rem; font-size:.92rem; font-weight:600; }
.pb-nl-ok { color:var(--ac); }
.pb-nl-err { color:#dc2626; }
@media (max-width:520px){ .pb-nl-row { flex-direction:column; } }
.pb-faq { display:flex; flex-direction:column; gap:.6rem; max-width:840px; }
.pb-faq--center { margin-left:auto; margin-right:auto; }
.pb-faq--right { margin-left:auto; }
.pb-faq-item { border:1px solid var(--border); border-radius:12px; background:var(--card); overflow:hidden; }
.pb-faq-q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; background:none; border:none; cursor:pointer; font-family:var(--font-head); font-weight:600; font-size:1rem; color:var(--text); text-align:left; }
.pb-faq-chev { flex-shrink:0; color:var(--ac); transition:transform .3s ease; }
.pb-faq-q[aria-expanded="true"] .pb-faq-chev { transform:rotate(180deg); }
.pb-faq-a { max-height:0; overflow:hidden; transition:max-height .32s ease; }
.pb-faq-a-in { padding:0 1.25rem 1.1rem; color:var(--muted); font-size:.95rem; line-height:1.6; }
.pb-faq-a-in p { margin:0 0 .6rem; } .pb-faq-a-in p:last-child { margin-bottom:0; }
.pb-faq-a-in a { color:var(--ac); text-decoration:underline; }
.pb-faq-a-in ul, .pb-faq-a-in ol { margin:.4rem 0 .6rem 1.2rem; } .pb-faq-a-in li { margin:.15rem 0; }
.blog-wrap, .blog-article-wrap { max-width:1080px; margin:0 auto; padding:2rem 1.25rem 3rem; }
.blog-h1 { font-family:var(--font-head); font-size:2rem; color:var(--text); margin:0 0 1rem; }
.blog-cats { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.6rem; }
.blog-cat { padding:.4rem .9rem; border-radius:999px; border:1px solid var(--border); color:var(--muted); text-decoration:none; font-size:.85rem; font-weight:600; transition:all .15s; }
.blog-cat:hover { border-color:var(--ac); color:var(--ac); }
.blog-cat.active { background:var(--ac); border-color:var(--ac); color:#fff; }
.blog-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:1.4rem; }
.blog-card { display:flex; flex-direction:column; background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; text-decoration:none; transition:transform .15s, border-color .15s; }
.blog-card:hover { transform:translateY(-3px); border-color:var(--ac); }
.blog-card-cover { aspect-ratio:16/9; background:var(--bg); background-size:cover; background-position:center; }
.blog-card-cover[data-empty] { background:linear-gradient(135deg, color-mix(in srgb, var(--ac) 16%, var(--card)), var(--card)); }
.blog-card-body { padding:1rem 1.1rem 1.15rem; display:flex; flex-direction:column; gap:.45rem; }
.blog-card-cat { align-self:flex-start; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ac); }
.blog-card-title { font-family:var(--font-head); font-size:1.12rem; line-height:1.25; color:var(--text); margin:0; }
.blog-card-ex { font-size:.88rem; color:var(--muted); line-height:1.5; margin:0; }
.blog-card-meta { font-size:.76rem; color:var(--muted); margin-top:.2rem; }
.blog-empty { color:var(--muted); font-size:.95rem; }
.blog-article { max-width:760px; margin:0 auto; }
.blog-back { display:inline-flex; align-items:center; gap:.35rem; color:var(--muted); text-decoration:none; font-size:.85rem; font-weight:600; margin-bottom:1.1rem; }
.blog-back:hover { color:var(--ac); }
.blog-art-meta { display:flex; align-items:center; gap:.7rem; margin-bottom:.5rem; }
.blog-art-cat { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ac); text-decoration:none; }
.blog-art-date { font-size:.8rem; color:var(--muted); }
.blog-art-title { font-family:var(--font-head); font-size:2.1rem; line-height:1.15; color:var(--text); margin:.1rem 0 .5rem; }
.blog-art-author { font-size:.85rem; color:var(--muted); margin-bottom:1.2rem; }
.blog-art-cover { width:100%; border-radius:14px; margin:.4rem 0 1.6rem; }
.blog-art-content { color:var(--text); font-size:1.05rem; line-height:1.75; }
.blog-art-content h2 { font-family:var(--font-head); font-size:1.5rem; margin:1.8rem 0 .7rem; }
.blog-art-content h3 { font-family:var(--font-head); font-size:1.2rem; margin:1.4rem 0 .5rem; }
.blog-art-content p { margin:0 0 1.1rem; }
.blog-art-content img { max-width:100%; border-radius:10px; }
.blog-art-content blockquote { border-left:3px solid var(--ac); margin:1.2rem 0; padding:.3rem 0 .3rem 1.1rem; color:var(--muted); font-style:italic; }
.blog-art-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin:1.8rem 0 0; }
.blog-tag { font-size:.76rem; color:var(--muted); background:var(--bg); border:1px solid var(--border); border-radius:999px; padding:.22rem .7rem; }
.blog-share { display:flex; align-items:center; gap:.55rem; margin:2rem 0 0; padding-top:1.3rem; border-top:1px solid var(--border); }
.blog-share-lbl { font-size:.85rem; font-weight:600; color:var(--muted); margin-right:.2rem; }
.blog-share-btn { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:1px solid var(--border); background:var(--card); color:var(--muted); cursor:pointer; transition:all .15s; }
.blog-share-btn:hover, .blog-share-btn.copied { border-color:var(--ac); color:var(--ac); }
.blog-related { max-width:1080px; margin:3rem auto 0; }
.blog-rel-h { font-family:var(--font-head); font-size:1.4rem; color:var(--text); margin:0 0 1.2rem; }
@media (max-width:640px){ .blog-art-title { font-size:1.6rem; } .blog-h1 { font-size:1.5rem; } }
.empleo-wrap, .empleo-article-wrap { max-width:860px; margin:0 auto; padding:1.5rem 1.25rem 3rem; }
.empleo-sub { color:var(--muted); font-size:1rem; margin:.2rem 0 0; }
.empleo-list { display:flex; flex-direction:column; gap:1rem; margin-top:1.4rem; }
.empleo-card { display:flex; align-items:center; gap:1rem; justify-content:space-between; background:var(--card); border:1px solid var(--border); border-radius:14px; padding:1.2rem 1.35rem; text-decoration:none; transition:transform .15s, border-color .15s; }
.empleo-card:hover { transform:translateY(-2px); border-color:var(--ac); }
.empleo-card-title { font-family:var(--font-head); font-size:1.2rem; color:var(--text); margin:0 0 .5rem; }
.empleo-card-meta { display:flex; flex-wrap:wrap; gap:.5rem; }
.empleo-chip { display:inline-flex; align-items:center; gap:.32rem; font-size:.8rem; color:var(--muted); background:var(--bg); border:1px solid var(--border); border-radius:999px; padding:.22rem .7rem; }
.empleo-chip svg { color:var(--ac); }
.empleo-card-ex { color:var(--muted); font-size:.9rem; line-height:1.5; margin:.6rem 0 0; }
.empleo-card-cta { flex-shrink:0; display:inline-flex; align-items:center; gap:.3rem; color:var(--ac); font-weight:600; font-size:.88rem; white-space:nowrap; }
.empleo-art-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin:.3rem 0 1.4rem; }
.empleo-h2 { font-family:var(--font-head); font-size:1.4rem; color:var(--text); margin:2rem 0 .8rem; }
.empleo-apply { background:var(--bg); border:1px solid var(--border); border-radius:16px; padding:1.5rem; margin-top:2.2rem; }
.empleo-apply form { display:flex; flex-direction:column; gap:.85rem; }
.empleo-apply label { display:flex; flex-direction:column; gap:.3rem; font-size:.84rem; font-weight:600; color:var(--text); }
.empleo-apply input, .empleo-apply textarea { padding:.6rem .7rem; border:1px solid var(--border); border-radius:8px; font-size:.92rem; font-family:inherit; background:var(--card); color:var(--text); }
.empleo-apply input:focus, .empleo-apply textarea:focus { outline:none; border-color:var(--ac); }
.empleo-f2 { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.empleo-hp { display:none !important; }
.empleo-actions { display:flex; align-items:center; gap:.8rem; margin-top:.3rem; }
.empleo-apply > .empleo-h2:first-child { margin-top:0; }
.empleo-flab { font-size:.84rem; font-weight:600; color:var(--text); }
.empleo-cv { display:flex; flex-direction:column; gap:.35rem; }
.empleo-cv-drop { position:relative; display:flex; align-items:center; gap:.7rem; padding:.85rem 1rem; border:1.5px dashed var(--border); border-radius:11px; background:var(--card); cursor:pointer; transition:border-color .14s, background .14s; }
.empleo-cv-drop:hover { border-color:var(--ac); }
.empleo-cv-drop.has { border-style:solid; border-color:var(--ac); background:color-mix(in srgb, var(--ac) 6%, var(--card)); }
.empleo-cv-drop input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.empleo-cv-ico { color:var(--ac); flex:0 0 auto; }
.empleo-cv-txt { font-size:.86rem; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1 1 auto; min-width:0; }
.empleo-cv-drop.has .empleo-cv-txt { color:var(--text); font-weight:600; }
.empleo-cv-rm { position:relative; z-index:2; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; padding:0; border:0; border-radius:50%; background:var(--bg); color:var(--muted); cursor:pointer; transition:background .14s, color .14s; }
.empleo-cv-rm:hover { background:#e11d48; color:#fff; }
.empleo-cv-hint { font-size:.74rem; color:var(--muted); line-height:1.4; }
.empleo-cv-err { font-size:.76rem; color:#e11d48; font-weight:600; }
.empleo-submit { background:var(--ac); color:#fff; border:none; border-radius:9px; padding:.7rem 1.5rem; font-size:.92rem; font-weight:700; cursor:pointer; font-family:var(--font-head); transition:transform .12s; }
.empleo-submit:hover { transform:translateY(-1px); }
.empleo-st { font-size:.85rem; color:var(--muted); }
.empleo-ok { background:color-mix(in srgb, var(--ac) 10%, var(--card)); border:1px solid var(--ac); border-radius:12px; padding:1.1rem 1.3rem; color:var(--text); font-weight:600; }
@media (max-width:640px){ .empleo-card { flex-direction:column; align-items:flex-start; } .empleo-f2 { grid-template-columns:1fr; } }
.pb-botones--center { justify-content:center; }
.pb-botones--right { justify-content:flex-end; }
.pb-presu { display:flex; flex-direction:column; align-items:flex-start; gap:.9rem; }
.pb-presu--center { align-items:center; }
.pb-presu--right { align-items:flex-end; }
.pb-presu-tabs { position:relative; display:inline-flex; gap:0; padding:4px; border-radius:999px; background:var(--bg); border:1px solid var(--border); }
.pb-presu-thumb { position:absolute; z-index:0; top:4px; bottom:4px; left:4px; width:calc((100% - 8px) / 2); border-radius:999px; background:var(--ac); transition:transform .32s cubic-bezier(.4,0,.2,1); }
.pb-presu-tabs[data-active="cuota"] .pb-presu-thumb { transform:translateX(100%); }
.pb-presu-tab { position:relative; z-index:1; flex:1 1 0; min-width:122px; text-align:center; font-family:var(--font-head); font-weight:600; font-size:.9rem; line-height:1.1; letter-spacing:.02em; padding:.55rem 1.5rem; border:none; background:transparent; color:var(--text); opacity:.6; cursor:pointer; transition:color .25s, opacity .25s; }
.pb-presu-tab:hover { opacity:.85; }
.pb-presu-tab.is-active { color:#fff; opacity:1; }
.pb-presu-opts { display:flex; flex-wrap:wrap; gap:.55rem; }
.pb-presu-opts[hidden] { display:none; }
.pb-presu--center .pb-presu-opts { justify-content:center; }
.pb-presu--right .pb-presu-opts { justify-content:flex-end; }
.pb-presu-opt { display:inline-flex; align-items:center; font-family:var(--font-body); font-weight:500; font-size:.72rem; padding:.34rem .75rem; border-radius:7px; border:1px solid var(--border); background:var(--card); color:var(--text); text-decoration:none; transition:transform .12s, border-color .12s, color .12s; }
.pb-presu-opt:hover { transform:translateY(-2px); border-color:var(--ac); color:var(--ac); }
@media (max-width:640px) { .pb-presu-tab { font-size:.84rem; padding:.5rem 1.1rem; min-width:104px; } .pb-presu-opt { font-size:.68rem; padding:.3rem .62rem; } }
.pb-group { display:flex; flex-wrap:wrap; gap:1.4rem 1.8rem; align-items:flex-start; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--border); }
.pb-group--pre { margin-top:0; padding-top:0; border-top:none; margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
.pb-group > .pb-inner-section { flex:1 1 0; min-width:0; margin-top:0; padding-top:0; border-top:none; }
.pb-group > .pb-inner-section--pre { margin-bottom:0; padding-bottom:0; border-bottom:none; }
@media (max-width:760px) {
  .pb-group { display:block; margin-top:0; padding-top:0; padding-bottom:0; border-top:none; border-bottom:none; gap:0; }
  .pb-group > .pb-inner-section { width:100%; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--border); }
  .pb-group > .pb-inner-section--pre { margin-top:0; padding-top:0; border-top:none; margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
  .pb-group > .pb-inner-section.pb-nosep { border-top:none; padding-top:0; margin-top:1.5rem; }
  .pb-group > .pb-inner-section--pre.pb-nosep { border-bottom:none; padding-bottom:0; margin-top:0; margin-bottom:1.5rem; }
}
.pb-buscador { display:flex; }
.pb-buscador--center { justify-content:center; }
.pb-buscador--right { justify-content:flex-end; }
.pb-buscador-field { display:flex; align-items:center; gap:.5rem; max-width:560px; width:100%; background:var(--card); border:1.5px solid var(--border); border-radius:10px; padding:.4rem .4rem .4rem .85rem; }
.pb-buscador-field:focus-within { border-color:var(--ac); }
.pb-buscador-ico { color:var(--muted); flex-shrink:0; }
.pb-buscador-field input { flex:1; border:none; background:none; outline:none; font-size:.95rem; color:var(--text); min-width:0; }
.pb-buscador-field .pb-btn { padding:.55rem 1.1rem; font-size:.85rem; }
.pb-filtro { display:flex; flex-wrap:wrap; align-items:flex-end; gap:.7rem; background:var(--card); border:1px solid var(--border); border-radius:12px; padding:1rem; }
.pb-filtro-fld { display:flex; flex-direction:column; gap:.25rem; flex:1; min-width:140px; }
.pb-filtro-fld > span { font-size:.74rem; font-weight:600; color:var(--muted); }
.pb-filtro-fld select { padding:.6rem .7rem; border:1.5px solid var(--border); border-radius:8px; background:var(--bg); color:var(--text); font-size:.9rem; cursor:pointer; }
.pb-filtro-fld select:focus { outline:none; border-color:var(--ac); }
.pb-filtro-fld select:disabled { opacity:.55; cursor:not-allowed; }
.pb-filtro-go { flex-shrink:0; padding:.66rem 1.5rem; }
@media (max-width:640px){ .pb-filtro-fld{flex:1 1 100%;} .pb-filtro-go{width:100%;} .pb-buscador-field{max-width:none;} }
/* Caracteristicas block */
.pb-caract-section .caract-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1.7rem 2.2rem; }
.pb-caract-section .caract-grid--fixed { grid-template-columns: repeat(var(--caract-cols, 3), minmax(0, 1fr)); }
@media (max-width: 980px) { .pb-caract-section .caract-grid--fixed { grid-template-columns: repeat(var(--caract-cols-t, 2), minmax(0, 1fr)); } }
@media (max-width: 600px) { .pb-caract-section .caract-grid--fixed { grid-template-columns: 1fr; } }
.caract-item { display: flex; align-items: flex-start; gap: 1rem; }
.caract-ico { flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 16px; }
.caract-ico--s { width: 46px; height: 46px; border-radius: 12px; }
.caract-ico--m { width: 58px; height: 58px; border-radius: 15px; }
.caract-ico--l { width: 76px; height: 76px; border-radius: 19px; }
.caract-ico-svg { width: 52%; height: 52%; }
.caract-content { min-width: 0; line-height: 1.45; color: var(--muted); font-size: .92rem; }
.caract-content > :first-child { margin-top: 0; }
.caract-content > :last-child { margin-bottom: 0; }
.caract-content strong, .caract-content b, .caract-content h2, .caract-content h3, .caract-content h4, .caract-content > p:first-child { display: block; color: var(--text); font-family: var(--font-head); font-size: 1.18rem; font-weight: 800; line-height: 1.2; margin: 0 0 .2rem; }
.caract-content a { color: var(--ac); text-decoration: underline; }
@media (max-width: 640px) { .pb-caract-section .caract-grid { gap: 1.2rem; } .caract-item { gap: .8rem; } .caract-content { font-size: .82rem; } .caract-content strong, .caract-content b, .caract-content h2, .caract-content h3, .caract-content h4, .caract-content > p:first-child { font-size: 1rem; } }
/* ---- Bloque Flujo (diagrama) ---- */
.pb-flujo-section .flow-grid { display: grid; grid-template-columns: repeat(var(--flow-cols, 1), minmax(150px, 1fr)); gap: var(--flow-gap, 36px); align-items: start; justify-items: stretch; }
.flow-node { position: relative; display: flex; flex-direction: column; gap: .65rem; padding: 1.05rem 1.1rem; border: 1px solid var(--border); border-radius: 14px; background: var(--card); min-width: 0; transition: transform .15s ease, border-color .15s ease; }
.flow-node-ico { width: 48px; height: 48px; border-radius: 13px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.flow-node-ico .flow-node-ico-svg { width: 54%; height: 54%; }
.flow-grid--ico-center .flow-node-ico { align-self: center; }
.flow-grid--ico-right .flow-node-ico { align-self: flex-end; }
.flow-grid--ico-inline-left .flow-node { flex-direction: row; align-items: flex-start; }
.flow-grid--ico-inline-right .flow-node { flex-direction: row-reverse; align-items: flex-start; }
.flow-node-title { font-family: var(--font-head); font-weight: 600; font-size: 1.06rem; line-height: 1.2; color: var(--text); }
.flow-node-desc { font-size: .9rem; line-height: 1.45; color: var(--muted); }
.flow-node--right::after { content: ''; position: absolute; top: 50%; left: calc(100% + 1px); width: var(--flow-gap, 36px); height: 2px; background: var(--flow-line, var(--ac)); transform: translateY(-50%); }
.flow-node--down::after { content: ''; position: absolute; left: 50%; top: calc(100% + 1px); height: var(--flow-gap, 36px); width: 2px; background: var(--flow-line, var(--ac)); transform: translateX(-50%); }
a.flow-node { text-decoration: none; color: inherit; }
.flow-node--clickable { cursor: pointer; }
.flow-node--clickable:hover { border-color: var(--ac); }
@media (max-width: 640px) {
  .pb-flujo-section .flow-grid { display: flex; flex-direction: column; gap: calc(var(--flow-gap, 36px) * 0.6); align-items: stretch; }
  .flow-node { grid-row: auto !important; grid-column: auto !important; }
  .flow-node--right::after { display: none; }
  .flow-node--has-next::after { content: ''; display: block; position: absolute; left: 50%; top: calc(100% + 1px); height: calc(var(--flow-gap, 36px) * 0.6); width: 2px; background: var(--flow-line, var(--ac)); transform: translateX(-50%); }
}
/* Mobile: card rows become horizontal swipe sliders */
@media (max-width: 640px) {
  .carroceria-grid, .pb-inner-centers-grid, .pb-inner-testi-grid,
  .centers-grid, .testimonials-grid, .marcas-grid, .pb-centers-prov-body {
    display: flex; flex-wrap: nowrap; overflow-x: auto;
    scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    gap: .6rem; padding-bottom: .5rem;
    min-width: 0; max-width: 100%;
    scrollbar-width: none;
  }
  .carroceria-grid::-webkit-scrollbar, .pb-inner-centers-grid::-webkit-scrollbar,
  .pb-inner-testi-grid::-webkit-scrollbar, .centers-grid::-webkit-scrollbar,
  .testimonials-grid::-webkit-scrollbar,
  .marcas-grid::-webkit-scrollbar, .pb-centers-prov-body::-webkit-scrollbar { display: none; }
  .carroceria-grid > *, .pb-inner-centers-grid > *, .pb-inner-testi-grid > *,
  .centers-grid > *, .testimonials-grid > *, .marcas-grid > *, .pb-centers-prov-body > * { flex: 0 0 auto; scroll-snap-align: start; }
  .carroceria-grid > * { width: 104px; }
  .pb-inner-centers-grid, .centers-grid, .pb-centers-prov-body {
    padding-left: 1rem; padding-right: 1rem; scroll-padding-left: 1rem;
  }
  .pb-inner-centers-grid > .center-card, .centers-grid > .center-card,
  .pb-centers-prov-body > .center-card { width: 100%; min-width: 100%; }
  .marcas-grid > * { width: var(--col); }
  .marcas-grid > .marca-logo--all { width: auto; padding-left: 1.1rem; padding-right: 1.1rem; }
  .marca-logo--all .marca-all-txt { white-space: nowrap; }
  .pb-inner-testi-grid > .tcard, .testimonials-grid > .tcard { width: 82%; max-width: 320px; }
  .carroceria-btn:hover { transform: none; }
}
/* ---- Empty state ---- */
.empty-state { text-align: center; padding: 4rem 1rem; color: var(--muted); min-height: 50vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.empty-state svg { margin: 0 auto .75rem; color: #c8c3bc; }
.empty-state p { font-weight: 600; font-size: 1rem; }
.nores-head{text-align:left;margin:1rem 0 1.25rem;padding:0;grid-column:1/-1}
.nores-title{font-family:var(--font-head,inherit);font-size:1.15rem;font-weight:700;color:var(--text);margin:0 0 .5rem;line-height:1.2}
.nores-text{color:var(--muted);font-size:.95rem;line-height:1.55;margin:0 0 1.1rem;max-width:none}
.nores-actions{display:flex;gap:.7rem;justify-content:flex-start;flex-wrap:wrap;align-items:center}
.nores-lead{font-family:var(--font-head,inherit);font-weight:700;color:var(--text);font-size:1rem;margin:1.25rem 0 0}
.nores-actions .nores-asesor{display:inline-flex;width:auto}
.favs-head{margin:0 0 1.4rem}
.favs-head .listing-seo-h1{margin:.2rem 0 .25rem}
.favs-sub{color:var(--muted);font-size:.95rem;margin:0 0 .9rem}
.favs-cmp-top{width:auto}
.favs-cmp-bar{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--bg,#fff);border-top:1px solid var(--border,#e2e8f0);padding:.5rem .7rem;display:none}
.favs-cmp-bar.on{display:flex;justify-content:center}
.favs-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.favs-actions .btn-primary,.favs-actions .btn-secondary{width:auto}
.favs-btn{display:inline-flex;align-items:center;gap:.4rem}
.favs-cmp-bar .favs-actions{max-width:var(--layout-max);margin:0 auto;justify-content:center}
@media (max-width:640px){.favs-actions{flex-wrap:nowrap;gap:.4rem;justify-content:center}.favs-actions .favs-btn{flex:0 1 auto;min-width:0;justify-content:center;text-align:center;white-space:nowrap;padding:.55rem .55rem;font-size:.66rem;line-height:1.15}}
body:has(.favs-cmp-bar.on){padding-bottom:66px}
body:has(.favs-cmp-bar.on) .chat-widget{bottom:calc(66px + 1rem)}

.nores-clear{color:var(--muted);font-size:.88rem;text-decoration:none;padding:.72rem .5rem}
.nores-clear:hover{color:var(--ac)}

/* ---- Pagination ---- */
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: .35rem; margin-top: 2rem; }
.pg-btn {
  min-width: 36px; height: 36px; padding: 0 .5rem;
  display: flex; align-items: center; justify-content: center;
  border-radius: 7px; border: 1.5px solid var(--border);
  background: var(--card); color: #4a4742; font-size: .8rem; font-weight: 600;
  transition: border-color .12s, color .12s;
}
.pg-btn:hover { border-color: var(--ac); color: var(--ac); }
.pg-btn.pg-active { background: var(--ac); border-color: var(--ac); color: #fff; }
.pg-btn.pg-disabled { opacity: .3; pointer-events: none; }

/* ---- Detail page ---- */
.detail-wrap {
  display: grid;
  grid-template-columns: minmax(280px, 580px) 1fr;
  gap: 2rem; align-items: start;
}
/* Pantallas grandes: mas ancho para la pagina y, sobre todo, la columna de la galeria (dentro de lo razonable) */
@media (min-width: 1500px) {
  .page.detail-page { max-width: 1320px; }
  .detail-wrap { grid-template-columns: minmax(280px, 660px) 1fr; }
}
@media (min-width: 1760px) {
  .page.detail-page { max-width: 1440px; }
  .detail-wrap { grid-template-columns: minmax(280px, 720px) 1fr; }
}
@media (max-width: 860px) { .detail-wrap { grid-template-columns: 1fr; gap: 1.25rem; } }
/* Bloque de estructura anclado a "galeria": desktop bajo las fotos (col izq), movil al final */
/* Columna izquierda (galeria + bloques anclados) en contenedor sticky: sigue el scroll
   para no dejar un hueco vacio grande a la izquierda cuando la columna derecha es mas larga. */
.detail-left { grid-column: 1; min-width: 0; align-self: start; position: sticky; top: calc(var(--header-h, 62px) + 1rem); display: flex; flex-direction: column; gap: 1.25rem; }
.detail-info { grid-column: 2; }
.detail-gallery, .vd-gal-anchor { min-width: 0; }
.detail-wrap--nogal .detail-left { display: contents; }
.detail-wrap--nogal .detail-info { grid-column: 1; }
@media (max-width: 860px) {
  .detail-left { display: contents; position: static; }
  .detail-gallery { order: 1; grid-column: auto; }
  .detail-info { order: 2; grid-column: auto; }
  .vd-gal-anchor { order: 3; grid-column: auto; }
  .detail-left > .fblk { order: 500 !important; }
}

/* Gallery: main image on top, thumb strip below */
.gallery-inner { display: flex; flex-direction: column; gap: .5rem; }

.gallery-thumbs-h {
  display: flex; gap: .4rem;
  overflow-x: auto; overflow-y: hidden;
  scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--ac) 35%, transparent) transparent;
  padding-bottom: 2px;
}
.gallery-thumbs-h::-webkit-scrollbar { height: 8px; }
.gallery-thumbs-h::-webkit-scrollbar-track { background: transparent; }
.gallery-thumbs-h::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--ac) 35%, transparent); border-radius: 8px; }
.gallery-thumb {
  flex-shrink: 0; width: 108px; height: 81px; border-radius: 8px; overflow: hidden;
  border: 2px solid var(--border); cursor: pointer; transition: border-color .12s, transform .12s;
}
.gallery-thumb:hover { transform: translateY(-1px); }
.gallery-thumb.active { border-color: var(--ac); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.badge-affinity{background:var(--ac)!important;color:#fff!important;border-color:var(--ac)!important}
.badge-suggestion{background:var(--ac);color:#fff}
.badge--fmt-outlined.badge-suggestion{border-color:var(--ac)!important;color:var(--ac)!important;background:transparent!important}
.badge--transp.badge-suggestion{background:color-mix(in srgb,var(--ac) var(--badge-mix),transparent)}
.vcard-suggestion{position:absolute;left:.5rem;bottom:.5rem;z-index:7}
.vcard-photo-wrap:has(.vcard-ribbon--over) .vcard-suggestion,.vcard-photo-wrap:has(.vcard-cd--over) .vcard-suggestion{bottom:2.7rem}
.vcard-photo-wrap:has(.vcard-novedad) .vcard-suggestion,.vcard-photo-wrap:has(.vcard-env--photo-bl) .vcard-suggestion{bottom:calc(.5rem + 34px)}
.vcard-photo-wrap:has(.vcard-ribbon--over):has(.vcard-novedad) .vcard-suggestion,.vcard-photo-wrap:has(.vcard-cd--over):has(.vcard-novedad) .vcard-suggestion,.vcard-photo-wrap:has(.vcard-ribbon--over):has(.vcard-env--photo-bl) .vcard-suggestion,.vcard-photo-wrap:has(.vcard-cd--over):has(.vcard-env--photo-bl) .vcard-suggestion{bottom:calc(2.7rem + 34px)}
.gallery-main { position: relative; }
.vd-gal-iva-br { position: absolute; right: .6rem; bottom: .55rem; z-index: 5; display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }
.gallery-main:has(.gallery-counter) .vd-gal-iva-br, .gallery-main:has(.gallery-hotspots) .vd-gal-iva-br { bottom: 2.5rem; } /* IVA/4x4 SIEMPRE por encima de la fila de utilidades (contador, hotspots ON/OFF, volver) */
.gallery-main-img {
  width: 100%; aspect-ratio: 4 / 3;
  background: var(--border); border: 1px solid var(--border); border-radius: 10px; overflow: hidden;
  position: relative; cursor: zoom-in;
}
.gallery-main-img img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; transition: opacity .2s;
  display: block;
}
/* Zoom dentro del marco (sin modal) */
.gallery-main-img.is-zoomed { cursor: grab; touch-action: none; }
.gallery-main-img.is-grabbing { cursor: grabbing; }
.gallery-main-img.is-zoomed img { transition: transform .18s ease; cursor: inherit; will-change: transform; -webkit-user-drag: none; user-select: none; }
.gallery-main-img.is-grabbing img { transition: none; }
.gallery-main--noz .gallery-main-img, .gallery-main--noz .gallery-slide { cursor: default; }   /* ficha con placeholder: el zoom no aplica */
.gallery-main-img.is-zoomed .gallery-nav,
.gallery-main:has(.gallery-main-img.is-zoomed) .gallery-counter, .gallery-main:has(.gallery-main-img.is-zoomed) .g-hs-toggle, .gallery-main:has(.gallery-main-img.is-zoomed) .g-hs-back { display: none !important; }
.gallery-main:has(.gallery-main-img.is-zoomed) .gallery-hotspots { display: none !important; }
/* Boton "volver" tras pinchar un hotspot */
.g-hs-back { appearance: none; -webkit-appearance: none; font-family: inherit; margin: 0; position: absolute; bottom: 10px; right: 4.6rem; z-index: 6; display: none; align-items: center; gap: .32rem; padding: 0 .5rem 1px; height: 20px; box-sizing: border-box; border: 0; border-radius: 20px; background: rgba(0,0,0,.55); color: #fff; font-size: .68rem; font-weight: 400; letter-spacing: .03em; line-height: 1; cursor: pointer; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.g-hs-back svg { width: 12px; height: 12px; }
.g-hs-toggle { appearance: none; -webkit-appearance: none; font-family: inherit; margin: 0; position: absolute; bottom: 10px; right: 4.6rem; z-index: 6; display: none; align-items: center; gap: .32rem; padding: 0 .5rem 1px; height: 20px; box-sizing: border-box; border: 0; border-radius: 20px; background: rgba(0,0,0,.55); color: #fff; font-size: .68rem; font-weight: 400; letter-spacing: .03em; line-height: 1; cursor: pointer; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
@media (hover: hover) { .g-hs-toggle:hover { background: rgba(0,0,0,.72); } .g-hs-back:hover { background: rgba(0,0,0,.72); } }
.g-hs-toggle .g-hs-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ac); position: relative; flex-shrink: 0; }
.g-hs-toggle .g-hs-dot::after { content: ''; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: #fff; }
.g-hs-toggle .g-hs-state::before { content: 'ON'; }
/* Vista de foto enlazada (boton Volver visible): el Volver manda en la esquina; ocultamos
   el contador (desktop y movil) y el ON/OFF para que no se solapen. */
.gallery-main.g-hs-linked .gallery-counter, .gallery-main.g-hs-linked .gallery-mcount, .gallery-main.g-hs-linked .g-hs-toggle { display: none !important; }
.g-hs-toggle.is-off { background: rgba(0,0,0,.38); color: #cbd5e1; }
.g-hs-toggle.is-off .g-hs-state::before { content: 'OFF'; }
.g-hs-toggle.is-off .g-hs-dot { background: #64748b; }
.g-hs-toggle.is-off .g-hs-dot { background: #94a3b8; }
/* MOVIL: la galeria de la ficha usa el slider de cards con su PROPIO contador
   (vcard-slide-count); el gallery-counter se oculta (antes quedaba tapado por
   el wrapper y al sacarlo aparecian DOS contadores apilados) y el ON/OFF se
   alinea a la fila y metrica del contador movil. */

.g-hs-toggle.is-off .g-hs-state::before { content: 'OFF'; }
.gallery-main:has(.vcard-ribbon--over) .g-hs-back, .gallery-main:has(.vcard-ribbon--over) .g-hs-toggle { bottom: 35px; }
.gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-s) .g-hs-back, .gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-s) .g-hs-toggle { bottom: 30px; }
.gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-l) .g-hs-back, .gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-l) .g-hs-toggle { bottom: 43px; }
.gallery-main:has(.vcard-ribbon--over) .vd-gal-iva-br { bottom: 2.9rem; }
/* faldon + contador de fotos a la vez: el IVA sube por encima del contador ya elevado (no se montan) */
.gallery-main:has(.vcard-ribbon--over):has(.gallery-counter) .vd-gal-iva-br { bottom: 4.1rem; }
.gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-s):has(.gallery-counter) .vd-gal-iva-br { bottom: 3.8rem; }
.gallery-main:has(.vcard-ribbon--over.vcard-ribbon--sz-l):has(.gallery-counter) .vd-gal-iva-br { bottom: 4.6rem; }
/* Galeria movil: slider tipo card (swipe + barra de progreso) */
.gallery-main-slider { display: none; }
.gallery-mcount { display: none; }
.gallery-slidebar { display: none; }
@media (max-width: 860px) {
  .gallery-main-img { display: none; }
  .gallery-main-img.mzoom { display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 3px; z-index: 7; aspect-ratio: auto; border-radius: 10px 10px 0 0; }   /* movil: esquinas inferiores rectas (como el slider) y sin tapar la slidebar (3px) */
  .gallery-main-slider { display: flex; width: 100%; aspect-ratio: 4 / 3; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; background: var(--border); border: 1px solid var(--border); border-bottom: 0; border-radius: 10px 10px 0 0; }
  .gallery-main-slider::-webkit-scrollbar { display: none; }
  .gallery-slide { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; display: block; cursor: zoom-in; }
  .gallery-mcount { display: inline-flex; align-items: center; position: absolute; bottom: 12px; right: 8px; z-index: 3; background: rgba(0,0,0,.55); color: #fff; font-size: .66rem; font-weight: 700; line-height: 1; height: 18px; box-sizing: border-box; padding: 0 .5rem 1px; border-radius: 12px; pointer-events: none; font-variant-numeric: tabular-nums; }
  .gallery-main .gallery-counter { display: none; }   /* <=860 manda el mcount del slider movil: el counter de escritorio duplicaba */
  .g-hs-toggle, .g-hs-back { bottom: 12px; right: 62px; height: 18px; font-size: .66rem; padding: 0 .5rem 1px; border-radius: 12px; }
  .g-hs-toggle .g-hs-dot { width: 9px; height: 9px; }
  .gallery-slidebar { display: block; position: relative; height: 3px; background: var(--border); overflow: hidden; border-radius: 0; }   /* laterales rectos (sin curva) */
  .gallery-slidebar-fill { position: absolute; top: 0; left: 0; height: 100%; background: var(--ac); transition: transform .15s ease; }
  .gallery-thumbs-h { scrollbar-width: none; padding-bottom: 0; }
  .gallery-thumbs-h::-webkit-scrollbar { display: none; }
}
.gallery-hotspots { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
/* Tamano FLUIDO relativo a la imagen (UX desktop): 3.4% del ancho de la
   galeria con suelo 22px (movil queda como estaba) y techo 40px; los anillos
   internos van en % para escalar en proporcion. */
.g-hotspot { position: absolute; transform: translate(-50%,-50%); width: clamp(22px, 3.4%, 40px); height: auto; aspect-ratio: 1 / 1; border-radius: 50%; border: 0; padding: 0; cursor: pointer; pointer-events: auto; background: transparent; }
.g-hotspot::after { content: ''; position: absolute; inset: 27%; border-radius: 50%; background: #fff; border: 2px solid var(--ac); transition: inset .12s; }
.g-hotspot::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: var(--ac); opacity: .55; animation: hsPulse 1.8s ease-out infinite; }
.g-hotspot:hover::after { inset: 18%; }
@keyframes hsPulse { 0% { transform: scale(.55); opacity: .55; } 100% { transform: scale(1.7); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .g-hotspot::before { animation: none; opacity: .35; } }

.gallery-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: color-mix(in srgb, var(--ac) 78%, transparent); color: #fff; border: none; border-radius: 50%;
  width: 34px; height: 34px; display: flex; align-items: center; justify-content: center;
  transition: transform .15s, background .15s; z-index: 2; cursor: pointer;
}
.gallery-nav:hover { background: var(--ac); transform: translateY(-50%) scale(1.1); }
.gallery-prev { left: .6rem; }
.gallery-next { right: .6rem; }
.gallery-counter {
  position: absolute; bottom: 10px; right: .7rem;
  background: rgba(0,0,0,.55); color: #fff; font-size: .68rem;
  padding: 0 .5rem 1px; height: 20px; line-height: 1; display: inline-flex; align-items: center; border-radius: 20px; pointer-events: none;
}

/* Desktop (>=961px): el contador de imagenes y los toggles ON/OFF de hotspot
   igualan el tamano de los .badge de la galeria (antes .68rem/20px, se veian
   pequenos). Movil se mantiene con sus reglas propias de abajo. */
@media (min-width: 961px) {
  .gallery-counter, .g-hs-toggle, .g-hs-back {
    height: auto; font-size: calc(var(--badge-fs, .7rem) * 1.12);
    padding: .26em .65em; border-radius: 999px; line-height: 1;
  }
  .g-hs-toggle .g-hs-dot { width: 11px; height: 11px; }
  .g-hs-back svg { width: 13px; height: 13px; }
  /* Mas aire entre la fila de utilidad (contador / ON-OFF) y los badges de
     encima (IVA, 4x4) ahora que la fila es mas alta en desktop. */
  .gallery-main:has(.gallery-counter) .vd-gal-iva-br,
  .gallery-main:has(.gallery-hotspots) .vd-gal-iva-br { bottom: 3.4rem; }
}

/* Lightbox */
.glb {
  position: fixed; inset: 0; background: rgba(0,0,0,.93); z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity .2s;
}
.glb.open { opacity: 1; pointer-events: auto; }
.glb-img { max-width: 90vw; max-height: 88vh; object-fit: contain; border-radius: 4px; display: block; }
.glb-close {
  position: absolute; top: 1rem; right: 1rem;
  background: rgba(255,255,255,.1); border: none; color: #fff;
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .15s;
}
.glb-close:hover { background: rgba(255,255,255,.25); }
.glb-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.1); border: none; color: #fff;
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background .15s;
}
.glb-nav:hover { background: rgba(255,255,255,.25); }
.glb-prev { left: 1.5rem; }
.glb-next { right: 1.5rem; }
.glb-counter {
  position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
  color: rgba(255,255,255,.6); font-size: .78rem; pointer-events: none;
}

/* Legacy */
.gallery-thumbs { display: none; }
.gallery-thumbs-v { display: none; }

.detail-info { display: flex; flex-direction: column; gap: 1.25rem; }
@media (max-width: 860px) { .detail-info .fblk--opinion { order: var(--m-ord, 999) !important; } }
.detail-info > .fblk { min-width: 0; }
.detail-left > .fblk { min-width: 0; }
.detail-left > .fblk:not(:has(*)) { display: none; }
/* Bloques de ficha sin contenido (p.ej. historial sin datos) no deben ocupar
   gap: se ocultan para no dejar un hueco fantasma entre bloques. */
.detail-info > .fblk:not(:has(*)) { display: none; }
/* botones consecutivos: separacion como los items de confianza (.6rem) */
.detail-info > .fblk--btn-tight { margin-top: -.65rem; }
.vd-similares-section { margin-top: 1.25rem; }
.vd-similares-section .vd-similares-title { font-family: var(--font-head); font-size: 1.3rem; font-weight: 600; margin: 0 0 1rem; }
/* Espaciado entre bloques de la ficha mediante gap del contenedor: independiente del
   reordenado (CSS order). Se anulan los margenes de apertura/cierre de cada bloque para
   que el unico espacio sea el gap, sin sobrante al final ni depender de cual bloque quede
   el ultimo visualmente (antes :last-child del DOM fallaba al reordenar). */
.detail-info > .fblk > *:first-child { margin-top: 0; }
.detail-info > .fblk > *:last-child { margin-bottom: 0; }
.detail-left > .fblk > *:first-child { margin-top: 0; }
.detail-left > .fblk > *:last-child { margin-bottom: 0; }
.detail-info > .fblk > style + *, .detail-info > .fblk > script + *, .detail-left > .fblk > style + *, .detail-left > .fblk > script + * { margin-top: 0; }
.detail-info > .fblk--cabecera .vd-head > *:first-child { margin-top: 0; }
.detail-info > .fblk--cabecera .vd-head > *:last-child { margin-bottom: 0; }
.vd-gal-anchor > *:first-child { margin-top: 0; }
.detail-wrap--nogal { grid-template-columns: 1fr; }
.detail-breadcrumb { font-size: .75rem; color: var(--muted); margin-bottom: 1rem; display: flex; align-items: center; flex-wrap: wrap; gap: .3rem; }
.detail-breadcrumb a { color: var(--muted); }
.detail-breadcrumb a:hover { color: var(--ac); }
.detail-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .75rem; }
.detail-make { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--ac); margin-bottom: .2rem; }
.detail-title { font-family: var(--font-head); font-size: 2.05rem; font-weight: 600; line-height: 1.12; letter-spacing: -.01em; margin-bottom: .25rem; }
.detail-version { font-size: .88rem; color: var(--muted); margin-bottom: 1.25rem; }
.detail-price-block { background: var(--card); border-radius: 14px; padding: 1.3rem 1.45rem; margin-bottom: 1.4rem; border: 1px solid var(--border); }
@media (max-width: 640px) { .detail-price-block { padding: .85rem .9rem; } }
.detail-price { font-family: var(--font-head); font-size: 2.2rem; font-weight: 800; color: var(--text); font-variant-numeric: tabular-nums; line-height: 1; }
.detail-price-old { font-size: .85rem; color: #a09b93; text-decoration: line-through; margin-bottom: .15rem; font-variant-numeric: tabular-nums; }
.detail-price-fin { font-size: .8rem; color: var(--muted); margin-top: .3rem; }
.detail-price-fin strong { color: var(--text); }
.detail-ctas { display: flex; flex-direction: column; gap: .55rem; margin-bottom: 1.25rem; }
.cta-contact-row { display: flex; gap: .55rem; }
.cta-contact-row > .btn-secondary { flex: 1 1 0; min-width: 0; white-space: nowrap; padding-left: .7rem; padding-right: .7rem; }
.btn-primary {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .75rem 1.25rem; border-radius: 8px; border: none;
  background: var(--ac); color: #fff; font-weight: 600; font-size: .9rem;
  transition: background .14s; width: 100%;
}
/* .btn-primary:hover unificado en la regla de botones de acento */
/* variante acento atenuado: mismo estilo que el boton de afinidad con dato (.compat-open--scored) */
.btn-primary.btn-accent-soft { background: color-mix(in srgb, var(--ac) 7%, var(--card)); color: var(--text); border: 1.5px solid var(--ac); border-radius: 10px; font-family: var(--font-head); transition: transform .16s cubic-bezier(.2,.7,.2,1), border-color .16s ease, background-color .16s ease; }
.btn-primary.btn-accent-soft:hover { transform: translateY(-1px); background: color-mix(in srgb, var(--ac) 8%, var(--card)); color: var(--text); }
.btn-primary.btn-accent-soft svg { color: var(--ac); }
.btn-secondary {
  display: flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .7rem 1.25rem; border-radius: 8px;
  border: 1.5px solid var(--border); background: var(--card); color: var(--text);
  font-weight: 600; font-size: .88rem; transition: border-color .14s; width: 100%;
}
.btn-secondary:hover { border-color: var(--ac); color: var(--ac); }
.btn-wa {
  background: #25D366; color: #fff; border-color: #25D366;
}
.btn-wa:hover, .btn-wa:active, .btn-wa:focus { background: #1ebe5d; color: #fff; border-color: #1ebe5d; }
.btn-compartir { background: none; cursor: pointer; }
/* ---- Señales de confianza ---- */
.trust-row { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-bottom: 1.25rem; }
.trust-item { display: flex; align-items: center; gap: .65rem; padding: .75rem .85rem; background: var(--card, #fff); border: 1px solid var(--border); border-radius: 11px; font-size: .9rem; font-weight: 600; color: var(--text); transition: border-color .12s; }
.trust-item:hover { border-color: color-mix(in srgb, var(--ac) 35%, var(--border)); }
.trust-ico { width: 34px; height: 34px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: color-mix(in srgb, var(--ac) 12%, transparent); color: var(--ac); }
.trust-ico svg { width: 18px; height: 18px; }
@media (max-width: 480px) { .trust-row { grid-template-columns: 1fr; } }
/* ---- Alertas / busqueda guardada ---- */
.btn-alert { width: 100%; margin-bottom: 1.25rem; }
.save-search-btn { display: inline-flex; align-items: center; gap: .38rem; font-size: .78rem; font-weight: 600; color: var(--ac); background: none; border: 1.5px solid var(--border); border-radius: 8px; padding: .4rem .7rem; cursor: pointer; transition: border-color .14s; }
.save-search-btn:hover { border-color: var(--ac); }
/* ---- Banner de cookies ---- */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; background: var(--card); border-top: 1px solid var(--border); padding: 1rem 1.1rem calc(1rem + env(safe-area-inset-bottom, 0px)); }
.cookie-banner-inner { max-width: var(--layout-max); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.25rem; }
.cookie-banner-main { flex: 1; min-width: 240px; }
.cookie-banner-title { font-family: var(--font-head); font-weight: 600; font-size: 1rem; margin-bottom: .12rem; }
.cookie-banner-text { font-size: .82rem; color: var(--muted); line-height: 1.5; margin: 0; }
.cookie-banner-text a { color: var(--ac); }
.cookie-banner-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.cookie-btn { padding: .55rem 1rem; border-radius: 8px; font-size: .82rem; font-weight: 700; cursor: pointer; border: 1.5px solid var(--border); background: var(--card); color: var(--text); transition: border-color .14s, background .14s; }
.cookie-btn-ghost:hover { border-color: var(--ac); color: var(--ac); }
.cookie-btn-accent { background: var(--ac); color: #fff; border-color: var(--ac); }
.cookie-prefs { flex-basis: 100%; margin-top: .3rem; border-top: 1px solid var(--border); padding-top: .8rem; display: flex; flex-direction: column; gap: .65rem; }
.cookie-prefs[hidden] { display: none; }
.cookie-pref { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; font-size: .84rem; }
.cookie-pref small { color: var(--muted); font-size: .74rem; }
.cookie-pref input { margin-top: .25rem; flex-shrink: 0; }
@media (max-width: 640px) { .cookie-banner-actions { width: 100%; gap: .4rem; } .cookie-banner-actions .cookie-btn { flex: 1; min-width: 0; white-space: nowrap; padding: .5rem .35rem; font-size: .72rem; } }
.detail-specs-tabs { margin-bottom: 1.25rem; }
.spec-tabs { display: flex; border-bottom: 2px solid var(--border); margin-bottom: 1rem; gap: 0; }
.spec-tab {
  padding: .55rem .9rem; font-size: .82rem; font-weight: 600; color: var(--muted);
  border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; background: none; border-top: none; border-left: none; border-right: none;
  transition: color .12s;
}
.spec-tab.active { color: var(--ac); border-bottom-color: var(--ac); }
.spec-panel { display: none; }
.spec-panel.active { display: block; }
.spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.spec-row { display: flex; align-items: stretch; overflow: hidden; padding: 0; background: var(--card, #fff); border: 1px solid var(--border); border-radius: 10px; transition: border-color .12s; }
.spec-row:hover { border-color: color-mix(in srgb, var(--ac) 35%, var(--border)); }
.spec-row-ico { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 2.1rem; background: color-mix(in srgb, var(--ac) 12%, transparent); color: var(--ac); }
.spec-row-body { display: flex; flex-direction: column; justify-content: center; gap: .08rem; padding: .45rem .65rem; min-width: 0; flex: 1 1 auto; }
.spec-key { font-size: .64rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.spec-val { font-family: var(--font-head); font-weight: 600; font-size: .92rem; color: var(--text); line-height: 1.1; }
.detail-description { font-size: .88rem; line-height: 1.65; color: #3a3733; }
.vd-opinion{background:color-mix(in srgb,var(--ac) 4%,var(--card));border:1px solid var(--border);border-radius:16px;padding:1.35rem 1.4rem}
@media(max-width:640px){.vd-opinion{padding:.85rem .9rem}}
.vd-opinion-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.85rem}
.vd-opinion-ico{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--ac) 12%,transparent);color:var(--ac);display:flex;align-items:center;justify-content:center}
.vd-opinion-ico svg{width:18px;height:18px}
.vd-opinion-hd-tx{display:flex;flex-direction:column;min-width:0}
.vd-opinion-title{font-family:var(--font-head);font-weight:700;font-size:1.06rem;color:var(--text);line-height:1.2}
.vd-opinion-sub{font-size:.76rem;color:var(--muted);font-weight:500;margin-top:.14rem}
.vd-opinion-text{margin:0;color:var(--text);font-size:.88rem;line-height:1.65}
.vd-opinion-by{display:flex;align-items:center;gap:.45rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border);font-size:.79rem;font-weight:600;color:var(--muted)}
.vd-opinion-by svg{width:16px;height:16px;color:var(--ac);flex:0 0 auto}
@media(max-width:860px){.vd-opinion-text{font-size:.82rem}}
.detail-equip { font-size: .82rem; line-height: 1.7; color: #4a4742; }
.equip-acc { border: 1px solid var(--border); border-radius: 10px; margin-bottom: .55rem; background: var(--card); overflow: hidden; }
.equip-acc:last-child { margin-bottom: 0; }
.equip-acc > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .65rem; padding: .8rem .95rem; font-family: var(--font-head); font-weight: 700; font-size: .9rem; color: var(--text); }
.equip-acc > summary::-webkit-details-marker { display: none; }
.equip-acc > summary:hover { background: var(--bg); }
.equip-acc-ico { width: 20px; height: 20px; color: var(--ac); flex-shrink: 0; display: inline-flex; }
.equip-acc-ico svg { width: 100%; height: 100%; }
.equip-acc-title { flex: 1; }
.equip-acc-count { font-size: .72rem; font-weight: 600; color: var(--muted); background: var(--bg); border-radius: 20px; padding: .12rem .55rem; }
.equip-acc-chev { width: 16px; height: 16px; color: var(--muted); flex-shrink: 0; display: inline-flex; transition: transform .2s; }
.equip-acc-chev svg { width: 100%; height: 100%; }
.equip-acc[open] .equip-acc-chev { transform: rotate(180deg); }
.equip-acc-body { padding: 0 .95rem; }
.equip-list { list-style: none; margin: 0; padding: .25rem 0 .65rem; }
.equip-list li { position: relative; padding: .32rem 0 .32rem 1.7rem; font-size: .85rem; line-height: 1.5; color: var(--muted); }
.equip-list li::before { content: ''; position: absolute; left: .35rem; top: .62em; width: .34em; height: .6em; border: solid var(--ac); border-width: 0 .16em .16em 0; transform: rotate(45deg); }
.detail-section-title { font-family: var(--font-head); font-size: 1rem; font-weight: 700; margin-bottom: .65rem; padding-bottom: .4rem; border-bottom: 1.5px solid var(--border); }

/* ---- Contact page ---- */
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 1.9rem; }   /* una sola columna: info y formulario apilados */
@media (max-width: 760px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-info {}
.contact-info-title { font-family: var(--font-head); font-size: 2rem; font-weight: 600; margin-bottom: .5rem; }
.contact-info-sub { color: var(--muted); font-size: .9rem; margin-bottom: 1.5rem; }
.contact-item { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; }
.contact-item svg { color: var(--ac); flex-shrink: 0; margin-top: .1rem; }
.contact-item-label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.contact-item-val { font-size: .9rem; font-weight: 500; }
.contact-form-card { background: var(--card); border-radius: 12px; border: 1px solid var(--border); padding: 1.75rem; }
.contact-form-card--wide { max-width: 640px; margin: 0 auto; }
.form-row { margin-bottom: 1rem; }
.form-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: 1rem; }
.gform { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .85rem; }
.gform > * { grid-column: 1 / -1; }
.gform > .form-half { grid-column: span 1; }
@media (max-width: 460px){ .gform > .form-half { grid-column: 1 / -1; } }
.form-radios { display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.form-radio { display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; }
@media (max-width: 460px) { .form-grid2 { grid-template-columns: 1fr; } }
.form-label { font-size: .78rem; font-weight: 600; color: #4a4742; display: block; margin-bottom: .35rem; }
.form-input, .form-select, .form-textarea {
  width: 100%; padding: .55rem .8rem; border: 1.5px solid var(--border); border-radius: 8px;
  font-size: .88rem; color: var(--text); background: var(--bg); transition: border-color .12s;
}
.form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--ac); background: #fff; }
input.field-err, select.field-err, textarea.field-err, .form-input.field-err, .form-select.field-err, .form-textarea.field-err { border-color: #e11d48; background: color-mix(in srgb, #e11d48 6%, var(--card)); }
.form-check.field-err input[type=checkbox] { outline: 2px solid #e11d48; outline-offset: 1px; border-radius: 3px; }
.field-err-msg { display: block; color: #e11d48; font-size: .76rem; font-weight: 600; margin-top: .3rem; }
.form-check { flex-wrap: wrap; }
.form-check > .field-err-msg { flex-basis: 100%; width: 100%; margin: .15rem 0 0 0; }
.req-dot { display: inline-block; width: 5px; height: 5px; vertical-align: super; margin-left: .25rem; }
.form-textarea { resize: vertical; min-height: 110px; }
.form-submit {
  padding: .75rem 2rem; background: var(--ac); color: #fff; border: none; border-radius: 8px;
  font-size: .9rem; font-weight: 600; cursor: pointer; transition: background .14s; width: 100%;
}
/* .form-submit:hover unificado en la regla de botones de acento */
.form-note { font-size: .72rem; color: var(--muted); margin-top: .65rem; text-align: center; }
.form-check { display: flex; align-items: flex-start; gap: .5rem; margin: 0 0 1rem; font-size: .8rem; color: var(--muted); line-height: 1.45; cursor: pointer; }
.form-check input { margin-top: .15rem; flex-shrink: 0; width: auto; }
.form-check > span:not(.field-err-msg) { flex: 1 1 0; min-width: 0; }
.form-check a { color: var(--ac); text-decoration: underline; }
/* ---- Captacion inline (bajo el precio) ---- */
.lead-inline { margin: 0 0 1.25rem; padding: 1rem 1.1rem; background: var(--bg); border: 1.5px solid var(--border); border-radius: 12px; }
.lead-inline-title { font-family: var(--font-head); font-size: 1rem; font-weight: 700; margin-bottom: .15rem; }
.lead-inline-sub { font-size: .78rem; color: var(--muted); margin-bottom: .8rem; }
.lead-inline-fields { display: flex; flex-direction: column; gap: .5rem; }
.lead-inline .form-input { width: 100%; box-sizing: border-box; padding: .7rem .85rem; border: 1.5px solid var(--border); border-radius: 8px; background: var(--card); color: var(--text); font-size: .9rem; }
.lead-inline .form-input:focus { outline: none; border-color: var(--ac); }
.lead-inline-btn { margin-top: .9rem; font-weight: 600; }   /* separa el boton del check de aviso legal */
.lead-inline .form-check { margin: .85rem 0 .35rem; }
.lead-inline .form-row { margin-top: .5rem; }   /* Provincia (sin leyenda) al mismo ritmo que nombre/telefono (.5rem); el margin-bottom global separa del boton */
.lead-trust { display: flex; flex-wrap: wrap; gap: .45rem .85rem; margin-top: .75rem; }
.lead-trust span { display: inline-flex; align-items: center; gap: .32rem; font-size: .7rem; color: var(--muted); font-weight: 600; }
.lead-trust svg { width: 13px; height: 13px; color: var(--ac); flex: 0 0 auto; }
.lead-trust--modal { margin-top: 1rem; justify-content: center; }
@media (max-width:640px){.lead-trust{flex-wrap:nowrap;gap:.3rem;justify-content:space-between}.lead-trust span{font-size:.6rem;gap:.2rem;white-space:nowrap}.lead-trust svg{width:11px;height:11px}}
.lead-hp { display: none !important; }

/* ---- Page hero (contact/vender) ---- */
.page-hero {
  background: var(--head-bg); color: #fff;
  padding: 2.5rem var(--layout-pad-h); margin-bottom: 2rem; border-radius: 0 0 14px 14px;
}
.page-hero-inner { max-width: var(--layout-max); margin: 0 auto; }
.page-hero h1 { font-family: var(--font-head); font-size: 2.4rem; font-weight: 600; margin-bottom: .35rem; }
.page-hero p  { color: rgba(255,255,255,.65); font-size: .95rem; }

/* ---- Vender section ---- */
.vender-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
@media (max-width: 760px) { .vender-grid { grid-template-columns: 1fr; } }
.vender-steps { display: flex; flex-direction: column; gap: 1.25rem; }
.step { display: flex; align-items: flex-start; gap: 1rem; }
.step-num {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%;
  background: var(--ac); color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-head); font-weight: 800; font-size: 1rem;
}
.step-text h4 { font-weight: 700; margin-bottom: .2rem; }
.step-text p  { font-size: .85rem; color: var(--muted); }

/* ---- Footer ---- */
.site-faldon { width: 100%; box-sizing: border-box; padding: .45rem var(--layout-pad-h, 1rem); font-size: .875rem; }
@media (max-width: 640px) { .site-faldon, .site-faldon * { font-size: .7rem; } .site-faldon { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .site-faldon * { white-space: nowrap; } .site-faldon > * { display: inline; } .site-faldon br { display: none; } }
.fld-ico { width: 1em; height: 1em; vertical-align: -0.14em; display: inline-block; }
.site-faldon--header-top { transition: max-height .28s ease, opacity .2s ease, padding .28s ease; max-height: 400px; overflow: hidden; }
.site-header.faldon-collapsed .site-faldon--header-top { max-height: 0; opacity: 0; padding-top: 0; padding-bottom: 0; }
body { transition: padding-top .28s ease; }
.site-footer {
  background: var(--head-bg); color: rgba(255,255,255,.55); font-size: .78rem;
  padding: 2rem var(--layout-pad-h);
}
.site-footer{border-top:3px solid #2369b0}.site-footer{background:#ffffff}.site-subfooter{background:#1b262f}.site-subfooter-social{background:#2369b0}.footer-inner {
  max-width: var(--layout-max); margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center;
}
.footer-brand { font-family: var(--font-head); font-size: 1rem; font-weight: 700; color: rgba(255,255,255,.8); margin-bottom: .35rem; }
.footer-logo { height: 15px; width: auto; display: block; margin-bottom: .55rem; }
.footer-logo--bw { filter: grayscale(1); }
.footer-logo--tint { position: relative; display: inline-block; margin-bottom: .55rem; }
.footer-logo--tint img { height: 15px; width: auto; display: block; opacity: 0; }
.footer-logo--tint::after { content: ""; position: absolute; inset: 0; background: var(--flc); -webkit-mask: var(--fll) left center / contain no-repeat; mask: var(--fll) left center / contain no-repeat; }
.footer-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.footer-links a { color: rgba(255,255,255,.45); transition: color .12s; }
.footer-links a:hover { color: rgba(255,255,255,.85); }
.footer-contact { text-align: right; }
.footer-contact a { color: rgba(255,255,255,.65); display: block; margin-bottom: .2rem; }
.footer-contact a:hover { color: #fff; }
.site-subfooter { margin: 1.6rem calc(-1 * var(--layout-pad-h)) -2rem; padding: .8rem var(--layout-pad-h); }
.site-subfooter-inner { max-width: var(--layout-max); margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .35rem 1.4rem; font-size: .74rem; color: rgba(255,255,255,.5); }
.site-subfooter-inner a { color: inherit; text-decoration: none; opacity: .85; }
.site-subfooter-inner a:hover { opacity: 1; text-decoration: underline; }
.site-subfooter-social { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem .7rem; margin: 1.4rem calc(-1 * var(--layout-pad-h)) 0; padding: .55rem var(--layout-pad-h); }
.site-subfooter-social + .site-subfooter { margin-top: 0; }
.site-subfooter-social .sfs-label { font-size: .78rem; color: rgba(255,255,255,.75); letter-spacing: .02em; }
.site-subfooter-social .sfs-ico { color: rgba(255,255,255,.7); display: inline-flex; transition: color .15s, transform .15s; }
.site-subfooter-social .sfs-ico svg { width: 19px; height: 19px; display: block; }
.site-subfooter-social .sfs-ico:hover { color: #fff; transform: translateY(-1px); }
.subfooter-contact { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .3rem 1.6rem; max-width: var(--layout-max); margin: 0 auto .8rem; font-size: .82rem; color: rgba(255,255,255,.72); }
.subfooter-contact .sfc-item { display: inline-flex; align-items: center; gap: .42rem; color: inherit; text-decoration: none; }
.subfooter-contact a.sfc-item:hover { color: #fff; }
.subfooter-contact .sfc-ico { width: 1.05em; height: 1.05em; flex-shrink: 0; opacity: .85; }
.site-subfooter-menus { max-width: var(--layout-max); margin: 0 auto .7rem; display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: .6rem 2.6rem; }
.site-subfooter-menus .wmenu { display: flex; flex-direction: column; align-items: center; gap: .15rem; }
.site-subfooter-menus .wmenu--align-left { align-items: flex-start; }
.site-subfooter-menus .wmenu--align-right { align-items: flex-end; }
.site-subfooter-menus .wmenu--align-center { align-items: center; }
.wmenu--align-left .wmenu-title { text-align: left; }
.wmenu--align-center .wmenu-title { text-align: center; }
.wmenu--align-right .wmenu-title { text-align: right; }
.site-subfooter .wmenu--align-left .wmenu-title { width: 100%; text-align: left; }
.site-subfooter .wmenu--align-center .wmenu-title { width: 100%; text-align: center; }
.site-subfooter .wmenu--align-right .wmenu-title { width: 100%; text-align: right; }
.site-subfooter-menus .wmenu-cols { display: flex; flex-wrap: wrap; justify-content: center; gap: .15rem 1.3rem; }
.site-subfooter-menus .wmenu-break { flex-basis: 100%; width: 100%; height: 0; margin: 0; padding: 0; }
.site-subfooter .wmenu-title { width: 100%; text-align: center; color: rgba(255,255,255,.75); font-size: .9rem; font-weight: 500; margin-bottom: .25rem; }
.site-subfooter .wmenu-link { color: rgba(255,255,255,.7); font-size: .85rem; text-decoration: none; }
.site-subfooter .wmenu-link:hover { color: #fff; }
.subfooter-credit { opacity: .7; }
.subfooter-legal { display: contents; }
@media (max-width: 640px) {
  .subfooter-legal { display: flex; flex: 0 0 100%; width: 100%; flex-wrap: wrap; justify-content: center; align-items: center; gap: .3rem .7rem; font-size: .62rem; padding-inline: .5rem; }
  .subfooter-legal a { white-space: nowrap; }
  .subfooter-credit { font-size: .64rem; }
}
@media (max-width: 640px) { .footer-inner { grid-template-columns: 1fr; } .footer-contact { text-align: left; } }

/* ---- Modals ---- */
.modal-overlay {
  position: fixed; inset: 0; z-index: 800; background: rgba(0,0,0,.55);
  display: none; align-items: center; justify-content: center; padding: 1rem;
}
.modal-overlay.open { display: flex; }
.modal {
  background: var(--card); border-radius: 14px; width: 100%; max-width: 440px;
  padding: 1.75rem; position: relative; max-height: 90vh; overflow-y: auto;
  animation: modalIn .2s ease;
}
/* Modales apilables: cabecera + pie fijos, cuerpo scrolleable */
.modal--stack{display:flex;flex-direction:column;overflow:hidden;padding-bottom:1.15rem}
.modal--stack > [id$="FormWrap"]{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.modal--stack > [id$="FormWrap"] > .modal-title,.modal--stack > [id$="FormWrap"] > .modal-sub{flex:0 0 auto}
.modal--stack > [id$="FormWrap"] > form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.modal--stack .lead-fields{flex:1 1 auto;min-height:0;overflow-y:auto;padding-top:.1rem}
.modal--stack .lead-foot{flex:0 0 auto;padding-top:.9rem;margin-top:.4rem;border-top:1px solid var(--border);background:var(--card)}
.modal--stack .lead-foot > .form-submit{margin-top:0}
.modal--stack .form-success{flex:1 1 auto;min-height:0;overflow-y:auto}
.modal--stack > .lead-hd{flex:0 0 auto}
.modal--stack > .modal-title{flex:0 0 auto}
.modal--stack .lead-foot > .vd-pinfo-ctas{border-top:0;margin-top:0;padding-top:0}
.form-opt{font-weight:500;font-size:.72rem;letter-spacing:0;text-transform:none;color:#e9872b}
.form-collapse{margin-bottom:1rem}
.form-collapse-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:#4a4742;user-select:none;padding:.15rem 0}
.form-collapse-sum::-webkit-details-marker{display:none}
.form-collapse-sum::marker{content:''}
.form-collapse-chev{width:15px;height:15px;color:var(--muted);margin-left:auto;flex:0 0 auto;transition:transform .18s}
.form-collapse[open] .form-collapse-chev{transform:rotate(180deg)}
.form-collapse > .form-textarea{margin-top:.5rem}
@keyframes modalIn { from { transform: scale(.96); opacity: 0; } to { transform: scale(1); opacity: 1; } }
/* ---- Efectos de modal (configurables) ---- */
.modalfx-blur .modal-overlay.open { background: rgba(0,0,0,.4); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
html:has(body.modalfx-static) { scrollbar-gutter: stable; }
html:has(body.modalfx-static .modal-overlay.open) { overflow: hidden; }
body.modalfx-static:has(.modal-overlay.open) { overflow: hidden; }
.modalfx-halo1 .modal-overlay.open > .modal { animation: modalIn .2s ease, haloPulse 2.6s ease-in-out infinite; }
.modalfx-halo2 .modal-overlay.open > .modal { animation: modalIn .2s ease, haloAurora 6s linear infinite; }
.modalfx-halo3 .modal-overlay.open > .modal { animation: modalIn .2s ease, haloNeon 1.6s ease-in-out infinite; }
@keyframes haloPulse {
  0%,100% { filter: drop-shadow(0 0 5px color-mix(in srgb, var(--fxc) 45%, transparent)); }
  50%     { filter: drop-shadow(0 0 20px color-mix(in srgb, var(--fxc) 85%, transparent)); }
}
@keyframes haloAurora {
  0%   { filter: drop-shadow(0 0 16px #6366f1) drop-shadow(0 0 28px rgba(99,102,241,.35)); }
  33%  { filter: drop-shadow(0 0 16px #ec4899) drop-shadow(0 0 28px rgba(236,72,153,.35)); }
  66%  { filter: drop-shadow(0 0 16px #14b8a6) drop-shadow(0 0 28px rgba(20,184,166,.35)); }
  100% { filter: drop-shadow(0 0 16px #6366f1) drop-shadow(0 0 28px rgba(99,102,241,.35)); }
}
@keyframes haloNeon {
  0%,100% { filter: drop-shadow(0 0 3px color-mix(in srgb, var(--fxc) 60%, transparent)) drop-shadow(0 0 8px color-mix(in srgb, var(--fxc) 40%, transparent)); }
  50%     { filter: drop-shadow(0 0 10px color-mix(in srgb, var(--fxc) 95%, transparent)) drop-shadow(0 0 24px color-mix(in srgb, var(--fxc) 60%, transparent)); }
}
.modalfx-pulse .modal-overlay.open > .modal {
  border: 2px solid var(--fxc);
  animation: modalIn .2s ease, fxPulse 1.6s ease-in-out infinite;
}
@keyframes fxPulse {
  0%,100% { border-color: color-mix(in srgb, var(--fxc) 25%, transparent); filter: drop-shadow(0 0 2px color-mix(in srgb, var(--fxc) 30%, transparent)); }
  50%     { border-color: var(--fxc); filter: drop-shadow(0 0 11px color-mix(in srgb, var(--fxc) 70%, transparent)); }
}
@property --fxangle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
.modalfx-border .modal-overlay.open > .modal {
  border: 2px solid transparent;
  background:
    linear-gradient(var(--card), var(--card)) padding-box,
    conic-gradient(from var(--fxangle), transparent 0deg, var(--fxc) 55deg, transparent 130deg, transparent 360deg) border-box;
  animation: modalIn .2s ease, fxBorderSpin 3s linear infinite;
}
@keyframes fxBorderSpin { to { --fxangle: 360deg; } }
@media (prefers-reduced-motion: reduce) {
  .modalfx-halo1 .modal-overlay.open > .modal,
  .modalfx-halo2 .modal-overlay.open > .modal,
  .modalfx-halo3 .modal-overlay.open > .modal,
  .modalfx-pulse .modal-overlay.open > .modal,
  .modalfx-border .modal-overlay.open > .modal { animation: modalIn .2s ease; }
}
.modal-title { font-family: var(--font-head); font-size: 1.35rem; font-weight: 700; margin-bottom: .25rem; }
@media (max-width: 480px) { .modal-title { font-size: 1.12rem; } }
.modal-sub { font-size: .82rem; color: var(--muted); margin-bottom: 1.25rem; }
.modal-close {
  position: absolute; top: 1rem; right: 1rem;
  background: var(--bg); border: none; border-radius: 50%; width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center; color: var(--muted);
  transition: background .12s;
}
.modal-close:hover { background: var(--border); }
.compartir-options { display: flex; flex-direction: column; gap: .6rem; }
.compartir-opt {
  display: flex; align-items: center; gap: .75rem; padding: .7rem 1rem;
  border: 1.5px solid var(--border); border-radius: 8px; background: none;
  font-size: .88rem; font-weight: 500; transition: border-color .12s; text-align: left; width: 100%;
}
.compartir-opt:hover { border-color: var(--ac); color: var(--ac); }
.compartir-url-row { display: flex; gap: .5rem; margin-top: .75rem; }
.compartir-url-row input { flex: 1; font-size: .78rem; padding: .45rem .65rem; border: 1.5px solid var(--border); border-radius: 7px; background: var(--bg); color: var(--muted); }
.compartir-url-row button { padding: .45rem .9rem; background: var(--ac); color: #fff; border: none; border-radius: 7px; font-size: .78rem; font-weight: 600; }
.form-success { display: none; text-align: center; padding: 1.5rem 0; }
.form-success svg { margin: 0 auto .65rem; color: #10b981; }
.form-success p { font-weight: 600; }
.form-success span { font-size: .82rem; color: var(--muted); }

/* ---- Chat widget ---- */
body:has(.cookie-banner:not([hidden])) .chat-widget { display: none; }
.chat-widget {
  position: fixed; bottom: calc(62px + 1rem); right: 1.5rem; z-index: 500;
  display: flex; flex-direction: column; align-items: flex-end; gap: .6rem;
  max-width: calc(100vw - 3rem);
}
.chat-toggle {
  width: 52px; height: 52px; border-radius: 50%; border: none;
  background: var(--chat-ac, var(--ac)); color: #fff; display: flex; align-items: center; justify-content: center;
  transition: transform .2s; cursor: pointer;
}
.chat-toggle:hover { transform: scale(1.08); }
.chat-panel {
  background: var(--card); border-radius: 14px; border: 1px solid var(--border); width: 300px;
  max-width: 100%;
  display: none; flex-direction: column; overflow: hidden;
}
@media (max-width: 480px) {
  .chat-widget { bottom: calc(62px + 1rem); right: 1rem; max-width: calc(100vw - 2rem); }
  /* En movil el panel se ancla fijo (top/bottom) para que la cabecera nunca se salga por arriba */
  .chat-panel { position: fixed; top: 1rem; left: 1rem; right: 1rem; bottom: 5rem; width: auto; max-width: none; max-height: none; }
}
.chat-panel.open { display: flex; animation: modalIn .2s ease; }
.chat-panel-head {
  background: var(--head-bg); color: #fff; padding: .85rem 1rem;
  display: flex; align-items: center; justify-content: space-between;
  flex: 0 0 auto;
}
.chat-panel-head-name { font-family: var(--font-head); font-weight: 700; }
.chat-panel-head-sub  { font-size: .7rem; opacity: .65; }
.chat-panel-close { background: none; border: none; color: rgba(255,255,255,.6); cursor: pointer; display: flex; align-items: center; }
.chat-panel-close:hover { color: #fff; }
.chat-panel-body { padding: 1rem; display: flex; flex-direction: column; gap: .6rem; }
.chat-msg { background: var(--bg); padding: .65rem .85rem; border-radius: 8px; font-size: .82rem; line-height: 1.5; }
.chat-input { border: 1.5px solid var(--border); border-radius: 8px; padding: .55rem .75rem; font-size: .82rem; resize: none; font-family: inherit; min-height: 70px; }
.chat-input:focus { outline: none; border-color: var(--ac); }
.chat-send {
  background: var(--ac); color: #fff; border: none; border-radius: 7px; padding: .55rem;
  font-size: .82rem; font-weight: 600; cursor: pointer; transition: background .14s; display: flex; align-items: center; justify-content: center; gap: .4rem;
}
/* .chat-send:hover unificado en la regla de botones de acento */
/* halo pulsante en el boton del chat (como el punto "viendo ahora") */
.chat-toggle { position: relative; }
.chat-toggle::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--chat-ac, var(--ac)); z-index: -1; animation: chatHalo 2s ease-out infinite; }
@keyframes chatHalo { 0% { transform: scale(1); opacity: .55; } 100% { transform: scale(1.9); opacity: 0; } }
.chat-widget:has(.chat-panel.open) .chat-toggle::before { animation: none; opacity: 0; }
/* con el chat abierto, el fondo usa la MISMA config que la modal de leads (dim/difuminado/bloqueo) */
.chat-backdrop { position: fixed; inset: 0; z-index: 490; background: rgba(0,0,0,.55); opacity: 0; pointer-events: none; transition: opacity .22s ease; }
body.chat-open .chat-backdrop { opacity: 1; pointer-events: auto; }
.modalfx-blur .chat-backdrop { background: rgba(0,0,0,.4); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
html:has(body.modalfx-static.chat-open) { overflow: hidden; }
body.modalfx-static.chat-open { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .chat-toggle::before { animation: none; opacity: 0; } }
/* asistente guiado */
.chat-panel { width: 350px; max-height: calc(100vh - 10rem); max-height: calc(100dvh - 10rem); }
.chat-panel-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; gap: .5rem; -webkit-overflow-scrolling: touch; }
.chat-bubble { max-width: 86%; padding: .58rem .8rem; border-radius: 13px; font-size: .83rem; line-height: 1.45; animation: chatBubIn .18s ease both; }
.chat-bubble--bot { background: var(--bg); color: var(--text); align-self: flex-start; border-bottom-left-radius: 4px; }
.chat-bubble--user { background: color-mix(in srgb, var(--ac) 12%, #fff); color: var(--text); align-self: flex-end; border: 1.5px solid var(--ac); border-bottom-right-radius: 4px; }
.chat-bubble strong { font-weight: 800; }
.chat-vehintro { display: flex; align-items: center; gap: .6rem; }
.chat-vehintro-img { width: 56px; height: 42px; border-radius: 7px; object-fit: cover; flex-shrink: 0; }
.chat-bubble--bot a:not(.chat-golink) { color: var(--ac); text-decoration: underline; text-underline-offset: 2px; }
@keyframes chatBubIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.chat-typing { display: inline-flex; gap: 4px; align-items: center; }
.chat-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); animation: chatTyp 1s infinite; }
.chat-typing span:nth-child(2) { animation-delay: .15s; } .chat-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes chatTyp { 0%, 60%, 100% { opacity: .25; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }
.chat-foot { padding: .6rem .75rem; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: .4rem; align-items: stretch; flex: 0 0 auto; }
.chat-foot:empty { display: none; }
.chat-chip { background: var(--card); border: 1.5px solid var(--ac); color: var(--ac); border-radius: 999px; padding: .42rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer; transition: background .12s, color .12s; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; line-height: 1.2; }
.chat-chip:hover { background: var(--ac); color: #fff; }
.chat-chip--primary { background: var(--ac); color: #fff; }
.chat-chip--primary:hover { filter: brightness(.94); }
.chat-chip--full { flex: 1 1 100%; }
.chat-foot select.chat-sel { flex: 1 1 100%; border: 1.5px solid var(--border); border-radius: 8px; padding: .5rem .6rem; font-size: .82rem; background: var(--bg); color: var(--text); font-family: inherit; }
.chat-foot textarea.chat-input { flex: 1 1 100%; }
.chat-foot .chat-send { flex: 1 1 100%; }
.chat-foot .chat-lead-in { flex: 1 1 100%; min-height: auto; }
.chat-chip--ghost { border-color: var(--border); color: var(--muted); background: transparent; }
.chat-chip--ghost:hover { background: var(--bg); color: var(--text); border-color: var(--muted); }
.chat-foot-break { flex: 0 0 100%; height: 0; margin: 0; padding: 0; }
.chat-chip--back { align-self: flex-start; font-size: .74rem; padding: .32rem .72rem; }
.chat-viewed { flex: 1 1 100%; display: flex; flex-direction: column; gap: .4rem; max-height: 38vh; overflow-y: auto; padding-right: 2px; -webkit-overflow-scrolling: touch; }
.chat-viewed-item { display: flex; align-items: center; gap: .6rem; padding: .45rem .55rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg); text-decoration: none; color: var(--text); transition: border-color .12s ease, transform .12s ease; }
.chat-viewed-item:hover { border-color: var(--ac); transform: translateX(2px); }
.chat-viewed-thumb { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; background: var(--card); }
.chat-viewed-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.chat-viewed-title { font-size: .78rem; font-weight: 600; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.chat-viewed-price { font-size: .8rem; font-weight: 700; color: var(--ac); }
.chat-bubble .chat-golink { display: flex; width: fit-content; align-items: center; margin-top: .7rem; background: var(--ac); color: #fff; border: 1.5px solid transparent; border-radius: 999px; padding: .4rem .7rem; font-size: .74rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.chat-bubble .chat-golink:hover { filter: brightness(.94); }
.chat-bubble .chat-golinks { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .6rem; }
.chat-bubble .chat-golinks .chat-golink { display: inline-flex; margin-top: 0; }
.chat-bubble .chat-golink--outline { background: transparent; color: var(--ac); border: 1.5px solid var(--ac); }
.chat-bubble .chat-golink--outline:hover { background: var(--ac); color: #fff; filter: none; }
/* Tooltip dinamico del asistente */
.chat-tip { position: absolute; bottom: 66px; right: 2px; width: max-content; max-width: 250px; background: rgba(17,18,22,.82); -webkit-backdrop-filter: blur(10px) saturate(1.2); backdrop-filter: blur(10px) saturate(1.2); color: #fff; border-radius: 14px; padding: .7rem 1.85rem .72rem .95rem; font-size: .82rem; line-height: 1.42; font-weight: 500; letter-spacing: .004em; opacity: 0; transform: translateY(8px) scale(.96); transform-origin: bottom right; pointer-events: none; transition: opacity .26s cubic-bezier(.22,1,.36,1), transform .26s cubic-bezier(.22,1,.36,1); }
.chat-tip.show { opacity: 1; transform: none; pointer-events: auto; }
.chat-tip.chat-tip--overform { opacity: 0; transform: translateY(8px) scale(.96); pointer-events: none; }
.chat-widget { transition: opacity .25s ease, transform .25s ease; }
.chat-widget.chat-widget--overform { opacity: 0; pointer-events: none; transform: translateY(10px) scale(.92); }
.chat-tip-text { display: block; cursor: pointer; }
.chat-tip::after { content: ""; position: absolute; right: 11px; bottom: -6px; width: 14px; height: 6px; background: rgba(17,18,22,.82); clip-path: polygon(0 0, 100% 0, 50% 100%); } /* triangulo por clip-path: su borde superior coincide EXACTO con el inferior del globo (ambos anclados a la misma linea) -> ni solape (banda oscura por doble alpha) ni ranura */
.chat-tip-close { position: absolute; top: 5px; right: 5px; background: none; border: none; cursor: pointer; color: rgba(255,255,255,.45); display: flex; padding: 3px; line-height: 0; border-radius: 6px; transition: color .15s ease, background .15s ease; }
.chat-tip-close:hover { color: #fff; background: rgba(255,255,255,.1); }
@media (prefers-reduced-motion: reduce) { .chat-tip { transition: none; } }

/* ---- Breadcrumb ---- */
.breadcrumb { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; font-size: .78rem; color: var(--muted); margin-bottom: 1.5rem; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--ac); }
.breadcrumb-sep { color: var(--border); }
.vd-breadcrumb .bc-tax, .vd-breadcrumb .bc-marca { color: var(--ac); font-weight: 600; }
.vd-breadcrumb .bc-tax:hover, .vd-breadcrumb .bc-marca:hover { color: var(--ac); text-decoration: underline; }
.vd-breadcrumb .bc-modelo { color: var(--muted); }
.vd-breadcrumb .bc-modelo:hover { color: var(--ac); }
.vd-breadcrumb .bc-version { color: var(--muted); }

/* ---- Utilities ---- */
.section-gap { margin-bottom: 2rem; }
.card-section { background: var(--card); border-radius: 12px; border: 1px solid var(--border); padding: 1.5rem; }
/* ---- Toque premium de botones (plano: sin sombras ni degradados) ---- */
.header-nav a.nav-cta, .geo-btn--near, .btn-primary, .form-submit, .cookie-btn-accent, .vcard-cta--filled, .sticky-cta-info, .chat-send,
.btn-secondary, .geo-btn--prov, .pg-btn {
  transition: transform .16s cubic-bezier(.2,.7,.2,1), background-color .16s ease, border-color .16s ease, color .16s ease;
}
.header-nav a.nav-cta:hover, .geo-btn--near:hover, .btn-primary:hover, .form-submit:hover, .cookie-btn-accent:hover, .vcard-cta--filled:hover, .sticky-cta-info:hover, .chat-send:hover,
.btn-secondary:hover, .geo-btn--prov:hover, .pg-btn:hover { transform: translateY(-1px); }
.header-nav a.nav-cta:active, .geo-btn--near:active, .btn-primary:active, .form-submit:active, .cookie-btn-accent:active, .vcard-cta--filled:active, .sticky-cta-info:active, .chat-send:active,
.btn-secondary:active, .geo-btn--prov:active, .pg-btn:active { transform: translateY(0) scale(.985); }
.header-nav a.nav-cta:focus-visible, .geo-btn--near:focus-visible, .btn-primary:focus-visible, .form-submit:focus-visible, .cookie-btn-accent:focus-visible, .vcard-cta--filled:focus-visible, .sticky-cta-info:focus-visible, .chat-send:focus-visible,
.btn-secondary:focus-visible, .geo-btn--prov:focus-visible, .pg-btn:focus-visible { outline: 2px solid color-mix(in srgb, var(--ac) 55%, transparent); outline-offset: 2px; }
.btn-secondary:not(.btn-wa):hover, .geo-btn--prov:hover, .pg-btn:hover { background: color-mix(in srgb, var(--ac) 8%, var(--card)); }
