/* =========================================================
   CATÁLOGO DE PRODUCTOS — archivo, ficha, filtros, cards.
   Reutiliza clases globales ya aprobadas: .jm-empresa-hero,
   .jm-empresa-section, .jm-eyebrow, .jm-hero-cta-btn,
   .jm-empresa-trustbar(-wrap), .jm-price-consult. Solo se carga
   en /productos/, categorías, búsqueda y fichas (ver templates.php).
   ========================================================= */

.jm-catalog-root{ box-sizing:border-box; }
.jm-catalog-root *{ box-sizing:border-box; }

/* --- Hero blanco y limpio: sin degradado oscuro ni patrón de rejilla.
   `.jm-empresa-hero` es una clase compartida (Contacto/Blog/Empresa siguen
   usando su fondo oscuro decorativo); aquí se sobrescribe solo para esta
   plantilla vía `.jm-catalog-hero`, sin tocar la regla compartida. La
   separación respecto al header se consigue con una línea muy ligera +
   espacio, no con un fondo grande. --- */
.jm-catalog-hero{
  background-image:none !important; background-color:#FFFFFF !important;
  border-bottom:1px solid #E0DBD3 !important;
  padding-top:56px !important; padding-bottom:48px !important;
  /* `.jm-empresa-hero > *{max-width:1152px;margin-inline:auto}` solo crea
     hueco lateral cuando el viewport supera 1152px — por debajo de eso
     (tablet, móvil, e incluso escritorio de 1024px) el contenido quedaba
     pegado al borde real de la pantalla sin este padding explícito. */
  padding-left:24px !important; padding-right:24px !important;
}
.jm-catalog-hero::before{ display:none !important; content:none !important; }
.jm-catalog-hero h1{
  text-shadow:none !important; color:#16181D !important;
  font-family:'IBM Plex Sans',sans-serif; font-weight:700;
}
.jm-catalog-hero-help{
  margin-top:14px !important; max-width:560px;
  font-family:'Inter',sans-serif; font-size:15.5px; color:#565B63 !important;
}

/* --- Buscador principal: pieza dominante del primer viewport, no un input
   secundario — tarjeta blanca ancha (700-900px) con borde definido y
   sombra ligera (el hero ahora es blanco: la sombra es de tarjeta sobre
   fondo claro, no un contraste dramático como sobre fondo oscuro). --- */
.jm-catalog-search-inline{
  position:relative; display:flex; align-items:center; gap:12px;
  width:100%; max-width:820px !important;
  margin-top:40px; background:#FFFFFF; border:1px solid #E0DBD3;
  border-radius:16px; padding:8px 8px 8px 22px;
  box-shadow:0 8px 24px -12px rgba(11,18,32,.14);
  transition:box-shadow .2s ease, border-color .2s ease;
}
.jm-catalog-search-inline:focus-within{
  border-color:#F97316; box-shadow:0 8px 24px -10px rgba(11,18,32,.16), 0 0 0 4px rgba(249,115,22,.18);
}
.jm-catalog-search-inline svg{ color:#F97316; flex-shrink:0; }
.jm-catalog-search-inline input{
  flex:1 1 auto; min-width:0; background:transparent; border:none; color:#16181D;
  font-family:'Inter',sans-serif; font-size:16.5px; padding:14px 0;
}
.jm-catalog-search-inline input::placeholder{ color:#8E939C; }
.jm-catalog-search-inline input:focus{ outline:none; }
.jm-catalog-search-inline button{
  flex-shrink:0; border:none; border-radius:11px; padding:14px 26px; background:#F97316;
  color:#FFFFFF; font-family:'Inter',sans-serif; font-weight:600; font-size:15px; cursor:pointer;
  transition:background-color .2s ease;
}
.jm-catalog-search-inline button:hover{ background:#EA580C; }
@media (max-width:640px){
  .jm-catalog-search-inline{ padding:6px 6px 6px 16px; border-radius:14px; }
  .jm-catalog-search-inline input{ font-size:16px; padding:12px 0; } /* evita el zoom de iOS/Android */
  .jm-catalog-search-inline button{ padding:12px 18px; font-size:14px; }
}

/* --- Secciones genéricas del catálogo --- */
.jm-catalog-section{ padding:56px 24px; max-width:1280px; margin:0 auto; }
.jm-catalog-section-title{ font-family:'IBM Plex Sans',sans-serif; font-weight:700; font-size:24px; color:#16181D; margin:0 0 24px; }

/* --- Accesos rápidos a familias: chips compactos junto al buscador, no
   cards grandes — pensados para 2 elementos hoy (Conectores/Terminales),
   ampliables en el futuro sin rehacer el layout (flex-wrap, no grid fijo). --- */
.jm-catalog-family-grid{ display:flex; flex-wrap:wrap; gap:12px; }
.jm-catalog-family-grid-hero{ margin-top:28px; max-width:820px !important; }
.jm-catalog-family-card{
  display:flex; flex-direction:row; align-items:center; gap:10px;
  flex:0 0 auto; width:auto; min-width:172px; padding:12px 20px;
  border-radius:12px; background:#F7F5F2; border:1px solid #E0DBD3; text-decoration:none !important;
  transition:border-color .2s ease, background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.jm-catalog-family-card .jm-ic{ width:20px; height:20px; color:#F97316; flex-shrink:0; }
.jm-catalog-family-card:hover,
.jm-catalog-family-card:focus-visible{ background:#FFFFFF; border-color:rgba(249,115,22,.6); transform:translateY(-2px); box-shadow:0 14px 28px -14px rgba(11,18,32,.16); }
.jm-catalog-family-card:focus-visible{ outline:2px solid #F97316; outline-offset:2px; }
.jm-catalog-family-title{ font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:15.5px; color:#16181D; }
.jm-catalog-family-count{ margin-left:2px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:#8E939C; }
@media (max-width:480px){
  .jm-catalog-family-card{ flex:1 1 calc(50% - 6px); min-width:0; padding:12px 14px; }
}

/* --- Layout resultados: filtros + grid --- */
.jm-catalog-layout{ display:flex; gap:28px; align-items:flex-start; }
.jm-catalog-filters{
  flex:0 0 260px; position:sticky; top:100px;
  background:#F7F5F2; border:1px solid #E0DBD3; border-radius:14px; padding:20px;
}
.jm-catalog-filters-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid #E0DBD3; }
.jm-catalog-filters-head h2{ margin:0; font-family:'IBM Plex Sans',sans-serif; font-weight:700; font-size:17px; color:#16181D; }
.jm-catalog-filters-clear{ font-family:'Inter',sans-serif; font-size:12.5px; color:#F97316 !important; text-decoration:none !important; }
.jm-catalog-filters-clear:hover{ text-decoration:underline !important; }
.jm-catalog-filter-group{ margin-bottom:18px; }
.jm-catalog-filter-label{ display:block; margin-bottom:6px; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:#8E939C; }
.jm-catalog-filters select,
.jm-catalog-order select{
  width:100%; padding:10px 12px; border:1px solid #E0DBD3; border-radius:8px; background:#FFFFFF;
  font-family:'Inter',sans-serif; font-size:13.5px; color:#16181D;
}
.jm-catalog-price-inputs{ display:flex; align-items:center; gap:8px; }
.jm-catalog-price-inputs input{ width:100%; padding:9px 10px; border:1px solid #E0DBD3; border-radius:8px; font-family:'Inter',sans-serif; font-size:13px; }
.jm-catalog-price-inputs span{ color:#8E939C; }
.jm-catalog-filters-apply{
  width:100%; margin-top:4px; padding:11px; border:none; border-radius:9px; background:#16181D;
  color:#FFFFFF; font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px; cursor:pointer;
  transition:background-color .2s ease;
}
.jm-catalog-filters-apply:hover{ background:#000000; }
.jm-catalog-filters-toggle{ display:none; }

.jm-catalog-main{ flex:1 1 0; min-width:0; }
.jm-catalog-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; flex-wrap:wrap; }
.jm-catalog-count{ margin:0; font-family:'Inter',sans-serif; font-size:13.5px; color:#565B63; }
.jm-catalog-order select{ width:auto; }

/* --- Grid de productos --- */
.jm-product-grid{ display:flex; flex-wrap:wrap; gap:20px; }
.jm-product-grid-compact{ margin-top:20px; }
.jm-product-card{
  display:flex; flex-direction:column; width:calc(25% - 15px); border:1px solid #E0DBD3; border-radius:10px;
  background:#FFFFFF; overflow:hidden; text-decoration:none !important;
  transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
@media (max-width:1279px){ .jm-product-card{ width:calc(33.333% - 14px); } }
@media (max-width:900px){ .jm-product-card{ width:calc(50% - 10px); } }
@media (max-width:560px){ .jm-product-card{ width:100%; } }
.jm-product-card:hover{ border-color:rgba(249,115,22,.55); box-shadow:0 14px 28px -16px rgba(11,18,32,.18); transform:translateY(-2px); }
.jm-product-card-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 14px; border-bottom:1px solid #E0DBD3; background:#F7F5F2; }
.jm-product-card-ref{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:#565B63; }
.jm-product-card-stock{ display:inline-flex; align-items:center; gap:5px; font-family:'Inter',sans-serif; font-size:11px; font-weight:500; color:#16A34A; }
.jm-product-card-dot{ width:6px; height:6px; border-radius:50%; background:#16A34A; }
.jm-product-card-photo{ position:relative; aspect-ratio:4/3; background:#FFFFFF; border-bottom:1px solid #E0DBD3; overflow:hidden; }
.jm-product-card-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:14px; transition:transform .4s ease; }
.jm-product-card:hover .jm-product-card-photo img{ transform:scale(1.05); }
.jm-product-card-body{ display:flex; flex-direction:column; gap:6px; padding:16px; flex:1 1 auto; }
.jm-product-card-cat{ margin:0; font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#F97316; }
.jm-product-card-title{ margin:0; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:14.5px; line-height:1.35; color:#16181D; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jm-product-card-desc{ margin:0; font-family:'Inter',sans-serif; font-size:12.5px; line-height:1.5; color:#565B63; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.jm-product-card-footer{ margin-top:auto; padding-top:12px; border-top:1px solid #E0DBD3; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.jm-product-card-price{ font-family:'Inter',sans-serif; font-weight:700; font-size:14px; color:#16181D; display:flex; flex-direction:column; align-items:flex-start; }
.jm-product-card-price .jm-price-consult{ font-weight:600; font-size:12.5px; color:#F97316; }
.jm-product-card-price .jm-price-from-label{ font-weight:400; font-size:11px; color:#565B63; margin-right:2px; }
.jm-product-card-price .jm-price-from{ font-weight:700; }
.jm-product-card-price .jm-price-unit{ font-size:11px; font-weight:400; color:#565B63; }
.jm-product-card-price .jm-price-first-tier{ margin-top:2px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:500; color:#8E939C; }
.jm-product-card-link{ display:inline-flex; align-items:center; gap:4px; font-family:'Inter',sans-serif; font-weight:500; font-size:12px; color:#F97316; flex-shrink:0; }

/* --- Paginación --- */
.jm-catalog-pagination{ margin-top:36px; }
.jm-catalog-pagination ul{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.jm-catalog-pagination a,
.jm-catalog-pagination span{
  display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 10px;
  border:1px solid #E0DBD3; border-radius:8px; font-family:'Inter',sans-serif; font-size:13.5px; color:#16181D;
  text-decoration:none !important; transition:border-color .2s ease, background-color .2s ease;
}
.jm-catalog-pagination a:hover{ border-color:#F97316; background:#FDEEE3; }
.jm-catalog-pagination span.current{ background:#16181D; border-color:#16181D; color:#FFFFFF; }
.jm-catalog-pagination a:focus-visible{ outline:2px solid #F97316; outline-offset:2px; }

/* --- Estado vacío --- */
.jm-catalog-empty{ text-align:center; padding:56px 24px; border:1px dashed #E0DBD3; border-radius:14px; background:#F7F5F2; }
.jm-catalog-empty p{ max-width:520px; margin:0 auto 20px; font-family:'Inter',sans-serif; font-size:15px; color:#565B63; line-height:1.6; }
.jm-catalog-empty-clear,
.jm-catalog-empty-contact{ display:inline-flex; margin:0 6px; padding:10px 20px; border-radius:9px; font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px; text-decoration:none !important; }
.jm-catalog-empty-clear{ border:1px solid #E0DBD3; color:#16181D !important; }
.jm-catalog-empty-contact{ background:#F97316; color:#FFFFFF !important; }

@media (max-width:900px){
  .jm-catalog-layout{ flex-direction:column; }
  .jm-catalog-filters{ position:fixed; inset:0 0 0 auto; width:min(320px,86vw); z-index:1000; background:#FFFFFF;
    border:none; border-radius:0; padding:24px; overflow-y:auto; transform:translateX(100%); transition:transform .3s ease; box-shadow:-12px 0 32px -12px rgba(11,18,32,.3); }
  .jm-catalog-filters.is-open{ transform:translateX(0); }
  .jm-catalog-filters-toggle{
    display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border:1px solid #E0DBD3; border-radius:9px;
    background:#FFFFFF; font-family:'Inter',sans-serif; font-weight:600; font-size:13px; color:#16181D; cursor:pointer;
  }
}

/* =========================================================
   FICHA DE PRODUCTO
   ========================================================= */
.jm-breadcrumb{ max-width:1280px; margin:0 auto; padding:20px 24px 0; }
.jm-breadcrumb ol{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; font-family:'Inter',sans-serif; font-size:12.5px; color:#8E939C; }
.jm-breadcrumb a{ color:#8E939C; text-decoration:none !important; }
.jm-breadcrumb a:hover{ color:#F97316; }
.jm-breadcrumb-sep{ margin-left:6px; }

.jm-product-hero-grid{ max-width:1280px; margin:0 auto; padding:24px 24px 56px; display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .jm-product-hero-grid{ grid-template-columns:1fr; gap:28px; } }

.jm-product-gallery-main{ aspect-ratio:4/3; border:1px solid #E0DBD3; border-radius:14px; background:#FFFFFF; overflow:hidden; position:relative; }
.jm-product-gallery-main img{ width:100%; height:100%; object-fit:contain; padding:24px; transition:transform .5s ease; }
.jm-product-gallery-main:hover img{ transform:scale(1.03); }
.jm-product-gallery-fallback{ display:flex; align-items:center; justify-content:center; height:100%; color:#C9C2B6; }
.jm-product-gallery-thumbs{ display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.jm-product-gallery-thumb{ width:64px; height:64px; border:1px solid #E0DBD3; border-radius:8px; background:#FFFFFF; padding:4px; cursor:pointer; transition:border-color .2s ease, transform .2s ease; }
.jm-product-gallery-thumb img{ width:100%; height:100%; object-fit:contain; }
.jm-product-gallery-thumb:hover{ border-color:#F97316; transform:translateY(-2px); }
.jm-product-gallery-thumb.is-active{ border-color:#F97316; }

.jm-product-summary h1{ margin:10px 0 0; font-family:'IBM Plex Sans',sans-serif; font-weight:700; font-size:30px; line-height:1.2; color:#16181D; letter-spacing:-.01em; }
.jm-product-short{ margin-top:12px; font-family:'Inter',sans-serif; font-size:15.5px; line-height:1.6; color:#565B63; }
.jm-product-facts{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:20px 0 0; }
.jm-product-facts div{ padding:10px 12px; border:1px solid #E0DBD3; border-radius:9px; background:#F7F5F2; transition:border-color .2s ease, background-color .2s ease; }
.jm-product-facts div:hover{ border-color:#BAB3A7; background:#FFFFFF; }
.jm-product-facts dt{ margin:0; font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#8E939C; }
.jm-product-facts dd{ margin:4px 0 0; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:13.5px; color:#16181D; }

/* --- Card única de precio + cantidad + total + CTA --- (antes eran dos
   cajas apiladas con borde propio cada una; ahora precio/stock, rango,
   calculadora y CTA viven dentro de UNA sola tarjeta, como en la maqueta). */
.jm-product-price-card{
  margin-top:20px; padding:22px; border:1px solid #E0DBD3; border-radius:16px; background:#F7F5F2;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.jm-product-price-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.jm-product-price-label{ margin:0; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:#8E939C; }
.jm-product-price{ margin:4px 0 0; font-family:'IBM Plex Sans',sans-serif; font-weight:700; font-size:28px; color:#16181D; transition:opacity .2s ease; }
.jm-product-price-unit{ font-size:13px; font-weight:400; color:#565B63; margin-left:4px; }
.jm-product-price .jm-price-consult{ font-size:20px; color:#F97316; }
.jm-product-stock-chip{
  padding:6px 14px; border-radius:999px; background:#F97316; color:#FFFFFF;
  font-family:'Inter',sans-serif; font-weight:600; font-size:12px; flex-shrink:0;
  animation:jm-chip-in .3s ease both;
}
.jm-product-stock-chip-muted{ background:#EEEBE6; color:#565B63; }

.jm-product-cta-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%;
  margin-top:18px; padding:14px 20px; border-radius:10px; border:none;
  background:#16181D; color:#FFFFFF !important; font-family:'Inter',sans-serif; font-weight:600; font-size:15px;
  text-decoration:none !important; cursor:pointer;
  transition:background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.jm-product-cta-btn:hover{ background:#000000; transform:translateY(-1px); box-shadow:0 10px 20px -10px rgba(11,18,32,.4); }
.jm-product-cta-btn:focus-visible{ outline:2px solid #F97316; outline-offset:2px; }
.jm-product-cta-note{ margin-top:10px; text-align:center; font-family:'Inter',sans-serif; font-size:12.5px; color:#8E939C; }

/* --- Precio dinámico + calculadora de cantidad --- */
.jm-product-price-range{ margin:10px 0 0; font-family:'Inter',sans-serif; font-size:12.5px; line-height:1.5; color:#565B63; }

.jm-qty-calc{ margin-top:18px; padding-top:18px; border-top:1px solid #E0DBD3; }
.jm-qty-calc-label{ display:block; margin-bottom:8px; font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.03em; color:#8E939C; }
.jm-qty-calc-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.jm-qty-stepper{ display:inline-flex; align-items:center; border:1px solid #E0DBD3; border-radius:9px; overflow:hidden; background:#FFFFFF; }
.jm-qty-btn{
  width:40px; height:40px; border:none; background:#FFFFFF; color:#16181D; font-size:18px; line-height:1; cursor:pointer;
  transition:background-color .15s ease, color .15s ease;
}
.jm-qty-btn:hover{ background:#FDEEE3; color:#F97316; }
.jm-qty-btn:focus-visible{ outline:2px solid #F97316; outline-offset:-2px; }
.jm-qty-input{
  width:64px; height:40px; border:none; border-left:1px solid #E0DBD3; border-right:1px solid #E0DBD3;
  text-align:center; font-family:'Inter',sans-serif; font-weight:600; font-size:15px; color:#16181D; background:#FFFFFF;
  -moz-appearance:textfield;
}
.jm-qty-input::-webkit-outer-spin-button,
.jm-qty-input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.jm-qty-input:focus{ outline:none; background:#FDEEE3; }
.jm-qty-total{ text-align:right; }
.jm-qty-total-amount{ margin:0; font-family:'IBM Plex Sans',sans-serif; font-weight:700; font-size:17px; color:#16181D; }
.jm-qty-total-amount span{ transition:opacity .2s ease; }
.jm-qty-total-note{ margin:2px 0 0; font-family:'Inter',sans-serif; font-size:11.5px; color:#8E939C; }
.jm-qty-live{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media (max-width:480px){
  .jm-qty-calc-row{ justify-content:flex-start; }
  .jm-qty-total{ text-align:left; }
}

/* --- Encabezado centrado (Escalado de precio / Especificaciones / Se
   compran juntos / Referencias relacionadas) — antes quedaban alineados a
   la izquierda dentro de `.jm-empresa-section` (clase compartida con
   Empresa, no tocada); este envoltorio nuevo solo centra el contenido
   dentro de la ficha de producto. --- */
.jm-catalog-root .jm-section-head-centered{ max-width:640px; margin:0 auto; text-align:center; }
.jm-section-head-centered .jm-eyebrow{ justify-content:center; }
.jm-section-head-centered h2{ margin-top:10px; }

/* --- Escalado de precio --- */
.jm-price-scale-intro{ margin:8px 0 0; font-family:'Inter',sans-serif; font-size:14px; line-height:1.6; color:#565B63; }
.jm-catalog-root .jm-price-scale-table-wrap{
  max-width:640px; margin:28px auto 0; overflow:hidden; border:1px solid #E0DBD3; border-radius:14px;
  background:#FFFFFF; box-shadow:0 4px 16px -10px rgba(11,18,32,.1);
}
.jm-price-scale-table{ width:100%; border-collapse:collapse; }
.jm-price-scale-table th{ text-align:left; padding:12px 16px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:#8E939C; background:#F7F5F2; border-bottom:1px solid #E0DBD3; }
.jm-price-scale-table td{ padding:13px 16px; font-family:'Inter',sans-serif; font-size:14px; color:#16181D; border-bottom:1px solid #E0DBD3; transition:background-color .2s ease; }
.jm-price-scale-table tbody tr:last-child td{ border-bottom:none; }
.jm-price-scale-row.is-active{ background:#FDEEE3; }
.jm-price-scale-row.is-active td:first-child{ font-weight:700; }
.jm-price-scale-active{ display:inline-block; margin-left:8px; padding:2px 9px; border-radius:999px; background:#16181D; color:#FFFFFF; font-family:'Inter',sans-serif; font-weight:600; font-size:10.5px; text-transform:uppercase; letter-spacing:.02em; }
.jm-price-scale-footnote{ margin:0; padding:12px 16px; font-family:'Inter',sans-serif; font-size:12px; line-height:1.6; color:#8E939C; background:#F7F5F2; border-top:1px solid #E0DBD3; }

.jm-product-specs-intro{ margin:8px 0 0; font-family:'Inter',sans-serif; font-size:14px; line-height:1.6; color:#565B63; }
.jm-catalog-root .jm-product-specs-grid{ display:grid; grid-template-columns:1.2fr 1fr; gap:32px; margin-top:28px; max-width:1024px; margin-left:auto; margin-right:auto; }
.jm-catalog-root .jm-product-specs-grid.jm-product-specs-grid-full{ grid-template-columns:1fr; max-width:640px; }
@media (max-width:900px){ .jm-catalog-root .jm-product-specs-grid{ grid-template-columns:1fr; } }
.jm-spec-table{ width:100%; border-collapse:collapse; background:#FFFFFF; border:1px solid #E0DBD3; border-radius:12px; overflow:hidden; align-self:start; }
.jm-spec-table tr{ border-bottom:1px solid #E0DBD3; transition:background-color .15s ease; }
.jm-spec-table tr:last-child{ border-bottom:none; }
.jm-spec-table tr:hover{ background:#F7F5F2; }
.jm-spec-table th,
.jm-spec-table td{ text-align:left; padding:13px 16px; font-family:'Inter',sans-serif; font-size:13.5px; }
.jm-spec-table th{ color:#565B63; font-weight:500; width:45%; }
.jm-spec-table td{ color:#16181D; font-weight:600; }
@media (max-width:480px){
  .jm-spec-table th, .jm-spec-table td{ padding:10px 12px; font-size:13px; }
}
.jm-product-applications h3{ margin:0 0 10px; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:16px; color:#16181D; }
.jm-product-applications p{ margin:0; font-family:'Inter',sans-serif; font-size:13.5px; line-height:1.6; color:#565B63; }
.jm-product-applications-full{ margin-top:28px; }

.jm-catalog-root .jm-product-description-body{ margin-top:20px; max-width:800px; font-family:'Inter',sans-serif; font-size:15px; line-height:1.7; color:#16181D; }

.jm-product-docs h3{ margin:0 0 12px; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:16px; color:#16181D; }
.jm-doc-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.jm-doc-item{
  display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border:1px solid #E0DBD3; border-radius:12px; background:#FFFFFF;
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.jm-doc-item:hover{ border-color:rgba(249,115,22,.55); box-shadow:0 12px 24px -16px rgba(11,18,32,.22); transform:translateY(-2px); }
.jm-doc-ic{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; background:#FDEEE3; color:#F97316; flex-shrink:0; transition:background-color .25s ease, transform .25s ease; }
.jm-doc-item:hover .jm-doc-ic{ background:#F97316; color:#FFFFFF; transform:scale(1.06); }
.jm-doc-item-body{ display:flex; flex-direction:column; min-width:0; flex:1 1 auto; }
.jm-doc-item-type{ font-family:'IBM Plex Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:#F97316; }
.jm-doc-item a{ font-family:'Inter',sans-serif; font-weight:500; font-size:14px; color:#16181D !important; text-decoration:none !important; }
.jm-doc-item a:hover,
.jm-doc-item a:focus-visible{ color:#F97316 !important; text-decoration:underline !important; }
.jm-doc-item-desc{ font-family:'Inter',sans-serif; font-size:12px; color:#8E939C; margin-top:2px; }
.jm-doc-item-format{ flex-shrink:0; padding:3px 8px; border-radius:6px; background:#F7F5F2; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600; color:#565B63; }

.jm-product-related-intro{ margin:8px 0 0; font-family:'Inter',sans-serif; font-size:14px; line-height:1.6; color:#565B63; }
.jm-product-related-cat-link{ display:inline-block; margin-top:12px; font-family:'Inter',sans-serif; font-weight:500; font-size:13.5px; color:#F97316 !important; text-decoration:none !important; }
.jm-product-related-cat-link:hover{ text-decoration:underline !important; }
.jm-product-related-block .jm-product-grid{ justify-content:center; }

@keyframes jm-chip-in{ from{ opacity:0; transform:scale(.9); } to{ opacity:1; transform:scale(1); } }

/* Aparición suave al entrar en el viewport — activada por
   `jm-reveal-init.js` (inline, solo en esta plantilla). Sin JS o con
   `prefers-reduced-motion`, el contenido es visible de inmediato (progresivo,
   nunca bloqueante). */
/* El estado oculto solo se activa si el JS realmente arrancó (clase en
   <html>) — así una página sin JS, o con el script bloqueado, muestra el
   contenido de inmediato en vez de dejarlo invisible para siempre. */
.jm-js-reveal .jm-reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease-out, transform .6s ease-out; }
.jm-js-reveal .jm-reveal.is-visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion:reduce){
  .jm-doc-item, .jm-qty-btn, .jm-product-gallery-main img, .jm-product-gallery-thumb,
  .jm-product-cta-btn, .jm-product-facts div, .jm-doc-ic, .jm-price-scale-table td,
  .jm-spec-table tr, .jm-reveal{ transition:none !important; }
  .jm-product-stock-chip{ animation:none !important; }
  .jm-reveal{ opacity:1 !important; transform:none !important; }
}

.jm-product-back{ max-width:1280px; margin:0 auto; padding:8px 24px 40px; }
.jm-product-back a{ display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-weight:500; font-size:14px; color:#F97316 !important; text-decoration:none !important; }
.jm-product-back a:hover{ text-decoration:underline !important; }

/* =========================================================
   CIERRE "¿NO ENCUENTRAS LA REFERENCIA?" (fin de Productos y de la ficha)

   Ronda J: valores medidos directamente sobre el bloque REAL de la home
   (getComputedStyle en vivo, no la maqueta original) porque compartir solo
   los NOMBRES de clase (.jm-quote-section, .e-con, .e-flexbox-base) nunca
   iba a bastar — el aspecto real de esa sección en la home lo genera en
   buena parte Elementor 4.2 vía clases "atómicas" auto-generadas por
   instancia (ej. gjmq-90000b), que son únicas de esa página y no se pueden
   reutilizar aquí. Por eso todo el fondo/padding/radios/tipografía se fija
   explícitamente abajo con los valores medidos, en vez de depender de que
   el nombre de la clase por sí solo traiga el estilo.
   ========================================================= */
.jm-catalog-root .jm-quote-section{
  background:#14161B; padding:56px 32px;
}
.jm-catalog-root .jm-quote-row{
  display:flex; flex-direction:row; flex-wrap:wrap; gap:40px;
  max-width:1152px; margin:0 auto; align-items:flex-start;
}
.jm-catalog-root .jm-quote-col-left,
.jm-catalog-root .jm-quote-col-right{ flex:1 1 380px; min-width:0; }
.jm-catalog-root .jm-quote-card{
  background:#FFFFFF; padding:32px; border-radius:16px; box-shadow:none;
}
.jm-catalog-root .jm-quote-section .jm-eyebrow{
  margin:0; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:12px;
  text-transform:uppercase; letter-spacing:.04em; color:#F97316;
}
.jm-catalog-root .jm-quote-section h2{
  margin:10px 0 0; font-family:'IBM Plex Sans',sans-serif; font-weight:700;
  font-size:30px; line-height:1.2; color:#FFFFFF; max-width:520px;
}
.jm-catalog-root .jm-quote-section .jm-quote-lead{
  margin-top:14px; max-width:480px; font-family:'Inter',sans-serif;
  font-size:15px; line-height:1.6; color:rgba(255,255,255,.7);
}
.jm-catalog-root .jm-quote-section .jm-quote-sublabel{
  display:block; margin-top:22px; font-family:'IBM Plex Mono',monospace; font-weight:600;
  font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:rgba(255,255,255,.6);
}
.jm-catalog-root .jm-quote-section .jm-quote-checklist{ margin-top:14px; }
.jm-catalog-root .jm-quote-card h3{ margin:0; font-family:'IBM Plex Sans',sans-serif; font-weight:600; font-size:22px; line-height:1.3; color:#16181D; }
.jm-catalog-root .jm-quote-card .jm-quote-card-lead{ margin-top:8px; font-family:'Inter',sans-serif; font-size:14px; color:#565B63; }
@media (min-width:1024px){
  .jm-catalog-root .jm-quote-section{ padding:80px 64px; }
  .jm-catalog-root .jm-quote-col-left,
  .jm-catalog-root .jm-quote-col-right{ flex-basis:calc(50% - 20px); }
}
@media (max-width:1023px){
  .jm-catalog-root .jm-quote-section h2{ font-size:26px; }
}
