/*
  pi-overrides.css — Ajustes finos del rediseño «propuesta 03» (R-411).

  Se carga DESPUÉS de pi-base.css y pi-marketing.css en las plantillas _v3,
  así que gana en la cascada sin necesidad de !important. Todo va dentro del
  ámbito `.pi-app` para no tocar el resto del producto (cuenta, panel, admin).

  Arregla dos defectos reales detectados en la portada nueva:

    1. LEGIBILIDAD. La base era 14px y había muchísimo texto en 11px (kickers,
       notas, cuerpo, pie, navegación). Se sube la base un escalón y se suben
       los tamaños más pequeños otro escalón, de forma coherente. Los titulares
       están definidos en px/clamp, así que NO se agrandan con esto.

    2. RESPONSIVIDAD MÓVIL. A 390px el titular del héroe de la portada madre se
       salía por la derecha: la regla `.pi-market-umbrella-hero h1` está
       declarada DESPUÉS del media query de 760px y con la misma especificidad,
       así que en móvil seguía a 52px con letter-spacing -4px. Además el grid
       del héroe no acotaba su columna de texto (min-width:auto) y empujaba el
       ancho de la página. Se corrige el titular en móvil, se deja que el texto
       parta palabra si hace falta y se pone una red de seguridad contra el
       scroll horizontal.
*/

/* ============================================================
   1. LEGIBILIDAD — escala coherente hacia arriba
   ============================================================ */

/* Base 14 -> 15px. Solo afecta a lo definido en `em`/heredado; los titulares
   en px/clamp no se mueven. */
.pi-app {
  font-size: 15px;
}

/* Cuerpo de lectura del héroe y de las secciones: un punto más de tamaño y
   aire. Es el texto que de verdad se lee, no una etiqueta. */
.pi-app .pi-market-hero-copy p {
  font-size: 17px;
}
.pi-app .pi-market-ecosystem-intro p,
.pi-app .pi-market-inner-hero p,
.pi-app .pi-market-operation p,
.pi-app .pi-market-hardware-copy p {
  font-size: 14px;
}

/* Etiquetas y textos pequeños (11px) -> 12px. Kickers, notas, checks,
   navegación, pie y estados. Siguen siendo secundarios, pero legibles. */
.pi-app .pi-market-kicker,
.pi-app .pi-market-kicker > span,
.pi-app .pi-note,
.pi-app .pi-small,
.pi-app .pi-field small,
.pi-app .pi-market-vertical-status,
.pi-app .pi-market-development,
.pi-app .pi-market-photo-caption,
.pi-app .pi-market-news p {
  font-size: 12px;
}

/* Enlaces de navegación, acceso, pie, listas de comprobación y sublabels:
   12 -> 13px. */
.pi-app .pi-market-nav > nav,
.pi-app .pi-market-access,
.pi-app .pi-market-footer-top > div a,
.pi-app .pi-market-checks,
.pi-app .pi-market-vertical-name small,
.pi-app .pi-market-text-link,
.pi-app .pi-market-hero-link {
  font-size: 13px;
}

/* ============================================================
   2. RESPONSIVIDAD — que nada se salga en móvil
   ============================================================ */

/* Que la columna de texto del héroe pueda encogerse dentro del grid en vez de
   empujar el ancho de la página. Y que un titular largo pueda partir palabra
   antes que desbordar. Aplica en todos los tamaños; en escritorio no cambia
   nada porque ahí sobra sitio. */
.pi-app .pi-market-hero-copy {
  min-width: 0;
}
.pi-app .pi-market-hero h1,
.pi-app .pi-market-inner-hero h1,
.pi-app .pi-market-brand .pi-brand-name {
  overflow-wrap: break-word;
}

@media (max-width: 760px) {
  /* El titular de la portada madre bajaba mal en móvil (ver comentario de
     arriba). Lo ajustamos a una escala que cabe a 360/390/430px y con menos
     letter-spacing negativo, que es lo que hacía que «Punto a punto.» se
     saliera. Esta regla va en su propio media query y en una hoja posterior,
     así que gana a la de pi-marketing.css sin !important. */
  .pi-app .pi-market-umbrella-hero h1 {
    font-size: clamp(38px, 10.5vw, 58px);
    letter-spacing: -1.6px;
    line-height: 1.05;
  }

  /* La base de la marca (TIMING / ENTRIES / SOFTWARE): menos espaciado y menos
     hueco para que «SOFTWARE» no se corte en pantallas estrechas. */
  .pi-app .pi-market-mark-base {
    gap: 6px;
    letter-spacing: .3px;
  }

  /* Red de seguridad: en móvil, ningún hijo del bloque comercial puede provocar
     scroll horizontal de la página. `clip` no crea contenedor de scroll y no
     afecta al eje vertical. Se limita a móvil para no recortar las sombras
     decorativas de las ventanas de producto en escritorio. */
  .pi-app .pi-market {
    overflow-x: clip;
  }
}

/* Web pública: consultas, recibos, catálogos y lectura editorial.
   Componentes compartidos por las plantillas reales; sin reglas Tailwind. */
.pi-app .pi-market-page-title { font-size:clamp(36px,4.5vw,62px); font-weight:500; line-height:1.1; letter-spacing:-2px; margin:24px 0; overflow-wrap:anywhere; }
.pi-app .pi-market .pi-market-lead { font-size:16px; line-height:1.85; max-width:65ch; margin:18px 0 26px; }
.pi-app .pi-market-inquiry { background:#f5f2eb; }
.pi-app .pi-market-form-intro { border-top:2px solid #ea580c; padding-top:24px; }
.pi-app .pi-market-form-panel { background:#fff; padding:clamp(22px,3vw,42px); border:1px solid #dce1e7; border-top:3px solid #0e1b2e; min-width:0; }
.pi-app .pi-market-form { display:grid; gap:24px; }
.pi-app .pi-market-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; }
.pi-app .pi-market-field-wide { grid-column:1/-1; }
.pi-app .pi-market-form .pi-market-label { font-size:13px; font-weight:500; }
.pi-app .pi-market-form .pi-field input:not([type=checkbox]):not([type=radio]),
.pi-app .pi-market-form .pi-field select,
.pi-app .pi-market-form .pi-field textarea { min-height:46px; font-family:inherit; font-size:16px; box-shadow:none; }
.pi-app .pi-market-form .pi-field textarea { min-height:155px; }
.pi-app .pi-market-required { color:#ae3c09; }
.pi-app .pi-market-form .pi-market-error { margin:2px 0 0; color:#a92b29; font-size:13px; }
.pi-app .pi-market-error-summary { color:#a92b29; background:#fbeceb; border-left:3px solid #a92b29; padding:14px 18px; margin-bottom:24px; }
.pi-app .pi-market-error-summary p { color:inherit; margin:0; font-size:14px; }
.pi-app .pi-market-actions,
.pi-app .pi-market-form-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:26px; }
.pi-app .pi-market-form-actions { justify-content:space-between; border-top:1px solid #dce1e7; padding-top:24px; margin-top:0; }
.pi-app .pi-market-contact-point { overflow-wrap:anywhere; margin-top:0; }
.pi-app .pi-market-confirmation { background:#f5f2eb; min-height:65vh; display:grid; place-items:center; }
.pi-app .pi-market-receipt { width:100%; max-width:780px; padding:clamp(24px,4vw,52px); background:#fff; border-top:3px solid #12623e; }
.pi-app .pi-market-receipt .pi-button { margin-top:10px; }
.pi-app .pi-market-success-mark { display:grid; place-items:center; width:56px; height:56px; background:#e8f4ed; color:#12623e; border-radius:50%; }
.pi-app .pi-market-success-icon { width:30px; height:30px; }
.pi-app .pi-market .pi-market-reference { display:inline-block; padding:8px 12px; border:1px solid #dce1e7; background:#eef2f6; font-size:13px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.pi-app .pi-market-inquiry .pi-button,
.pi-app .pi-market-receipt .pi-button { min-height:44px; font-size:14px; }
@media(max-width:760px) {
  .pi-app .pi-market-form-grid { grid-template-columns:minmax(0,1fr); }
  .pi-app .pi-market-page-title { font-size:clamp(32px,9vw,44px); letter-spacing:-1.3px; }
  .pi-app .pi-market-form-actions { align-items:stretch; flex-direction:column; }
  .pi-app .pi-market-form-actions .pi-market-text-link { padding:10px 0; }
  .pi-app .pi-market-contact-point { margin-top:0; }
}

/* Catálogos: fotografías reales, categorías abiertas y datos tabulares. */
.pi-app .pi-market-container { width:100%; max-width:1280px; margin-inline:auto; min-width:0; }
.pi-app .pi-market-intro { max-width:900px; }
.pi-app .pi-market-catalog-section { background:#f5f2eb; }
.pi-app .pi-market-categories { display:grid; gap:55px; }
.pi-app .pi-market-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:22px; }
.pi-app .pi-market-catalog-card { min-width:0; padding:26px; background:#f8f8f8; border-top:2px solid #15243a; display:flex; flex-direction:column; align-items:stretch; }
.pi-app .pi-market-catalog-photo { width:100%; height:210px; object-fit:contain; margin-bottom:24px; }
.pi-app .pi-market-catalog-card .pi-market-heading { font-size:20px; letter-spacing:-.6px; line-height:1.35; margin:0 0 8px; }
.pi-app .pi-market-heading { font-weight:500; }
.pi-app .pi-market .pi-market-copy { font-size:14px; line-height:1.8; margin:8px 0 14px; color:#576577; }
.pi-app .pi-market .pi-market-meta { font-size:12px; line-height:1.7; margin:8px 0; color:#576577; }
.pi-app .pi-market-card-footer { border-top:1px solid #dce1e7; padding-top:20px; margin-top:24px; }
.pi-app .pi-market-card-footer .pi-market-actions { margin-top:0; }
.pi-app .pi-market .pi-market-amount { font-size:30px; line-height:1.2; font-weight:500; letter-spacing:-1px; font-variant-numeric:tabular-nums; }
.pi-app .pi-market .pi-market-amount-large { font-size:clamp(40px,4vw,58px); letter-spacing:-2px; }
.pi-app .pi-market-price-line { display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; margin:8px 0; }
.pi-app .pi-market .pi-market-stock,
.pi-app .pi-market .pi-market-stock-warning,
.pi-app .pi-market .pi-market-stock-neutral { font-size:12px; line-height:1.6; padding:6px 10px; margin-top:12px; width:fit-content; }
.pi-app .pi-market .pi-market-stock { color:#12623e; background:#e8f4ed; }
.pi-app .pi-market .pi-market-stock-warning { color:#805900; background:#fff3d8; }
.pi-app .pi-market .pi-market-stock-neutral { color:#576577; background:#eef2f6; }
.pi-app .pi-market-stock-detail { margin-left:auto; }
.pi-app .pi-market-catalog-card > .pi-button { margin-top:22px; }
.pi-app .pi-market-catalog-card > form { margin-top:10px; }
.pi-app .pi-market-catalog-card > form .pi-button { width:100%; }
.pi-app .pi-market-commerce .pi-button { min-height:44px; font-size:13px; }
.pi-app .pi-market-catalog-card .pi-market-card-footer { margin-top:auto; padding-top:20px; }
.pi-app .pi-market-catalog-card > .pi-market-copy { margin-bottom:24px; }
.pi-app .pi-market-empty { max-width:780px; padding:clamp(24px,4vw,48px); border-top:2px solid #15243a; background:#fff; }
.pi-app .pi-market-empty .pi-button { margin-top:22px; }
.pi-app .pi-market-detail { background:#f8f8f8; border-top:2px solid #15243a; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start; }
.pi-app .pi-market-detail:not(:has(>img)) { grid-template-columns:minmax(0,1fr); }
.pi-app .pi-market-detail-photo { width:100%; max-height:560px; object-fit:contain; padding:clamp(24px,4vw,55px); background:#f8f8f8; }
.pi-app .pi-market-detail-copy { padding:clamp(24px,3vw,44px); min-width:0; }
.pi-app .pi-market-detail .pi-market-page-title { font-size:clamp(30px,3.3vw,46px); letter-spacing:-1.5px; }
.pi-app .pi-market-detail .pi-market-lead { font-size:15px; }
.pi-app .pi-market-spacing { margin:20px 0; }
.pi-app .pi-market-process { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin:35px 0; }
.pi-app .pi-market-list-row { display:flex; align-items:flex-start; gap:14px; }
.pi-app .pi-market-step-number { flex:none; font-size:24px; color:#ae3c09; font-variant-numeric:tabular-nums; border-top:2px solid #ae3c09; padding-top:8px; min-width:35px; }
.pi-app .pi-market-list-icon { width:20px; height:20px; flex:none; color:#ae3c09; }
.pi-app .pi-market-feature-icon { width:28px; height:28px; color:#ae3c09; }
.pi-app .pi-market-icon-holder { margin-bottom:22px; }
.pi-app .pi-market-inner-hero .pi-market-meta,
.pi-app .pi-market-inner-hero .pi-market-copy { color:#c5d0dd; }
.pi-app .pi-market-inner-hero .pi-market-kicker { color:#f3f0e9; }
.pi-app .pi-market-inner-hero .pi-market-text-link { color:#f3f0e9; border-bottom:1px solid #8793a3; padding-bottom:7px; }
.pi-app .pi-market-commerce :is(p,h2,h3,a) { overflow-wrap:anywhere; }
@media(max-width:1050px) {
  .pi-app .pi-market-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .pi-app .pi-market-catalog-grid,
  .pi-app .pi-market-detail,
  .pi-app .pi-market-process { grid-template-columns:minmax(0,1fr); }
  .pi-app .pi-market-detail-photo { max-height:340px; }
  .pi-app .pi-market-stock-detail { margin-left:0; }
}

/* Páginas comerciales conservadas: planes reales y composición editorial. */
.pi-app .pi-market-editorial .pi-market-paper { background:#eae5dc; }
.pi-app .pi-market-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:48px; }
.pi-app .pi-market-service-card { border-top:2px solid #15243a; padding-top:26px; min-width:0; }
.pi-app .pi-market-service-card h3 { font-size:25px; letter-spacing:-.8px; line-height:1.25; }
.pi-app .pi-market-feature-section { margin-top:42px; padding-top:28px; }
.pi-app .pi-market-feature-section h3 { font-size:22px; margin-bottom:14px; }
.pi-app .pi-market-benefits { list-style:none; display:grid; gap:14px; margin:24px 0; padding:0; font-size:13px; line-height:1.7; }
.pi-app .pi-market-plans { margin-top:45px; }
.pi-app .pi-market-editorial .pi-market-plan { display:flex; flex-direction:column; min-width:0; }
.pi-app .pi-market-plan .pi-market-benefits { flex:1; }
.pi-app .pi-market-plan .pi-market-actions { align-items:baseline; gap:7px; margin-top:22px; }
.pi-app .pi-market-plan .pi-market-plan-name { font-size:24px; margin-bottom:12px; }
.pi-app .pi-market-plan.featured .pi-market-list-icon { color:#ff9a64; }
.pi-app .pi-market-popular { width:fit-content; color:#08111f; background:#ea580c; font-size:11px; padding:5px 9px; margin-bottom:18px; text-transform:uppercase; letter-spacing:1px; }
.pi-app .pi-market-editorial .pi-market-plan-secondary { background:transparent; }
.pi-app .pi-market-night-panel { padding:clamp(24px,4vw,48px); background:#0e1b2e; color:#f3f0e9; }
.pi-app .pi-market-night-panel .pi-market-equipment-choices { gap:40px; align-items:center; }
.pi-app .pi-market-night-panel .pi-market-copy,
.pi-app .pi-market-night-panel .pi-market-lead { color:#c5d0dd; }
.pi-app .pi-market-night-panel .pi-market-list-icon { color:#ff9a64; }
.pi-app .pi-market-hardware-section { margin-top:64px; }
.pi-app .pi-market-faq-section { margin-top:64px; max-width:900px; }
.pi-app .pi-market-accordion { margin-top:28px; border-top:1px solid #a6b0bb; }
.pi-app .pi-market-accordion-item { padding:22px 0; border-bottom:1px solid #a6b0bb; }
.pi-app .pi-market-accordion-trigger { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; text-align:left; min-height:44px; padding:0; border:0; background:transparent; color:inherit; }
.pi-app .pi-market-accordion-trigger svg { transition:transform .2s ease; }
.pi-app .pi-market-accordion-trigger .rotate-180 { transform:rotate(180deg); }
.pi-app .pi-market-news-panel { background:#e9e4db; padding:clamp(24px,4vw,44px); }
.pi-app .pi-market-editorial .pi-market-closing p { color:#08111f; }
.pi-app .pi-market-editorial .pi-market-closing .pi-primary { background:#0e1b2e; color:#f3f0e9; border-color:#0e1b2e; }
.pi-app .pi-market-editorial .pi-market-closing .pi-primary:hover { background:#24374e; }
.pi-app .pi-market-editorial .pi-market-text-link { display:inline-flex; min-height:44px; align-items:center; text-decoration:underline; text-underline-offset:4px; }
.pi-app .pi-market-editorial .pi-market-card-footer { margin-bottom:24px; }
.pi-app .pi-market-editorial :is(p,h2,h3,a) { overflow-wrap:anywhere; }
/* Lecture longue et informations de société. */
.pi-app .pi-market-document { background:#f5f2eb; }
.pi-app .pi-market-document-body { max-width:850px; margin-inline:auto; border-top:2px solid #15243a; padding-top:30px; }
.pi-app .pi-market-document-heading { margin-bottom:38px; }
.pi-app .pi-market-prose { font-size:15px; line-height:1.9; overflow-wrap:anywhere; }
.pi-app .pi-market-prose h1 { font-size:clamp(34px,4.5vw,56px); line-height:1.15; letter-spacing:-1.8px; margin:30px 0 42px; }
.pi-app .pi-market-prose h2 { font-size:25px; letter-spacing:-.6px; margin:38px 0 16px; padding-top:24px; border-top:1px solid #bec5cc; }
.pi-app .pi-market-prose p { margin:16px 0; font-size:15px; line-height:1.9; max-width:none; }
.pi-app .pi-market-prose ul { padding-left:22px; margin:18px 0; }
.pi-app .pi-market-prose li { margin:10px 0; }
.pi-app .pi-market-prose a { text-decoration:underline; text-underline-offset:4px; }
.pi-app .pi-market-prose table { width:100%; border-collapse:collapse; margin:24px 0; font-size:14px; }
.pi-app .pi-market-prose td { border-bottom:1px solid #bec5cc; padding:15px 12px; vertical-align:top; }
.pi-app .pi-market-prose td:first-child { width:32%; padding-left:0; }
.pi-app .pi-market-prose .pi-market-language-note { border-left:2px solid #8793a3; padding-left:16px; font-size:12px; color:#576577; margin-top:0; }
.pi-app .pi-market-prose .pi-market-document-date { font-size:12px; color:#576577; margin-top:42px; }
@media(max-width:1000px) {
  .pi-app .pi-market-service-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px) {
  .pi-app .pi-market-editorial .pi-market-plan-grid { grid-template-columns:minmax(0,1fr); }
  .pi-app .pi-market-prose h2 { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) {
  .pi-app .pi-market-accordion-trigger svg { transition:none; }
}

/* Cáscara pública: navegación al teclado, marcas y newsletter real. */
.pi-app .pi-market-skip { position:absolute; top:8px; left:16px; transform:translateY(-200%); z-index:50; padding:12px 18px; background:#fff; color:#15243a; border:2px solid #ea580c; }
.pi-app .pi-market-skip:focus { transform:translateY(0); }
.pi-app .pi-market :is(a,button):focus-visible { outline:2px solid #ea580c; outline-offset:4px; }
.pi-app .pi-market-manufacturers { padding:40px 6%; border-top:1px solid #bec5cc; background:#fff; }
.pi-app .pi-market-manufacturer-logos { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin:24px 0; }
.pi-app .pi-market-manufacturer-brand { display:flex; align-items:center; gap:12px; }
.pi-app .pi-market-manufacturer-symbol { width:36px; height:36px; object-fit:contain; }
.pi-app .pi-market-manufacturers .pi-market-copy { max-width:70ch; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) form { display:grid; gap:16px; min-width:0; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) form > div:has(input[type=email]) { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) label[for^=nl-email] { position:static; width:auto; height:auto; margin:0; padding:0; clip:auto; overflow:visible; white-space:normal; grid-column:1/-1; font-size:13px; font-weight:500; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) input[type=email] { min-width:0; width:100%; font:inherit; font-size:16px; padding:12px; border:1px solid #8793a3; border-radius:4px; background:#fff; color:#15243a; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) button[type=submit] { border:1px solid #ea580c; border-radius:4px; background:#ea580c; color:#08111f; padding:12px 18px; font-size:14px; font-weight:500; min-height:44px; box-shadow:none; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) button[type=submit]:hover { background:#d84c05; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) form > label { display:flex; align-items:flex-start; gap:10px; color:#576577; font-size:12px; line-height:1.8; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) input[type=checkbox] { width:18px; height:18px; flex:none; margin-top:2px; accent-color:#ea580c; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) input:focus-visible { outline:2px solid #ea580c; outline-offset:3px; }
.pi-app :is(.pi-market-news,.pi-market-news-panel) a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) {
  .pi-app :is(.pi-market-news,.pi-market-news-panel) form > div:has(input[type=email]) { grid-template-columns:minmax(0,1fr); }
  .pi-app .pi-market-manufacturers { padding:35px 22px; }
  .pi-app .pi-market-manufacturer-logos > .pi-market-meta { display:none; }
}

.pi-app .pi-market-access button.pi-market-login { background:transparent; color:inherit; border:0; padding:6px; min-height:44px; }
.pi-app .pi-market-categories > div > .pi-market-heading { font-size:30px; letter-spacing:-.8px; margin-bottom:22px; }
.pi-app .pi-market-categories > div > .pi-market-actions { justify-content:space-between; margin-top:0; }
.pi-app .pi-market-categories > div > .pi-market-actions h3 { font-size:24px; }

.pi-app .pi-market-editorial .pi-market-plan { position:relative; }
.pi-app .pi-market-popular { position:absolute; top:-16px; left:24px; margin:0; }
.pi-app .pi-market-plan.featured .pi-market-copy,
.pi-app .pi-market-plan.featured .pi-market-meta { color:#c5d0dd; }

.pi-app .pi-market p.pi-market-heading { color:#15243a; font-weight:500; }
.pi-app .pi-market-form .pi-field input[aria-invalid=true]:not([type=checkbox]):not([type=radio]),
.pi-app .pi-market-form .pi-field select[aria-invalid=true],
.pi-app .pi-market-form .pi-field textarea[aria-invalid=true] { border-color:#a92b29; }

/* Arquitectura PI: 01 Cloud es el centro; 02 Entries y 03 Timing dependen de él.
   Pares AA: naranja/noche; azul/blanco; verde/blanco. No usar blanco/naranja. */
.pi-app {
  --pi-cloud: #ea580c;
  --pi-cloud-ink: #9a3412;
  --pi-night: #0e1b2e;
  --pi-timing: #1d4ed8;
  --pi-timing-light: #dbeafe;
  --pi-entries: #047857;
  --pi-entries-light: #d1fae5;
}
.pi-app :is(.pi-theme-cloud,[data-vertical="cloud"]) { --pi-vertical:var(--pi-cloud-ink); --pi-vertical-bg:#fff4eb; --pi-vertical-button:var(--pi-cloud); --pi-vertical-on:var(--pi-night); }
.pi-app :is(.pi-theme-timing,[data-vertical="timing"]) { --pi-vertical:var(--pi-timing); --pi-vertical-bg:#eff6ff; --pi-vertical-button:var(--pi-timing); --pi-vertical-on:#fff; }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) { --pi-vertical:var(--pi-entries); --pi-vertical-bg:#ecfdf5; --pi-vertical-button:var(--pi-entries); --pi-vertical-on:#fff; }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries) > .pi-market-inner-hero,
.pi-app [data-vertical] { background:var(--pi-vertical-bg); color:var(--pi-night); }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries,[data-vertical]) :is(.pi-market-kicker,.pi-market-slash,.pi-market-inner-hero h1 em) { color:var(--pi-vertical); }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries,[data-vertical]) .pi-button:is(.pi-primary,.pi-dark-button) { background:var(--pi-vertical-button); border-color:var(--pi-vertical-button); color:var(--pi-vertical-on); }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries,[data-vertical]) .pi-button:hover { text-decoration:underline; text-underline-offset:4px; }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries,[data-vertical]) :is(a,button):focus-visible { outline-color:var(--pi-vertical); }
.pi-app .pi-market .pi-universe-intro { box-sizing:border-box; width:100%; max-width:none; margin-inline:auto; padding:64px 6% 48px; background:#12366b; color:#fff; }
.pi-app .pi-market .pi-market-ecosystem-intro.pi-universe-intro { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(24px,5vw,72px); }
.pi-app .pi-universe-intro > * { min-width:0; }
.pi-app .pi-market .pi-universe-intro :is(p,h1,h2,.pi-market-kicker) { color:#fff; }
.pi-app .pi-market .pi-universe-intro :is(h1 em,.pi-market-kicker span) { color:#bfdbfe; }
.pi-app .pi-ecosystem { padding:0 6% 64px; background:#12366b; }
.pi-app .pi-ecosystem-hub { display:grid; grid-template-columns:192px minmax(0,1fr); align-items:center; gap:40px; padding:40px; border-top:6px solid var(--pi-cloud); scroll-margin-top:100px; }
.pi-app .pi-ecosystem-hub h2 { font-size:clamp(36px,5vw,64px); line-height:1.1; letter-spacing:-2px; margin:12px 0 20px; }
.pi-app .pi-ecosystem-hub p { max-width:65ch; }
.pi-app .pi-ecosystem-symbol { display:grid; justify-items:center; gap:16px; }
.pi-app .pi-ecosystem-symbol .pi-vertical-symbol { width:100%; max-width:192px; height:auto; color:var(--pi-cloud-ink); }
.pi-app .pi-ecosystem-symbol > span { font-size:11px; font-weight:700; letter-spacing:2px; color:var(--pi-cloud-ink); }
.pi-app .pi-ecosystem-branches { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; padding-top:48px; }
.pi-app .pi-ecosystem-branches::before { content:""; position:absolute; top:0; height:24px; width:2px; background:#bfdbfe; left:calc(50% - 1px); }
.pi-app .pi-ecosystem-branches::after { content:""; position:absolute; top:24px; left:25%; right:25%; height:24px; border:2px solid #bfdbfe; border-bottom:0; }
.pi-app .pi-ecosystem-branch { padding:32px; border-top:5px solid var(--pi-vertical); display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.pi-app .pi-ecosystem-branch h3 { font-size:clamp(28px,3vw,40px); line-height:1.15; letter-spacing:-1px; margin:12px 0 16px; }
.pi-app .pi-ecosystem-branch .pi-button { margin-top:auto; }
.pi-app .pi-ecosystem :is(p,.pi-market-development) { font-size:14px; line-height:1.7; }
.pi-app .pi-ecosystem p { color:var(--pi-night); margin-bottom:24px; }
.pi-app .pi-market .pi-ecosystem-nav-hub { font-weight:700; }
.pi-app .pi-market-mark-base strong { color:#ffb38a; font-size:11px; text-align:center; }
.pi-app [data-vertical="entries"] .pi-market-development { background:var(--pi-entries-light); color:#065f46; border-color:var(--pi-entries); }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) .pi-market-entry-cover { background:var(--pi-entries); color:#fff; }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) .pi-market-entry-cover::after { background:#065f46; }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) .pi-market-entry-cover > span { color:#fff; }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) .pi-market-entry-distance button[aria-pressed="true"] { background:#fff; color:#065f46; border-color:#fff; }
.pi-app .pi-timing-wordmark { display:flex; flex-direction:column; gap:32px; background:var(--pi-timing); color:#fff; padding:clamp(28px,4vw,56px); }
.pi-app .pi-timing-wordmark > span { font-size:11px; letter-spacing:1.8px; }
.pi-app .pi-timing-wordmark strong { font-size:clamp(54px,7vw,100px); font-weight:500; line-height:.95; letter-spacing:-4px; }
.pi-app .pi-timing-wordmark strong span { color:#bfdbfe; }
.pi-app .pi-cloud-bridge { border-top:5px solid var(--pi-cloud); }
@media(max-width:760px) {
  .pi-app .pi-ecosystem { padding:0 22px 40px; }
  .pi-app .pi-ecosystem-hub { grid-template-columns:minmax(0,1fr); gap:24px; padding:28px 22px; }
  .pi-app .pi-ecosystem-symbol { grid-template-columns:80px 1fr; justify-items:start; align-items:center; }
  .pi-app .pi-ecosystem-symbol .pi-vertical-symbol { width:80px; }
  .pi-app .pi-ecosystem-branches { grid-template-columns:minmax(0,1fr); gap:24px; padding-top:32px; padding-left:18px; }
  .pi-app .pi-ecosystem-branches::before { left:0; top:0; bottom:0; height:auto; }
  .pi-app .pi-ecosystem-branches::after { display:none; }
  .pi-app .pi-ecosystem-branch { position:relative; padding:24px; }
  .pi-app .pi-ecosystem-branch::before { content:""; position:absolute; left:-18px; top:24px; width:18px; height:2px; background:#bfdbfe; }
}

/* Los héroes originales eran oscuros: restituir tinta AA en los temas claros. */
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries) .pi-market-inner-hero p { color:#34465b; }
.pi-app :is(.pi-theme-cloud,.pi-theme-timing,.pi-theme-entries) .pi-market-inner-hero .pi-market-hero-link { color:var(--pi-vertical); border-color:var(--pi-vertical); }
.pi-app .pi-theme-entries .pi-market-development { background:#d1fae5; color:#065f46; border-color:#047857; }
.pi-app :is(.pi-theme-timing,[data-vertical="timing"]) .pi-market-development { background:var(--pi-timing-light); color:var(--pi-timing); border-color:var(--pi-timing); }
.pi-app :is(.pi-theme-entries,[data-vertical="entries"]) .pi-market-product-intent { border-color:#047857; }
.pi-app .pi-theme-timing .pi-market-system-light { border-top:5px solid #1d4ed8; }
.pi-app .pi-theme-timing .pi-market-system-word > span { color:#1d4ed8; }

/* Loader PI: cuatro accesos entregan el pulso al centro. Solo transform/opacity. */
.pi-app .pi-loader { display:inline-flex; align-items:center; justify-content:center; gap:12px; color:#0e1b2e; font-size:14px; line-height:1.5; vertical-align:middle; }
.pi-app .pi-loader-symbol { flex:none; display:block; width:40px; height:40px; }
.pi-app .pi-loader-label { background:#fff; color:#0e1b2e; padding:2px 6px; border-radius:4px; }
.pi-app .pi-loader--overlay { position:fixed; inset:0; z-index:1000; flex-direction:column; gap:24px; padding:24px; background:#0e1b2e; color:#fff; }
.pi-app .pi-loader--overlay .pi-loader-symbol { width:clamp(96px,18vw,160px); height:auto; }
.pi-app .pi-loader--overlay .pi-loader-label { background:transparent; color:#fff; letter-spacing:.08em; }
.pi-app .pi-loader-gate { transform-box:fill-box; transform-origin:center; animation:pi-loader-arrive 2.4s ease-in-out infinite; }
.pi-app .pi-loader-gate--north { --pi-loader-x:0px; --pi-loader-y:12px; }
.pi-app .pi-loader-gate--east { --pi-loader-x:-12px; --pi-loader-y:0px; animation-delay:.2s; }
.pi-app .pi-loader-gate--south { --pi-loader-x:0px; --pi-loader-y:-12px; animation-delay:.4s; }
.pi-app .pi-loader-gate--west { --pi-loader-x:12px; --pi-loader-y:0px; animation-delay:.6s; }
.pi-app .pi-loader-heart { transform-box:fill-box; transform-origin:center; animation:pi-loader-pulse 2.4s ease-in-out infinite; }
@keyframes pi-loader-arrive {
  0%,65%,100% { transform:translate(0,0); opacity:1; }
  30% { transform:translate(var(--pi-loader-x),var(--pi-loader-y)); opacity:.45; }
}
@keyframes pi-loader-pulse {
  0%,35%,100% { transform:scale(1); opacity:1; }
  60% { transform:scale(.8); opacity:.65; }
  78% { transform:scale(1.08); opacity:1; }
}
/* Opt-in HTMX: invisible también para accesibilidad hasta que hay petición.
   hx-indicator apunta al id del include. Sin tocar formularios existentes. */
.pi-app .pi-loader--indicator { display:none; }
.pi-app .pi-loader--indicator :is(.pi-loader-gate,.pi-loader-heart) { animation-play-state:paused; }
.pi-app .htmx-request .pi-loader--indicator,
.pi-app .pi-loader--indicator.htmx-request { display:inline-flex; }
.pi-app .htmx-request .pi-loader--indicator :is(.pi-loader-gate,.pi-loader-heart),
.pi-app .pi-loader--indicator.htmx-request :is(.pi-loader-gate,.pi-loader-heart) { animation-play-state:running; }
@media(prefers-reduced-motion:reduce) {
  .pi-app .pi-loader :is(.pi-loader-gate,.pi-loader-heart) { animation:none; transform:none; opacity:1; }
}
/* Identidad pública: un único isotipo PI, teñido por vertical. */
.pi-app .pi-vertical-symbol { display:inline-block; flex:none; width:32px; height:32px; vertical-align:middle; color:var(--pi-vertical, var(--pi-cloud-ink)); }
.pi-app .pi-market-entry-top > span:first-child { display:flex; align-items:center; gap:10px; max-width:none; text-align:left; color:var(--pi-entries); }
.pi-app .pi-market-kicker .pi-vertical-sign { display:inline-flex; align-items:center; gap:10px; color:var(--pi-vertical); background:transparent; border:0; padding:0; }
.pi-app .pi-ecosystem p.pi-market-kicker { color:var(--pi-vertical); }
.pi-app .pi-market-mark-base { flex-wrap:wrap; }
.pi-app .pi-market-mark-base strong { flex-basis:100%; text-align:center; }

/* Bandas de vertical completas, con el mismo margen interior en ambas. */
.pi-app .pi-market-section[data-vertical] { box-sizing:border-box; width:100%; max-width:none; }
.pi-app :is(.pi-market-entries-section,.pi-market-timing-section,.pi-theme-entries .pi-market-inner-hero,.pi-theme-timing .pi-market-inner-hero) .pi-market-kicker { flex-wrap:wrap; }
.pi-app :is(.pi-market-entries-section,.pi-market-timing-section,.pi-theme-entries .pi-market-inner-hero,.pi-theme-timing .pi-market-inner-hero) .pi-vertical-sign .pi-vertical-symbol { width:clamp(64px,6vw,96px); height:clamp(64px,6vw,96px); }

/* Preview a la izquierda, presentación de Timing a la derecha. */
.pi-app .pi-market-timing-section { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); }
.pi-app .pi-market-timing-section > * { min-width:0; }
.pi-app .pi-market-timing-section h2 { font-size:clamp(30px,3.2vw,44px); letter-spacing:-1.4px; }
.pi-app .pi-timing-preview { margin:0; overflow:hidden; border:1px solid #c5d4e6; border-radius:12px; background:#fff; box-shadow:0 16px 40px #0e1b2e0d; color:var(--pi-night); }
.pi-app .pi-timing-preview-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:18px 24px; border-bottom:1px solid #dce5ef; }
.pi-app .pi-timing-preview-heading > span { display:flex; align-items:center; gap:10px; font-weight:600; color:var(--pi-timing); }
.pi-app .pi-timing-preview-event { display:grid; gap:12px; padding:28px 24px; background:#f5f8fc; }
.pi-app .pi-timing-preview-event > span { font-size:12px; color:#4d5c6e; letter-spacing:.04em; }
.pi-app .pi-timing-preview-event strong { font-size:clamp(22px,2.4vw,30px); font-weight:500; letter-spacing:-.7px; }
.pi-app .pi-timing-preview table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.pi-app .pi-timing-preview caption { text-align:left; padding:18px 24px 10px; color:#4d5c6e; font-size:12px; }
.pi-app .pi-timing-preview :is(th,td) { padding:13px 24px; text-align:left; border-bottom:1px solid #e4eaf1; }
.pi-app .pi-timing-preview th { color:#4d5c6e; font-size:12px; font-weight:500; }
.pi-app .pi-timing-preview :is(th,td):last-child { text-align:right; white-space:nowrap; }
.pi-app .pi-timing-preview td:first-child { font-weight:600; color:var(--pi-timing); }
.pi-app .pi-timing-preview-foot { display:flex; align-items:center; gap:10px; padding:16px 24px; font-size:12px; }
.pi-app .pi-timing-preview-foot .pi-vertical-symbol { width:24px; height:24px; }

/* Partner tecnológico: logo legible y alcance del soporte de fabricación. */
.pi-app .pi-market-partner { padding-block:64px; background:#eef2f6; color:#0e1b2e; }
.pi-app .pi-market-partner-grid { display:grid; grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr); gap:clamp(32px,6vw,88px); align-items:center; }
.pi-app .pi-market-partner-grid > div { min-width:0; }
.pi-app .pi-market-partner-logo { display:grid; justify-items:center; gap:24px; padding:32px; border:1px solid #dce2e8; border-radius:8px; background:#fff; }
.pi-app .pi-market-partner-logo img { width:100%; max-width:250px; height:auto; }
.pi-app .pi-market-partner-logo span { color:#4d5c6e; font-size:12px; letter-spacing:.12em; text-align:center; }
.pi-app .pi-market-partner .pi-market-kicker { color:#4d5c6e; line-height:1.6; }
.pi-app .pi-market-partner .pi-vertical-symbol { flex:none; color:#ae3c09; --pi-vertical-bg:#eef2f6; }
.pi-app .pi-market-partner h2 { font-size:clamp(28px,3vw,38px); font-weight:500; line-height:1.2; letter-spacing:-1px; margin:16px 0; }
.pi-app .pi-market .pi-market-partner .pi-market-copy { color:#4d5c6e; line-height:1.8; margin-bottom:22px; }
.pi-app .pi-market-partner .pi-market-text-link { min-height:44px; color:#0e1b2e; }
.pi-app .pi-market-partner .pi-market-text-link:hover { color:#ae3c09; border-color:currentColor; }
.pi-app .pi-market-partner .pi-market-text-link:focus-visible { outline:3px solid #ae3c09; outline-offset:4px; }
.pi-app .pi-equipment-range-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:32px 0; }
.pi-app .pi-equipment-range-grid article { min-width:0; padding:24px; border:1px solid #bec5cc; background:#f8f8f8; }
.pi-app .pi-equipment-range-photo { display:block; width:100%; height:clamp(200px,22vw,300px); object-fit:contain; margin-bottom:24px; }
.pi-app .pi-equipment-range-grid h3 { font-size:20px; font-weight:500; margin:0 0 12px; }
.pi-app .pi-equipment-range-grid p { margin:0; }
/* Zig-zag de portada: Entries preview/texto; Timing texto/preview. */
.pi-app .pi-market-timing-alternate { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
/* Fondo de las fotos Feibot: igual en banda, tarjetas y contenedores inmediatos. */
.pi-app .pi-market-hardware-offer,
.pi-app .pi-market-hardware-offer .pi-market-hardware-image { background:#f8f8f8; color:var(--pi-night); }
.pi-app .pi-equipment-slides { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; }
.pi-app .pi-equipment-slide { flex:0 0 100%; min-width:0; margin:0; scroll-snap-align:start; background:#f8f8f8; }
.pi-app .pi-equipment-slide[hidden],.pi-app .pi-equipment-controls[hidden] { display:none; }
.pi-app .pi-equipment-slide figcaption { display:grid; align-content:start; gap:8px; min-height:90px; padding-top:20px; }
.pi-app .pi-equipment-slide figcaption strong { font-size:clamp(22px,2.2vw,30px); font-weight:500; letter-spacing:-.7px; }
.pi-app .pi-equipment-slide figcaption span { font-size:13px; color:#4d5c6e; line-height:1.8; }
.pi-app .pi-equipment-app { display:inline-block; background:#0e1b2e; color:#fff; padding:2px 8px; font-weight:500; }
.pi-app .pi-equipment-controls { display:flex; align-items:center; gap:8px; flex-wrap:wrap; border-top:1px solid #bec5cc; padding-top:16px; }
.pi-app .pi-equipment-controls button { min-width:44px; min-height:44px; border:1px solid #9ca8b5; border-radius:3px; background:#fff; color:#0e1b2e; font:inherit; font-size:13px; padding:8px 12px; cursor:pointer; }
.pi-app .pi-equipment-controls button:first-child { margin-right:auto; }
.pi-app .pi-equipment-controls button:hover { background:#ece6dc; }
.pi-app .pi-equipment-carousel :focus-visible { outline:3px solid #ae3c09; outline-offset:3px; }
.pi-app .pi-equipment-count { font-size:12px; font-variant-numeric:tabular-nums; }
@media(max-width:760px) {
  .pi-app .pi-market .pi-universe-intro { padding:46px 22px 32px; }
  .pi-app .pi-market .pi-market-ecosystem-intro.pi-universe-intro,
  .pi-app .pi-market-timing-section,
  .pi-app .pi-market-partner-grid,
  .pi-app .pi-equipment-range-grid { grid-template-columns:minmax(0,1fr); }
  .pi-app .pi-timing-preview :is(th,td) { padding:12px; }
  .pi-app .pi-timing-preview-heading,
  .pi-app .pi-timing-preview-event,
  .pi-app .pi-timing-preview-foot { padding:18px; }
  .pi-app .pi-timing-preview caption { padding:16px 12px 8px; }
  .pi-app .pi-market-partner { padding:40px 22px; }
}

/* Cabecera pública compartida: acceso visible y menú progresivo sin dependencias. */
.pi-app .pi-market-nav { min-width:0; }
.pi-app .pi-market-language { display:inline-flex; align-items:center; gap:2px; margin-right:6px; }
.pi-app .pi-market-nav > nav a,
.pi-app .pi-market-nav .pi-market-brand,
.pi-app .pi-market-nav .pi-market-access a,
.pi-app .pi-market-access button.pi-market-login {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
}
.pi-app .pi-market-nav :is(a, button):focus-visible {
  outline:3px solid #f5f2eb;
  outline-offset:3px;
  border-radius:4px;
}
.pi-app .pi-market-menu-toggle {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:44px;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #bac7d8;
  border-radius:6px;
  background:transparent;
  color:#f5f2eb;
  font-size:14px;
  line-height:1.4;
}
.pi-app .pi-market-menu-toggle[aria-expanded="true"] { background:#24374f; border-color:#ea580c; }
@media (min-width:1151px) {
  .pi-app .pi-market-nav { gap:20px; }
  .pi-app .pi-market-nav > nav { gap:6px 16px; min-width:0; }
  .pi-app .pi-market-access { flex-shrink:0; gap:12px; }
}
@media (max-width:1150px) {
  .pi-app .pi-market-nav {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    padding:16px 20px;
  }
  .pi-app .pi-market-brand { min-width:0; justify-self:start; }
  .pi-app .pi-market-brand .pi-brand { gap:10px; }
  .pi-app .pi-market-brand .pi-brand img { width:38px; height:38px; flex-shrink:0; }
  .pi-app .pi-market-brand .pi-brand-name { font-size:15px; }
  .pi-app .pi-market-brand .pi-brand-product { display:none; }
  .pi-app .pi-market-menu-toggle { grid-column:2; grid-row:1; }
  .pi-app .pi-market-nav > nav {
    grid-column:1 / -1;
    grid-row:2;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    width:100%;
    min-width:0;
    margin:0;
    gap:4px;
    padding:12px 0;
    border-block:1px solid #384358;
    font-size:15px;
  }
  .pi-app .pi-market-nav > nav a {
    justify-content:flex-start;
    padding:12px;
    white-space:normal;
    overflow-wrap:anywhere;
    border:0;
    border-left:3px solid transparent;
    border-radius:4px;
  }
  .pi-app .pi-market-nav > nav a:hover { background:#1b3049; }
  .pi-app .pi-market-nav > nav a[aria-current="page"] { background:#24374f; border-left-color:#ea580c; }
  .pi-app .pi-market-access {
    grid-column:1 / -1;
    grid-row:3;
    min-width:0;
    margin:0;
    flex-wrap:wrap;
    gap:8px 12px;
    justify-content:flex-end;
    font-size:14px;
  }
  .pi-app .pi-market-access .pi-button,
  .pi-app .pi-market-access .pi-market-login { display:inline-flex; }
  .pi-app .pi-market-access .pi-button { max-width:100%; padding:10px 14px; white-space:normal; text-align:center; }
  .pi-app .pi-market-access .pi-market-language { margin-right:auto; }
}
@media (max-width:430px) {
  .pi-app .pi-market-nav { padding:14px 16px; }
  .pi-app .pi-market-access form { flex-basis:100%; }
}
