/* Olivieri — concepto "En contacto": el tablero hace su autodiagnóstico */

@font-face { font-family: "Chakra Petch"; src: url("fonts/chakra-petch-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Chakra Petch"; src: url("fonts/chakra-petch-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("fonts/barlow-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Barlow"; src: url("fonts/barlow-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }

:root {
  --tablero: #0F1215;
  --tablero-2: #181D22;
  --tablero-3: #232A31;
  --luz: #E8ECEF;
  --luz-2: #A9B3BC;
  --rojo: #F04A3A;          /* zona roja, sobre tablero */
  --rojo-papel: #C42B1F;    /* rojo para texto sobre papel */
  --cian: #5FD4E8;          /* retroiluminación del instrumento */
  --ambar: #F2B233;         /* testigos */
  --papel: #EEF0F1;
  --papel-2: #DFE3E6;
  --tinta: #14181C;
  --gris: #4D5660;

  --display: "Chakra Petch", "Bahnschrift", "Arial Narrow", sans-serif;
  --texto: "Barlow", "Segoe UI", system-ui, sans-serif;

  --ease-aguja: cubic-bezier(0.22, 1, 0.36, 1);
  --radio: 3px;
  --borde-corte: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--tablero);
  color: var(--luz);
  font-family: var(--texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--display); font-weight: 700; line-height: 1.05; margin: 0; letter-spacing: -0.01em; }
h2 { font-size: clamp(2rem, 5.2vw, 3.6rem); text-wrap: balance; }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }

:focus-visible { outline: 3px solid var(--cian); outline-offset: 3px; }
.claro :focus-visible { outline-color: var(--rojo-papel); }

.saltar {
  position: absolute; left: 1rem; top: -4rem; z-index: 100;
  background: var(--luz); color: var(--tinta); padding: .75rem 1rem; font-weight: 600;
}
.saltar:focus { top: 1rem; }

/* Franja de la propuesta */
.franja {
  position: sticky; top: 0; z-index: 50; margin: 0;
  background: var(--ambar); color: var(--tinta);
  font-size: .8125rem; font-weight: 600; line-height: 1.35;
  text-align: center; padding: .45rem 1rem;
}

.contenedor { width: min(1180px, 100% - 2.5rem); margin-inline: auto; }

/* Cabecera */
.cabecera {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  width: min(1180px, 100% - 2.5rem); margin: 0 auto; padding: 1rem 0;
}
.marca {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--display); font-weight: 700; font-size: 1.35rem;
  text-decoration: none; text-transform: uppercase; letter-spacing: .06em;
  min-height: 44px;
}
.marca-o {
  width: 22px; height: 22px; border-radius: 50%;
  border: 3px solid var(--luz);
  background: conic-gradient(from 210deg, transparent 0 200deg, var(--rojo) 200deg 240deg, transparent 240deg);
}
.menu { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.menu a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 .7rem;
  text-decoration: none; font-weight: 600; font-size: .95rem; color: var(--luz-2);
  transition: color .2s;
}
.menu a:hover { color: var(--luz); }
.menu .menu-turno { color: var(--luz); border: 1.5px solid var(--rojo); border-radius: var(--radio); }
@media (max-width: 620px) {
  .menu li:not(:last-child) { display: none; }
}

/* Botones */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 1.5rem;
  font-family: var(--display); font-weight: 700; font-size: 1.05rem; letter-spacing: .03em;
  text-transform: uppercase; text-decoration: none; border: 0; cursor: pointer;
  clip-path: var(--borde-corte);
  transition: background-color .2s, color .2s;
}
.btn-rojo { background: var(--rojo); color: var(--tablero); }
.btn-rojo:hover { background: #FF6A5B; }
.btn-linea { background: var(--tablero-3); color: var(--luz); }
.btn-linea:hover { background: #2E3740; }

.kicker {
  font-family: var(--display); font-weight: 600; font-size: .9rem;
  text-transform: uppercase; letter-spacing: .14em; color: var(--cian); margin-bottom: 1rem;
}
.kicker-oscuro { color: var(--rojo-papel); }

/* HERO */
.hero {
  position: relative;
  display: grid; gap: 2rem; align-items: center;
  width: min(1180px, 100% - 2.5rem); margin: 0 auto;
  min-height: calc(100svh - 7rem);
  padding: 2rem 0 4rem;
}
.hero::before {
  /* Retroiluminación del tablero detrás del instrumento */
  content: ""; position: absolute; z-index: -1; inset: 10% -20% 0 30%;
  background: radial-gradient(closest-side, rgba(95, 212, 232, .10), transparent 70%);
  pointer-events: none;
}
.hero-titulo {
  font-size: clamp(3.4rem, 16vw, 9.5rem);
  text-transform: uppercase; letter-spacing: -.02em; line-height: .9;
  margin-bottom: 1.5rem;
  perspective: 600px;
}
.hero-titulo .char { display: inline-block; transform-origin: 50% 100%; backface-visibility: hidden; }
.hero-bajada { font-size: clamp(1.1rem, 2.2vw, 1.3rem); color: var(--luz-2); max-width: 34rem; }
.hero-acciones { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 1.5rem; }
.hero-dato {
  font-family: var(--display); font-weight: 600; font-size: .95rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--luz-2);
  display: flex; align-items: center; gap: .6rem;
}
.hero-dato::before { content: ""; width: 28px; height: 2px; background: var(--rojo); }

.tablero { margin: 0; justify-self: center; width: min(100%, 520px); }
.tablero-svg { width: 100%; height: auto; overflow: visible; }
.arco-base { fill: none; stroke: var(--tablero-3); stroke-width: 2; }
.marcas-menores { fill: none; stroke: var(--luz-2); stroke-width: 6; stroke-dasharray: 1.2 23.8; stroke-dashoffset: .6; opacity: .55; }
.marcas-mayores { fill: none; stroke: var(--luz); stroke-width: 14; stroke-dasharray: 3 97; stroke-dashoffset: 1.5; }
.zona-roja { fill: none; stroke: var(--rojo); stroke-width: 6; }
.numeros text {
  font-family: var(--display); font-weight: 700; font-size: 22px; fill: var(--cian);
  text-anchor: middle; dominant-baseline: central;
}
.numeros .num-rojo { fill: var(--rojo); }
.unidad { font-family: var(--texto); font-size: 11px; letter-spacing: .12em; fill: var(--luz-2); text-anchor: middle; text-transform: uppercase; }
.lectura { font-family: var(--display); font-weight: 600; font-size: 13px; letter-spacing: .4em; fill: var(--luz-2); text-anchor: middle; }
.aguja { transform-box: view-box; transform-origin: 200px 200px; transform: rotate(-93deg); }
.aguja path { fill: var(--rojo); }
.eje { fill: var(--tablero-3); stroke: var(--luz-2); stroke-width: 1.5; }
.eje-centro { fill: var(--rojo); }

.testigo { opacity: .2; }
.testigo circle, .testigo path { stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.testigo circle[r="3.2"] { fill: currentColor; }
.testigo text { font-family: var(--display); font-weight: 700; font-size: 9px; fill: currentColor; text-anchor: middle; dominant-baseline: central; }
.t-ambar { color: var(--ambar); }
.t-rojo { color: var(--rojo); }

@media (min-width: 900px) {
  .hero { grid-template-columns: 1.05fr .95fr; padding-top: 1rem; }
}

/* Secciones */
section:not(.hero) { padding: clamp(4.5rem, 11vw, 9rem) 0; }
.claro { background: var(--papel); color: var(--tinta); }
.seccion-cabeza { max-width: 48rem; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }

/* Taller */
.taller-grilla { display: grid; gap: 2rem; }
.taller-texto p { font-size: 1.15rem; color: var(--gris); max-width: 38rem; }
.taller-texto p:first-child { color: var(--tinta); font-size: 1.3rem; font-weight: 600; }
@media (min-width: 900px) { .taller-grilla { grid-template-columns: 1fr 1fr; gap: 5rem; } }

/* Servicios: tres piezas distintas, no tres tarjetas iguales */
.servicios { background: var(--tablero-2); }
.servicios-grilla { display: grid; gap: 1.25rem; }
.servicio {
  position: relative; padding: clamp(1.75rem, 4vw, 2.75rem);
  background: var(--tablero); border: 1px solid var(--tablero-3);
  clip-path: var(--borde-corte);
  transition: transform .45s var(--ease-aguja), border-color .3s;
  transform-style: preserve-3d;
}
.servicio:hover { border-color: #3A4652; }
.servicio h3 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1rem; }
.servicio p { color: var(--luz-2); margin: 0; }
.servicio strong { color: var(--luz); }
.servicio-icono { width: 44px; height: 44px; margin-bottom: 1.5rem; }
.servicio-icono path, .servicio-icono circle { fill: none; stroke: var(--cian); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.servicio-mecanica { border-top: 3px solid var(--rojo); }
.lista-servicio {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 0; grid-template-columns: 1fr;
}
.lista-servicio li {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .7rem 0; border-bottom: 1px dashed var(--tablero-3); font-weight: 600;
}
.lista-servicio li::after { content: ""; width: 7px; height: 7px; background: var(--rojo); transform: rotate(45deg); flex: none; }
.servicio-mecatronica circle { stroke: var(--ambar); }
@media (min-width: 640px) { .lista-servicio { grid-template-columns: 1fr 1fr; column-gap: 2rem; } }
@media (min-width: 980px) {
  .servicios-grilla { grid-template-columns: 1.35fr 1fr; grid-template-rows: auto auto; }
  .servicio-mecanica { grid-row: span 2; }
}
.repuestos {
  margin-top: 1.25rem; padding: 1.5rem clamp(1.5rem, 4vw, 2.75rem);
  display: grid; gap: .5rem; align-items: center;
  border-left: 3px solid var(--ambar); background: var(--tablero);
}
.repuestos h3 { font-size: 1.1rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ambar); }
.repuestos p { margin: 0; color: var(--luz-2); }
@media (min-width: 720px) { .repuestos { grid-template-columns: 12rem 1fr; } }

/* Testigos (interactivo) */
.testigos-grilla { display: grid; gap: 2.5rem; align-items: start; }
.testigos-intro { color: var(--gris); font-size: 1.15rem; margin-top: 1.25rem; max-width: 30rem; }
.panel-testigos {
  background: var(--tablero); color: var(--luz);
  padding: clamp(1.25rem, 4vw, 2.25rem);
  clip-path: var(--borde-corte);
}
.botones-testigo { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1.5rem; }
.boton-testigo {
  display: grid; justify-items: center; gap: .35rem;
  min-height: 88px; padding: .75rem .25rem;
  background: var(--tablero-2); color: var(--ambar);
  border: 1px solid var(--tablero-3); border-radius: var(--radio);
  font: 600 .85rem var(--texto); cursor: pointer;
  transition: background-color .2s, border-color .2s, box-shadow .25s;
}
.boton-testigo span { color: var(--luz-2); }
.boton-testigo.b-rojo { color: var(--rojo); }
.boton-testigo svg { width: 48px; height: 40px; opacity: .3; transition: opacity .25s; }
.boton-testigo svg circle, .boton-testigo svg path { stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.boton-testigo svg circle[r="3.2"] { fill: currentColor; }
.boton-testigo svg text { font: 700 9px var(--display); fill: currentColor; text-anchor: middle; dominant-baseline: central; }
.boton-testigo:hover svg { opacity: .65; }
.boton-testigo[aria-pressed="true"] { background: var(--tablero-3); border-color: currentColor; box-shadow: 0 0 22px -6px currentColor; }
.boton-testigo[aria-pressed="true"] svg { opacity: 1; }
.boton-testigo[aria-pressed="true"] span { color: var(--luz); }
.info-testigo { padding: 1rem 0; border-top: 1px solid var(--tablero-3); }
.info-testigo h3 { font-size: 1.25rem; margin-bottom: .4rem; }
.info-testigo p { color: var(--luz-2); margin: 0; }
.info-testigo strong { color: var(--luz); }
.js .info-testigo { display: none; }
.js .info-testigo.activa { display: block; }
.enlace-flecha {
  display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .5rem;
  font-weight: 600; color: var(--cian); text-underline-offset: 4px;
}
.enlace-flecha::after { content: "→"; transition: translate .25s var(--ease-aguja); }
.enlace-flecha:hover::after { translate: 4px 0; }
@media (min-width: 900px) { .testigos-grilla { grid-template-columns: .9fr 1.1fr; gap: 5rem; } }

/* Por qué: lecturas del instrumento */
.lecturas { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.lectura-item {
  display: grid; grid-template-columns: 64px 1fr; gap: 1.5rem; align-items: start;
  padding: 2rem 0; border-top: 1px solid var(--tablero-3);
}
.lectura-item:last-child { border-bottom: 1px solid var(--tablero-3); }
.lectura-item h3 { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: .5rem; }
.lectura-item p { color: var(--luz-2); margin: 0; max-width: 32rem; }
.lectura-icono { width: 64px; height: 64px; }
.lectura-icono path, .lectura-icono circle { fill: none; stroke: var(--rojo); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.lectura-grande h3 { font-size: clamp(1.8rem, 4.5vw, 3rem); }
@media (min-width: 900px) {
  .lecturas { grid-template-columns: 1.4fr 1fr 1fr; column-gap: 3rem; }
  .lectura-item { grid-template-columns: 1fr; border-bottom: 1px solid var(--tablero-3); }
}

/* Contacto */
.contacto-grilla { display: grid; gap: 3rem; }
.datos { margin: 2.5rem 0 0; display: grid; gap: 0; }
.datos div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--papel-2); }
.datos dt { font-family: var(--display); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; color: var(--gris); padding-top: .15rem; }
.datos dd { margin: 0; font-weight: 600; font-size: 1.1rem; }
.datos a { color: var(--rojo-papel); text-underline-offset: 4px; display: inline-block; min-height: 44px; line-height: 44px; margin-block: -.6rem; }
.pendiente { color: var(--gris); font-weight: 400; font-style: italic; }

.form-turno {
  display: grid; gap: .35rem;
  background: var(--tinta); color: var(--luz);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  clip-path: var(--borde-corte);
}
.form-cabeza { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.form-cabeza h3 { font-size: 1.6rem; }
.sello-demo {
  font-family: var(--display); font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--ambar); border: 1.5px solid var(--ambar); padding: .25rem .6rem; border-radius: var(--radio);
}
.form-turno label { font-weight: 600; font-size: .95rem; color: var(--luz-2); margin-top: .6rem; }
.form-turno input, .form-turno select {
  width: 100%; min-height: 48px; padding: .6rem .8rem;
  font: 400 1rem var(--texto); color: var(--luz);
  background: var(--tablero-2); border: 1px solid #3A4652; border-radius: var(--radio);
  color-scheme: dark;
}
.form-turno input:focus-visible, .form-turno select:focus-visible { outline: 3px solid var(--cian); outline-offset: 1px; border-color: var(--cian); }
.form-turno .btn { margin-top: 1.5rem; width: 100%; }
.form-aviso { min-height: 1.5em; margin: .75rem 0 0; color: var(--ambar); font-weight: 600; }
@media (min-width: 900px) { .contacto-grilla { grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; } }

/* Pie */
.pie { background: var(--tablero); border-top: 1px solid var(--tablero-3); padding: 2.5rem 0; color: var(--luz-2); font-size: .95rem; }
.pie-grilla { display: grid; gap: .75rem; }
.pie p { margin: 0; }
.pie-marca { font-family: var(--display); font-weight: 700; font-size: 1.4rem; color: var(--luz); text-transform: uppercase; letter-spacing: .06em; }
.pie-marca span { display: block; font-family: var(--texto); font-weight: 400; font-size: .9rem; text-transform: none; letter-spacing: 0; color: var(--luz-2); }
.pie a { color: var(--luz); text-underline-offset: 4px; }
@media (min-width: 800px) { .pie-grilla { grid-template-columns: 1fr auto auto; align-items: center; gap: 2.5rem; } }

/* Reveal por scroll: cada bloque se levanta como la pantalla del escáner de diagnóstico */
@keyframes levantar {
  from { opacity: 0; transform: perspective(900px) translateY(36px) rotateX(16deg); }
  to   { opacity: 1; transform: perspective(900px) translateY(0) rotateX(0); }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .revela {
      transform-origin: 50% 100%;
      animation: levantar linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 38%;
    }
    /* El tilt usa transform: una vez visible, la tarjeta queda libre para el JS */
    .tarjeta-tilt.revela { animation-fill-mode: backwards; }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
