/* ==========================================================================
   ckd-page.css — estilo de páginas de servicio, igual al de la sección
   "Una impresora. Tres servicios incluidos." del inicio:
   neutro tipo Apple (gris #f5f5f7, tinta #1d1d1f, gris #6e6e73), titulares
   en Archivo expandida, placas blancas redondeadas con sombra suave y el
   azul de la marca solo en acciones. Todo va bajo body.rp para no chocar
   con style-landing.css.

   Movimiento (ckd-page.js): html.rp-motion = escritorio con movimiento
   permitido. Sin esa clase todo se ve estático y completo.
   ========================================================================== */
.rp{
  --rp-bg:#ffffff; --rp-soft:#f5f5f7; --rp-ink:#1d1d1f; --rp-dim:#6e6e73; --rp-line:rgba(0,0,0,.08);
  --rp-blue:#2563eb; --rp-blue-dark:#1d4ed8;
  --rp-display:'Archivo', 'Arial Black', system-ui, sans-serif;
  --rp-ease:cubic-bezier(0.23, 1, 0.32, 1);
  font-family:'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color:var(--rp-ink); background:var(--rp-bg);
  -webkit-font-smoothing:antialiased;
}
html, body.rp{ overflow-x:clip; }

/* ---------- Tipografía ---------- */
.rp .rp-display, .rp .rp-h2, .rp .rp-h3, .rp .rp-plate-name{
  font-family:var(--rp-display); font-weight:600; font-variation-settings:'wdth' 125;
  letter-spacing:-.035em; line-height:1.03; color:var(--rp-ink); margin:0;
}
.rp .rp-display{ font-size:clamp(2.6rem, 6.4vw, 5.4rem); }
.rp .rp-display span, .rp .rp-h2 span{ color:var(--rp-dim); }
.rp .rp-h2{ font-size:clamp(2rem, 4.2vw, 3.6rem); }
.rp .rp-h3{ font-size:clamp(1.4rem, 2.2vw, 1.9rem); letter-spacing:-.025em; }
.rp .rp-lead, .rp .rp-p-lead{ color:var(--rp-dim); font-size:clamp(1.08rem, 1.5vw, 1.3rem); line-height:1.45; max-width:40ch; }
.rp .rp-lead{ margin:1.4rem auto 0; }
.rp .rp-p-lead{ margin:1rem 0 0; }

/* ---------- Botones ---------- */
.rp .rp-btn{
  display:inline-flex; align-items:center; gap:.5rem; border:0; cursor:pointer;
  background:var(--rp-blue); color:#fff; font-weight:700; font-size:1rem; text-decoration:none;
  padding:.85rem 1.5rem; border-radius:999px;
  transition:background-color 160ms ease, transform 160ms var(--rp-ease);
}
.rp .rp-btn:hover{ background:var(--rp-blue-dark); color:#fff; }
.rp .rp-btn:active{ transform:scale(.97); }
.rp .rp-btn-ghost{ background:transparent; color:var(--rp-ink); box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.18); }
.rp .rp-btn-ghost:hover{ background:rgba(0,0,0,.04); color:var(--rp-ink); }
.rp .rp-link{ color:var(--rp-blue); font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:.4rem; }
.rp .rp-link i{ transition:transform 200ms var(--rp-ease); }
.rp .rp-link:hover i{ transform:translateX(3px); }
.rp .rp-actions{ display:flex; flex-wrap:wrap; gap:1rem 1.75rem; align-items:center; justify-content:center; margin-top:2rem; }

/* ---------- Secciones ---------- */
.rp .rp-sec{ padding:clamp(4.5rem, 9vw, 8rem) 0; background:var(--rp-bg); }
.rp .rp-soft{ background:var(--rp-soft); }
.rp .rp-head{ text-align:center; max-width:52rem; margin:0 auto clamp(2.5rem, 5vw, 4rem); }
.rp .rp-head .rp-p-lead{ margin-left:auto; margin-right:auto; }
.rp .rp-note{ text-align:center; color:var(--rp-dim); font-size:.85rem; margin:2rem 0 0; }

/* ---------- Placas y tarjetas ---------- */
.rp .rp-grid{ display:grid; gap:1.25rem; }
.rp .rp-grid-2{ grid-template-columns:repeat(2, 1fr); gap:1.5rem; }
.rp .rp-grid-3{ grid-template-columns:repeat(3, 1fr); }
.rp .rp-grid-4{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:991.98px){ .rp .rp-grid-3, .rp .rp-grid-4{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:767.98px){ .rp .rp-grid-2, .rp .rp-grid-3, .rp .rp-grid-4{ grid-template-columns:1fr; } }

.rp .rp-plate, .rp .rp-card{
  background:#fff; color:var(--rp-ink); border-radius:24px; border:1px solid var(--rp-line);
  box-shadow:0 1px 1px rgba(0,0,0,.03), 0 30px 60px -36px rgba(0,0,0,.28);
  padding:clamp(1.5rem, 2.4vw, 2.1rem); text-decoration:none; display:block;
}
.rp .rp-soft .rp-plate, .rp .rp-soft .rp-card{ border-color:transparent; }
.rp a.rp-plate{ transition:transform 300ms var(--rp-ease), box-shadow 300ms var(--rp-ease); }
@media (hover:hover) and (pointer:fine){
  .rp a.rp-plate:hover{ transform:translateY(-4px); box-shadow:0 1px 1px rgba(0,0,0,.03), 0 40px 70px -36px rgba(0,0,0,.34); color:var(--rp-ink); }
}
.rp .rp-plate-name{ display:block; font-size:clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom:.75rem; }
.rp .rp-plate p, .rp .rp-card p{ color:var(--rp-dim); line-height:1.5; margin:0; }
.rp .rp-more{ display:inline-flex; gap:.4rem; align-items:center; margin-top:1.25rem; color:var(--rp-blue); font-weight:700; }
.rp .rp-card i{ font-size:1.6rem; color:var(--rp-ink); display:block; margin-bottom:1rem; }
.rp .rp-card h3{ font-size:1.08rem; font-weight:700; margin:0 0 .4rem; }
.rp .rp-card p{ font-size:.95rem; }

/* ---------- Hero de renta (landing de Google Ads) ----------
   Texto a la izquierda (visible desde el primer pintado); a la derecha un bloque azul
   a sangre con la impresora, y la hoja "impresa" con lo incluido. La hoja usa
   container queries: todo su contenido escala con su ancho. */
.rp .rp-hx{ position:relative; overflow:hidden; background:var(--rp-bg);
  min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center; padding:clamp(2rem, 4vh, 3rem) 0; }
.rp .rp-hx-panel{ position:absolute; top:clamp(1rem, 3vh, 1.75rem); bottom:clamp(1rem, 3vh, 1.75rem); left:54%; right:0;
  border-radius:44px 0 0 44px;
  background:radial-gradient(70% 62% at 60% 40%, #3b82f6 0%, #2563eb 50%, #1e40af 100%); }
.rp .rp-hx-grid{ position:relative; display:grid; grid-template-columns:minmax(0, 1.05fr) minmax(0, 1fr);
  gap:clamp(1.5rem, 4vw, 4rem); align-items:center; width:100%; }
.rp .rp-hx-title{ font-size:clamp(2.5rem, min(4.6vw, 9.2vh), 5.2rem); line-height:1; }
.rp .rp-hx-copy .rp-lead{ margin:1.5rem 0 0; max-width:36ch; }
.rp .rp-hx-copy .rp-actions{ justify-content:flex-start; gap:.75rem; margin-top:2rem; }
.rp .rp-hx-trust{ list-style:none; padding:0; margin:2rem 0 0; display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; font-weight:600; font-size:.95rem; }
.rp .rp-hx-trust li{ display:flex; align-items:center; gap:.45rem; }
.rp .rp-hx-trust i{ color:var(--rp-blue); font-size:1.1rem; }

.rp .rp-hx-art{ position:relative; height:min(76vh, 720px); min-height:470px; }
.rp .rp-hx-printer{ position:absolute; bottom:5%; right:10%; height:90%; width:auto; max-width:none; z-index:1; }
.rp .rp-hx-shadow{ position:absolute; bottom:3%; right:4%; width:58%; height:7%; border-radius:50%; z-index:0;
  background:radial-gradient(closest-side, rgba(6,18,66,.6), rgba(6,18,66,0)); }

/* La hoja */
.rp .rp-hx-float{ position:absolute; left:-6%; bottom:8%; width:min(50%, 330px); z-index:3; container-type:inline-size; }
.rp .rp-hx-sheet{ position:relative; aspect-ratio:8.5 / 11; background:#fff; color:var(--rp-ink); border-radius:1.6cqw;
  padding:8cqw 8cqw 7cqw; display:flex; flex-direction:column; transform:rotate(-4deg);
  box-shadow:0 1px 2px rgba(0,0,0,.08), 0 3cqw 6cqw -1cqw rgba(6,18,66,.22), 0 16cqw 26cqw -8cqw rgba(6,18,66,.55); }
.rp .rp-hx-sh-top{ display:flex; align-items:center; justify-content:space-between; gap:2cqw;
  padding-bottom:4cqw; border-bottom:.5cqw solid var(--rp-line); font-size:3.6cqw; color:var(--rp-dim); font-weight:600; }
.rp .rp-hx-sh-top img{ height:6.4cqw; width:auto; }
.rp .rp-hx-sh-title{ font-family:var(--rp-display); font-weight:700; font-variation-settings:'wdth' 125; letter-spacing:-.03em;
  font-size:7.6cqw; line-height:1.05; margin:6cqw 0 4cqw; }
.rp .rp-hx-sh-list{ list-style:none; padding:0; margin:0; display:grid; gap:2.9cqw; font-size:4.3cqw; }
.rp .rp-hx-sh-list li{ display:flex; align-items:baseline; gap:1.6cqw; }
.rp .rp-hx-sh-list li span{ white-space:nowrap; font-weight:600; }
.rp .rp-hx-sh-list li i{ flex:1; min-width:3cqw; border-bottom:.55cqw dotted rgba(0,0,0,.28); transform:translateY(-.3em); }
.rp .rp-hx-sheet b{ display:inline-block; color:var(--rp-blue); font-weight:800; }
.rp .rp-hx-sh-total{ margin-top:auto; padding-top:3.4cqw; border-top:.7cqw solid var(--rp-ink);
  display:flex; justify-content:space-between; align-items:baseline; font-size:4.6cqw; font-weight:700; }
.rp .rp-hx-stamp{ position:absolute; right:7cqw; bottom:20.5cqw; transform:rotate(-12deg); pointer-events:none;
  font-family:var(--rp-display); font-weight:700; font-variation-settings:'wdth' 125; letter-spacing:-.02em; font-size:6.2cqw; line-height:1;
  color:var(--rp-blue); border:.9cqw solid currentColor; border-radius:2.4cqw; padding:2cqw 3.2cqw; opacity:.95;
  background:rgba(255,255,255,.55); }

/* Estado inicial de la intro (solo la parte visual; el texto nunca se oculta) */
.rp-hx-intro .rp .rp-hx-panel{ clip-path:inset(0% 0% 0% 100%); }
.rp-hx-intro .rp .rp-hx-shadow, .rp-hx-intro .rp .rp-hx-stamp,
.rp-hx-intro .rp .rp-hx-sheet b{ opacity:0; }
.rp-hx-intro .rp .rp-hx-sheet{ visibility:hidden; }

/* Tablet y celular: título → escena → botones → texto, para que la escena y el botón
   de WhatsApp queden en la primera pantalla (la mayoría del tráfico de Ads es móvil).
   El panel azul pasa a ser el fondo de la escena (::before), sin la cortina de entrada. */
@media (max-width:991.98px){
  .rp .rp-hx{ min-height:0; display:block; padding:1.75rem 0 2.5rem; }
  .rp .rp-hx-panel{ display:none; }
  .rp .rp-hx-grid{ display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .rp .rp-hx-copy{ display:contents; }
  .rp .rp-hx-title{ order:1; font-size:clamp(2.3rem, 9.4vw, 4.2rem); }
  .rp .rp-hx-art{ order:2; height:clamp(330px, 64vw, 540px); min-height:0; margin-top:1.25rem; }
  .rp .rp-hx-copy .rp-actions{ order:3; margin-top:1.25rem; }
  .rp .rp-hx-copy .rp-lead{ order:4; margin-top:1.25rem; font-size:1.02rem; }
  .rp .rp-hx-trust{ order:5; margin-top:1.1rem; }
  .rp .rp-hx-art::before{ content:''; position:absolute; top:0; bottom:0; left:clamp(18%, 22vw, 30%); right:calc(var(--bs-gutter-x, 1.5rem) * -.5);
    border-radius:28px 0 0 28px; background:radial-gradient(70% 62% at 60% 40%, #3b82f6 0%, #2563eb 50%, #1e40af 100%); }
  .rp .rp-hx-printer{ right:6%; bottom:5%; height:90%; }
  .rp .rp-hx-shadow{ right:0; bottom:3%; }
  .rp .rp-hx-float{ left:0; bottom:6%; width:min(54%, 300px); }
}
@media (max-width:575.98px){
  .rp .rp-hx-copy .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-hx-copy .rp-actions .rp-btn{ justify-content:center; }
  .rp .rp-hx-trust{ gap:.5rem 1.2rem; font-size:.9rem; }
  .rp .rp-hx-printer{ right:2%; }
  .rp .rp-hx-float{ left:2%; width:56%; }
}

/* ---------- 365 ---------- */
.rp .rp-365{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(2rem, 5vw, 5rem); align-items:center; }
.rp .rp-365-num{ font-family:var(--rp-display); font-weight:700; font-variation-settings:'wdth' 125; letter-spacing:-.06em;
  font-size:clamp(6rem, 17vw, 15rem); line-height:.85; text-align:center; color:var(--rp-ink); font-variant-numeric:tabular-nums; }
.rp .rp-checks{ list-style:none; padding:0; margin:2rem 0 0; display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; }
.rp .rp-checks li{ padding:.95rem 0; border-top:1px solid var(--rp-line); display:flex; gap:.7rem; align-items:center; font-weight:600; }
.rp .rp-checks i{ font-size:1.15rem; color:var(--rp-blue); }
@media (max-width:767.98px){ .rp .rp-365{ grid-template-columns:1fr; } .rp .rp-checks{ grid-template-columns:1fr; } }

/* ---------- Proceso ---------- */
.rp .rp-steps{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:2rem; position:relative; }
.rp .rp-step{ position:relative; z-index:1; text-align:center; padding:0 1rem; }
.rp .rp-step-n{ display:grid; place-items:center; width:64px; height:64px; margin:0 auto 1.25rem; border-radius:50%;
  background:#fff; box-shadow:inset 0 0 0 2px var(--rp-line); font-family:var(--rp-display); font-weight:700; font-size:1.4rem;
  transition:background-color 300ms ease, color 300ms ease, box-shadow 300ms ease; }
.rp .rp-step.is-on .rp-step-n{ background:var(--rp-ink); color:#fff; box-shadow:none; }
.rp .rp-step h3{ font-size:1.2rem; font-weight:700; margin:0 0 .4rem; }
.rp .rp-step p{ color:var(--rp-dim); margin:0 auto; max-width:28ch; }
.rp .rp-steps-line{ position:absolute; left:16.66%; right:16.66%; top:32px; height:2px; background:var(--rp-line); z-index:0; }
.rp .rp-steps-line i{ display:block; height:100%; background:var(--rp-ink); transform-origin:0 50%; transform:scaleX(1); }
@media (max-width:767.98px){ .rp .rp-steps{ grid-template-columns:1fr; } .rp .rp-steps-line{ display:none; } .rp .rp-step-n{ background:var(--rp-ink); color:#fff; } }

/* ---------- Dos formas ---------- */
.rp .rp-plate-lg{ padding:clamp(1.8rem, 3vw, 2.8rem); }
.rp .rp-tag{ display:inline-block; font-size:.82rem; font-weight:700; color:var(--rp-dim); margin-bottom:.9rem; }
.rp .rp-list{ list-style:none; padding:0; margin:1.5rem 0 0; }
.rp .rp-list li{ padding:.8rem 0; border-top:1px solid var(--rp-line); }
.rp .rp-list li::before{ content:'\F26E'; font-family:'bootstrap-icons'; color:var(--rp-blue); margin-right:.6rem; }
.rp .rp-pay{ margin:1.25rem 0 0 !important; color:var(--rp-ink) !important; font-weight:700; display:flex; gap:.5rem; align-items:center; }

/* ---------- Cotizador (estilos base en style-landing.css #cotizador) ---------- */
.rp #cotizador{ background:var(--rp-bg); }
.rp .rp-plate-calc{ max-width:62rem; margin:0 auto; }
.rp #cotizador .nav-pills{ background:var(--rp-soft); border-radius:999px; padding:.3rem; display:inline-flex; margin:0 auto 2rem; }
.rp #cotizador #cotizadorTabs{ display:flex; width:max-content; max-width:100%; }
.rp #cotizador .nav-pills .nav-link{ border-radius:999px; color:var(--rp-ink); font-weight:700; padding:.6rem 1.3rem; background:transparent; }
.rp #cotizador .nav-pills .nav-link.active{ background:#fff; color:var(--rp-ink); box-shadow:0 2px 10px rgba(0,0,0,.08); }
.rp #cotizador .cotizador-total{ background:var(--rp-soft); border:0; border-radius:20px; }
.rp #cotizador .cotizador-total h4{ color:var(--rp-dim); font-size:.95rem; font-weight:600; }
.rp #cotizador .cotizador-total .price{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; color:var(--rp-ink); letter-spacing:-.03em; }
.rp #cotizador .btn{ border-radius:999px; padding:.7rem 1.4rem; font-weight:700; }
.rp #cotizador .btn-primary{ background:var(--rp-blue); border-color:var(--rp-blue); }

/* ---------- Marcas ---------- */
.rp .rp-brands{ display:grid; grid-template-columns:repeat(6, minmax(0, 1fr)); gap:1rem; }
.rp .rp-brand{ background:#fff; border-radius:18px; height:104px; display:grid; place-items:center; padding:1rem; }
.rp .rp-brand img{ max-width:min(120px, 100%); max-height:44px; width:auto; height:auto; filter:grayscale(1); opacity:.75; transition:filter 200ms ease, opacity 200ms ease; }
.rp .rp-brand:hover img{ filter:none; opacity:1; }
@media (max-width:991.98px){ .rp .rp-brands{ grid-template-columns:repeat(3, minmax(0, 1fr)); } }
@media (max-width:575.98px){ .rp .rp-brands{ gap:.6rem; } .rp .rp-brand{ height:78px; padding:.75rem; border-radius:14px; } }

/* ---------- FAQ ---------- */
.rp .rp-faq{ max-width:48rem; margin:0 auto; }
.rp .rp-faq details{ background:#fff; border-radius:18px; padding:1.25rem 1.5rem; }
.rp .rp-faq details + details{ margin-top:.75rem; }
.rp .rp-faq summary{ cursor:pointer; list-style:none; font-weight:700; font-size:1.05rem; display:flex; justify-content:space-between; gap:1rem; }
.rp .rp-faq summary::-webkit-details-marker{ display:none; }
.rp .rp-faq summary::after{ content:'+'; font-weight:400; font-size:1.5rem; line-height:1; color:var(--rp-dim); transition:transform 200ms var(--rp-ease); }
.rp .rp-faq details[open] summary::after{ transform:rotate(45deg); }
.rp .rp-faq details p{ color:var(--rp-dim); margin:.75rem 0 0; }

/* ---------- Contacto ---------- */
.rp .rp-contact{ list-style:none; padding:0; margin:0 0 1.25rem; display:grid; gap:.8rem; font-weight:600; }
.rp .rp-contact i{ color:var(--rp-blue); margin-right:.5rem; }
.rp .rp-contact a{ color:var(--rp-ink); }
.rp .rp-map{ border-radius:16px; overflow:hidden; }
.rp .contact-block.rp-plate{ box-shadow:0 1px 1px rgba(0,0,0,.03), 0 30px 60px -36px rgba(0,0,0,.28); }
.rp .contact-block .form-control{ border-radius:12px; background:var(--rp-soft); border:1px solid transparent; padding:.8rem 1rem; }
.rp .contact-block .form-control:focus{ background:#fff; border-color:rgba(37,99,235,.4); box-shadow:0 0 0 .25rem rgba(37,99,235,.12); }
.rp .contact-block .form-label{ font-weight:700; font-size:.92rem; }

/* ---------- Estado inicial de las revelaciones (solo con movimiento) ---------- */
.rp-motion .rp .rp-reveal, .rp-motion .rp .rp-card, .rp-motion .rp .rp-from-left, .rp-motion .rp .rp-from-right{ opacity:0; }
.rp-motion .rp .rp-steps-line i{ transform:scaleX(0); }

/* El panel de cada pestaña ya va dentro de la placa: sin segunda tarjeta */
.rp #cotizador .tab-pane{ background:transparent; border:0; box-shadow:none; padding:0; }
.rp #cotizador .tab-content{ background:transparent; border:0; box-shadow:none; padding:0; }

/* Carrusel de clientes: mismo tamaño de logo en todas las páginas */
.rp .logo-swiper img{ height:40px; width:auto; filter:grayscale(1); opacity:.85; }
.rp .logo-swiper img:hover{ filter:none; opacity:1; }

/* ---------- Inicio: Acerca de + botón deshabilitado (espera Turnstile) ---------- */
.rp .rp-about{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(1.5rem, 5vw, 5rem); align-items:start; }
.rp .rp-about .rp-p-lead{ margin-top:0; max-width:46ch; }
.rp .rp-about .rp-p-lead strong{ color:var(--rp-ink); }
@media (max-width:767.98px){ .rp .rp-about{ grid-template-columns:1fr; } }
.rp .rp-btn:disabled{ opacity:.45; cursor:not-allowed; transform:none; }
.rp .rp-btn:disabled:hover{ background:var(--rp-blue); }
#contacto.rp .rp-head .rp-p-lead{ max-width:54ch; }

/* ---------- Pasos con 4 columnas (inicio) + FAQ sobre fondo blanco ---------- */
.rp .rp-steps-4{ grid-template-columns:repeat(4, 1fr); gap:1.5rem; }
.rp .rp-steps-4 .rp-steps-line{ left:12.5%; right:12.5%; }
@media (max-width:991.98px){ .rp .rp-steps-4{ grid-template-columns:repeat(2, 1fr); row-gap:2.5rem; } .rp .rp-steps-4 .rp-steps-line{ display:none; } .rp .rp-steps-4 .rp-step-n{ background:var(--rp-ink); color:#fff; } }
@media (max-width:767.98px){ .rp .rp-steps-4{ grid-template-columns:1fr; } }
.rp .rp-sec:not(.rp-soft) .rp-faq details{ background:var(--rp-soft); }
.rp .rp-head .rp-p-lead{ text-wrap:balance; }
.rp-motion .rp .rp-h2 span{ display:inline-block; }  /* para que la 2a línea del título pueda subir */

/* ======================= COPIX (copix.php) — hero "flota + zoom a la pantalla" =======================
   Texto a la izquierda; a la derecha, a sangre, la flota (Canon, Ricoh, Sharp) sobre un piso
   blanco de estudio. .rp-fl-cam es la "cámara": el JS (heroFleet) la lanza hacia la pantalla
   de la Ricoh, que se enciende con COPIX, y regresa a la flota. */
.rp .rp-fl{ position:relative; overflow:hidden; background:var(--rp-soft); min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center; }
.rp .rp-fl::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:clamp(34px, 5.5vh, 56px); background:#fff; }
.rp .rp-fl-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-fl-copy{ position:relative; z-index:3; width:min(46%, 620px); }
.rp .rp-fl-logo{ display:block; width:clamp(140px, 11vw, 180px); height:auto; margin:0 0 clamp(1rem, 2.4vh, 1.6rem); }
.rp .rp-fl-title{ font-size:clamp(2.5rem, min(4.2vw, 8.4vh), 5rem); line-height:.98; }
.rp .rp-fl .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:38ch; }
.rp .rp-fl .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

/* escenario a sangre */
.rp .rp-fl-stage{ position:absolute; z-index:1; top:0; bottom:0; left:44%; right:0; overflow:hidden; container-type:size; }
.rp .rp-fl-cam{ position:absolute; inset:0; transform-origin:0 0; }
/* .rp-fl-dev: ancho 0 en el centro de la impresora (lo anima GSAP); .rp-fl-body: la impresora centrada */
.rp .rp-fl-dev{ position:absolute; bottom:clamp(17px, 2.75vh, 28px); width:0; }
.rp .rp-fl-body{ position:absolute; left:0; bottom:0; height:100%; translate:-50% 0; }
.rp .rp-fl-body img{ display:block; height:100%; width:auto; max-width:none; position:relative; z-index:1; }
.rp .rp-fl-body::after{ content:''; position:absolute; left:-12%; right:-12%; bottom:-5%; height:9%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(0,0,0,.2), rgba(0,0,0,0)); }
.rp .rp-fl-canon{ left:20%; height:min(56%, 50cqw); }   /* el tope por ancho evita que se encimen en pantallas angostas */
.rp .rp-fl-ricoh{ left:50%; height:min(70%, 54cqw); }
.rp .rp-fl-sharp{ left:80%; height:min(42%, 32cqw); }

/* etiquetas de estado */
/* .rp-fl-tag centra la etiqueta (translate de CSS); .rp-fl-chip es la tarjeta que anima GSAP */
.rp .rp-fl-tag{ position:absolute; z-index:3; left:50%; bottom:calc(100% + 12px); translate:-50% 0; width:max-content; }
.rp .rp-fl-chip{ min-width:150px;
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:6px 14px; text-align:left;
  background:#fff; border-radius:14px; padding:10px 14px 12px; font-size:13px;
  box-shadow:0 1px 2px rgba(0,0,0,.06), 0 14px 30px -14px rgba(6,18,66,.35); }
.rp .rp-fl-name{ display:inline-flex; align-items:center; gap:7px; font-weight:700; color:var(--rp-ink); }
.rp .rp-fl-dot{ width:7px; height:7px; border-radius:50%; background:#22c55e; flex:none; animation:rp-fl-dot 2.2s ease-out infinite; }
@keyframes rp-fl-dot{ 0%{ box-shadow:0 0 0 0 rgba(34,197,94,.55); } 70%{ box-shadow:0 0 0 6px rgba(34,197,94,0); } 100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); } }
.rp .rp-fl-chip > b{ font-family:var(--rp-display); font-weight:700; font-variation-settings:'wdth' 125; font-size:17px; font-variant-numeric:tabular-nums; }
.rp .rp-fl-bar{ grid-column:1 / -1; display:block; height:5px; border-radius:99px; background:#e8ebf0; overflow:hidden; }
.rp .rp-fl-bar > i{ display:block; height:100%; border-radius:inherit; background:var(--rp-blue); }
.rp .rp-fl-ricoh .rp-fl-bar > i{ width:12%; background:#f59e0b; }
.rp .rp-fl-ricoh .rp-fl-chip{ min-width:200px; font-size:14px; padding:12px 16px 14px; }
.rp .rp-fl-ricoh .rp-fl-chip > b{ font-size:22px; }
.rp .rp-fl-alert{ grid-column:1 / -1; display:flex; align-items:center; gap:7px; margin-top:4px; padding:7px 10px; border-radius:10px;
  background:#eff4ff; color:var(--rp-ink); font-weight:700; font-size:13px; }
.rp .rp-fl-alert i{ color:var(--rp-blue); font-size:15px; }

/* pantalla táctil de la Ricoh: solo el área de la pantalla (medida fila por fila en la foto: interior del marco px 208–408 × 203–296 de 520×1050, + medio px bajo el marco:
   39.95 % / 19.29 %, 38.75 × 9.05 %), dejando ver el marco negro. Diseñada como app del panel (barra de estado,
   mosaico con ícono, barra inferior), con el azul del LCD original y vidrio encima para que parezca la pantalla real.
   Las medidas internas van en cqw/cqh de la pantalla (por eso el contenido vive en .rp-fl-scr-in). */
.rp .rp-fl-screen{ position:absolute; z-index:2; left:39.95%; top:19.29%; width:38.75%; height:9.05%; container-type:size;
  overflow:hidden; border-radius:1px; color:#fff; text-align:left;
  font-family:'Manrope', system-ui, sans-serif; font-variation-settings:normal; letter-spacing:0;
  /* azul del LCD de la foto: oscuro arriba, más claro abajo con la franja de luz antes de la barra inferior */
  background:linear-gradient(to bottom, #0c2878 0%, #133fae 40%, #1f5bd6 70%, #3d86ec 82%, #8fc0f7 86%, #2a64d8 88%, #1747b8 100%); }
.rp .rp-fl-scr-in{ position:absolute; inset:0; display:flex; flex-direction:column;
  text-shadow:0 0 1.2cqh rgba(170,210,255,.35); }               /* leve resplandor del LCD */
.rp .rp-fl-scr-status, .rp .rp-fl-scr-foot{ display:flex; justify-content:space-between; align-items:center; flex:none; padding:0 2.6cqw;
  font-size:6.4cqh; font-weight:600; line-height:1; color:rgba(255,255,255,.82); }
.rp .rp-fl-scr-status{ height:11cqh; background:rgba(4,12,40,.55); }
.rp .rp-fl-scr-status i{ font-size:6cqh; }
.rp .rp-fl-scr-foot{ height:12cqh; background:rgba(4,12,40,.78); }
.rp .rp-fl-scr-foot > span:last-child{ display:inline-flex; align-items:center; gap:1.2cqw; }
.rp .rp-fl-scr-led{ width:4cqh; height:4cqh; border-radius:50%; background:#4ade80; box-shadow:0 0 2cqh #4ade80; }
.rp .rp-fl-scr-main{ flex:1; display:flex; align-items:center; gap:4cqw; padding:0 4.5cqw; min-height:0; }
/* mosaico como los íconos de la app de Ricoh: blanco, redondeado, con sombra */
.rp .rp-fl-scr-tile{ flex:none; width:34cqh; height:34cqh; border-radius:22%; display:grid; place-items:center;
  background:linear-gradient(#ffffff, #dfe8f7); box-shadow:0 1.2cqh 2.4cqh rgba(0,0,0,.35); text-shadow:none; }
.rp .rp-fl-scr-tile i{ font-size:20cqh; line-height:1; color:#1d4ed8; }
.rp .rp-fl-scr-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3.4cqh; }
.rp .rp-fl-scr-lbl{ font-size:7.6cqh; font-weight:600; line-height:1; color:rgba(255,255,255,.88); white-space:nowrap; }
.rp .rp-fl-scr-row{ display:flex; align-items:center; gap:3cqw; }
.rp .rp-fl-scr-bar{ flex:1; display:block; height:4.4cqh; border-radius:99px; background:rgba(255,255,255,.22); overflow:hidden; }
.rp .rp-fl-scr-bar > i{ display:block; height:100%; width:12%; border-radius:inherit; background:#fbbf24; box-shadow:0 0 1.6cqh rgba(251,191,36,.7); }
.rp .rp-fl-scr-row b{ font-weight:800; font-size:16cqh; line-height:1; font-variant-numeric:tabular-nums; }
.rp .rp-fl-scr-ok{ display:inline-flex; align-items:center; gap:1.6cqw; font-size:7.4cqh; font-weight:700; line-height:1; white-space:nowrap; }
.rp .rp-fl-scr-ok i{ color:#86efac; }
/* vidrio: reflejo diagonal, bordes oscurecidos y sombra interior del marco */
.rp .rp-fl-glass{ position:absolute; inset:0; pointer-events:none; z-index:1;
  background:
    linear-gradient(118deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.07) 28%, rgba(255,255,255,0) 29%, rgba(255,255,255,0) 100%),
    radial-gradient(120% 140% at 50% 45%, rgba(0,0,0,0) 55%, rgba(0,0,0,.28) 100%);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.6), inset 0 1.4cqh 2.4cqh rgba(0,0,0,.35); }
.rp .rp-fl-flash{ position:absolute; inset:0; z-index:2; background:#fff; opacity:0; pointer-events:none; }

/* línea de escaneo (solo durante la intro) */
.rp .rp-fl-scan{ position:absolute; z-index:4; top:4%; bottom:clamp(17px, 2.75vh, 28px); left:0; width:2px; opacity:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(37,99,235,0), #2563eb 30%, #2563eb 70%, rgba(37,99,235,0));
  box-shadow:0 0 18px 4px rgba(37,99,235,.35); }

/* estado inicial de la intro (las fotos y el texto nunca se ocultan) */
.rp-hx-intro .rp .rp-fl-chip{ visibility:hidden; }
.rp-hx-intro .rp .rp-fl-alert, .rp-hx-intro .rp .rp-fl-screen{ opacity:0; }

/* tablet y celular: título → escena → botones → texto */
@media (max-width:991.98px){
  .rp .rp-fl{ display:block; min-height:0; }
  .rp .rp-fl::after{ display:none; }
  .rp .rp-fl-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-fl-copy{ display:contents; }
  .rp .rp-fl-logo{ order:0; width:120px; }
  .rp .rp-fl-title{ order:1; font-size:clamp(2.2rem, 9.4vw, 3.6rem); }
  .rp .rp-fl-stage{ order:2; position:relative; inset:auto; height:clamp(370px, 62vw, 520px); margin-top:1rem;
    border-radius:24px; background:linear-gradient(to bottom, #e9ecf1, #f7f8fa 78%, #fff 79%); }
  .rp .rp-fl .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-fl .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
  .rp .rp-fl-dev{ bottom:5%; }
  .rp .rp-fl-canon{ left:19%; height:44%; }
  .rp .rp-fl-ricoh{ left:50%; height:54%; }
  .rp .rp-fl-sharp{ left:81%; height:31%; }
}
@media (max-width:575.98px){
  .rp .rp-fl .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-fl .rp-actions .rp-btn{ justify-content:center; }
  .rp .rp-fl-chip{ min-width:0; font-size:11px; padding:7px 9px 9px; gap:5px 8px; border-radius:11px; }
  .rp .rp-fl-chip > b{ font-size:13px; }
  .rp .rp-fl-canon .rp-fl-name > span, .rp .rp-fl-sharp .rp-fl-name > span{ display:none; }
  .rp .rp-fl-ricoh .rp-fl-chip{ min-width:150px; font-size:12px; padding:9px 11px 11px; }
  .rp .rp-fl-ricoh .rp-fl-chip > b{ font-size:17px; }
  .rp .rp-fl-alert{ font-size:11.5px; padding:6px 8px; }
}
@media (prefers-reduced-motion:reduce){ .rp .rp-fl-dot{ animation:none; } }

/* Secciones de COPIX */
.rp .rp-about h2 + .rp-p-lead{ margin-top:1.25rem; }
.rp .rp-cx-note{ color:var(--rp-dim); margin:1rem 0 0; max-width:46ch; }
.rp .rp-spec{ margin:0; border-top:1px solid var(--rp-line); }
.rp .rp-spec > div{ display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem; padding:1rem 0; border-bottom:1px solid var(--rp-line); }
.rp .rp-spec dt{ font-weight:700; }
.rp .rp-spec dd{ margin:0; color:var(--rp-dim); text-align:right; }
.rp .rp-steps-lvl .rp-step-n{ width:76px; height:76px; font-size:1.15rem; letter-spacing:-.02em; }
.rp .rp-steps-lvl .rp-steps-line{ top:38px; }
.rp .rp-steps-lvl .rp-step:nth-child(4).is-on .rp-step-n{ background:var(--rp-blue); }
@media (max-width:991.98px){ .rp .rp-steps-lvl .rp-step:nth-child(4) .rp-step-n{ background:var(--rp-blue); } }
.rp .rp-checks-no{ grid-template-columns:1fr; margin-top:0; }
.rp .rp-checks-no i{ color:var(--rp-dim); }
.rp .rp-head .rp-h2{ text-wrap:balance; }

/* ======================= Renta de cómputo (renta-computo.php) — hero "de 1 a todo el salón" =======================
   Texto a la izquierda; a la derecha, a sangre, un salón de capacitación: mesas en 3 filas con laptops.
   Cada laptop se coloca con --x (centro), --w (ancho) y --b (línea de la mesa), en % del escenario.
   .rp-ev-cam es la cámara: la intro empieza en primer plano sobre "Equipo 01" y se aleja al salón. */
.rp .rp-ev{ position:relative; overflow:hidden; min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center;
  background:linear-gradient(to bottom, #e8eef9 0%, #f1f5fc 70%, #fff 100%); }
.rp .rp-ev-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-ev-copy{ position:relative; z-index:3; width:min(44%, 600px); }
.rp .rp-ev-title{ font-size:clamp(2.5rem, min(4.4vw, 8.6vh), 5rem); line-height:.98; }
.rp .rp-ev .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:40ch; }
.rp .rp-ev .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

.rp .rp-ev-stage{ position:absolute; z-index:1; top:0; bottom:0; left:43%; right:0; overflow:hidden; container-type:size; }
.rp .rp-ev-cam{ position:absolute; inset:0; transform-origin:0 0; }
.rp .rp-ev-lap{ position:absolute; left:calc(var(--x) - var(--w) / 2); width:var(--w); bottom:calc(100% - var(--b)); aspect-ratio:863 / 553; }
.rp .rp-ev-lap img{ display:block; width:100%; height:auto; position:relative; z-index:1; }
/* sombra suave en el piso bajo cada laptop (sin mesas) */
.rp .rp-ev-lap::after{ content:""; position:absolute; left:2%; right:2%; bottom:-7%; height:14%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(15,35,80,.28), rgba(15,35,80,0)); }

/* estado inicial de la intro: la escena aparece cuando arranca (el texto nunca se oculta) */

/* usos frecuentes como etiquetas */
.rp .rp-tags{ list-style:none; padding:0; margin:1.4rem 0 0; display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; }
.rp .rp-tags li{ padding:.45rem .9rem; border-radius:99px; background:var(--rp-soft); font-weight:600; font-size:.92rem; }

/* tablet y celular: título → escena → botones → texto */
@media (max-width:991.98px){
  .rp .rp-ev{ display:block; min-height:0; }
  .rp .rp-ev-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-ev-copy{ display:contents; }
  .rp .rp-ev-title{ order:1; font-size:clamp(2.2rem, 9.4vw, 3.6rem); }
  .rp .rp-ev-stage{ order:2; position:relative; inset:auto; height:clamp(330px, 64vw, 520px); margin-top:1rem; border-radius:24px;
    background:linear-gradient(to bottom, #dfe7f6, #eef3fb); }
  .rp .rp-ev .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-ev .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
}
@media (max-width:575.98px){
  .rp .rp-ev .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-ev .rp-actions .rp-btn{ justify-content:center; }
}
/* profundidad del salón: equipos un poco "lejanos" en las filas de atrás */
.rp .rp-ev-lap[data-row="0"]{ filter:saturate(.82) contrast(.9) brightness(1.03); }
.rp .rp-ev-lap[data-row="1"]{ filter:saturate(.9) contrast(.95) brightness(1.015); }
.rp .rp-ev-title{ font-size:clamp(2.4rem, min(3.6vw, 7.4vh), 4.4rem); }
/* intro: la escena se pinta ya en primer plano sobre "Equipo 01" (mismos números que calcula el JS:
   centro de su pantalla = (49.93cqw, 90cqh − 8.743cqw), escala 3.2) — así la foto cuenta para el LCP */
.rp-hx-intro .rp .rp-ev-cam{ transform:translate(-109.78cqw, calc(27.98cqw - 238cqh)) scale(3.2); }
.rp-hx-intro .rp .rp-ev-lap:not(.is-main){ visibility:hidden; }
@media (min-width:992px){ .rp .rp-ev-stage{ -webkit-mask-image:linear-gradient(to right, transparent 0, #000 7%); mask-image:linear-gradient(to right, transparent 0, #000 7%); } }

/* ======================= Venta de equipos (venta-equipos.php) — hero "la vitrina" =======================
   Texto a la izquierda; a la derecha, a sangre, un carrusel 3D de showroom con reflector y piso
   brillante (reflejo con -webkit-box-reflect). heroVitrina (ckd-page.js) coloca cada equipo según su
   distancia al frente (k): x, z, giro y escala; el respaldo sin JS viene en el style de cada botón. */
.rp .rp-vt{ position:relative; overflow:hidden; min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center;
  background:linear-gradient(to bottom, #f3f4f7 0%, #eceef2 100%); }
.rp .rp-vt-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-vt-copy{ position:relative; z-index:3; width:min(44%, 600px); }
.rp .rp-vt-title{ font-size:clamp(2.3rem, min(3.3vw, 7vh), 4.2rem); line-height:.98; }
.rp .rp-vt .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:40ch; }
.rp .rp-vt .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

.rp .rp-vt-stage{ position:absolute; z-index:1; top:0; bottom:0; left:43%; right:0; overflow:hidden; container-type:size; }
/* piso del showroom: un poco más oscuro bajo la línea de apoyo, para que el reflejo se lea */
.rp .rp-vt-stage::before{ content:''; position:absolute; left:0; right:0; top:64%; bottom:0;
  background:linear-gradient(to bottom, #dfe3ea 0%, #e9ecf1 45%, #eef0f4 100%); }
/* reflector detrás del equipo del frente */
.rp .rp-vt-spot{ position:absolute; left:0; right:0; margin-inline:auto; top:-6%; width:78cqw; height:84cqh; pointer-events:none;
  background:radial-gradient(closest-side, rgba(255,255,255,.95), rgba(255,255,255,.55) 45%, rgba(255,255,255,0)); }
.rp .rp-vt-ring{ position:absolute; inset:0; perspective:1600px; perspective-origin:50% 40%; }
.rp .rp-vt-item{ position:absolute; left:0; right:0; margin-inline:auto; bottom:36%; width:max-content; padding:0; border:0; background:none;
  cursor:pointer; transform-origin:50% 100%; -webkit-tap-highlight-color:transparent; }
.rp .rp-vt-item img{ display:block; height:var(--alto); width:auto; max-width:none;
  -webkit-box-reflect:below 2px linear-gradient(transparent 0%, transparent 62%, rgba(0,0,0,.22) 100%); }
.rp .rp-vt-item img{ height:calc(var(--alto) * var(--vt-k, 1)); }
@media (min-width:768px) and (max-width:1199.98px){ .rp .rp-vt{ --vt-k:.74; } }   /* deja espacio para las notas a los lados */
.rp .rp-vt-item:focus-visible{ outline:3px solid rgba(37,99,235,.5); outline-offset:6px; border-radius:12px; }
.rp .rp-vt-badge{ position:absolute; left:0; right:0; margin-inline:auto; bottom:calc(100% + 12px); width:max-content;
  padding:.38rem .85rem; border-radius:99px; background:var(--rp-blue); color:#fff; font-weight:700; font-size:.85rem; line-height:1;
  box-shadow:0 10px 20px -10px rgba(37,99,235,.6); opacity:0; transition:opacity 200ms ease; pointer-events:none; }
.rp .rp-vt-item.is-active .rp-vt-badge{ opacity:1; }
.rp .rp-vt.is-semi .rp-vt-badge{ background:var(--rp-ink); box-shadow:0 10px 20px -10px rgba(0,0,0,.5); }

/* pie de la vitrina: nombre, flechas + selector Nuevo | Seminuevo, y la diferencia */
.rp .rp-vt-ui{ position:absolute; z-index:20; left:0; right:0; bottom:clamp(14px, 3.5vh, 34px); display:flex; flex-direction:column; align-items:center; gap:.7rem; text-align:center; }
.rp .rp-vt-cap{ margin:0; display:flex; flex-direction:column; gap:.15rem; }
.rp .rp-vt-cap b{ font-size:1.12rem; }
.rp .rp-vt-cap span{ color:var(--rp-dim); font-size:.92rem; }
.rp .rp-vt-ctrl{ display:flex; align-items:center; gap:.75rem; }
.rp .rp-vt-arrow{ width:42px; height:42px; border-radius:50%; border:0; background:#fff; color:var(--rp-ink); display:grid; place-items:center;
  box-shadow:0 1px 2px rgba(0,0,0,.08), 0 10px 22px -12px rgba(6,18,66,.4); transition:transform 160ms var(--rp-ease); }
.rp .rp-vt-arrow:active{ transform:scale(.94); }
.rp .rp-vt-tog{ display:inline-flex; padding:4px; border-radius:99px; background:rgba(0,0,0,.07); }
.rp .rp-vt-tog button{ border:0; background:transparent; border-radius:99px; padding:.5rem 1.1rem; font-weight:700; font-size:.92rem; color:var(--rp-dim);
  transition:background-color 200ms ease, color 200ms ease, box-shadow 200ms ease; }
.rp .rp-vt-tog button.is-on{ background:#fff; color:var(--rp-ink); box-shadow:0 1px 2px rgba(0,0,0,.08), 0 6px 14px -8px rgba(6,18,66,.35); }
.rp .rp-vt-arrow:focus-visible, .rp .rp-vt-tog button:focus-visible{ outline:3px solid rgba(37,99,235,.45); outline-offset:2px; }
.rp .rp-vt-note{ margin:0; max-width:46ch; color:var(--rp-dim); font-size:.92rem; min-height:2.6em; }

/* intro: el carrusel ya se ve (la Ricoh al frente cuenta para el LCP); el pie y la etiqueta entran al final */
.rp-hx-intro .rp .rp-vt-ui, .rp-hx-intro .rp .rp-vt-spot{ opacity:0; }
.rp-hx-intro .rp .rp-vt-item.is-active .rp-vt-badge{ opacity:0; }
.rp .rp-brands-soft .rp-brand{ background:var(--rp-soft); }

@media (min-width:992px){ .rp .rp-vt-stage{ -webkit-mask-image:linear-gradient(to right, transparent 0, #000 7%); mask-image:linear-gradient(to right, transparent 0, #000 7%); } }
/* tablet y celular: título → vitrina → botones → texto */
@media (max-width:991.98px){
  .rp .rp-vt{ display:block; min-height:0; }
  .rp .rp-vt-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-vt-copy{ display:contents; }
  .rp .rp-vt-title{ order:1; font-size:clamp(1.9rem, 8.1vw, 3.6rem); }
  .rp .rp-vt-stage{ order:2; position:relative; inset:auto; height:clamp(470px, 110vw, 620px); margin:1rem calc(var(--bs-gutter-x, 1.5rem) * -.5) 0; }
  .rp .rp-vt .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-vt .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
  .rp .rp-vt-item{ bottom:40%; }
  .rp .rp-vt-stage::before{ top:60%; }
  .rp .rp-vt-tog button{ padding:.45rem .9rem; font-size:.88rem; }
  .rp .rp-vt-note{ font-size:.86rem; padding-inline:16px; }
}
@media (max-width:575.98px){
  .rp .rp-vt .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-vt .rp-actions .rp-btn{ justify-content:center; }
}
.rp .rp-plate-lg .rp-h3{ margin:.1rem 0 .7rem; }
.rp .rp-tag i{ margin-right:.2rem; }
/* vitrina: la diferencia Nuevo / Seminuevo, una sola frase bajo el selector (sin íconos) */
.rp .rp-vt-mnote{ margin:0; max-width:40ch; min-height:1.5em; color:var(--rp-ink); font-size:1rem; font-weight:600; text-wrap:balance; }
@media (max-width:767.98px){ .rp .rp-vt-mnote{ font-size:.9rem; padding-inline:16px; } }
@media (max-width:575.98px){ .rp .rp-vt-stage{ height:clamp(450px, 106vw, 600px); } }

/* ======================= AUDIX (audix.php) — hero "el registro en vivo" =======================
   Texto a la izquierda; a la derecha la ventana de AUDIX (lista de impresiones) con el archivo
   impreso abierto encima. heroAudix (ckd-page.js) anima la entrada, el clic y las filas en vivo. */
.rp .rp-ax{ position:relative; overflow:hidden; min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center;
  background:radial-gradient(60% 70% at 78% 45%, #e6edfb 0%, rgba(230,237,251,0) 70%), var(--rp-soft); }
.rp .rp-ax-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-ax-copy{ position:relative; z-index:3; width:min(44%, 600px); }
.rp .rp-ax-brand{ margin:0 0 1rem; font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-weight:700; letter-spacing:.02em;
  font-size:1.05rem; color:var(--rp-blue); }
.rp .rp-ax-title{ font-size:clamp(2.3rem, min(3.5vw, 7.2vh), 4.3rem); line-height:1; }
.rp .rp-ax .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:40ch; }
.rp .rp-ax .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

.rp .rp-ax-stage{ position:absolute; z-index:1; top:0; bottom:0; left:47%; right:clamp(24px, 5vw, 96px); perspective:1400px; }   /* deja libre la orilla de los botones flotantes */
/* ventana */
.rp .rp-ax-win{ position:absolute; left:0; top:50%; margin-top:-230px; width:min(600px, 80%); background:#fff; border-radius:20px; overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.06), 0 30px 70px -30px rgba(15,35,80,.45); transform-origin:50% 100%; }
.rp .rp-ax-bar{ display:flex; align-items:center; gap:.75rem; padding:14px 20px; border-bottom:1px solid var(--rp-line); font-size:.9rem; color:var(--rp-dim); }
.rp .rp-ax-bar b{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-size:1rem; color:var(--rp-ink); letter-spacing:.02em; }
.rp .rp-ax-bar-sep{ width:1px; height:16px; background:var(--rp-line); }
.rp .rp-ax-head, .rp .rp-ax-row{ display:grid; grid-template-columns:minmax(0, 2.3fr) minmax(0, 1.35fr) 56px 44px; align-items:center; gap:12px; padding:0 20px; }
.rp .rp-ax-head{ height:36px; font-size:.75rem; font-weight:700; color:var(--rp-dim); background:#fafbfc; border-bottom:1px solid var(--rp-line); }
.rp .rp-ax-head span:nth-child(n+3), .rp .rp-ax-row > span:nth-child(n+3){ text-align:right; }
.rp .rp-ax-list{ list-style:none; margin:0; padding:0; height:320px; overflow:hidden; }
.rp .rp-ax-row{ height:64px; border-bottom:1px solid var(--rp-line); font-size:.9rem; position:relative; }
.rp .rp-ax-row::before{ content:''; position:absolute; inset:0; background:#eef3ff; opacity:0; transition:opacity 250ms ease; }
.rp .rp-ax-row.is-on::before{ opacity:1; }
.rp .rp-ax-row > span{ position:relative; min-width:0; }
.rp .rp-ax-doc, .rp .rp-ax-user{ display:flex; align-items:center; gap:10px; }
.rp .rp-ax-doc span, .rp .rp-ax-user span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp .rp-ax-doc span{ font-weight:700; color:var(--rp-ink); }
.rp .rp-ax-doc i{ font-size:1.35rem; line-height:1; flex:none; }
.rp .is-pdf{ color:#dc2626; } .rp .is-doc{ color:#2563eb; } .rp .is-xls{ color:#16a34a; } .rp .is-img{ color:#9333ea; }
.rp .rp-ax-user i{ flex:none; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-style:normal; font-size:.7rem; font-weight:800;
  background:#e8edf6; color:#334155; }
.rp .rp-ax-user span{ color:var(--rp-dim); }
.rp .rp-ax-time, .rp .rp-ax-pages{ font-variant-numeric:tabular-nums; color:var(--rp-ink); font-weight:600; }
/* archivo impreso */
.rp .rp-ax-file{ position:absolute; z-index:2; right:0; top:50%; margin-top:-110px; width:min(300px, 42%); background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 1px 2px rgba(0,0,0,.08), 0 40px 80px -30px rgba(15,35,80,.55); transform-origin:0 30%; }
.rp .rp-ax-file-bar{ display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--rp-line); font-size:.82rem; }
.rp .rp-ax-file-bar span{ font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp .rp-ax-file-bar em{ margin-left:auto; font-style:normal; color:var(--rp-dim); white-space:nowrap; font-size:.75rem; }
.rp .rp-ax-page{ margin:14px; aspect-ratio:8.5 / 9; border:1px solid var(--rp-line); border-radius:6px; padding:9% 9% 8%; display:flex; flex-direction:column; gap:7px;
  container-type:inline-size; background:#fff; }
.rp .rp-ax-pg-top{ display:flex; justify-content:space-between; align-items:baseline; padding-bottom:6px; margin-bottom:4px; border-bottom:2px solid var(--rp-ink); }
.rp .rp-ax-pg-top b{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-size:8cqw; letter-spacing:.02em; }
.rp .rp-ax-pg-top span{ font-size:5.5cqw; color:var(--rp-dim); font-weight:700; }
.rp .rp-ax-ln{ display:block; height:6px; border-radius:3px; background:#e6e9ef; }
.rp .rp-ax-ln.w40{ width:40%; } .rp .rp-ax-ln.w50{ width:50%; } .rp .rp-ax-ln.w60{ width:60%; } .rp .rp-ax-ln.w80{ width:80%; }
.rp .rp-ax-pg-to{ display:flex; flex-direction:column; gap:6px; }
.rp .rp-ax-pg-tbl{ display:grid; grid-template-columns:2fr 1fr; gap:7px 10px; margin:6px 0; padding:10px; border-radius:4px; background:#f6f8fb; }
.rp .rp-ax-pg-tbl i{ height:7px; border-radius:3px; background:#dfe4ec; }
.rp .rp-ax-pg-tbl i:nth-child(2n){ background:#cbd5e6; }
.rp .rp-ax-pg-total{ margin-top:auto; display:flex; justify-content:space-between; align-items:center; padding-top:8px; border-top:1px solid var(--rp-line); }
.rp .rp-ax-pg-total span{ width:28%; height:7px; border-radius:3px; background:#e6e9ef; }
.rp .rp-ax-pg-total b{ width:34%; height:12px; border-radius:3px; background:var(--rp-blue); }
.rp .rp-ax-cursor{ position:absolute; z-index:5; left:0; top:0; width:28px; height:28px; opacity:0; pointer-events:none; filter:drop-shadow(0 3px 4px rgba(0,0,0,.3)); }
.rp .rp-plate-here{ box-shadow:inset 0 0 0 2px var(--rp-blue), 0 30px 60px -36px rgba(0,0,0,.28); }
.rp .rp-plate-here .rp-more{ color:var(--rp-dim); }

/* intro: la ventana se ve desde el inicio (el JS la endereza); el archivo y las filas entran */
.rp-hx-intro .rp .rp-ax-file, .rp-hx-intro .rp .rp-ax-row{ visibility:hidden; }

@media (max-width:1199.98px) and (min-width:992px){
  .rp .rp-ax-head, .rp .rp-ax-row{ grid-template-columns:minmax(0, 2.2fr) minmax(0, 1.2fr) 48px; }
  .rp .rp-ax-head span:nth-child(4), .rp .rp-ax-row > span:nth-child(4){ display:none; }
}
/* tablet y celular: título → ventana → botones → texto */
@media (max-width:991.98px){
  .rp .rp-ax{ display:block; min-height:0; }
  .rp .rp-ax-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-ax-copy{ display:contents; }
  .rp .rp-ax-brand{ order:0; margin-bottom:.6rem; }
  .rp .rp-ax-title{ order:1; font-size:clamp(2rem, 8.4vw, 3.6rem); }
  .rp .rp-ax-stage{ order:2; position:relative; inset:auto; height:470px; margin-top:1.25rem; }
  .rp .rp-ax .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-ax .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
  .rp .rp-ax-stage{ right:0; }
  .rp .rp-ax-win{ left:0; right:auto; top:0; margin-top:0; width:min(88%, 560px); }
  .rp .rp-ax-file{ top:auto; bottom:0; margin-top:0; right:0; width:min(240px, 56%); }
}
@media (max-width:575.98px){
  .rp .rp-ax .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-ax .rp-actions .rp-btn{ justify-content:center; }
  .rp .rp-ax-head, .rp .rp-ax-row{ grid-template-columns:minmax(0, 1fr) 46px; padding:0 14px; }
  .rp .rp-ax-head span:nth-child(2), .rp .rp-ax-head span:nth-child(4), .rp .rp-ax-row > span:nth-child(2), .rp .rp-ax-row > span:nth-child(4){ display:none; }
  .rp .rp-ax-row{ height:56px; font-size:.84rem; }
  .rp .rp-ax-list{ height:280px; }
  .rp .rp-ax-bar{ padding:12px 14px; font-size:.82rem; }
  .rp .rp-ax-stage{ height:430px; }
}
@media (min-width:992px) and (max-width:1199.98px){ .rp .rp-ax-file{ width:36%; margin-top:-40px; } .rp .rp-ax-win{ width:84%; } }
@media (max-width:575.98px){ .rp .rp-ax-win{ width:100%; } .rp .rp-ax-file{ width:46%; bottom:-6px; } .rp .rp-ax-file-bar em{ display:none; } .rp .rp-ax-file-bar{ padding:9px 11px; font-size:.74rem; } .rp .rp-ax-page{ margin:10px; } .rp .rp-ax-stage{ height:400px; } }

/* ======================= "¿Qué es …?" (_partials/que_es.php) =======================
   Definición grande a la izquierda; ficha de preguntas y respuestas a la derecha. */
.rp .rp-qe-grid{ display:grid; grid-template-columns:minmax(0, 6fr) minmax(0, 6fr); gap:clamp(2rem, 5vw, 5rem); align-items:start; }
.rp .rp-qe-def{ margin:1.5rem 0 0; font-size:clamp(1.15rem, 1.6vw, 1.4rem); line-height:1.5; color:var(--rp-ink); font-weight:500; max-width:34ch; text-wrap:pretty; }
.rp .rp-qe-more{ margin:1rem 0 0; color:var(--rp-dim); line-height:1.6; max-width:46ch; text-wrap:pretty; }
.rp .rp-qe-sheet{ margin:0; background:#fff; border-radius:24px; padding:.5rem clamp(1.25rem, 2.4vw, 2rem);
  box-shadow:0 1px 1px rgba(0,0,0,.03), 0 30px 60px -36px rgba(0,0,0,.28); border:1px solid var(--rp-line); }
.rp .rp-soft .rp-qe-sheet{ border-color:transparent; }
.rp .rp-qe-sheet > div{ display:grid; grid-template-columns:minmax(0, 11rem) minmax(0, 1fr); gap:1rem; padding:1.05rem 0; border-top:1px solid var(--rp-line); }
.rp .rp-qe-sheet > div:first-child{ border-top:0; }
.rp .rp-qe-sheet dt{ font-weight:700; color:var(--rp-dim); font-size:.92rem; padding-top:.1rem; }
.rp .rp-qe-sheet dd{ margin:0; font-weight:600; color:var(--rp-ink); line-height:1.5; }
@media (max-width:991.98px){ .rp .rp-qe-grid{ grid-template-columns:1fr; } .rp .rp-qe-def{ max-width:none; } }
@media (max-width:575.98px){ .rp .rp-qe-sheet > div{ grid-template-columns:1fr; gap:.2rem; } }

/* ======================= SCANIX (scanix.php) — hero "del escáner a tu carpeta" =======================
   Texto a la izquierda; a la derecha la multifuncional y una laptop con la carpeta "Escaneos" abierta.
   heroScanix (ckd-page.js): barra de luz de escaneo → la hoja vuela en arco → archivo nuevo en la carpeta. */
.rp .rp-sx{ position:relative; overflow:hidden; min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center;
  background:linear-gradient(to bottom, #eaf0fa 0%, #f3f6fb 62%, #fff 100%); }
.rp .rp-sx-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-sx-copy{ position:relative; z-index:3; width:min(44%, 600px); }
.rp .rp-sx-title{ font-size:clamp(2.3rem, min(3.5vw, 7.2vh), 4.3rem); line-height:1; }
.rp .rp-sx .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:40ch; }
.rp .rp-sx .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

.rp .rp-sx-stage{ position:absolute; z-index:1; top:0; bottom:0; left:46%; right:clamp(24px, 5vw, 96px); }
.rp .rp-sx-mfp{ position:absolute; left:0; bottom:18%; height:52%; aspect-ratio:515 / 589; }
.rp .rp-sx-lap{ position:absolute; right:0; bottom:18%; width:min(62%, 560px); aspect-ratio:863 / 553; }
.rp .rp-sx-mfp img, .rp .rp-sx-lap img{ display:block; width:100%; height:100%; position:relative; z-index:1; }
.rp .rp-sx-mfp::after, .rp .rp-sx-lap::after{ content:''; position:absolute; left:4%; right:4%; bottom:-6%; height:12%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(15,35,80,.24), rgba(15,35,80,0)); }
/* barra de luz del escáner (sobre la parte del cristal / alimentador) */
.rp .rp-sx-beam{ position:absolute; z-index:2; left:10%; right:12%; top:16%; height:4px; border-radius:4px; opacity:0; pointer-events:none;
  background:linear-gradient(90deg, rgba(147,197,253,0), #e0f2fe 20%, #fff 50%, #e0f2fe 80%, rgba(147,197,253,0));
  box-shadow:0 0 14px 5px rgba(96,165,250,.75), 0 0 34px 12px rgba(59,130,246,.35); }
/* pantalla de la laptop: ventana de la carpeta */
.rp .rp-sx-scr{ position:absolute; z-index:2; left:8.63%; top:4.43%; width:82.16%; height:72.5%; overflow:hidden; container-type:size;
  background:linear-gradient(160deg, #1e3a8a, #2563eb); }
.rp .rp-sx-scr-in{ position:absolute; inset:6cqh 5cqw; background:#fff; border-radius:2.4cqw; overflow:hidden; display:flex; flex-direction:column;
  font-family:'Manrope', system-ui, sans-serif; box-shadow:0 2cqh 5cqh rgba(0,0,0,.35); }
.rp .rp-sx-win-bar{ display:flex; align-items:center; gap:1.6cqw; padding:0 3cqw; height:15cqh; flex:none; background:#f3f5f9; border-bottom:1px solid #e3e7ee; font-size:6.4cqh; }
.rp .rp-sx-win-bar i{ color:#f5b301; font-size:8cqh; }
.rp .rp-sx-win-bar span{ margin-left:auto; color:#64748b; font-size:5.4cqh; white-space:nowrap; }
.rp .rp-sx-files{ list-style:none; margin:0; padding:0; flex:1; overflow:hidden; }
.rp .rp-sx-files li{ display:flex; align-items:center; gap:1.8cqw; height:15.5cqh; padding:0 3cqw; border-bottom:1px solid #eef1f5; font-size:6.2cqh; position:relative; }
.rp .rp-sx-files li i{ color:#dc2626; font-size:7.6cqh; flex:none; }
.rp .rp-sx-files li span{ font-weight:700; color:#1d1d1f; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp .rp-sx-files li em{ margin-left:auto; font-style:normal; color:#64748b; flex:none; }
/* la hoja que vuela y su arco */
.rp .rp-sx-doc{ position:absolute; z-index:5; left:0; top:0; width:56px; height:72px; padding:12px 9px; background:#fff; border-radius:4px; opacity:0;
  display:flex; flex-direction:column; gap:6px; box-shadow:0 2px 4px rgba(0,0,0,.12), 0 18px 30px -12px rgba(15,35,80,.45); pointer-events:none; }
.rp .rp-sx-doc i{ display:block; height:4px; border-radius:2px; background:#d8dee8; }
.rp .rp-sx-doc i:first-child{ width:70%; height:6px; background:#1d1d1f; }
.rp .rp-sx-doc i:nth-child(3){ width:85%; } .rp .rp-sx-doc i:nth-child(5){ width:55%; }
.rp .rp-sx-arc{ position:absolute; z-index:4; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.rp .rp-sx-arc path{ fill:none; stroke:var(--rp-blue); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:2 9; opacity:0; }

/* intro: fotos y texto visibles desde el inicio; la pantalla se enciende con la intro */
.rp-hx-intro .rp .rp-sx-scr-in{ opacity:0; }

/* tablet y celular: título → escena → botones → texto */
@media (max-width:991.98px){
  .rp .rp-sx{ display:block; min-height:0; }
  .rp .rp-sx-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-sx-copy{ display:contents; }
  .rp .rp-ax-brand{ order:0; margin-bottom:.6rem; }
  .rp .rp-sx-title{ order:1; font-size:clamp(2rem, 8.4vw, 3.6rem); }
  .rp .rp-sx-stage{ order:2; position:relative; inset:auto; height:clamp(300px, 62vw, 470px); margin-top:1rem; }
  .rp .rp-sx .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-sx .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
  .rp .rp-sx-mfp{ bottom:12%; height:50%; }
  .rp .rp-sx-lap{ bottom:12%; width:64%; }
}
@media (max-width:575.98px){
  .rp .rp-sx .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-sx .rp-actions .rp-btn{ justify-content:center; }
  .rp .rp-sx-doc{ width:40px; height:52px; padding:8px 6px; gap:4px; }
}
.rp .rp-sx-stage{ container-type:size; }
.rp .rp-sx-mfp{ height:min(52%, 41cqw); }   /* que nunca tape la laptop en pantallas angostas */
@media (max-width:991.98px){ .rp .rp-sx-mfp{ height:min(50%, 41cqw); } }

/* ======================= Cobertura (cobertura.php) — hero "el mapa que se enciende" =======================
   Mapa de puntos de la Península (SVG generado en PHP). heroCobertura (ckd-page.js): ondas desde Mérida. */
.rp .rp-cv{ position:relative; overflow:hidden; min-height:calc(100svh - var(--rp-hdr, 66px)); display:flex; align-items:center;
  background:radial-gradient(55% 65% at 72% 45%, #e5ecfb 0%, rgba(229,236,251,0) 70%), var(--rp-soft); }
.rp .rp-cv-in{ display:flex; align-items:center; padding-block:clamp(2rem, 5vh, 3.5rem); }
.rp .rp-cv-copy{ position:relative; z-index:3; width:min(42%, 580px); }
.rp .rp-cv-title{ font-size:clamp(2.3rem, min(3.7vw, 7.4vh), 4.4rem); line-height:1; }
.rp .rp-cv .rp-lead{ margin:clamp(1rem, 2.4vh, 1.5rem) 0 0; max-width:40ch; }
.rp .rp-cv .rp-actions{ justify-content:flex-start; margin-top:clamp(1.25rem, 3vh, 2rem); gap:.75rem; }

.rp .rp-cv-stage{ position:absolute; z-index:1; top:0; bottom:0; left:42%; right:clamp(24px, 5vw, 96px); display:flex; align-items:center; }
.rp .rp-cv-map{ display:block; width:100%; height:min(86%, 760px); overflow:visible; }
.rp .rp-cv-map .cv-d{ fill:#c9d2e0; }   /* (sin transform-box: el origen del escalado lo calcula GSAP) */
.rp .rp-cv-map .cv-d.is-y{ fill:#2563eb; }
.rp .rp-cv-halo{ fill:rgba(37,99,235,.14); }
.rp .rp-cv-city circle{ fill:#fff; stroke:#1d4ed8; stroke-width:2.4; }
.rp .rp-cv-city.is-x circle{ stroke:#94a3b8; }
.rp .rp-cv-map text{ font-family:'Manrope', system-ui, sans-serif; font-size:11.5px; font-weight:700; fill:var(--rp-ink);
  paint-order:stroke; stroke:#f2f5fa; stroke-width:4px; stroke-linejoin:round; }
.rp .rp-cv-city.is-x text{ fill:#64748b; font-weight:600; }
.rp .rp-cv-merida text{ font-size:15px; font-weight:800; }
.rp .rp-cv-pin{ fill:#1d4ed8; stroke:#fff; stroke-width:3; }
.rp .rp-cv-ring{ fill:none; stroke:#2563eb; stroke-width:2; transform-box:fill-box; transform-origin:center; opacity:0;
  animation:rp-cv-ring 2.8s cubic-bezier(.2,.6,.3,1) infinite; }
.rp .rp-cv-ring.is-2{ animation-delay:1.4s; }
@keyframes rp-cv-ring{ 0%{ transform:scale(.6); opacity:.85; } 100%{ transform:scale(4.2); opacity:0; } }
.rp .rp-cv-legend{ position:absolute; right:0; bottom:clamp(14px, 4vh, 40px); list-style:none; margin:0; padding:0; display:flex; gap:1.1rem;
  font-size:.85rem; font-weight:700; color:var(--rp-dim); }
.rp .rp-cv-legend li{ display:inline-flex; align-items:center; gap:.4rem; }
.rp .rp-cv-legend i{ width:10px; height:10px; border-radius:50%; background:#2563eb; }
.rp .rp-cv-legend i.is-x{ background:#fff; box-shadow:inset 0 0 0 2.5px #94a3b8; }

/* zonas */
.rp .rp-cv-zones .rp-plate.is-main{ box-shadow:inset 0 0 0 2px var(--rp-blue), 0 30px 60px -36px rgba(0,0,0,.28); }
.rp .rp-cv-zones .rp-plate.is-soon .rp-h3{ color:var(--rp-dim); }
.rp .rp-cv-zones .rp-h3{ margin:.1rem 0 .7rem; font-size:clamp(1.3rem, 1.8vw, 1.6rem); }
.rp .rp-cv-towns{ margin-top:1rem !important; padding-top:1rem; border-top:1px solid var(--rp-line); color:var(--rp-ink) !important; font-weight:600; }

/* intro: los puntos y las ciudades aparecen con la onda (el texto nunca se oculta) */
.rp-hx-intro .rp .rp-cv-map .cv-d, .rp-hx-intro .rp .rp-cv-city, .rp-hx-intro .rp .rp-cv-merida, .rp-hx-intro .rp .rp-cv-halo,
.rp-hx-intro .rp .rp-cv-legend{ opacity:0; }
@media (prefers-reduced-motion:reduce){ .rp .rp-cv-ring{ animation:none; } }

/* tablet y celular: título → mapa → botones → texto */
@media (max-width:991.98px){
  .rp .rp-cv{ display:block; min-height:0; }
  .rp .rp-cv-in{ flex-direction:column; align-items:stretch; padding-block:1.5rem 2.5rem; }
  .rp .rp-cv-copy{ display:contents; }
  .rp .rp-cv .rp-ax-brand{ order:0; margin-bottom:.6rem; }
  .rp .rp-cv-title{ order:1; font-size:clamp(2rem, 8.4vw, 3.6rem); }
  .rp .rp-cv-stage{ order:2; position:relative; inset:auto; display:block; margin-top:1rem; padding-bottom:2.2rem; }
  .rp .rp-cv-map{ height:auto; }
  .rp .rp-cv-legend{ bottom:0; }
  .rp .rp-cv .rp-actions{ order:3; margin-top:1.1rem; }
  .rp .rp-cv .rp-lead{ order:4; margin-top:1.1rem; font-size:1.02rem; max-width:none; }
}
@media (max-width:575.98px){
  .rp .rp-cv .rp-actions{ flex-direction:column; align-items:stretch; }
  .rp .rp-cv .rp-actions .rp-btn{ justify-content:center; }
  .rp .rp-cv-city.is-minor text{ display:none; }
  .rp .rp-cv-map text{ font-size:14px; }
  .rp .rp-cv-merida text{ font-size:18px; }
}

/* ======================= Blog (blog.php y post.php) ======================= */
.rp .rp-bl-hero{ padding:clamp(3rem, 7vw, 5.5rem) 0 clamp(2rem, 4vw, 3rem); text-align:center;
  background:radial-gradient(60% 80% at 50% 0%, #e7eefc 0%, rgba(231,238,252,0) 70%), #fff; }
.rp .rp-bl-title{ font-size:clamp(2.4rem, 5.4vw, 4.6rem); line-height:1; }
.rp .rp-bl-hero .rp-lead{ margin:1.2rem auto 0; max-width:52ch; }
.rp .rp-bl-search{ display:flex; align-items:center; gap:.5rem; max-width:560px; margin:1.8rem auto 0; padding:6px 6px 6px 18px;
  background:#fff; border-radius:999px; box-shadow:inset 0 0 0 1px var(--rp-line), 0 14px 30px -20px rgba(6,18,66,.35); }
.rp .rp-bl-search i{ color:var(--rp-dim); }
.rp .rp-bl-search input{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; padding:.55rem 0; }
.rp .rp-bl-search:focus-within{ box-shadow:inset 0 0 0 2px rgba(37,99,235,.45), 0 14px 30px -20px rgba(6,18,66,.35); }
.rp .rp-bl-search .rp-btn{ padding:.6rem 1.2rem; }
.rp .rp-bl-cats{ display:flex; flex-wrap:wrap; justify-content:center; gap:.35rem 1.4rem; margin-top:1.5rem; }
.rp .rp-bl-cats a{ color:var(--rp-dim); font-weight:700; text-decoration:none; padding:.2rem 0; border-bottom:2px solid transparent; }
.rp .rp-bl-cats a:hover{ color:var(--rp-ink); }
.rp .rp-bl-cats a[aria-current]{ color:var(--rp-ink); border-bottom-color:var(--rp-blue); }

/* portadas (imagen o generada por categoría) */
.rp .rp-bl-cover{ display:block; position:relative; aspect-ratio:3 / 2; overflow:hidden; background:var(--rp-soft); }
.rp .rp-bl-cover img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 500ms var(--rp-ease); }
.rp .rp-bl-cover.is-gen{ display:grid; place-items:center; color:#fff; background:linear-gradient(140deg, #1e3a8a, #2563eb 60%, #60a5fa); }
.rp .rp-bl-cover.is-gen::before{ content:''; position:absolute; inset:0; opacity:.22;
  background-image:radial-gradient(rgba(255,255,255,.9) 1.4px, transparent 1.6px); background-size:18px 18px; }
.rp .rp-bl-cover.is-gen i{ position:relative; font-size:clamp(2.6rem, 5vw, 4rem); filter:drop-shadow(0 8px 18px rgba(0,0,0,.25)); }
.rp .rp-bl-cover.is-gen[data-cat="herramientas"]{ background:linear-gradient(140deg, #0f172a, #1d4ed8 65%, #38bdf8); }
.rp .rp-bl-cover.is-gen[data-cat="computo"]{ background:linear-gradient(140deg, #1f2937, #4b5563 55%, #9ca3af); }
.rp .rp-bl-cover.is-gen[data-cat="guias"]{ background:linear-gradient(140deg, #164e63, #0e7490 55%, #22d3ee); }
.rp .rp-bl-cover.is-gen[data-cat="ahorro"]{ background:linear-gradient(140deg, #14532d, #15803d 55%, #4ade80); }

/* destacado */
.rp .rp-bl-feat-sec{ padding-top:clamp(1rem, 2vw, 1.5rem); }
.rp .rp-bl-feat{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); background:#fff; border-radius:28px; overflow:hidden; color:var(--rp-ink);
  text-decoration:none; border:1px solid var(--rp-line); box-shadow:0 1px 1px rgba(0,0,0,.03), 0 30px 60px -36px rgba(0,0,0,.28); }
.rp .rp-bl-feat .rp-bl-cover{ aspect-ratio:auto; min-height:100%; }
.rp .rp-bl-feat-body{ display:flex; flex-direction:column; justify-content:center; gap:.9rem; padding:clamp(1.6rem, 3.5vw, 3rem); }
.rp .rp-bl-feat-title{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-weight:600; letter-spacing:-.03em; line-height:1.08;
  font-size:clamp(1.6rem, 2.5vw, 2.3rem); text-wrap:balance; }
.rp .rp-bl-feat:hover .rp-bl-cover img, .rp .rp-bl-card:hover .rp-bl-cover img{ transform:scale(1.04); }
.rp .rp-bl-feat:hover, .rp .rp-bl-card:hover{ color:var(--rp-ink); }

/* tarjetas */
.rp .rp-bl-grid{ gap:1.5rem; }
.rp .rp-bl-card{ display:flex; flex-direction:column; background:#fff; border-radius:22px; overflow:hidden; color:var(--rp-ink); text-decoration:none;
  box-shadow:0 1px 1px rgba(0,0,0,.03), 0 24px 50px -34px rgba(0,0,0,.3); transition:transform 300ms var(--rp-ease), box-shadow 300ms var(--rp-ease); }
@media (hover:hover){ .rp .rp-bl-card:hover{ transform:translateY(-4px); box-shadow:0 1px 1px rgba(0,0,0,.03), 0 34px 60px -34px rgba(0,0,0,.36); } }
.rp .rp-bl-card-body{ display:flex; flex-direction:column; gap:.55rem; padding:1.25rem 1.4rem 1.5rem; }
.rp .rp-bl-card-title{ font-weight:800; font-size:1.12rem; line-height:1.3; text-wrap:balance; }
.rp .rp-bl-meta{ display:flex; flex-wrap:wrap; gap:.3rem .9rem; font-size:.82rem; color:var(--rp-dim); }
.rp .rp-bl-meta b{ color:var(--rp-blue); font-weight:800; }
.rp .rp-bl-sum{ color:var(--rp-dim); line-height:1.5; font-size:.95rem; }
.rp .rp-bl-result{ margin:0 0 1.5rem; color:var(--rp-dim); }
.rp .rp-bl-empty{ text-align:center; padding:2rem 0; }
.rp .rp-bl-pages{ display:flex; flex-wrap:wrap; justify-content:center; gap:.4rem; margin-top:2.5rem; }
.rp .rp-bl-pages a{ min-width:42px; height:42px; padding:0 .9rem; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:.3rem;
  background:#fff; color:var(--rp-ink); font-weight:700; text-decoration:none; box-shadow:inset 0 0 0 1px var(--rp-line); }
.rp .rp-bl-pages a[aria-current]{ background:var(--rp-ink); color:#fff; box-shadow:none; }
@media (max-width:991.98px){ .rp .rp-bl-feat{ grid-template-columns:1fr; } .rp .rp-bl-feat .rp-bl-cover{ aspect-ratio:3 / 2; } }

/* ---------- artículo ---------- */
.rp .rp-ar-head{ padding:clamp(2rem, 5vw, 4rem) 0 0; background:radial-gradient(60% 70% at 50% 0%, #e7eefc 0%, rgba(231,238,252,0) 70%), #fff; }
.rp .rp-ar-head .container{ max-width:960px; }
.rp .rp-ar-crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; font-size:.88rem; font-weight:600; margin-bottom:1.25rem; }
.rp .rp-ar-crumbs a{ color:var(--rp-dim); text-decoration:none; }
.rp .rp-ar-crumbs a:hover{ color:var(--rp-blue); }
.rp .rp-ar-crumbs i{ font-size:.7rem; color:#a0a7b4; }
.rp .rp-ar-title{ font-size:clamp(2rem, 4.2vw, 3.5rem); line-height:1.05; text-wrap:balance; }
.rp .rp-ar-lead{ margin:1.1rem 0 0; max-width:60ch; }
.rp .rp-ar-meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; margin:1.2rem 0 0; color:var(--rp-dim); font-size:.92rem; font-weight:600; }
.rp .rp-ar-cover{ margin-top:clamp(1.5rem, 3vw, 2.5rem); }
.rp .rp-ar-cover .rp-bl-cover{ border-radius:24px; aspect-ratio:2 / 1; box-shadow:0 30px 60px -36px rgba(0,0,0,.35); }
.rp .rp-ar-cover .rp-bl-cover.is-gen i{ font-size:clamp(3.5rem, 8vw, 6rem); }
.rp .rp-ar-wrap{ padding:clamp(2.5rem, 5vw, 4rem) 0 clamp(3.5rem, 7vw, 6rem); }
.rp .rp-ar-grid{ max-width:1100px; display:grid; grid-template-columns:minmax(0, 1fr) 260px; gap:clamp(2rem, 5vw, 4.5rem); align-items:start; }
.rp .rp-ar-body{ max-width:70ch; font-size:1.08rem; line-height:1.75; color:#2b2f36; }
.rp .rp-ar-body > p:first-child{ font-size:1.2rem; color:var(--rp-ink); }
.rp .rp-ar-body h2{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-weight:600; letter-spacing:-.025em; line-height:1.15;
  font-size:clamp(1.45rem, 2.2vw, 1.9rem); color:var(--rp-ink); margin:2.6rem 0 .9rem; scroll-margin-top:90px; text-wrap:balance; }
.rp .rp-ar-body h3{ font-size:1.18rem; font-weight:800; color:var(--rp-ink); margin:1.8rem 0 .5rem; }
.rp .rp-ar-body p{ margin:0 0 1.1rem; }
.rp .rp-ar-body ul, .rp .rp-ar-body ol{ margin:0 0 1.3rem; padding-left:1.3rem; }
.rp .rp-ar-body li{ margin:.35rem 0; }
.rp .rp-ar-body li::marker{ color:var(--rp-blue); }
.rp .rp-ar-body a{ color:var(--rp-blue); font-weight:700; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }
.rp .rp-ar-body strong{ color:var(--rp-ink); }
.rp .rp-ar-body code{ display:inline-block; padding:.4rem .7rem; border-radius:10px; background:var(--rp-soft); color:var(--rp-ink); font-size:.95rem; }
.rp .rp-ar-body table{ width:100%; margin:0 0 1.5rem; border-collapse:collapse; font-size:.95rem; }
.rp .rp-ar-body th, .rp .rp-ar-body td{ padding:.75rem .8rem; border-bottom:1px solid var(--rp-line); vertical-align:top; text-align:left; }
.rp .rp-ar-body thead th{ background:var(--rp-soft); color:var(--rp-ink); }
.rp .rp-ar-faq{ margin-top:2.5rem; }
.rp .rp-ar-faq .rp-faq{ max-width:none; }
.rp .rp-ar-faq .rp-faq details{ background:var(--rp-soft); }
.rp .rp-ar-faq .rp-faq summary{ font-size:1rem; }
.rp .rp-ar-faq .rp-faq details p{ margin:.75rem 0 0; font-size:1rem; }
.rp .rp-ar-cta{ margin-top:2.5rem; padding:clamp(1.5rem, 3vw, 2.2rem); border-radius:24px; color:#fff;
  background:radial-gradient(70% 90% at 80% 20%, #3b82f6 0%, #2563eb 50%, #1e40af 100%); }
.rp .rp-ar-cta-title{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-weight:600; font-size:1.6rem; letter-spacing:-.02em; margin:0 0 .4rem; color:#fff; }
.rp .rp-ar-cta p{ color:rgba(255,255,255,.88); margin:0; }
.rp .rp-ar-cta-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
.rp .rp-ar-cta .rp-btn{ background:#fff; color:var(--rp-ink); }
.rp .rp-ar-cta .rp-btn:hover{ background:#eef2ff; color:var(--rp-ink); }
.rp .rp-ar-cta .rp-btn-ghost{ background:transparent; color:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.6); }
.rp .rp-ar-cta .rp-btn-ghost:hover{ background:rgba(255,255,255,.1); color:#fff; }
.rp .rp-ar-share{ display:flex; align-items:center; gap:.8rem; margin-top:2rem !important; color:var(--rp-dim); font-weight:700; font-size:.92rem; }
.rp .rp-ar-share a{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--rp-soft); color:var(--rp-ink) !important; text-decoration:none !important; }
.rp .rp-ar-share a:hover{ background:#e5e9f0; }
.rp .rp-ar-toc{ position:sticky; top:calc(var(--rp-hdr, 66px) + 24px); padding:1.3rem 1.4rem; border-radius:20px; background:var(--rp-soft); }
.rp .rp-ar-toc p{ margin:0 0 .7rem; font-weight:800; font-size:.92rem; }
.rp .rp-ar-toc ol{ margin:0; padding-left:1.1rem; display:grid; gap:.55rem; font-size:.9rem; line-height:1.35; }
.rp .rp-ar-toc a{ color:var(--rp-dim); text-decoration:none; font-weight:600; }
.rp .rp-ar-toc a:hover, .rp .rp-ar-toc a.is-on{ color:var(--rp-blue); }
@media (max-width:991.98px){ .rp .rp-ar-grid{ grid-template-columns:1fr; } .rp .rp-ar-toc{ display:none; } .rp .rp-ar-body{ max-width:none; } }
@media (max-width:575.98px){ .rp .rp-ar-body{ font-size:1.02rem; } .rp .rp-ar-body table{ display:block; overflow-x:auto; } .rp .rp-bl-search .rp-btn{ padding:.6rem .9rem; } }
.rp .rp-ar-head .container{ max-width:1100px; }   /* alineado con el cuerpo del artículo */
.rp .rp-ar-head .rp-ar-title, .rp .rp-ar-lead{ max-width:24ch; } .rp .rp-ar-lead{ max-width:60ch; }
.rp .rp-ar-cover .rp-bl-cover.is-gen{ aspect-ratio:4 / 1; }
@media (max-width:575.98px){ .rp .rp-ar-cover .rp-bl-cover.is-gen{ aspect-ratio:2.4 / 1; } }
.rp .rp-ar-body .rp-btn{ text-decoration:none; }
.rp .rp-ar-cover{ max-width:880px; }   /* portada del artículo completa (3:2), sin recortar */
.rp .rp-ar-cover .rp-bl-cover:not(.is-gen){ aspect-ratio:3 / 2; }

/* ---------- Páginas legales (terminos.php, politicas.php) ----------
   Mismo esqueleto que el artículo del blog. En lugar de portada, la ficha "En pocas
   palabras": cada renglón lleva a su sección. El índice lateral marca la sección
   que se está leyendo (ckd-page.js, tocSpy). */
.rp .rp-lg-head{ padding-bottom:clamp(2.5rem, 5vw, 4rem); }
.rp .rp-lg-sum{ margin-top:clamp(1.8rem, 3.5vw, 2.6rem); background:#fff; border:1px solid var(--rp-line); border-radius:24px;
  box-shadow:0 1px 1px rgba(0,0,0,.03), 0 30px 60px -36px rgba(0,0,0,.28);
  padding:clamp(1.3rem, 2.4vw, 1.9rem) clamp(1.3rem, 2.6vw, 2.2rem) clamp(1.1rem, 2vw, 1.5rem); }
.rp .rp-lg-sum-title{ font-family:var(--rp-display); font-variation-settings:'wdth' 125; font-weight:600; letter-spacing:-.02em; font-size:1.35rem; margin:0 0 .7rem; }
.rp .rp-lg-sum ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(1.5rem, 3.4vw, 3rem); }
.rp .rp-lg-sum li a{ display:flex; justify-content:space-between; align-items:baseline; gap:1.2rem; height:100%; padding:.95rem 0;
  border-top:1px solid var(--rp-line); color:var(--rp-ink); text-decoration:none; font-weight:600; line-height:1.4; }
.rp .rp-lg-sum li a small{ color:var(--rp-dim); font-weight:600; font-size:.8rem; white-space:nowrap; transition:color 160ms ease; }
.rp .rp-lg-sum li a:hover small{ color:var(--rp-blue); }
.rp .rp-lg-sum-note{ margin:.5rem 0 0; color:var(--rp-dim); font-size:.85rem; }
@media (max-width:767.98px){
  .rp .rp-lg-sum ul{ grid-template-columns:1fr; }
  /* "Sección N" debajo del texto: a la derecha quedaba bajo los botones flotantes */
  .rp .rp-lg-sum li a{ flex-direction:column; gap:.2rem; padding:.85rem 0; }
}
/* 992–1199: el contenedor llega casi al borde y los botones flotantes tapaban el índice */
@media (min-width:992px) and (max-width:1199.98px){ .rp .rp-ar-grid{ padding-right:calc(var(--bs-gutter-x, 1.5rem) * .5 + 52px); } }

.rp .rp-lg-sec{ scroll-margin-top:calc(var(--rp-hdr, 66px) + 20px); }
.rp .rp-lg-sec + .rp-lg-sec{ margin-top:2.4rem; padding-top:2.4rem; border-top:1px solid var(--rp-line); }
.rp .rp-lg-body .rp-lg-sec h2{ margin-top:0; }
.rp .rp-lg-sec > :last-child{ margin-bottom:0; }
.rp .rp-lg-n{ color:var(--rp-dim); margin-right:.4em; font-variant-numeric:tabular-nums; transition:color 300ms ease; }
.rp .rp-lg-sec:target .rp-lg-n{ color:var(--rp-blue); }
.rp .rp-lg-contact{ padding:clamp(1.2rem, 2.4vw, 1.7rem); border-radius:20px; background:var(--rp-soft); }
.rp .rp-lg-contact p{ display:flex; gap:.75rem; align-items:baseline; margin:0 0 .45rem; }
.rp .rp-lg-contact p:first-child{ margin-bottom:.7rem; }
.rp .rp-lg-contact p:last-child{ margin:0; }
.rp .rp-lg-contact i{ color:var(--rp-dim); }
.rp .rp-lg-note{ margin:2.4rem 0 0 !important; color:var(--rp-dim); font-size:.9rem; }
.rp .rp-ar-body a.rp-lg-other{ margin-top:1.6rem; color:var(--rp-ink); font-weight:inherit; text-decoration:none; }
.rp .rp-lg-other .rp-plate-name{ font-size:clamp(1.4rem, 2.2vw, 1.75rem); margin-bottom:.4rem; }
.rp .rp-lg-other p{ font-size:1rem; }
.rp .rp-lg-other .rp-more{ margin-top:.9rem; }
.rp .rp-lg-ckbtn{ display:flex; margin-top:.7rem; padding:.6rem 1.2rem; font-size:.95rem; }

/* índice lateral: riel gris, la sección actual en azul */
.rp .rp-lg-toc{ max-height:calc(100vh - var(--rp-hdr, 66px) - 48px); overflow:auto; }
.rp .rp-lg-toc ol{ list-style:none; padding:0; gap:0; border-left:2px solid var(--rp-line); }
.rp .rp-lg-toc a{ display:block; padding:.34rem 0 .34rem .9rem; margin-left:-2px; border-left:2px solid transparent;
  transition:color 160ms ease, border-color 160ms ease; }
.rp .rp-lg-toc a.is-on{ border-left-color:var(--rp-blue); }

/* índice en móvil y tablet (el lateral se oculta) */
.rp .rp-lg-mtoc{ display:none; margin:0 0 2.2rem; padding:1rem 1.2rem; border-radius:20px; background:var(--rp-soft); }
.rp .rp-lg-mtoc summary{ display:flex; justify-content:space-between; align-items:center; list-style:none; cursor:pointer; font-weight:800; }
.rp .rp-lg-mtoc summary::-webkit-details-marker{ display:none; }
.rp .rp-lg-mtoc summary i{ transition:transform 200ms var(--rp-ease); }
.rp .rp-lg-mtoc[open] summary i{ transform:rotate(180deg); }
.rp .rp-lg-mtoc ol{ margin:.8rem 0 0; font-size:.98rem; }
.rp .rp-ar-body .rp-lg-mtoc a{ color:var(--rp-ink); font-weight:600; text-decoration:none; }
@media (max-width:991.98px){ .rp .rp-lg-mtoc{ display:block; } }

/* entrada: la ficha sube y sus renglones aparecen en orden (el título no se anima: es el LCP) */
@media (prefers-reduced-motion:no-preference){
  .rp .rp-lg-sum{ animation:rp-lg-up 700ms var(--rp-ease) 120ms both; }
  .rp .rp-lg-sum li{ animation:rp-lg-up 600ms var(--rp-ease) both; animation-delay:calc(300ms + var(--i, 0) * 70ms); }
}
@keyframes rp-lg-up{ from{ opacity:0; transform:translateY(18px); } }
