/* ==========================================================================
   AA Punta Cana Rentals — hoja de estilo v2 (dorado)
   Sistema de color del logo: DORADO / NEGRO / BLANCO.
   Reescrita limpia (una sola capa, sin overrides apilados).
   Todos los nombres de clase e IDs los usa public/app.js y public/index.html.
   ========================================================================== */

/* ---------- 1. Tokens ---------------------------------------------------- */
:root {
  /* marca */
  --red: #c99a3a;          /* dorado del logo (metálico medio) */
  --red-dark: #8a5e12;     /* dorado profundo — hover / borde / texto sobre blanco */
  --red-tint: #f7edd6;     /* dorado muy suave (rango de calendario, hover) */
  --ink: #0b0b0f;          /* negro del logo (versión NEGRO) */
  --ink-2: #17171c;        /* superficies negras secundarias */
  --white: #ffffff;
  --paper: #f4f4f6;        /* gris muy claro para secciones */
  --paper-2: #e9e9ee;

  /* texto */
  --text: var(--ink);
  --text-muted: #5b5b63;
  --text-on-dark: #f3f3f5;
  --text-on-dark-muted: #b6b6bf;

  /* líneas */
  --line: rgba(11, 11, 15, .13);
  --line-on-dark: rgba(255, 255, 255, .16);

  /* alias defensivos: por si quedó alguna referencia vieja en el markup/JS */
  --coral: var(--red);
  --aqua: var(--red);
  --teal: var(--ink);
  --cream: var(--white);
  --sand: var(--paper);

  /* ritmo */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;
  --pad-x: clamp(22px, 9vw, 145px);   /* margen lateral de sección */

  --shadow-card: 0 22px 45px rgba(11, 11, 15, .16);
  --shadow-pop: 0 14px 30px rgba(201, 154, 58, .30);
  --radius-pill: 999px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- 2. Reset / base ------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--white);
  color: var(--text);
  font-family: Manrope, "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }

a { color: inherit; }

::selection { background: var(--red); color: var(--ink); }

/* Glow que sigue al cursor (lo mueve app.js) */
.cursor-glow {
  position: fixed;
  width: 22rem;
  height: 22rem;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(201, 154, 58, .14), transparent 66%);
  z-index: -1;
  transform: translate(-50%, -50%);
}
@media (hover: none) { .cursor-glow { display: none; } }

/* ---------- 3. Tipografía / elementos reutilizables --------------------- */
.eyebrow {
  font-family: "DM Mono", ui-monospace, monospace;
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  font-weight: 500;
  margin: 0 0 18px;
  color: var(--red-dark);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
/* filete dorado (guiño al subrayado del logo) */
.eyebrow::before {
  content: "";
  width: 26px;
  height: 2px;
  background: var(--red);
  opacity: .95;
  flex: none;
}
.fleet-section .eyebrow,
footer .eyebrow { color: #dcb75f; }
.fleet-section .eyebrow::before,
footer .eyebrow::before { background: #dcb75f; }

h1, h2 { margin: 0; font-weight: 800; letter-spacing: -.03em; line-height: .98; }

.hero h1 {
  font-size: clamp(44px, 6.4vw, 92px);
  text-transform: uppercase;
}
.section-intro h2,
.fleet-heading h2,
.experience h2,
.calendar-copy h2,
footer h2 {
  font-size: clamp(36px, 4.6vw, 66px);
  letter-spacing: -.035em;
}

/* acento cursivo + subrayado "de velocidad" */
h1 em, h2 em {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600;
  font-style: italic;
  letter-spacing: 0;
  position: relative;
  white-space: nowrap;
}
h1 em::after, h2 em::after {
  content: "";
  position: absolute;
  left: 0;
  right: -.06em;
  bottom: .06em;
  height: .12em;
  background: var(--red);
  transform: skewX(-18deg);
}

/* Botones tipo píldora (CTA principales) */
.magnetic-button,
.find-button,
.whatsapp,
.modal-submit,
.header-cta {
  --btn-bg: var(--red);
  --btn-fg: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 20px;
  justify-content: center;
  text-decoration: none;
  font-family: Manrope, sans-serif;
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .2px;
  padding: 16px 22px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--btn-bg);
  color: var(--btn-fg);
  cursor: pointer;
  will-change: transform;
  transition: transform .25s var(--ease), background .25s, box-shadow .25s, color .25s;
}
.magnetic-button { box-shadow: var(--shadow-pop); }
.magnetic-button span, .whatsapp span, .header-cta span { font-size: 17px; }
.magnetic-button:hover,
.find-button:hover,
.whatsapp:hover,
.modal-submit:hover,
.header-cta:hover {
  background: var(--ink);
  color: #fff;
  transform: translateY(-3px);
}

/* Foco visible en todo lo interactivo */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
.vehicle-select:focus-visible,
.carousel-controls button:focus-visible,
.calendar-header button:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}
.fleet-section :focus-visible,
.hero :focus-visible,
footer :focus-visible { outline-color: #fff; }

/* Animación de entrada (IntersectionObserver en app.js añade .is-visible) */
.hero-copy, .hero-note, .scroll-cue, .booking-section, .fleet-heading,
.vehicle-card, .experience-photo, .experience-copy, .calendar-copy,
.calendar-card, footer {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.hero-copy { transform: translateY(34px); }
.vehicle-card { transition-delay: calc(var(--card-index, 0) * 70ms); will-change: transform, opacity; }
.is-visible { opacity: 1 !important; transform: none !important; }

/* ---------- 4. Topbar --------------------------------------------------- */
.topbar {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 30;
  height: 82px;
  padding: 0 var(--pad-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  transition: background .35s, backdrop-filter .35s, box-shadow .35s, height .35s;
}
.topbar.is-scrolled {
  position: fixed;
  height: 66px;
  background: rgba(11, 11, 15, .9);
  backdrop-filter: blur(14px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, .28);
}
.xcr-brand { display: block; width: 215px; height: 75px; }
.xcr-brand img { width: 100%; height: 100%; object-fit: contain; object-position: left center; }
/* Logo dorado sobre fondo oscuro: no necesita halo, solo una sombra sutil. */
.topbar .xcr-brand img,
footer .xcr-brand img {
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .45));
}
.topbar nav { display: flex; gap: 30px; }
.topbar nav a {
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.2px;
  transition: color .2s;
}
.topbar nav a:hover { color: var(--red); }
.topbar.is-scrolled nav a:hover { color: #e6c877; }
.header-cta {
  padding: 12px 20px;
  font-size: 13px;
  box-shadow: 0 12px 26px rgba(201, 154, 58, .32);
}

/* ---------- 5. Hero --------------------------------------------------------- */
.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 760px;
  height: 100svh;
  max-height: 950px;
  background: var(--ink);
  color: #fff;
}
.hero-image {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(90deg, rgba(5, 5, 8, .93) 0%, rgba(8, 8, 12, .7) 45%, rgba(138, 94, 18, .35) 100%),
    linear-gradient(180deg, rgba(5, 5, 8, .55) 0%, transparent 30%, transparent 60%, rgba(5, 5, 8, .4) 100%),
    url("assets/hero-rubicon-sunset.webp") center / cover;
  transform: translate3d(0, calc(var(--hero-shift, 0px) * -1), 0) scale(1.06);
  transition: transform .12s linear;
  will-change: transform;
}
/* "sol" reconvertido en resplandor rojo */
.sun {
  position: absolute;
  right: -9vw;
  top: 12%;
  width: 46vw;
  max-width: 620px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 154, 58, .55) 0, rgba(138, 94, 18, .35) 48%, transparent 70%);
  filter: blur(10px);
  opacity: .5;
  z-index: -2;
}
/* franjas de velocidad en lugar de "olas" */
.wave {
  position: absolute;
  left: -10%;
  width: 130%;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--red), transparent);
  opacity: .5;
  z-index: -1;
}
.wave-one { bottom: 20%; transform: skewY(-3deg); }
.wave-two { bottom: 14%; left: 6%; width: 90%; opacity: .25; }

.hero-copy {
  position: absolute;
  left: var(--pad-x);
  top: 26%;
  max-width: 660px;
}
.hero .eyebrow { color: rgba(255, 255, 255, .82); }
.hero-description {
  max-width: 400px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-on-dark-muted);
  margin: 26px 0 30px;
}
.hero-note {
  position: absolute;
  right: clamp(22px, 8vw, 130px);
  bottom: 18%;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12px;
  max-width: 240px;
}
.hero-note small { display: block; opacity: .7; margin-top: 4px; }
.pulse {
  height: 9px;
  width: 9px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 5px rgba(201, 154, 58, .28);
  margin-top: 4px;
  flex: none;
}
.scroll-cue {
  position: absolute;
  bottom: 38px;
  left: var(--pad-x);
  display: flex;
  gap: 12px;
  align-items: center;
  font: 10px "DM Mono", monospace;
  letter-spacing: .7px;
}
.scroll-cue i { width: 48px; height: 1px; background: #fff; display: block; }

/* ---------- 6. Reserva --------------------------------------------------- */
.booking-section {
  padding: clamp(90px, 12vw, 130px) var(--pad-x);
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(45px, 9vw, 130px);
  align-items: end;
}
.booking-shell {
  background: var(--ink);
  color: #fff;
  padding: 30px 32px 20px;
  box-shadow: 14px 14px 0 var(--red);
}
.booking-head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 20px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line-on-dark);
  font: 500 10px "DM Mono", monospace;
  letter-spacing: 1px;
}
.booking-head p {
  margin: 0;
  font-family: Manrope, sans-serif;
  font-size: 11px;
  letter-spacing: 0;
  line-height: 1.45;
  color: var(--text-on-dark-muted);
}
.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 20px;
}
.field { display: block; }
.field > span {
  display: block;
  margin-bottom: 7px;
  font: 500 9px "DM Mono", monospace;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--text-on-dark-muted);
}
.field input,
.field select {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  font: 600 13px Manrope, sans-serif;
  padding: 12px 12px;
}
.field select { appearance: auto; }
.field input:focus,
.field select:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.find-button {
  grid-column: 1 / -1;
  justify-content: space-between;
  border-radius: 0;
  padding: 15px 18px;
}
.booking-foot { font-size: 10px; color: var(--text-on-dark-muted); margin: 18px 0 0; }
.reservation-status {
  font: 10px "DM Mono", monospace;
  line-height: 1.5;
  margin: 12px 0 0;
  min-height: 15px;
  color: var(--text-on-dark-muted);
}
.reservation-status.error { color: #ff9ea8; }
.reservation-status.success { color: #7dffa8; }

/* ---------- 7. Flota -------------------------------------------------------- */
.fleet-section {
  position: relative;
  background: var(--ink);
  color: var(--text-on-dark);
  padding: clamp(70px, 10vw, 100px) 0 clamp(60px, 8vw, 84px);
  overflow: hidden;
}
.fleet-section::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(201, 154, 58, .18) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px);
  background-size: 40px 40px;
  mask-image: linear-gradient(90deg, #000, transparent 80%);
}
.fleet-heading {
  position: relative;
  z-index: 1;
  padding: 0 var(--pad-x) 42px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
}
.fleet-heading h2 { color: #fff; }
.fleet-navigation { display: flex; align-items: center; gap: 22px; }
.fleet-count { font: 11px "DM Mono", monospace; letter-spacing: 1px; color: var(--text-on-dark-muted); }
.fleet-count b { font-size: 24px; color: #fff; }
.fleet-count span { margin-left: 4px; }
.carousel-controls { display: flex; gap: 8px; }
.carousel-controls button,
.calendar-header button {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  border: 1px solid var(--line-on-dark);
  background: transparent;
  color: #fff;
  font-size: 18px;
  cursor: pointer;
  transition: background .2s, color .2s, transform .2s;
}
.carousel-controls button:hover { background: var(--red); border-color: var(--red); color: var(--ink); }

.vehicle-track {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding: 0 var(--pad-x) 24px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.vehicle-track::-webkit-scrollbar { display: none; }

.vehicle-card {
  position: relative;
  min-width: min(370px, 82vw);
  background: linear-gradient(150deg, #fff, #f1f1f4 62%, #e3e3e8);
  padding: 12px;
  scroll-snap-align: start;
  overflow: hidden;
  transition: transform .45s var(--ease), box-shadow .45s;
}
.vehicle-card:hover { transform: translateY(-10px) scale(1.012); box-shadow: var(--shadow-card); }
.vehicle-card.active { outline: 2px solid var(--red); outline-offset: -2px; }
.vehicle-card[hidden] { display: none !important; }
.vehicle-card::before {
  content: "AA";
  position: absolute;
  right: -6px;
  top: 0;
  font: 800 128px Manrope, sans-serif;
  letter-spacing: -10px;
  line-height: .8;
  color: rgba(201, 154, 58, .10);
  pointer-events: none;
}
.vehicle-media {
  position: relative;
  height: 232px;
  background: #dcdce1;
  overflow: hidden;
}
.vehicle-media img { width: 100%; height: 100%; object-fit: cover; }
.vehicle-type {
  position: absolute;
  top: 13px;
  left: 13px;
  z-index: 2;
  background: var(--ink);
  color: #fff;
  font: 500 9px "DM Mono", monospace;
  letter-spacing: .3px;
  padding: 7px 9px;
}
.vehicle-status {
  position: absolute;
  top: 13px;
  right: 13px;
  z-index: 3;
  padding: 7px 9px;
  background: #fff;
  color: var(--ink);
  font: 700 8px "DM Mono", monospace;
  letter-spacing: .35px;
  text-transform: uppercase;
}
.vehicle-status.available { background: var(--red); color: var(--ink); }
.heart {
  position: absolute;
  right: 13px;
  bottom: 12px;
  z-index: 3;
  background: rgba(255, 255, 255, .85);
  border: 0;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  color: var(--red);
  font-size: 17px;
  cursor: pointer;
}
.vehicle-details {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 7px 10px;
}
.vehicle-details h3 { margin: 0; font-size: 18px; letter-spacing: -.5px; color: var(--ink); }
.vehicle-subtitle { margin: 3px 0 0; font-size: 11px; color: var(--text-muted); }
.price { margin: 4px 0 0; font: 600 12px "DM Mono", monospace; color: var(--ink); }
.vehicle-meta {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 11px 7px;
  font-size: 11px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  color: var(--text-muted);
}
.vehicle-select {
  width: 100%;
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border: 0;
  border-radius: var(--radius-pill);
  background: var(--red);
  color: var(--ink);
  font: 800 12px Manrope, sans-serif;
  cursor: pointer;
  transition: transform .25s var(--ease), background .25s, color .25s;
}
.vehicle-select span { font-size: 16px; }
.vehicle-select:hover { background: var(--ink); color: var(--red); transform: translateY(-3px); }

.fleet-empty {
  position: relative;
  z-index: 1;
  margin: 0 var(--pad-x) 26px;
  padding: 24px;
  background: rgba(201, 154, 58, .12);
  border: 1px solid rgba(201, 154, 58, .34);
}
.fleet-empty b { display: block; font-size: 18px; color: #fff; }
.fleet-empty span { display: block; margin-top: 6px; font: 10px "DM Mono", monospace; color: var(--text-on-dark-muted); }
.fleet-hint {
  position: relative;
  z-index: 1;
  text-align: center;
  margin: 16px 0 0;
  font: 10px "DM Mono", monospace;
  color: var(--text-on-dark-muted);
}

/* ---------- 7b. Flota: tarjetas grandes "showcase" -----------------------
   Diseño espectacular de la versión vieja (carro flotando, marca de agua),
   recoloreado al sistema blanco / rojo / negro. Botón rojo = el nuevo.
   ---------------------------------------------------------------------- */
@keyframes float-car {
  0%, 100% { transform: translateY(0) rotate(-.4deg); }
  50% { transform: translateY(-10px) rotate(.4deg); }
}

/* Cuando ya hay fechas: el botón de cada carro "late" unas veces para invitar
   a tocarlo, y la pista de abajo se pone en rojo. Lo activa/quita app.js. */
@keyframes select-invite {
  0% { box-shadow: 0 0 0 0 rgba(201, 154, 58, .55); }
  70% { box-shadow: 0 0 0 14px rgba(201, 154, 58, 0); }
  100% { box-shadow: 0 0 0 0 rgba(201, 154, 58, 0); }
}
.vehicle-select.invite { animation: select-invite 1.3s ease-out 3; }
.fleet-hint.invite {
  color: #fff;
  font-weight: 700;
  letter-spacing: .3px;
}
.fleet-hint.invite::before { content: "\2193  "; color: var(--red); }
@media (prefers-reduced-motion: reduce) {
  .vehicle-select.invite { animation: none; outline: 2px solid var(--red); outline-offset: 2px; }
}

.fleet-section .vehicle-track { gap: 30px; padding-bottom: 36px; }

.fleet-section .vehicle-card {
  min-width: min(910px, 84vw);
  height: 468px;
  padding: 28px 33px;
  display: grid;
  grid-template-columns: 38% 62%;
  grid-template-rows: auto 1fr auto;
  background: linear-gradient(125deg, #ffffff, #f1f1f4 55%, #e2e2e8);
  border: 1px solid rgba(255, 255, 255, .35);
  box-shadow: 0 26px 55px rgba(0, 0, 0, .32);
  overflow: hidden;
}
.fleet-section .vehicle-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 34px 65px rgba(0, 0, 0, .4);
}
.fleet-section .vehicle-card::before {
  content: "AA";
  right: -8px;
  top: 0;
  font: 800 clamp(96px, 15vw, 178px) Manrope, sans-serif;
  letter-spacing: -14px;
  color: rgba(201, 154, 58, .12);
}
.fleet-section .vehicle-card:nth-child(2n) { background: linear-gradient(125deg, #fafafb, #ededf1 55%, #dcdce2); }
.fleet-section .vehicle-card:nth-child(3n) { background: linear-gradient(125deg, #f4f4f6, #e7e7ec 55%, #d6d6dd); }

.fleet-section .vehicle-media {
  grid-column: 2;
  grid-row: 1 / 4;
  height: auto;
  background: transparent;
  overflow: visible;
  z-index: 1;
}
.fleet-section .vehicle-media img {
  width: 116%;
  height: 100%;
  margin-left: -8%;
  object-fit: contain;
  filter: drop-shadow(0 26px 16px rgba(11, 11, 15, .32));
  animation: float-car 5s ease-in-out infinite;
}
.fleet-section .vehicle-type {
  z-index: 2;
  background: var(--ink);
  color: #fff;
  padding: 8px 11px;
}
.fleet-section .vehicle-status { z-index: 3; }
.fleet-section .heart { display: none; }

.fleet-section .vehicle-details {
  grid-column: 1;
  align-self: end;
  display: block;
  padding: 0;
  z-index: 2;
}
.fleet-section .vehicle-details h3 {
  font-size: clamp(27px, 3vw, 42px);
  line-height: .98;
  letter-spacing: -1.8px;
  max-width: 295px;
  color: var(--ink);
}
.fleet-section .vehicle-subtitle {
  margin-top: 11px;
  font: 10px "DM Mono", monospace;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--text-muted);
}
.fleet-section .price {
  margin-top: 20px;
  font: 700 11px "DM Mono", monospace;
  color: var(--ink);
}
.fleet-section .vehicle-meta {
  grid-column: 1;
  z-index: 2;
  padding: 14px 0 11px;
  border-color: var(--line);
  color: var(--text-muted);
  gap: 10px;
}
.fleet-section .vehicle-select {
  grid-column: 1;
  z-index: 2;
  width: auto;
  align-self: end;
  margin-top: 0;
  padding: 13px 20px;
}

@media (max-width: 760px) {
  .fleet-section .vehicle-track { gap: 15px; }
  .fleet-section .vehicle-card {
    min-width: 85vw;
    height: 472px;
    padding: 21px;
    display: flex;
    flex-direction: column;
  }
  .fleet-section .vehicle-card::before { font-size: 100px; right: 0; top: 6px; letter-spacing: -8px; }
  .fleet-section .vehicle-media { order: 1; width: 100%; height: 244px; margin-top: 6px; }
  .fleet-section .vehicle-media img { width: 124%; margin-left: -12%; }
  .fleet-section .vehicle-details { order: 2; margin-top: auto; }
  .fleet-section .vehicle-details h3 { font-size: 29px; }
  .fleet-section .vehicle-meta { order: 3; margin-top: 12px; }
  .fleet-section .vehicle-select { order: 4; align-self: flex-start; margin-top: 12px; }
}

/* ---------- 8. Experiencia / Nosotros ---------------------------------- */
.experience {
  background: #fff;
  padding: clamp(76px, 11vw, 120px) var(--pad-x);
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(44px, 10vw, 150px);
  align-items: center;
}
.experience-photo {
  position: relative;
  height: 540px;
  background: url("https://images.unsplash.com/photo-1544550285-f813152fb2fd?auto=format&fit=crop&w=1200&q=85") center / cover;
}
.photo-label {
  position: absolute;
  right: 0;
  bottom: 0;
  background: var(--red);
  color: var(--ink);
  padding: 18px 22px;
  font: 700 13px Manrope, sans-serif;
}
.photo-label span { margin-left: 14px; font-size: 18px; }
.experience-copy > p:not(.eyebrow) {
  font-size: 14px;
  line-height: 1.8;
  max-width: 430px;
  margin: 28px 0 40px;
  color: var(--text-muted);
}
.numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  border-top: 1px solid var(--line);
  padding-top: 22px;
}
.numbers div { display: flex; gap: 8px; align-items: center; }
.numbers b { font: 700 25px "DM Mono", monospace; letter-spacing: -2px; color: var(--red); }
.numbers span { font-size: 9px; line-height: 1.35; color: var(--text-muted); }

/* ---------- 9. Calendario vivo --------------------------------------------- */
.calendar-section {
  background: var(--paper);
  padding: clamp(74px, 10vw, 110px) var(--pad-x);
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(40px, 10vw, 120px);
  align-items: center;
}
.calendar-copy > p:not(.eyebrow) {
  font-size: 14px;
  line-height: 1.8;
  color: var(--text-muted);
  max-width: 390px;
  margin: 26px 0;
}
.calendar-copy select {
  width: 100%;
  max-width: 370px;
  background: #fff;
  border: 1px solid var(--line);
  padding: 14px;
  color: var(--ink);
  font: 700 12px Manrope, sans-serif;
}
.legend { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 22px; }
.legend span { font-size: 10px; display: flex; align-items: center; gap: 6px; }
.legend i { width: 9px; height: 9px; border-radius: 50%; display: block; }
.available-dot { background: #fff; border: 1px solid var(--ink); }
.blocked-dot { background: #b9b9c1; }
.selected-dot { background: var(--red); }

.calendar-card { background: #fff; padding: 25px; box-shadow: 14px 14px 0 var(--red); }
.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.calendar-header h3 { margin: 0; font-size: 15px; }
.calendar-header h3::first-letter { text-transform: uppercase; }
.calendar-header button {
  width: 34px;
  height: 34px;
  font-size: 14px;
  border-color: var(--line);
  color: var(--ink);
}
.calendar-header button:hover { background: var(--ink); color: #fff; }
.calendar-weekdays,
.calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.calendar-weekdays { padding: 18px 0 10px; font: 10px "DM Mono", monospace; color: var(--text-muted); }
.calendar-days { gap: 4px; }
.day {
  height: 39px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--ink);
  font: 600 11px Manrope, sans-serif;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.day:hover:not(.disabled):not(.empty) { background: var(--red-tint); }
.day.empty { cursor: default; }
.day.disabled { color: #b0b0b8; text-decoration: line-through; cursor: not-allowed; }
.day.selected { background: var(--red); color: var(--ink); }
.day.in-range { background: var(--red-tint); border-radius: 0; }
.day.start { border-radius: 50% 0 0 50%; }
.day.end { border-radius: 0 50% 50% 0; }
.calendar-message {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: 14px;
  min-height: 33px;
  font: 10px "DM Mono", monospace;
  color: var(--text-muted);
}

/* ---------- 10. Footer -------------------------------------------------- */
footer {
  background: var(--ink);
  color: #fff;
  padding: clamp(64px, 9vw, 90px) var(--pad-x) 26px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1.8fr auto;
  align-items: start;
  gap: 24px;
  padding-bottom: clamp(48px, 8vw, 90px);
}
.footer-brand { width: 200px; height: 74px; }
.footer-top h2 { color: #fff; font-size: clamp(36px, 4vw, 60px); }
.footer-top h2 em::after { background: var(--red); }
.whatsapp { align-self: end; white-space: nowrap; }
.footer-bottom {
  border-top: 1px solid var(--line-on-dark);
  padding-top: 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 16px;
  font: 10px "DM Mono", monospace;
  color: var(--text-on-dark-muted);
}

/* ---------- 11. Barra fija móvil -------------------------------------- */
.mobile-reserve { display: none; }

/* ---------- 12. Modal de disponibilidad ------------------------------ */
.availability-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 18px;
}
.availability-modal[hidden] { display: none; }
.modal-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(4, 4, 7, .86);
  backdrop-filter: blur(8px);
  cursor: pointer;
}
.availability-dialog {
  position: relative;
  width: min(560px, 100%);
  background: #fff;
  color: var(--ink);
  padding: clamp(28px, 6vw, 48px);
  box-shadow: 14px 14px 0 var(--red);
}
.availability-dialog h2 {
  font-size: clamp(32px, 5vw, 50px);
  line-height: .98;
  margin: 0;
  max-width: 450px;
}
.availability-dialog > p:not(.eyebrow):not(.modal-feedback) {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-muted);
  margin: 18px 0 24px;
}
.modal-close {
  position: absolute;
  right: 14px;
  top: 12px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  font-size: 24px;
  cursor: pointer;
}
.modal-close:hover { background: var(--red); color: var(--ink); }
.modal-date-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.modal-date-grid label span {
  display: block;
  margin-bottom: 7px;
  font: 9px "DM Mono", monospace;
  color: var(--text-muted);
}
.modal-date-grid input {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  padding: 11px;
  font: 700 12px Manrope, sans-serif;
}
.modal-date-grid input:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.modal-feedback { min-height: 18px; margin: 13px 0 2px; color: #c3442d; font: 10px "DM Mono", monospace; }
.modal-submit { width: 100%; justify-content: space-between; border-radius: 0; padding: 15px 18px; }
body.modal-open { overflow: hidden; }

/* ---------- 13. Autocompletar ubicación ----------------------------- */
.location-autocomplete { position: relative; }
.location-autocomplete input { padding-right: 34px; }
.location-autocomplete::after {
  content: "\2315";
  position: absolute;
  right: 11px;
  top: 10px;
  color: var(--ink);
  font-size: 18px;
  pointer-events: none;
}
.location-suggestions {
  display: none;
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  right: 0;
  z-index: 40;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 9px 20px rgba(11, 11, 15, .28);
  max-height: 210px;
  overflow-y: auto;
}
.location-suggestions.is-open { display: block; }
.location-option {
  appearance: none;
  width: 100%;
  text-align: left;
  background: #fff;
  border: 0;
  border-bottom: 1px solid var(--paper-2);
  padding: 10px 11px;
  cursor: pointer;
  color: var(--ink);
}
.location-option:hover,
.location-option:focus { background: var(--red-tint); outline: 0; }
.location-option b { display: block; font: 700 11px Manrope, sans-serif; }
.location-option small { display: block; margin-top: 3px; font: 9px "DM Mono", monospace; color: var(--text-muted); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.location-status { padding: 12px 11px; font: 10px "DM Mono", monospace; color: var(--text-muted); }
.location-credit { display: block; margin-top: 7px; font: 8px "DM Mono", monospace; color: #9a9aa3; }

/* ---------- 14. Responsive ------------------------------------------------ */
@media (max-width: 1080px) {
  .booking-section,
  .experience,
  .calendar-section { grid-template-columns: 1fr; }
  .section-intro { margin-bottom: 8px; }
}

@media (max-width: 760px) {
  body { font-size: 14px; }
  .topbar { height: 64px; padding: 0 18px; }
  .topbar nav { display: none; }
  .xcr-brand { width: 175px; height: 62px; }
  .header-cta { font-size: 12px; padding: 10px 15px; }
  .header-cta span { font-size: 14px; }

  .hero { min-height: 640px; }
  .hero-image { background-position: 57% center; }
  .hero-copy { left: 20px; right: 20px; top: 22%; }
  .hero-description { max-width: 100%; margin: 20px 0 26px; }
  .hero-note { left: 20px; right: auto; bottom: 16%; }
  .scroll-cue { left: 20px; bottom: 20px; }

  .booking-section { padding: 72px 20px; }
  .booking-shell { padding: 22px 18px 16px; box-shadow: 8px 8px 0 var(--red); }
  .booking-head p { display: none; }
  .booking-grid { grid-template-columns: 1fr; gap: 14px; }

  .fleet-section { padding: 64px 0 54px; }
  .fleet-heading { padding: 0 20px 30px; }
  .fleet-navigation { gap: 10px; }
  .fleet-count { display: none; }
  .carousel-controls { display: none; }
  .vehicle-track { padding: 0 20px 18px; gap: 14px; }
  .vehicle-card { min-width: 84vw; }
  .vehicle-media { height: 210px; }
  .fleet-empty { margin: 0 20px 24px; }

  .experience { padding: 72px 20px; gap: 40px; }
  .experience-photo { height: 420px; }
  .numbers { gap: 14px; justify-content: space-between; }
  .numbers b { font-size: 21px; }

  .calendar-section { padding: 70px 20px; }
  .calendar-card { padding: 19px; box-shadow: 8px 8px 0 var(--red); }
  .day { height: 37px; }

  .footer-top { grid-template-columns: 1fr; padding-bottom: 44px; }
  .footer-brand { width: 176px; height: 65px; }
  .footer-top h2 { margin: 36px 0 24px; }
  .whatsapp { align-self: start; }
  .footer-bottom { gap: 12px 20px; }

  .availability-modal { align-items: end; padding: 0; }
  .availability-dialog { width: 100%; padding: 30px 20px 26px; box-shadow: 0 -8px 0 var(--red); max-height: 92svh; overflow: auto; }
  .modal-date-grid { grid-template-columns: 1fr; }

  .mobile-reserve {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px 11px 16px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: 0 14px 34px rgba(11, 11, 15, .2);
  }
  .mobile-reserve span { display: flex; flex-direction: column; font-size: 11px; min-width: 0; }
  .mobile-reserve b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mobile-reserve small {
    font-size: 9px;
    color: var(--text-muted);
    margin-top: 3px;
    line-height: 1.35;
  }
  .mobile-reserve.ready b { color: var(--red-dark); }
  .mobile-reserve.ready small { color: var(--ink); }
  .mobile-reserve a {
    flex: none;
    text-decoration: none;
    color: var(--ink);
    background: var(--red);
    font: 800 11px Manrope, sans-serif;
    padding: 12px 15px;
    border-radius: var(--radius-pill);
  }
  .mobile-reserve i { font-style: normal; font-size: 15px; margin-left: 7px; }
}

/* ---------- 15. Reducir movimiento ---------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .hero-copy, .hero-note, .scroll-cue, .booking-section, .fleet-heading,
  .vehicle-card, .experience-photo, .experience-copy, .calendar-copy,
  .calendar-card, footer { opacity: 1 !important; transform: none !important; }
  .hero-image { transform: none !important; }
}
