/* ==========================================================================
   Guía de llaves por vehículo — Claus
   Usa los tokens de styles.css (--teal, --navy, --terracotta-solid, --cream…).
   Prefijo gv-. Accesible: foco visible, objetivos ≥44px, contraste AA, reduced-motion.
   ========================================================================== */

.gv{ --gv-card:#fff; --gv-soft:#F6EFDD; --gv-shadow:0 14px 36px -18px rgba(23,36,62,.35); background:var(--paper); color:var(--ink); }
.gv *{ box-sizing:border-box; }
.gv-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.gv svg.gv-i{ width:1.25em; height:1.25em; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.gv :focus-visible{ outline:3px solid var(--teal); outline-offset:3px; border-radius:8px; }

/* ---------- Hero ---------- */
.gv-hero{ position:relative; overflow:hidden; background:var(--navy); color:#fff; padding:clamp(2.2rem,5vw,4rem) 0 clamp(4.5rem,8vw,6rem); isolation:isolate; }
.gv-hero::before{ content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(60% 90% at 90% 0%, rgba(47,191,172,.32), transparent 60%),
    radial-gradient(50% 70% at 0% 100%, rgba(218,106,52,.22), transparent 62%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 26px); }
.gv-hero .container{ display:grid; gap:1.4rem; }
.gv-crumbs{ display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; font-size:.85rem; color:#B9C3D6; }
.gv-crumbs a{ color:#DDE5F2; text-decoration:none; }
.gv-crumbs a:hover{ color:#fff; text-decoration:underline; }
.gv-crumbs svg{ width:14px; height:14px; opacity:.6; }
.gv-hero h1{ font-family:var(--font-display); font-weight:800; line-height:1.05; font-size:clamp(2rem,4.6vw,3.4rem); margin:0; max-width:18ch; letter-spacing:-.01em; }
.gv-hero h1 em{ font-style:normal; color:var(--teal); }
.gv-hero p.gv-lede{ color:#DCE4F1; font-size:clamp(1rem,1.5vw,1.15rem); max-width:56ch; margin:0; }
.gv-steps{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:.4rem 0 0; }
.gv-steps li{ display:flex; align-items:center; gap:.5rem; padding:.45rem .9rem; border-radius:999px; font-weight:700; font-size:.85rem; background:rgba(255,255,255,.08); color:#C9D3E6; border:1px solid rgba(255,255,255,.14); }
.gv-steps li b{ display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.14); font-size:.75rem; }
.gv-steps li.is-on{ background:var(--teal); color:var(--navy); border-color:var(--teal); }
.gv-steps li.is-on b{ background:var(--navy); color:#fff; }
.gv-steps li.is-done{ color:#fff; border-color:rgba(47,191,172,.6); }

/* ---------- Contenedor flotante ---------- */
.gv-panel{ position:relative; margin-top:-3.2rem; background:var(--gv-card); border-radius:var(--radius-lg); box-shadow:var(--gv-shadow); border:1px solid var(--line); padding:clamp(1.1rem,2.4vw,2rem); }
.gv-toolbar{ display:flex; flex-wrap:wrap; gap:.8rem 1rem; align-items:center; justify-content:space-between; margin-bottom:1.2rem; }
.gv-toolbar h2{ font-family:var(--font-display); font-size:clamp(1.3rem,2.4vw,1.75rem); margin:0; color:var(--navy); }
.gv-toolbar h2 small{ display:block; font-family:var(--font-body); font-size:.9rem; font-weight:600; color:var(--muted); }
.gv-search{ position:relative; flex:1 1 260px; max-width:420px; }
.gv-search svg{ position:absolute; left:.9rem; top:50%; transform:translateY(-50%); width:20px; height:20px; color:var(--muted); pointer-events:none; }
.gv-search input{ width:100%; min-height:46px; padding:.7rem 1rem .7rem 2.6rem; border-radius:999px; border:1.5px solid var(--line); background:var(--paper); font:inherit; color:var(--ink); }
.gv-search input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 4px rgba(47,191,172,.2); }
.gv-back{ display:inline-flex; align-items:center; gap:.4rem; min-height:44px; padding:.5rem 1rem; border-radius:999px; border:1.5px solid var(--navy); background:transparent; color:var(--navy); font-weight:800; cursor:pointer; text-decoration:none; }
.gv-back:hover{ background:var(--navy); color:#fff; }
.gv-back svg{ transform:rotate(180deg); }

/* ---------- Marcas y modelos ---------- */
.gv-brands{ display:grid; grid-template-columns:repeat(auto-fill,minmax(128px,1fr)); gap:.8rem; }
.gv-brand{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.55rem; min-height:126px; padding:1rem .6rem; border-radius:var(--radius-md); background:#fff; border:1.5px solid var(--line); cursor:pointer; font:inherit; color:var(--navy); text-decoration:none; transition:transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease), border-color var(--dur-fast); }
.gv-brand:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:var(--teal); }
.gv-brand img{ width:64px; height:64px; object-fit:contain; }
.gv-brand .gv-mono{ display:grid; place-items:center; width:64px; height:64px; border-radius:50%; background:var(--teal-tint); color:var(--teal-deep); font-family:var(--font-display); font-weight:800; font-size:1.4rem; }
.gv-brand strong{ font-weight:800; font-size:.95rem; text-align:center; }
.gv-brand small{ color:var(--muted); font-size:.75rem; }

.gv-models{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.8rem; }
.gv-model{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; min-height:76px; padding:.9rem 1.1rem; border-radius:var(--radius-md); background:#fff; border:1.5px solid var(--line); cursor:pointer; font:inherit; color:var(--navy); text-align:left; text-decoration:none; transition:transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease), border-color var(--dur-fast); }
.gv-model:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); border-color:var(--teal); }
.gv-model strong{ display:block; font-family:var(--font-display); font-size:1.15rem; line-height:1.15; }
.gv-model small{ color:var(--muted); font-size:.82rem; }
.gv-model .gv-n{ flex:none; padding:.2rem .6rem; border-radius:999px; background:var(--teal-tint); color:var(--teal-deep); font-weight:800; font-size:.78rem; }
.gv-model.is-off{ background:var(--gv-soft); border-style:dashed; }
.gv-model.is-off .gv-n{ background:transparent; color:var(--muted); }
.gv-more{ margin:1.6rem 0 .6rem; font-family:var(--font-display); color:var(--muted); font-size:1.05rem; }

/* ---------- Ficha ---------- */
.gv-sheet-head{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:clamp(1rem,3vw,2.2rem); align-items:stretch; }
.gv-photo{ position:relative; margin:0; border-radius:var(--radius-lg); overflow:hidden; min-height:260px; background:linear-gradient(135deg,var(--navy),var(--navy-soft)); box-shadow:var(--gv-shadow); }
.gv-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gv-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(23,36,62,.72)); pointer-events:none; }
.gv-photo figcaption{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:.7rem 1rem; color:#E4EAF5; font-size:.72rem; line-height:1.35; }
.gv-photo figcaption a{ color:#fff; text-decoration:underline; }
.gv-photo--empty{ display:grid; place-items:center; }
.gv-photo--empty::after{ display:none; }
.gv-photo--empty img{ position:static; width:40%; max-width:180px; height:auto; object-fit:contain; background:#fff; padding:1rem; border-radius:24px; }
.gv-photo--wait{ overflow:hidden; }
.gv-photo--wait::before{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.14) 50%,transparent 70%); transform:translateX(-100%); animation:gv-shimmer 1.6s infinite; }
@keyframes gv-shimmer{ to{ transform:translateX(100%); } }
.gv-id{ display:flex; flex-direction:column; justify-content:center; gap:.9rem; }
.gv-id .gv-logo{ display:inline-grid; place-items:center; width:84px; height:84px; padding:10px; border-radius:22px; background:#fff; border:1.5px solid var(--line); box-shadow:var(--shadow-card); }
.gv-id .gv-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.gv-id .gv-kicker{ font-weight:800; letter-spacing:.09em; text-transform:uppercase; font-size:.78rem; color:var(--terracotta-solid); }
.gv-id h1{ font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,4.2vw,3.1rem); line-height:1.02; color:var(--navy); margin:0; }
.gv-years{ display:inline-flex; align-items:center; gap:.5rem; padding:.35rem .9rem; border-radius:999px; background:var(--gv-soft); color:var(--navy); font-weight:800; font-size:.9rem; width:fit-content; }
.gv-versions{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0; padding:0; border:0; }
.gv-versions legend{ padding:0; margin:0 0 .5rem; font-weight:800; font-size:.85rem; color:var(--muted); }
.gv-vpill{ min-height:44px; padding:.45rem 1rem; border-radius:999px; border:1.5px solid var(--line); background:#fff; color:var(--navy); font:inherit; font-weight:800; font-size:.85rem; cursor:pointer; line-height:1.15; text-align:center; transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast); }
.gv-vpill small{ display:block; font-weight:600; color:var(--muted); font-size:.7rem; }
.gv-vpill:hover{ border-color:var(--teal); }
.gv-vpill[aria-pressed="true"]{ background:var(--navy); border-color:var(--navy); color:#fff; }
.gv-vpill[aria-pressed="true"] small{ color:#C9D3E6; }

.gv-facts{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; margin:1.6rem 0 0; }
.gv-fact{ display:flex; flex-direction:column; gap:.35rem; padding:1rem 1.1rem; border-radius:var(--radius-md); background:var(--gv-soft); border:1.5px solid transparent; text-decoration:none; color:var(--navy); transition:transform var(--dur-base) var(--ease), border-color var(--dur-fast); }
.gv-fact:hover{ transform:translateY(-3px); border-color:var(--teal); }
.gv-fact .gv-fi{ display:inline-grid; place-items:center; width:38px; height:38px; border-radius:12px; background:#fff; color:var(--teal-deep); }
.gv-fact small{ font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:.7rem; color:var(--muted); }
.gv-fact strong{ font-family:var(--font-display); font-size:1.12rem; line-height:1.2; }
.gv-fact.is-empty strong{ color:var(--muted); font-weight:600; font-family:var(--font-body); font-size:.95rem; }

.gv-section{ margin-top:clamp(2rem,4vw,3rem); scroll-margin-top:90px; }
.gv-section > header{ display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; }
.gv-section > header .gv-hi{ display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:var(--navy); color:var(--teal); flex:none; }
.gv-section > header h2{ font-family:var(--font-display); font-size:clamp(1.4rem,2.6vw,2rem); line-height:1.1; color:var(--navy); margin:0; }
.gv-section > header p{ margin:.15rem 0 0; color:var(--muted); font-size:.95rem; }

.gv-cards{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.gv-card{ display:flex; flex-direction:column; gap:.8rem; padding:1.2rem; border-radius:var(--radius-md); background:#fff; border:1.5px solid var(--line); box-shadow:var(--shadow-card); }
.gv-card h3{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-size:1.25rem; margin:0; color:var(--navy); }
.gv-card h3 .gv-i{ color:var(--teal-deep); }
.gv-card > p{ margin:0; color:var(--muted); font-size:.95rem; }
.gv-tags{ display:flex; flex-wrap:wrap; gap:.4rem; }
.gv-tag{ padding:.25rem .7rem; border-radius:999px; background:var(--teal-tint); color:var(--teal-deep); font-weight:800; font-size:.8rem; }
.gv-tag--warm{ background:#FBE7DB; color:var(--terracotta-solid); }
.gv-empty{ padding:.9rem 1rem; border-radius:12px; background:var(--gv-soft); color:var(--muted); font-size:.92rem; }
.gv-empty a{ color:var(--terracotta-solid); font-weight:800; }

.gv-prods{ display:grid; gap:.6rem; }
.gv-prod{ display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:.8rem; padding:.6rem; border-radius:14px; border:1.5px solid var(--line); background:var(--paper); text-decoration:none; color:inherit; min-height:76px; transition:border-color var(--dur-fast), transform var(--dur-base) var(--ease), box-shadow var(--dur-base) var(--ease); }
.gv-prod:hover{ border-color:var(--teal); transform:translateY(-2px); box-shadow:var(--shadow-card); }
.gv-prod img, .gv-prod .gv-ph{ width:64px; height:64px; object-fit:cover; border-radius:10px; background:#fff; border:1px solid var(--line); }
.gv-prod .gv-ph{ display:grid; place-items:center; color:var(--teal-deep); }
.gv-prod b{ display:block; font-size:.9rem; line-height:1.25; color:var(--navy); font-weight:800; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.gv-prod small{ color:var(--muted); font-size:.75rem; }
.gv-go{ display:inline-flex; align-items:center; gap:.3rem; padding:.45rem .8rem; border-radius:999px; background:var(--terracotta-solid); color:#fff; font-weight:800; font-size:.8rem; white-space:nowrap; }
.gv-go svg{ width:16px; height:16px; }
.gv-price{ display:block; font-weight:800; color:var(--navy); font-size:.85rem; }
.gv-all{ display:inline-flex; align-items:center; gap:.4rem; min-height:44px; font-weight:800; color:var(--terracotta-solid); text-decoration:none; }
.gv-all:hover{ text-decoration:underline; }

/* ---------- Diagrama de cerraduras ---------- */
.gv-diagram{ display:grid; grid-template-columns:minmax(0,420px) minmax(0,1fr); gap:clamp(1rem,3vw,2.4rem); align-items:start; padding:clamp(1rem,2.4vw,1.6rem); border-radius:var(--radius-lg); background:linear-gradient(160deg,#fff,var(--gv-soft)); border:1.5px solid var(--line); box-shadow:var(--shadow-card); }
.gv-car{ position:relative; width:100%; max-width:380px; margin-inline:auto; aspect-ratio:220/430; }
.gv-car svg.gv-body{ position:absolute; inset:0; width:100%; height:100%; }
.gv-hs{ position:absolute; transform:translate(-50%,-50%); display:grid; place-items:center; width:44px; height:44px; border-radius:50%; border:2px dashed #9AA6BC; background:rgba(255,255,255,.92); color:#7C8AA5; cursor:pointer; padding:0; transition:transform var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast); }
.gv-hs svg{ width:20px; height:20px; }
.gv-hs:hover{ transform:translate(-50%,-50%) scale(1.1); }
.gv-hs.has{ border:2px solid var(--teal); background:var(--teal); color:var(--navy); box-shadow:0 0 0 0 rgba(47,191,172,.55); animation:gv-pulse 2.4s infinite; }
.gv-hs[aria-pressed="true"]{ background:var(--navy); border-color:var(--navy); color:var(--teal); animation:none; transform:translate(-50%,-50%) scale(1.14); }
@keyframes gv-pulse{ 70%{ box-shadow:0 0 0 14px rgba(47,191,172,0); } 100%{ box-shadow:0 0 0 0 rgba(47,191,172,0); } }
.gv-zpanel{ display:flex; flex-direction:column; gap:.9rem; min-height:220px; }
.gv-zpanel h3{ font-family:var(--font-display); font-size:1.4rem; margin:0; color:var(--navy); }
.gv-zpanel > p{ margin:0; color:var(--muted); }
.gv-legend{ display:flex; flex-wrap:wrap; gap:.4rem 1rem; font-size:.82rem; color:var(--muted); }
.gv-legend i{ display:inline-block; width:12px; height:12px; border-radius:50%; margin-right:.35rem; vertical-align:-1px; }
.gv-legend .on{ background:var(--teal); } .gv-legend .off{ border:2px dashed #9AA6BC; }
.gv-refs{ display:grid; gap:.55rem; }
.gv-ref{ display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding:.7rem .9rem; border-radius:14px; background:#fff; border:1.5px solid var(--line); }
.gv-ref code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-weight:800; color:var(--navy); background:var(--teal-tint); padding:.2rem .5rem; border-radius:8px; font-size:.85rem; }
.gv-ref span{ flex:1 1 160px; font-size:.88rem; color:var(--muted); }
.gv-copy{ display:inline-grid; place-items:center; width:40px; height:40px; border-radius:10px; border:1.5px solid var(--line); background:#fff; color:var(--navy); cursor:pointer; }
.gv-copy:hover{ border-color:var(--teal); }
.gv-copy.is-ok{ background:var(--success); color:#fff; border-color:var(--success); }

/* ---------- Historia ---------- */
.gv-hist{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.gv-story{ position:relative; padding:1.4rem 1.4rem 1.2rem; border-radius:var(--radius-md); background:#fff; border:1.5px solid var(--line); box-shadow:var(--shadow-card); overflow:hidden; }
.gv-story::before{ content:"“"; position:absolute; top:-.6rem; right:1rem; font-family:var(--font-display); font-size:7rem; line-height:1; color:var(--teal-tint); pointer-events:none; }
.gv-story h3{ display:flex; align-items:center; gap:.7rem; font-family:var(--font-display); font-size:1.3rem; margin:0 0 .7rem; color:var(--navy); }
.gv-story h3 img{ width:34px; height:34px; object-fit:contain; }
.gv-story p{ margin:0 0 .8rem; line-height:1.65; color:#2E3648; position:relative; }
.gv-src{ font-size:.75rem; color:var(--muted); }
.gv-src a{ color:var(--teal-deep); font-weight:700; }
.gv-loading{ display:flex; align-items:center; gap:.7rem; color:var(--muted); font-weight:700; }
.gv-loading::before{ content:""; width:18px; height:18px; border-radius:50%; border:3px solid var(--line); border-top-color:var(--teal); animation:gv-spin .9s linear infinite; }
@keyframes gv-spin{ to{ transform:rotate(360deg); } }

/* ---------- CTA ---------- */
.gv-cta{ margin-top:clamp(2rem,4vw,3rem); display:grid; grid-template-columns:1fr auto; gap:1.2rem; align-items:center; padding:clamp(1.3rem,3vw,2rem); border-radius:var(--radius-lg); background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.gv-cta::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 120% at 100% 0%, rgba(47,191,172,.3), transparent 60%); pointer-events:none; }
.gv-cta h2{ position:relative; font-family:var(--font-display); font-size:clamp(1.3rem,2.6vw,1.9rem); margin:0 0 .3rem; }
.gv-cta p{ position:relative; margin:0; color:#DCE4F1; max-width:60ch; }
.gv-cta .gv-acts{ position:relative; display:flex; flex-wrap:wrap; gap:.6rem; }

.gv-skel{ min-height:120px; border-radius:var(--radius-md); background:linear-gradient(100deg,#F1E9D6 30%,#FAF3E3 50%,#F1E9D6 70%); background-size:200% 100%; animation:gv-sk 1.4s infinite; }
@keyframes gv-sk{ to{ background-position:-200% 0; } }

@media (max-width:900px){
  .gv-sheet-head{ grid-template-columns:1fr; }
  .gv-photo{ min-height:0; height:clamp(200px,56vw,380px); width:100%; }
  .gv-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gv-cards, .gv-hist{ grid-template-columns:1fr; }
  .gv-diagram{ grid-template-columns:1fr; }
  .gv-cta{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .gv-brands{ grid-template-columns:repeat(auto-fill,minmax(104px,1fr)); }
  .gv-prod{ grid-template-columns:56px 1fr; }
  .gv-prod .gv-go{ grid-column:1 / -1; justify-content:center; }
  .gv-prod img, .gv-prod .gv-ph{ width:56px; height:56px; }
}
@media (prefers-reduced-motion:reduce){
  .gv *, .gv *::before, .gv *::after{ animation:none !important; transition:none !important; }
}

/* Ficha: hero compacto (el título principal pasa a ser el nombre del modelo) */
.gv.is-ficha .gv-hero{ padding:1.2rem 0 4.2rem; }
.gv.is-ficha .gv-hero h1, .gv.is-ficha .gv-hero .gv-lede{ display:none; }
.gv.is-ficha .gv-hero .container{ gap:.9rem; }

/* --- Versiones con foto y referencias OEM (2026-09-20) --- */
.gv-versions{ display:block; width:100%; }
.gv-vcards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.6rem; }
.gv-vcard{ display:flex; flex-direction:column; align-items:stretch; gap:.15rem; padding:.45rem .45rem .65rem; min-height:44px; border-radius:var(--radius-md); background:#fff; border:2px solid var(--line); font:inherit; color:var(--navy); text-align:center; cursor:pointer; transition:transform var(--dur-base) var(--ease), border-color var(--dur-fast), box-shadow var(--dur-base) var(--ease); }
.gv-vcard:hover{ transform:translateY(-2px); border-color:var(--teal); box-shadow:var(--shadow-lift); }
.gv-vcard:focus-visible{ outline:3px solid var(--teal); outline-offset:2px; }
.gv-vcard[aria-pressed="true"]{ border-color:var(--teal-deep); background:var(--teal-tint); }
.gv-vcard b{ font-family:var(--font-display); font-size:1.05rem; line-height:1.1; }
.gv-vcard small{ color:var(--muted); font-size:.8rem; }
.gv-vimg{ display:flex; align-items:center; justify-content:center; aspect-ratio:3/2; border-radius:10px; overflow:hidden; background:var(--gv-soft); color:var(--teal-deep); margin-bottom:.35rem; }
.gv-vimg img{ width:100%; height:100%; object-fit:cover; display:block; }
.gv-vimg .gv-i{ width:38px; height:38px; }
.gv-mthumb{ flex:none; width:84px; height:56px; object-fit:cover; border-radius:10px; background:var(--gv-soft); }
.gv-model.has-thumb{ justify-content:flex-start; }
.gv-model.has-thumb > span:not(.gv-n), .gv-model.has-thumb > div{ flex:1 1 auto; min-width:0; }
.gv-oems{ display:flex; flex-wrap:wrap; gap:.45rem; }
.gv-oem{ display:inline-flex; align-items:center; gap:.5rem; min-height:44px; padding:.35rem .8rem; border-radius:10px; border:1.5px solid var(--line); background:var(--gv-soft); color:var(--navy); font:inherit; cursor:pointer; transition:border-color var(--dur-fast), background var(--dur-fast); }
.gv-oem code{ font-family:ui-monospace,Consolas,monospace; font-weight:800; font-size:.92rem; letter-spacing:.02em; }
.gv-oem .gv-i{ width:16px; height:16px; color:var(--teal-deep); }
.gv-oem:hover{ border-color:var(--teal); }
.gv-oem:focus-visible{ outline:3px solid var(--teal); outline-offset:2px; }
.gv-oem.is-ok{ background:var(--teal-tint); border-color:var(--teal-deep); }
.gv-oemh{ margin:.4rem 0 .1rem; font-weight:800; font-size:.82rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
@media (prefers-reduced-motion:reduce){ .gv-vcard,.gv-oem{ transition:none; } .gv-vcard:hover{ transform:none; } }

/* --- Correcciones 2026-09-20 (2) --- */
.gv .gv-hero h1, .gv-hero h1{ color:#fff !important; }
.gv .gv-hero h1 em{ color:var(--teal) !important; }
.gv-modelwrap{ display:block; }
.gv-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:.8rem; align-items:stretch; }
.gv-grid > .gv-model{ min-height:84px; align-self:stretch; }
.gv-more{ margin:1.6rem 0 .8rem; font-weight:800; color:var(--muted); font-size:.9rem; }
.gv-mtxt{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.gv-model .gv-mtxt strong{ overflow-wrap:anywhere; }

.gv-grid{ grid-template-columns:repeat(auto-fill,minmax(285px,1fr)); }
.gv-model.has-thumb{ gap:.7rem; }
.gv-model .gv-mthumb{ width:76px; height:52px; }
.gv-model .gv-n{ white-space:nowrap; }

/* --- Encuadre de fotos y saltos internos (2026-09-20) --- */
.gv-photo img.gv-main{ object-position:50% 62%; }
.gv-photo img.gv-bg{ position:absolute; inset:-8%; width:116%; height:116%; object-fit:cover; filter:blur(22px) brightness(.8) saturate(1.1); opacity:0; transition:opacity .25s; }
.gv-photo.is-fit img.gv-bg{ opacity:1; }
.gv-photo.is-fit img.gv-main{ object-fit:contain; object-position:center; z-index:0; }
.gv-mthumb, .gv-vimg img{ object-position:50% 62%; }
.gv-section:focus{ outline:none; }

/* ---------- Ecosistema OEM (2026-10-03): chip "Lo tenemos", buscador por referencia original y coches donde va ---------- */
.gv-oemw{ display:inline-flex; align-items:stretch; border-radius:10px; }
.gv-oemw.has-prod .gv-oem{ border-color:var(--teal); border-top-right-radius:0; border-bottom-right-radius:0; background:var(--teal-tint); }
.gv-oem-go{ display:inline-flex; align-items:center; gap:.3rem; padding:.35rem .75rem; border-radius:0 10px 10px 0; background:var(--teal); color:var(--navy); font-weight:800; font-size:.8rem; text-decoration:none; white-space:nowrap; transition:filter var(--dur-fast); }
.gv-oem-go:hover{ filter:brightness(1.07); }
.gv-oem-go .gv-i{ width:14px; height:14px; }
.gv-oemsearch{ margin:1rem 0 1.4rem; padding:1rem 1.1rem; border-radius:16px; background:var(--gv-soft); border:1.5px dashed var(--line); }
#gv-oem .gv-oemsearch{ margin-top:1.2rem; margin-bottom:0; }
.gv-oemsearch label{ display:flex; align-items:center; gap:.5rem; font-weight:800; color:var(--navy); margin-bottom:.6rem; }
.gv-oemsearch label .gv-i{ width:20px; height:20px; color:var(--teal-deep); flex:none; }
.gv-oemsearch-row{ display:flex; gap:.5rem; flex-wrap:wrap; }
.gv-oemsearch-row input{ flex:1 1 220px; min-height:46px; padding:.7rem 1rem; border-radius:12px; border:1.5px solid var(--line); background:#fff; font:inherit; font-family:ui-monospace,Consolas,monospace; color:var(--ink); }
.gv-oemsearch-row input:focus{ outline:none; border-color:var(--teal); box-shadow:0 0 0 4px rgba(47,191,172,.2); }
.gv-oemsearch-row .btn{ min-height:46px; }
.gv-oemres:empty{ display:none; }
.gv-oemres{ margin-top:.8rem; display:grid; gap:.6rem; }
.gv-vehs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.5rem; }
.gv-veh{ display:flex; align-items:center; gap:.6rem; padding:.6rem .8rem; border-radius:12px; background:#fff; border:1.5px solid var(--line); color:var(--navy); text-decoration:none; transition:border-color var(--dur-fast), transform var(--dur-fast); }
.gv-veh:hover{ border-color:var(--teal); transform:translateY(-2px); }
.gv-veh .gv-i{ width:22px; height:22px; color:var(--teal-deep); flex:none; }
.gv-veh b{ display:block; font-size:.9rem; line-height:1.2; }
.gv-veh small{ color:var(--muted); font-size:.76rem; }
@media (prefers-reduced-motion: reduce){ .gv-veh:hover{ transform:none; } }
