/* =========================================================
   AGRIMOTOR MIAJADAS · Hoja de estilos común (v3 · premium)
   Dirección: "taller de precisión, presentación de concesionario de lujo".
   Noche verde profundo + marfil + un único acento latón. Mucho aire, líneas finas,
   rejilla de 12 columnas y una serif de titulares con cursiva para los matices.
   Tipos alojados en /fonts: Instrument Serif (titulares) · Instrument Sans (texto) · IBM Plex Mono (datos)
   ========================================================= */

@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-Regular.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('../fonts/InstrumentSerif-Italic.woff') format('woff'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Instrument Sans'; src: url('../fonts/InstrumentSans-Regular.woff') format('woff'); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Instrument Sans'; src: url('../fonts/InstrumentSans-Bold.woff') format('woff'); font-weight: 600 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('../fonts/IBMPlexMono-Regular.woff') format('woff'); font-weight: 400 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('../fonts/IBMPlexMono-Bold.woff') format('woff'); font-weight: 600 700; font-style: normal; font-display: swap; }

:root {
  --noche: #0C1510;
  --bosque: #142219;
  --bosque-2: #1C3024;
  --marfil: #F4F1EA;
  --hueso: #EAE5DA;
  --blanco: #FFFFFF;
  --linea: #D6CFBF;
  --linea-osc: rgba(244, 241, 234, 0.14);
  --texto: #161B17;
  --suave: #585E56;
  --suave-osc: rgba(244, 241, 234, 0.68);
  --laton: #D4B46A;      /* acento sobre oscuro */
  --laton-osc: #85661F;  /* acento sobre claro (AA) */
  --deutz: #7AB929;
  --itv: #1D5FC9;

  --f-serif: 'Instrument Serif', 'Times New Roman', serif;
  --f-texto: 'Instrument Sans', 'Segoe UI', sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, monospace;

  --ancho: 1320px;
  --gutter: clamp(20px, 4vw, 56px);
  --sec: clamp(80px, 11vw, 160px);
  --ease: cubic-bezier(.2, .7, .1, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; overflow-x: clip; }
body {
  margin: 0; font-family: var(--f-texto); font-size: 17px; line-height: 1.65;
  color: var(--texto); background: var(--marfil);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden; overflow-x: clip;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
::selection { background: var(--laton); color: var(--noche); }
:focus-visible { outline: 2px solid var(--laton); outline-offset: 3px; }
.solo-lector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.contenedor { width: 100%; max-width: var(--ancho); margin: 0 auto; padding-inline: var(--gutter); }

/* ---------- Tipografía ---------- */
h1, h2, h3, h4 { font-family: var(--f-serif); font-weight: 400; line-height: 1.02; letter-spacing: -0.015em; color: var(--texto); margin: 0 0 0.45em; text-wrap: balance; }
h1 { font-size: clamp(3rem, 7.4vw, 7rem); letter-spacing: -0.025em; }
h2 { font-size: clamp(2.4rem, 4.8vw, 4.4rem); letter-spacing: -0.02em; }
h3 { font-size: clamp(1.6rem, 2.2vw, 2.1rem); line-height: 1.08; }
h1 em, h2 em, h3 em, h1 span, h2 span { font-style: italic; color: inherit; }
p { margin: 0 0 1.1em; }
.lead { font-size: clamp(1.08rem, 1.4vw, 1.25rem); line-height: 1.65; max-width: 56ch; color: var(--suave); }

.etiqueta {
  display: inline-flex; align-items: center; gap: 14px; margin-bottom: 28px;
  font-family: var(--f-mono); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--laton-osc);
}
.etiqueta::before { content: ''; width: 36px; height: 1px; background: currentColor; }
.etiqueta.clara, .oscuro .etiqueta, .bloque-itv .etiqueta, .hero .etiqueta, .hero-pagina .etiqueta { color: var(--laton); }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 54px; padding: 14px 28px;
  font-family: var(--f-texto); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase;
  text-decoration: none; border: 1px solid transparent; cursor: pointer; border-radius: 0;
  transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), gap .35s var(--ease);
}
.btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.btn:hover { gap: 20px; }
.btn-amarillo { background: var(--laton); color: var(--noche); }
.btn-amarillo:hover { background: #E6CB86; }
.btn-verde { background: var(--noche); color: var(--marfil); }
.btn-verde:hover { background: var(--bosque-2); }
.btn-linea { border-color: currentColor; color: var(--texto); background: transparent; }
.btn-linea:hover { background: var(--texto); color: var(--marfil); border-color: var(--texto); }
.oscuro .btn-linea, .hero .btn-linea, .hero-pagina .btn-linea, .bloque-itv .btn-linea, .tinta .btn-linea { color: var(--marfil); border-color: rgba(244,241,234,0.4); }
.oscuro .btn-linea:hover, .hero .btn-linea:hover, .hero-pagina .btn-linea:hover, .bloque-itv .btn-linea:hover, .tinta .btn-linea:hover { background: var(--marfil); color: var(--noche); border-color: var(--marfil); }
.btn-wa { background: var(--bosque-2); color: var(--marfil); }
.btn-wa:hover { background: var(--noche); }
.grupo-btn { display: flex; flex-wrap: wrap; gap: 12px; }

.enlace-flecha {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--f-texto); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--texto); text-decoration: none; padding-bottom: 6px; border-bottom: 1px solid currentColor;
  transition: gap .35s var(--ease), color .3s;
}
.enlace-flecha svg { width: 16px; height: 16px; }
.enlace-flecha:hover { gap: 18px; color: var(--laton-osc); }
.oscuro .enlace-flecha, .tarjeta-cat .enlace-flecha { color: var(--marfil); }
.oscuro .enlace-flecha:hover { color: var(--laton); }

/* ---------- Barra superior + cabecera (oscuras) ---------- */
.barra-top { background: var(--noche); color: var(--suave-osc); font-family: var(--f-mono); font-size: 0.72rem; letter-spacing: 0.06em; border-bottom: 1px solid var(--linea-osc); }
.barra-top .contenedor { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 40px; flex-wrap: wrap; }
.barra-top a { color: var(--marfil); text-decoration: none; transition: color .3s; }
.barra-top a:hover { color: var(--laton); }
.barra-top .tels { display: flex; gap: 28px; flex-wrap: wrap; }
.estado { display: inline-flex; align-items: center; gap: 10px; }
.estado .punto { width: 7px; height: 7px; border-radius: 50%; background: #7C827B; }
.estado.abierto .punto { background: #6FD07A; box-shadow: 0 0 0 4px rgba(111,208,122,0.16); }
.estado.cerrado .punto { background: #E07A62; }

.cabecera { position: sticky; top: 0; z-index: 900; background: rgba(12, 21, 16, 0.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--linea-osc); }
.cabecera .contenedor { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.marca { display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--marfil); }
.marca img { width: 48px; height: 48px; object-fit: contain; background: var(--marfil); border-radius: 50%; padding: 7px; }
.marca span { font-family: var(--f-serif); font-size: 1.85rem; line-height: 0.9; letter-spacing: -0.01em; }
.marca small { display: block; font-family: var(--f-mono); font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--laton); margin-top: 6px; }

.nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.nav a {
  display: block; padding: 10px 14px; position: relative;
  font-family: var(--f-texto); font-weight: 500; font-size: 0.86rem; letter-spacing: 0.02em;
  text-decoration: none; color: rgba(244,241,234,0.82); transition: color .3s;
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--marfil); }
.nav a::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 1px; background: var(--laton); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease); }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav a.nav-itv::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #5B8FE6; margin-right: 8px; vertical-align: middle; position: relative; top: -1px; }
.nav .nav-cta a { margin-left: 18px; padding: 12px 22px; border: 1px solid var(--laton); color: var(--laton); font-weight: 600; font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase; transition: background-color .3s, color .3s; }
.nav .nav-cta a::after { display: none; }
.nav .nav-cta a:hover { background: var(--laton); color: var(--noche); }

.menu-toggle { display: none; width: 48px; height: 48px; border: 1px solid var(--linea-osc); background: transparent; cursor: pointer; padding: 0; align-items: center; justify-content: center; flex-direction: column; gap: 6px; }
.menu-toggle span { display: block; width: 20px; height: 1.5px; background: var(--marfil); transition: transform .3s var(--ease), opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* ---------- Secciones ---------- */
.seccion { padding-block: var(--sec); }
.seccion-papel { background: var(--hueso); }
.seccion-blanca { background: var(--blanco); }
.oscuro, .tinta { background: var(--noche); color: var(--suave-osc); }
.oscuro h1, .oscuro h2, .oscuro h3, .oscuro h4, .tinta h2, .tinta h3 { color: var(--marfil); }
.oscuro .lead { color: var(--suave-osc); }
.cabecera-seccion { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 32px 80px; align-items: end; margin-bottom: clamp(48px, 7vw, 96px); }
.cabecera-seccion h2 { margin: 0; }
.cabecera-seccion p { margin: 0; color: var(--suave); }
.oscuro .cabecera-seccion p { color: var(--suave-osc); }

/* ---------- HERO portada ---------- */
.hero { position: relative; background: var(--noche); color: var(--marfil); overflow: hidden; isolation: isolate; }
.hero-fondo { position: absolute; inset: 0; z-index: -2; }
.hero-fondo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; transform: scale(1.04); animation: hero-zoom 14s var(--ease) forwards; }
@keyframes hero-zoom { to { transform: scale(1); } }
.hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12,21,16,0.96) 0%, rgba(12,21,16,0.82) 42%, rgba(12,21,16,0.35) 100%), linear-gradient(0deg, rgba(12,21,16,0.9) 0%, rgba(12,21,16,0) 40%); }
.hero .contenedor { min-height: clamp(640px, 88vh, 900px); display: flex; flex-direction: column; justify-content: flex-end; padding-block: clamp(80px, 12vh, 140px) 0; }
.hero h1 { color: var(--marfil); max-width: 13ch; margin-bottom: 32px; }
.hero h1 em { color: var(--laton); }
.hero .lead { color: rgba(244,241,234,0.78); margin-bottom: 44px; }
.hero-datos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(64px, 10vh, 112px); border-top: 1px solid var(--linea-osc); }
.hero-datos div { padding: 28px 24px 36px 0; border-right: 1px solid var(--linea-osc); }
.hero-datos div + div { padding-left: 28px; }
.hero-datos div:last-child { border-right: 0; }
.hero-datos b { display: block; font-family: var(--f-serif); font-weight: 400; font-size: clamp(2.2rem, 3.6vw, 3.2rem); line-height: 1; color: var(--marfil); }
.hero-datos span { display: block; margin-top: 10px; font-family: var(--f-mono); font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--suave-osc); }

/* ---------- Hero interior ---------- */
.hero-pagina { background: var(--noche); color: var(--suave-osc); position: relative; overflow: hidden; }
.hero-pagina::after { content: ''; position: absolute; right: -10%; top: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--linea-osc); box-shadow: 0 0 0 80px rgba(244,241,234,0.015), 0 0 0 160px rgba(244,241,234,0.012); pointer-events: none; }
.hero-pagina .contenedor { position: relative; z-index: 1; padding-block: clamp(72px, 10vw, 140px) clamp(64px, 8vw, 112px); }
.hero-pagina h1 { color: var(--marfil); max-width: 14ch; }
.hero-pagina h1 span { color: var(--laton); }
.hero-pagina .lead { color: rgba(244,241,234,0.74); }
.migas { font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 40px; color: var(--suave-osc); }
.migas a { color: var(--laton); text-decoration: none; }

/* ---------- Franja de marcas ---------- */
.franja-marcas { background: var(--marfil); border-bottom: 1px solid var(--linea); }
.franja-marcas .contenedor { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); align-items: center; gap: 32px; padding-block: 44px; }
.franja-marcas p { margin: 0; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--suave); }
.logos { display: flex; align-items: center; justify-content: space-between; gap: clamp(28px, 5vw, 72px); flex-wrap: wrap; }
.logos img { height: 52px; width: auto; object-fit: contain; filter: grayscale(1) contrast(1.1); mix-blend-mode: multiply; opacity: 0.8; transition: filter .4s, opacity .4s; }
.logos img:hover { filter: none; opacity: 1; }
.logos img.deutz { height: 40px; }
.logos img.cuadrado { height: 72px; }
.logos .texto-marca { font-family: var(--f-serif); font-size: 1.7rem; color: var(--suave); letter-spacing: 0.01em; }

/* ---------- Manifiesto ---------- */
.manifiesto { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 40px; }
.manifiesto p.grande { font-family: var(--f-serif); font-size: clamp(1.9rem, 3.4vw, 3.2rem); line-height: 1.16; letter-spacing: -0.015em; color: var(--texto); margin: 0 0 56px; text-wrap: pretty; }
.manifiesto p.grande em { color: var(--laton-osc); }

/* ---------- Servicios (rejilla) ---------- */
.servicios-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--linea); border-left: 1px solid var(--linea); }
.servicio { position: relative; display: flex; flex-direction: column; text-decoration: none; color: inherit; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); padding: 28px 28px 32px; background: var(--marfil); transition: background-color .5s var(--ease); }
.servicio:hover { background: var(--blanco); }
.servicio-foto { aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 28px; background: var(--noche); }
.servicio-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.servicio:hover .servicio-foto img { transform: scale(1.05); }
.servicio-num { font-family: var(--f-mono); font-size: 0.72rem; letter-spacing: 0.14em; color: var(--laton-osc); margin-bottom: 12px; }
.servicio h3 { margin-bottom: 14px; }
.servicio p { color: var(--suave); font-size: 0.95rem; margin-bottom: 24px; flex-grow: 1; }
.servicio .enlace-flecha { align-self: flex-start; }
.servicio.destacada .servicio-num::after { content: 'Nuevo'; margin-left: 12px; padding: 3px 8px; background: var(--itv); color: var(--blanco); font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; }
.panel-icono { width: 100%; height: 100%; display: grid; place-items: center; color: var(--laton); background: radial-gradient(circle at 70% 30%, var(--bosque-2), var(--noche) 70%); }
.panel-icono svg { width: 38%; height: auto; stroke-width: 1.1; }

/* ---------- Banda de imagen ---------- */
.banda-foto { position: relative; height: clamp(360px, 52vw, 680px); overflow: hidden; background: var(--noche); }
.banda-foto img { width: 100%; height: 100%; object-fit: cover; }
.banda-foto figcaption { position: absolute; left: var(--gutter); bottom: 28px; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--marfil); background: rgba(12,21,16,0.7); padding: 8px 12px; backdrop-filter: blur(6px); }

/* ---------- Índice (filas) - páginas internas si se usa ---------- */
.indice { border-top: 1px solid var(--texto); }
.indice-fila { display: grid; grid-template-columns: 80px minmax(0, 4fr) minmax(0, 5fr) 160px; gap: 28px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--linea); text-decoration: none; color: inherit; }
.indice-num { font-family: var(--f-mono); font-size: 0.78rem; color: var(--laton-osc); }
.indice-fila h3 { margin: 0; }
.indice-fila ul { list-style: none; padding: 0; margin: 0; color: var(--suave); font-size: 0.92rem; }
.indice-fila img, .indice-panel { width: 160px; height: 100px; object-fit: cover; }
.indice-panel { display: grid; place-items: center; background: var(--noche); color: var(--laton); }
.indice-panel svg { width: 56px; }

/* ---------- Bloque ITV ---------- */
.bloque-itv { background: var(--bosque); color: var(--suave-osc); }
.bloque-itv .contenedor { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(48px, 7vw, 112px); align-items: start; }
.bloque-itv h2 { color: var(--marfil); }
.bloque-itv h2 span { color: var(--laton); }
.bloque-itv .lead { color: var(--suave-osc); }
.sello-itv { display: inline-flex; align-items: center; gap: 12px; padding: 8px 14px 8px 10px; margin-bottom: 32px; background: var(--itv); color: var(--blanco); border-radius: 6px; font-family: var(--f-texto); font-weight: 800; font-size: 1.3rem; letter-spacing: -0.02em; line-height: 1; }
.sello-itv svg { width: 20px; height: 20px; }
.sello-itv small { font-family: var(--f-mono); font-weight: 500; font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.35; }
.puntos-itv { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--linea-osc); counter-reset: itv; }
.punto-itv { display: grid; grid-template-columns: 56px 40px minmax(0, 1fr); gap: 20px; align-items: start; padding: 24px 0; border-bottom: 1px solid var(--linea-osc); counter-increment: itv; }
.punto-itv::before { content: '0' counter(itv); font-family: var(--f-mono); font-size: 0.75rem; color: var(--laton); padding-top: 8px; }
.punto-itv svg { width: 32px; height: 32px; color: var(--laton); stroke-width: 1.3; margin-top: 2px; }
.punto-itv h3 { color: var(--marfil); font-size: 1.6rem; margin: 0 0 4px; }
.punto-itv p { margin: 0; font-size: 0.95rem; color: var(--suave-osc); }
.punto-itv.ancho { grid-template-columns: 56px 40px minmax(0, 1fr); background: transparent; border-bottom: 0; margin-top: 12px; padding: 28px; border: 1px solid var(--laton); counter-increment: none; }
.punto-itv.ancho::before { content: ''; }
.punto-itv.ancho h3 { color: var(--laton); }
.cita-itv { margin-top: 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px 40px; align-items: center; border-top: 1px solid var(--linea-osc); border-bottom: 1px solid var(--linea-osc); padding: 32px 0; }
.cita-itv p { margin: 0; font-size: 1.05rem; }
.cita-itv strong { color: var(--marfil); font-weight: 600; }
.cita-itv a.url { color: #A8C6FF; overflow-wrap: anywhere; }

/* ---------- Formación Deutz ---------- */
.formacion { background: var(--marfil); }
.formacion .contenedor { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(48px, 7vw, 112px); align-items: center; }
.chip-deutz { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--texto); margin-bottom: 28px; }
.chip-deutz::before { content: ''; width: 10px; height: 10px; background: var(--deutz); border-radius: 50%; }
.ficha-curso { margin: 36px 0 40px; border-top: 1px solid var(--texto); }
.ficha-curso div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--linea); }
.ficha-curso dt { font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); padding-top: 4px; }
.ficha-curso dd { margin: 0; color: var(--texto); font-weight: 500; }
.mosaico { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.mosaico figure { margin: 0; position: relative; overflow: hidden; background: var(--noche); }
.mosaico figure:first-child { grid-column: span 2; aspect-ratio: 16 / 10; }
.mosaico figure:not(:first-child) { aspect-ratio: 4 / 3; }
.mosaico img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.mosaico figure:hover img { transform: scale(1.04); }
.mosaico figcaption { position: absolute; left: 14px; bottom: 14px; color: var(--marfil); font-family: var(--f-mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 6px 10px; background: rgba(12,21,16,0.72); backdrop-filter: blur(6px); }

/* ---------- Cifras ---------- */
.cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--texto); }
.cifra { padding: 32px 24px 8px; border-right: 1px solid var(--linea); }
.cifra:first-child { padding-left: 0; }
.cifra:last-child { border-right: 0; }
.cifra b { display: block; font-family: var(--f-serif); font-weight: 400; font-size: clamp(3.2rem, 6vw, 5.4rem); line-height: 0.95; letter-spacing: -0.03em; color: var(--texto); }
.cifra b sup { font-size: 0.45em; color: var(--laton-osc); vertical-align: top; position: relative; top: 0.2em; margin-left: 2px; }
.cifra span { display: block; margin-top: 14px; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave); }

/* ---------- Horario / contacto ---------- */
.contacto-rapido .contenedor { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(48px, 7vw, 112px); align-items: start; }
.tabla-horario { width: 100%; border-collapse: collapse; margin-top: 12px; }
.tabla-horario th, .tabla-horario td { text-align: left; padding: 18px 0; border-bottom: 1px solid var(--linea-osc); vertical-align: top; }
.tabla-horario th { font-family: var(--f-mono); font-weight: 500; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave-osc); width: 44%; padding-top: 22px; }
.tabla-horario td { font-family: var(--f-serif); font-size: 1.55rem; line-height: 1.25; color: var(--marfil); }
.tabla-horario tr.hoy th { color: var(--laton); }
.tabla-horario tr.hoy th::after { content: ' · hoy'; }
.tabla-horario .cerrado-txt { color: #E89A86; font-style: italic; }
.seccion-papel .tabla-horario th, .seccion-papel .tabla-horario td, .seccion-blanca .tabla-horario th, .seccion-blanca .tabla-horario td, .tarjeta-horario .tabla-horario th, .tarjeta-horario .tabla-horario td { border-color: var(--linea); }
.seccion-papel .tabla-horario th, .seccion-blanca .tabla-horario th, .tarjeta-horario .tabla-horario th { color: var(--suave); }
.seccion-papel .tabla-horario td, .seccion-blanca .tabla-horario td, .tarjeta-horario .tabla-horario td { color: var(--texto); }
.seccion-papel .tabla-horario tr.hoy th, .tarjeta-horario .tabla-horario tr.hoy th { color: var(--laton-osc); }
.seccion-papel .tabla-horario .cerrado-txt, .tarjeta-horario .tabla-horario .cerrado-txt { color: #A0381F; }

.lista-contacto { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea-osc); }
.lista-contacto li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--linea-osc); }
.lista-contacto svg { width: 22px; height: 22px; color: var(--laton); stroke-width: 1.4; }
.lista-contacto a { color: var(--marfil); text-decoration: none; font-family: var(--f-serif); font-size: 1.5rem; line-height: 1.2; transition: color .3s; }
.lista-contacto a:hover { color: var(--laton); }
.lista-contacto small { display: block; font-family: var(--f-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--suave-osc); margin-bottom: 4px; }
.seccion-papel .lista-contacto, .seccion-blanca .lista-contacto, .tarjeta-horario .lista-contacto { border-color: var(--linea); }
.seccion-papel .lista-contacto li, .seccion-blanca .lista-contacto li, .tarjeta-horario .lista-contacto li { border-color: var(--linea); }
.seccion-papel .lista-contacto a, .seccion-blanca .lista-contacto a, .tarjeta-horario .lista-contacto a { color: var(--texto); }
.seccion-papel .lista-contacto a:hover, .tarjeta-horario .lista-contacto a:hover { color: var(--laton-osc); }
.seccion-papel .lista-contacto svg, .seccion-blanca .lista-contacto svg, .tarjeta-horario .lista-contacto svg { color: var(--laton-osc); }
.seccion-papel .lista-contacto small, .seccion-blanca .lista-contacto small, .tarjeta-horario .lista-contacto small { color: var(--suave); }

/* ---------- Bloques alternos ---------- */
.bloque { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(48px, 7vw, 112px); align-items: center; padding-block: clamp(56px, 7vw, 96px); border-bottom: 1px solid var(--linea); }
.bloque:first-child { padding-top: 0; }
.bloque:last-child { border-bottom: 0; padding-bottom: 0; }
.bloque.invertido { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.bloque.invertido .bloque-foto { order: 2; }
.bloque-foto { position: relative; overflow: hidden; }
.bloque-foto img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; transition: transform 1.2s var(--ease); }
.bloque-foto:hover img { transform: scale(1.03); }
.bloque-foto.contener img { object-fit: contain; background: var(--blanco); padding: 40px; }
.bloque-foto .num { position: absolute; top: 16px; left: 16px; z-index: 1; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.14em; color: var(--marfil); background: rgba(12,21,16,0.75); padding: 6px 10px; backdrop-filter: blur(6px); }
.bloque-foto.contener .num { background: var(--noche); }
.panel-taller { aspect-ratio: 5 / 4; background: radial-gradient(circle at 75% 25%, var(--bosque-2), var(--noche) 70%); color: var(--laton); display: flex; flex-direction: column; justify-content: flex-end; gap: 24px; padding: clamp(28px, 4vw, 52px); }
.panel-taller svg { width: clamp(90px, 12vw, 140px); height: auto; stroke-width: 1.1; }
.panel-taller b { font-family: var(--f-serif); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1; color: var(--marfil); max-width: 10ch; }
.lista-check { list-style: none; padding: 0; margin: 8px 0 36px; border-top: 1px solid var(--linea); }
.lista-check li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--linea); font-size: 0.98rem; }
.lista-check svg { width: 16px; height: 16px; color: var(--laton-osc); margin-top: 5px; }
.etiqueta-oficial { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-mono); font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--laton-osc); margin-bottom: 20px; }
.etiqueta-oficial::before { content: ''; width: 8px; height: 8px; border: 1px solid currentColor; transform: rotate(45deg); }

/* ---------- Catálogo / tienda ---------- */
.rejilla-catalogo { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.tarjeta-cat { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 440px; padding: 36px; color: var(--marfil); text-decoration: none; overflow: hidden; background: var(--noche); isolation: isolate; }
.tarjeta-cat:nth-child(1) { grid-column: span 7; }
.tarjeta-cat:nth-child(2) { grid-column: span 5; }
.tarjeta-cat:nth-child(3) { grid-column: span 5; }
.tarjeta-cat:nth-child(4) { grid-column: span 7; }
.tarjeta-cat img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.tarjeta-cat::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(12,21,16,0.95) 0%, rgba(12,21,16,0.45) 55%, rgba(12,21,16,0.15) 100%); transition: background .6s; }
.tarjeta-cat:hover img { transform: scale(1.05); }
.tarjeta-cat h3 { color: var(--marfil); font-size: clamp(2rem, 3vw, 2.8rem); margin-bottom: 12px; }
.tarjeta-cat p { color: rgba(244,241,234,0.78); max-width: 42ch; margin-bottom: 24px; font-size: 0.98rem; }
.tarjeta-cat .num { position: absolute; top: 28px; left: 36px; font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.16em; color: var(--laton); }
.tarjeta-cat .enlace-flecha { align-self: flex-start; }

/* ---------- Pasos ---------- */
.pasos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--texto); counter-reset: paso; }
.paso { padding: 36px 36px 8px 0; border-right: 1px solid var(--linea); }
.paso + .paso { padding-left: 36px; }
.paso:last-child { border-right: 0; }
.paso::before { counter-increment: paso; content: '0' counter(paso); display: block; font-family: var(--f-serif); font-style: italic; font-size: 3.6rem; line-height: 1; color: var(--laton-osc); margin-bottom: 20px; }
.paso p { color: var(--suave); }

/* ---------- Línea de tiempo ---------- */
.linea-tiempo { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--linea-osc); }
.linea-tiempo li { padding: 32px 28px 0 0; position: relative; }
.linea-tiempo li::before { content: ''; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--laton); }
.linea-tiempo b { display: block; font-family: var(--f-serif); font-weight: 400; font-size: clamp(2.6rem, 4vw, 3.6rem); line-height: 1; color: var(--marfil); margin-bottom: 14px; }
.linea-tiempo p { margin: 0; color: var(--suave-osc); }
.linea-tiempo li.nuevo::before { background: var(--deutz); box-shadow: 0 0 0 6px rgba(122,185,41,0.18); }

/* ---------- Reseñas ---------- */
.resenas-cabecera { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; margin-bottom: 56px; }
.nota-google { display: flex; align-items: center; gap: 20px; }
.nota-google b { font-family: var(--f-serif); font-weight: 400; font-size: 5.4rem; line-height: 1; letter-spacing: -0.03em; color: var(--texto); }
.nota-google .estrellas { color: var(--laton-osc); font-size: 1.1rem; letter-spacing: 3px; }
.nota-google small { display: block; font-size: 0.85rem; color: var(--suave); max-width: 22ch; }
.carril { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, calc((100% - 48px) / 3)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 20px; scrollbar-width: thin; scrollbar-color: var(--laton-osc) var(--linea); }
.resena { margin: 0; scroll-snap-align: start; border-top: 1px solid var(--texto); padding: 32px 0 0; display: flex; flex-direction: column; gap: 22px; }
.resena blockquote { margin: 0; font-family: var(--f-serif); font-size: 1.6rem; line-height: 1.25; color: var(--texto); flex-grow: 1; }
.resena footer { display: flex; align-items: center; gap: 12px; font-size: 0.88rem; font-weight: 500; color: var(--suave); }
.resena .ini { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--noche); color: var(--laton); font-family: var(--f-mono); font-size: 0.66rem; }
.resena .estrellas { color: var(--laton-osc); letter-spacing: 3px; font-size: 0.85rem; }
.carril-ctrl { display: flex; gap: 8px; }
.carril-ctrl button { width: 52px; height: 52px; border: 1px solid var(--texto); border-radius: 50%; background: transparent; cursor: pointer; display: grid; place-items: center; color: var(--texto); transition: background-color .3s, color .3s; }
.carril-ctrl button:hover { background: var(--texto); color: var(--marfil); }
.carril-ctrl svg { width: 18px; height: 18px; }

/* ---------- Contacto / formulario ---------- */
.contacto-rejilla { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 88px); align-items: start; }
.mapa { background: var(--noche); margin-bottom: 24px; }
.mapa iframe { width: 100%; height: 300px; border: 0; display: block; filter: grayscale(0.6) contrast(1.05); }
.mapa .btn { width: 100%; }
.tarjeta-horario { background: var(--blanco); padding: 36px; }
.formulario { background: var(--blanco); padding: clamp(28px, 4.5vw, 64px); }
.formulario h2 { font-size: clamp(2.2rem, 3.6vw, 3.2rem); }
.campo { display: grid; gap: 6px; margin-bottom: 26px; }
.campo label { font-family: var(--f-mono); font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--suave); }
.campo input, .campo select, .campo textarea { width: 100%; font: inherit; font-size: 1.05rem; color: var(--texto); padding: 12px 0; border: 0; border-bottom: 1px solid #A39C8C; background: transparent; border-radius: 0; transition: border-color .3s; }
.campo select { padding-right: 24px; appearance: none; background: linear-gradient(45deg, transparent 50%, var(--texto) 50%) calc(100% - 10px) 55% / 6px 6px no-repeat, linear-gradient(-45deg, transparent 50%, var(--texto) 50%) calc(100% - 4px) 55% / 6px 6px no-repeat; }
.campo textarea { resize: vertical; min-height: 120px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-bottom: 2px solid var(--laton-osc); }
.campos-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
.aviso-form { font-size: 0.84rem; color: var(--suave); margin-top: 18px; }
.aviso-form a { color: var(--texto); }
#mensaje-exito { display: none; padding: 40px; background: var(--noche); color: var(--suave-osc); }
#mensaje-exito h3 { color: var(--laton); }
#mensaje-error { display: none; margin-top: 16px; padding: 14px 16px; background: #F8E4DE; color: #7E2914; }

/* ---------- Texto legal ---------- */
.texto-legal { max-width: 760px; }
.texto-legal h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-top: 1.6em; }
.texto-legal h2:first-child { margin-top: 0; }
.texto-legal ul { padding-left: 1.2em; }
.texto-legal a { color: var(--laton-osc); }

/* ---------- CTA final ---------- */
.cta-final { background: var(--marfil); border-top: 1px solid var(--linea); }
.cta-final .contenedor { display: grid; grid-template-columns: minmax(0, 7fr) auto; gap: 32px 64px; align-items: end; padding-block: clamp(72px, 9vw, 128px); }
.cta-final h2 { margin: 0; font-size: clamp(2.6rem, 5.4vw, 5rem); }
.cta-final .btn-linea { color: var(--texto); }

/* ---------- Pie ---------- */
.pie { background: var(--noche); color: var(--suave-osc); font-size: 0.94rem; overflow: hidden; }
.pie .contenedor { padding-block: 96px 32px; }
.pie-rejilla { display: grid; grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2.6fr)); gap: 48px; padding-bottom: 64px; }
.pie h4 { font-family: var(--f-mono); font-weight: 500; font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--laton); margin-bottom: 22px; }
.pie ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.pie a { color: rgba(244,241,234,0.86); text-decoration: none; transition: color .3s; }
.pie a:hover { color: var(--laton); }
.pie .marca-pie { display: none; }
.pie-firma { font-family: var(--f-serif); font-size: clamp(5rem, 17vw, 16rem); line-height: 0.8; letter-spacing: -0.04em; color: var(--marfil); margin: 0 0 -0.08em; padding-top: 40px; border-top: 1px solid var(--linea-osc); white-space: nowrap; }
.pie-firma em { color: var(--laton); }
.pie-legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 28px; margin-top: 40px; border-top: 1px solid var(--linea-osc); font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.08em; color: var(--suave-osc); }
.pie-legal nav { display: flex; gap: 24px; flex-wrap: wrap; }

/* ---------- Barra fija móvil ---------- */
.barra-movil { display: none; }

/* ---------- Cookies ---------- */
.cookie-banner { position: fixed; left: 20px; bottom: 20px; z-index: 1200; max-width: 440px; background: var(--noche); color: var(--suave-osc); border: 1px solid var(--linea-osc); padding: 24px; display: flex; flex-direction: column; gap: 18px; transform: translateY(20px); opacity: 0; visibility: hidden; transition: all .5s var(--ease); }
.cookie-banner.mostrar { transform: none; opacity: 1; visibility: visible; }
.cookie-banner p { margin: 0; font-size: 0.88rem; }
.cookie-banner a { color: var(--laton); }
.cookie-banner .grupo-btn { gap: 10px; }
.cookie-banner .btn { min-height: 44px; padding: 10px 20px; font-size: 0.7rem; flex: 1; }
.cookie-banner .btn-verde { background: var(--laton); color: var(--noche); }
.cookie-banner .btn-linea { color: var(--marfil); border-color: var(--linea-osc); }

/* ---------- Animación ---------- */
.revelar { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.revelar.visible { opacity: 1; transform: none; }
.sin-js .revelar { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .revelar { opacity: 1; transform: none; transition: none; }
  .hero-fondo img { animation: none; transform: none; }
  * { transition-duration: 0.01ms !important; }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1100px) {
  .nav a { padding: 10px 9px; font-size: 0.82rem; }
  .nav a::after { left: 9px; right: 9px; }
  .nav .nav-cta a { margin-left: 8px; padding: 12px 16px; }
  .servicios-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .cabecera { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--noche); }
  .menu-toggle { display: inline-flex; position: relative; z-index: 1000; }
  .nav { display: none; position: fixed; top: 0; right: 0; bottom: 0; width: min(380px, 90vw); background: var(--noche); border-left: 1px solid var(--linea-osc); padding: 110px 28px 28px; z-index: 950; overflow-y: auto; }
  .nav.abierto { display: block; animation: entra-menu .4s var(--ease); }
  @keyframes entra-menu { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
  .nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav a { font-family: var(--f-serif); font-size: 2rem; font-weight: 400; color: var(--marfil); padding: 14px 0; border-bottom: 1px solid var(--linea-osc); }
  .nav a::after { display: none; }
  .nav a[aria-current="page"] { color: var(--laton); font-style: italic; }
  .nav .nav-cta a { margin: 28px 0 0; text-align: center; font-family: var(--f-texto); font-size: 0.8rem; background: var(--laton); color: var(--noche); border: 0; padding: 18px; }
  body.menu-abierto { overflow: hidden; }

  .bloque-itv .contenedor, .formacion .contenedor, .contacto-rapido .contenedor, .contacto-rejilla, .cabecera-seccion, .franja-marcas .contenedor, .manifiesto { grid-template-columns: minmax(0, 1fr); }
  .bloque, .bloque.invertido { grid-template-columns: minmax(0, 1fr); }
  .bloque.invertido .bloque-foto { order: 0; }
  .hero-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-datos div { padding: 22px 16px 22px 0 !important; border-right: 0; border-bottom: 1px solid var(--linea-osc); }
  .hero-datos div:nth-child(odd) { border-right: 1px solid var(--linea-osc); }
  .hero-datos div:nth-child(even) { padding-left: 20px !important; }
  .cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cifra { padding: 24px 16px 24px 0 !important; border-right: 0; border-bottom: 1px solid var(--linea); }
  .linea-tiempo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 0; }
  .pasos { grid-template-columns: minmax(0, 1fr); }
  .paso, .paso + .paso { padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--linea); }
  .rejilla-catalogo .tarjeta-cat { grid-column: span 12 !important; min-height: 360px; }
  .pie-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cta-final .contenedor { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .resenas-cabecera { grid-template-columns: minmax(0, 1fr); }
  .carril { grid-auto-columns: minmax(280px, 80%); }
  .logos { justify-content: flex-start; }
  .indice-fila { grid-template-columns: 50px minmax(0, 1fr); }
  .indice-fila ul, .indice-fila img, .indice-panel { display: none; }
}

@media (max-width: 640px) {
  body { font-size: 16px; padding-bottom: 64px; }
  .barra-top .tels { display: none; }
  .cabecera .contenedor { min-height: 72px; }
  .marca img { width: 40px; height: 40px; padding: 6px; }
  .marca span { font-size: 1.55rem; }
  .hero .contenedor { min-height: auto; padding-top: 96px; }
  .hero::before { background: linear-gradient(0deg, rgba(12,21,16,0.97) 0%, rgba(12,21,16,0.85) 55%, rgba(12,21,16,0.55) 100%); }
  .servicios-grid { grid-template-columns: minmax(0, 1fr); }
  .servicio { padding: 24px 20px 28px; }
  .punto-itv { grid-template-columns: 34px 32px minmax(0, 1fr); gap: 14px; }
  .punto-itv.ancho { grid-template-columns: 0 32px minmax(0, 1fr); padding: 22px 18px; }
  .punto-itv h3 { font-size: 1.4rem; }
  .cita-itv { grid-template-columns: minmax(0, 1fr); }
  .mosaico { gap: 8px; }
  .ficha-curso div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .campos-2 { grid-template-columns: minmax(0, 1fr); }
  .pie-rejilla { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .linea-tiempo { grid-template-columns: minmax(0, 1fr); }
  .grupo-btn .btn { flex: 1 1 100%; }
  .tarjeta-cat { padding: 28px 24px; }
  .tarjeta-cat .num { left: 24px; }
  .tarjeta-horario { padding: 24px; }
  .tabla-horario td { font-size: 1.3rem; }
  .lista-contacto a { font-size: 1.25rem; }
  .cookie-banner { left: 12px; right: 12px; bottom: 76px; max-width: none; }
  .barra-movil { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; }
  .barra-movil a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 62px; font-family: var(--f-texto); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
  .barra-movil a svg { width: 18px; height: 18px; }
  .barra-movil .llamar { background: var(--laton); color: var(--noche); }
  .barra-movil .wa { background: var(--noche); color: var(--marfil); border-top: 1px solid var(--linea-osc); }
}

/* ---------- Marcas en móvil: rejilla 2×2 ordenada ---------- */
@media (max-width: 640px) {
  .franja-marcas .contenedor { padding-block: 40px; gap: 24px; }
  .logos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--linea); border-left: 1px solid var(--linea); }
  .logos > * { display: flex; align-items: center; justify-content: center; height: 96px; border-right: 1px solid var(--linea); border-bottom: 1px solid var(--linea); padding: 0; overflow: hidden; }
  .logos img, .logos img.deutz, .logos img.cuadrado { height: 88px; width: 100%; margin: 0; object-fit: contain; padding: 18px 14px; }
  .logos img.cuadrado { height: 96px; padding: 14px; }
  .logos .texto-marca { font-size: 1.6rem; }
}

/* ---------- Preguntas frecuentes ---------- */
.faq-rejilla { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.faq-rejilla a { color: var(--texto); }
.faq { border-top: 1px solid var(--texto); }
.faq details { border-bottom: 1px solid var(--linea); }
.faq summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 20px; align-items: center; padding: 24px 0; font-family: var(--f-serif); font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.2; color: var(--texto); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--f-texto); font-size: 1.6rem; font-weight: 400; color: var(--laton-osc); text-align: center; transition: transform .3s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { margin: 0 0 26px; max-width: 62ch; color: var(--suave); }
@media (max-width: 960px) { .faq-rejilla { grid-template-columns: minmax(0, 1fr); } }
