/* ═══════════════════════════════════════════════════════════════
   DISMEPE CANARIAS — Web pública
   Los colores y tipografías salen de variables que el panel escribe
   en el <head>, así que aquí solo se usan var(--pri), var(--sec)…
   ═══════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

body{
  font-family:var(--f-txt);font-size:15px;line-height:1.6;
  color:var(--texto);background:var(--fondo);
  -webkit-font-smoothing:antialiased;overflow-x:hidden
}
h1,h2,h3,h4{font-family:var(--f-tit);line-height:1.12;font-weight:600}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit}
ul{list-style:none}
:focus-visible{outline:2px solid var(--pri);outline-offset:3px;border-radius:3px}

.contenedor{max-width:1280px;margin:0 auto;padding:0 24px}
.salto-contenido{
  position:absolute;left:-9999px;top:0;background:var(--pri);color:#fff;
  padding:10px 18px;z-index:999;border-radius:0 0 6px 0
}
.salto-contenido:focus{left:0}

/* ── Barra superior ───────────────────────────────────────── */
.superior{background:#17191C;color:#8A909B;font-size:12.5px}
.superior .contenedor{display:flex;align-items:center;gap:18px;min-height:38px;flex-wrap:wrap}
.superior a{color:#A8AFBA}
.superior a:hover{color:var(--pri-m)}
.superior-fin{margin-left:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.idiomas{display:flex;gap:3px}
.idioma{
  padding:3px 8px;border-radius:4px;font-size:11.5px;letter-spacing:.04em;
  border:1px solid transparent;color:#6E757F
}
.idioma:hover{color:#A8AFBA;border-color:rgba(255,255,255,.12)}
.idioma[aria-current]{color:var(--pri-m);border-color:rgba(244,121,32,.32);background:rgba(244,121,32,.1)}

/* ── Cabecera ─────────────────────────────────────────────── */
.cabecera{
  background:#fff;border-bottom:1px solid rgba(0,0,0,.08);
  position:sticky;top:0;z-index:200;box-shadow:0 1px 14px rgba(0,0,0,.05)
}
.cabecera .contenedor{display:flex;align-items:center;gap:22px;padding-top:13px;padding-bottom:13px}
.logo img{height:52px;width:auto;object-fit:contain}
.buscador-cab{flex:1;max-width:460px;position:relative}
.buscador-cab input{
  width:100%;height:42px;padding:0 16px 0 40px;border:1px solid rgba(0,0,0,.12);
  border-radius:8px;background:#F7F6F4;font-size:14px;font-family:inherit;color:var(--texto)
}
.buscador-cab input:focus{outline:none;border-color:var(--pri);background:#fff}
.buscador-cab::before{
  content:"";position:absolute;left:14px;top:50%;width:15px;height:15px;
  transform:translateY(-50%);opacity:.4;pointer-events:none;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.2-4.2'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.2-4.2'/%3E%3C/svg%3E") center/contain no-repeat
}
.acciones-cab{margin-left:auto;display:flex;gap:10px;align-items:center}
.boton-cab{
  display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r);
  font-size:13.5px;border:1px solid rgba(0,0,0,.1);background:#fff;transition:background .15s
}
.boton-cab:hover{background:var(--fondo)}
.boton-cab.destacado{background:var(--pri-leg);border-color:var(--pri-leg);color:#fff}
.boton-cab.destacado:hover{background:var(--pri-o)}
.menu-movil{display:none;flex-direction:column;gap:5px;padding:9px;margin-left:auto}
.menu-movil span{display:block;width:22px;height:2px;background:var(--texto);border-radius:2px;transition:transform .2s,opacity .2s}
.menu-movil[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-movil[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-movil[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Navegación ───────────────────────────────────────────── */
.navegacion{background:#fff;border-bottom:1px solid rgba(0,0,0,.08)}
.navegacion .contenedor{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.navegacion .contenedor::-webkit-scrollbar{display:none}
.nav-enlace{
  padding:13px 16px;font-size:13.5px;color:#666;white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .15s
}
.nav-enlace:hover{color:var(--texto)}
.nav-enlace[aria-current]{color:var(--texto);border-bottom-color:var(--pri);font-weight:500}
.nav-enlace.destacada{color:var(--pri);font-weight:500}

/* ── Carrusel de banners ──────────────────────────────────── */
.carrusel{position:relative;background:#181818;overflow:hidden}
.carrusel-pista{display:flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.diapositiva{min-width:100%;position:relative;display:flex;align-items:center;min-height:400px}
.diapositiva-fondo{position:absolute;inset:0;z-index:0}
.diapositiva-fondo img{width:100%;height:100%;object-fit:cover}
.diapositiva-fondo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,10,10,.82) 0%,rgba(10,10,10,.55) 45%,rgba(10,10,10,.15) 100%)
}
.diapositiva[data-pos="centro"] .diapositiva-fondo::after{background:rgba(10,10,10,.58)}
.diapositiva[data-pos="derecha"] .diapositiva-fondo::after{
  background:linear-gradient(270deg,rgba(10,10,10,.82) 0%,rgba(10,10,10,.55) 45%,rgba(10,10,10,.15) 100%)
}
.diapositiva-contenido{position:relative;z-index:1;max-width:620px;padding:56px 0}
.diapositiva[data-pos="centro"] .diapositiva-contenido{margin:0 auto;text-align:center}
.diapositiva[data-pos="derecha"] .diapositiva-contenido{margin-left:auto;text-align:right}
.diapositiva h2{font-size:clamp(28px,4.5vw,50px);color:#FDFCFA;margin-bottom:14px}
.diapositiva p{color:rgba(255,255,255,.8);font-size:clamp(14px,1.6vw,17px);margin-bottom:26px;max-width:520px}
.diapositiva[data-pos="centro"] p{margin-left:auto;margin-right:auto}
.diapositiva[data-pos="derecha"] p{margin-left:auto}

.carrusel-control{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);
  color:#fff;display:grid;place-items:center;font-size:18px;
  backdrop-filter:blur(4px);transition:background .15s
}
.carrusel-control:hover{background:rgba(255,255,255,.26)}
.carrusel-control.anterior{left:20px}
.carrusel-control.siguiente{right:20px}
.carrusel-puntos{
  position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;gap:8px
}
.carrusel-punto{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .15s,width .2s}
.carrusel-punto[aria-current]{background:var(--pri);width:24px;border-radius:5px}

/* ── Hero sin banners ─────────────────────────────────────── */
.hero{background:#181818;position:relative;overflow:hidden;padding:66px 0;min-height:330px;display:flex;align-items:center}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(244,121,32,.07) 1px,transparent 1px);
  background-size:32px 32px
}
.hero-contenido{position:relative;z-index:1;max-width:600px}
.hero h1{font-size:clamp(30px,5vw,54px);color:#FDFCFA;margin-bottom:16px}
.hero h1 em{color:var(--pri-m);font-style:italic}
.hero p{color:var(--gris-leg);font-size:15px;line-height:1.8;margin-bottom:30px;max-width:480px}
.pildora{
  display:inline-flex;align-items:center;gap:8px;background:rgba(244,121,32,.13);
  border:1px solid rgba(244,121,32,.24);color:var(--pri-m);font-size:11.5px;
  letter-spacing:.16em;padding:6px 15px;border-radius:3px;text-transform:uppercase;margin-bottom:22px
}
.hero-cifras{
  position:absolute;right:24px;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:12px;z-index:1
}
.cifra{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:15px 22px;min-width:172px}
.cifra dt{font-size:10px;color:#5A616C;letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}
.cifra dd{font-family:var(--f-tit);font-size:25px;color:#FDFCFA}
.cifra .sub{font-size:11.5px;color:#5A616C;margin-top:2px}

/* ── Botones ──────────────────────────────────────────────── */
.boton{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 27px;border-radius:var(--r);font-size:14px;font-family:inherit;
  border:1px solid transparent;transition:background .15s,border-color .15s,transform .06s
}
.boton:active{transform:translateY(1px)}
.boton-pri{background:var(--pri-leg);color:#fff}
.boton-pri:hover{background:var(--pri-o)}
.boton-linea{border-color:rgba(255,255,255,.2);color:#E8E8E8}
.boton-linea:hover{border-color:rgba(255,255,255,.42);color:#fff}
.boton-claro{background:#fff;border-color:rgba(0,0,0,.1);color:var(--texto)}
.boton-claro:hover{background:var(--fondo)}

/* ── Aviso ────────────────────────────────────────────────── */
.aviso-barra{background:var(--sec-l);border-left:3px solid var(--sec);color:var(--sec-sobre-claro);font-size:13.5px}
.aviso-barra .contenedor{padding-top:12px;padding-bottom:12px;display:flex;gap:9px;align-items:center}

/* ── Secciones ────────────────────────────────────────────── */
.seccion{padding:56px 0}
.seccion-clara{background:#fff}
.seccion-cab{display:flex;align-items:flex-end;gap:22px;margin-bottom:32px;flex-wrap:wrap}
.seccion-ceja{
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pri-leg);margin-bottom:9px;display:block;font-weight:600
}
.seccion-cab h2{font-size:clamp(24px,3.4vw,36px);margin-bottom:9px}
.seccion-cab h2 em{color:var(--pri);font-style:italic}
.seccion-cab p{color:#666;font-size:14.5px;max-width:640px}
.seccion-enlace{margin-left:auto;font-size:13.5px;color:var(--pri-leg);border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap}

/* ── Rejilla de categorías ────────────────────────────────── */
.rejilla-categorias{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.tarjeta-categoria{
  background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--r-lg);
  padding:26px 20px;text-align:center;transition:border-color .15s,transform .15s,box-shadow .15s
}
.tarjeta-categoria:hover{border-color:var(--pri);transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.07)}
.tarjeta-categoria .icono{font-size:34px;margin-bottom:12px;display:block;line-height:1}
.tarjeta-categoria h3{font-size:17px;margin-bottom:5px}
.tarjeta-categoria .cuenta{font-size:12.5px;color:var(--gris-leg)}

/* ── Rejilla de productos ─────────────────────────────────── */
.rejilla-productos{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:16px}
.tarjeta-producto{
  background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--r-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s
}
.tarjeta-producto:hover{border-color:var(--pri);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.producto-imagen{position:relative;aspect-ratio:1;background:#F7F6F4;overflow:hidden}
/* <picture> es un contenedor en línea: sin esto, la imagen no ocupa la caja */
.producto-imagen picture{display:block;width:100%;height:100%}
.producto-imagen img{width:100%;height:100%;object-fit:contain;padding:14px;transition:transform .3s}
.tarjeta-producto:hover .producto-imagen img{transform:scale(1.04)}
.marca-destacado{
  position:absolute;top:10px;left:10px;background:var(--pri);color:#fff;
  font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px;letter-spacing:.03em
}
.producto-cuerpo{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1;gap:5px}
.producto-familia{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--pri-leg);font-weight:600}
.producto-nombre{font-family:var(--f-txt);font-size:13.5px;font-weight:500;line-height:1.42;color:var(--texto)}
.producto-ref{font-size:11.5px;color:var(--gris-leg);font-variant-numeric:tabular-nums}
.producto-pie{
  margin-top:auto;padding-top:11px;display:flex;align-items:center;
  justify-content:space-between;gap:8px;border-top:1px solid rgba(0,0,0,.06)
}
.disponible{font-size:11.5px;color:var(--ace-leg);display:inline-flex;align-items:center;gap:5px}
.disponible::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.enlace-consulta{font-size:12px;color:var(--pri-leg);font-weight:500;white-space:nowrap}
.enlace-consulta:hover{text-decoration:underline}

.grupo-productos{margin-bottom:36px}
.grupo-titulo{
  font-family:var(--f-txt);font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--gris-leg);font-weight:600;padding-bottom:9px;margin-bottom:16px;
  border-bottom:1px solid rgba(0,0,0,.09);display:flex;align-items:center;gap:9px
}
.grupo-titulo .cuenta{color:#BBB;font-weight:400;letter-spacing:0;text-transform:none;font-size:11.5px}

/* ── Filtros del catálogo ─────────────────────────────────── */
.filtros-catalogo{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px;align-items:center}
.pastilla{
  padding:8px 16px;border-radius:22px;font-size:13px;border:1px solid rgba(0,0,0,.11);
  background:#fff;color:#555;transition:all .15s;white-space:nowrap
}
.pastilla:hover{border-color:var(--pri);color:var(--pri-leg)}
.pastilla[aria-current]{background:var(--pri-leg);border-color:var(--pri-leg);color:#fff;font-weight:500}
.barra-orden{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:13px;color:#5F5F5F}
.barra-orden select{
  padding:7px 11px;border:1px solid rgba(0,0,0,.12);border-radius:var(--r);
  background:#fff;font-family:inherit;font-size:13px;cursor:pointer;color:var(--texto)
}

/* ── Migas de pan ─────────────────────────────────────────── */
.migas{background:#fff;border-bottom:1px solid rgba(0,0,0,.07);font-size:12.5px;color:var(--gris-leg)}
.migas .contenedor{padding-top:11px;padding-bottom:11px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.migas a:hover{color:var(--pri-leg)}
.migas-sep{color:#CCC}
.migas [aria-current]{color:var(--texto)}

/* ── Ficha de producto ────────────────────────────────────── */
.ficha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start;padding:44px 0}
.ficha-imagen{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--r-lg);padding:26px;position:sticky;top:130px}
.ficha-imagen img{width:100%;aspect-ratio:1;object-fit:contain}
.ficha-familia{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--pri-leg);font-weight:600;margin-bottom:12px;display:block}
.ficha h1{font-size:clamp(24px,3.4vw,38px);margin-bottom:14px}
.ficha-ref{
  display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#666;
  background:#fff;border:1px solid rgba(0,0,0,.09);padding:6px 13px;border-radius:var(--r);margin-bottom:22px
}
.ficha-ref strong{font-variant-numeric:tabular-nums;color:var(--texto)}
.ficha-desc{font-size:15px;line-height:1.75;color:#555;margin-bottom:28px}
.ficha-datos{border-top:1px solid rgba(0,0,0,.09);padding-top:22px;margin-bottom:28px}
.ficha-datos dl{display:grid;grid-template-columns:auto 1fr;gap:11px 22px;font-size:14px}
.ficha-datos dt{color:var(--gris-leg)}
.ficha-datos dd{color:var(--texto)}
.ficha-acciones{display:flex;gap:11px;flex-wrap:wrap}

/* ── Sobre nosotros ───────────────────────────────────────── */
.sobre{background:#fff;padding:54px 0}
.sobre .contenedor{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:46px;align-items:center}
.sobre h2{font-size:clamp(24px,3.2vw,34px);margin-bottom:14px}
.sobre p{color:#666;font-size:15px;line-height:1.8}
.sobre-cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;text-align:center}
.sobre-cifra .valor{font-family:var(--f-tit);font-size:33px;color:var(--pri-leg);line-height:1}
.sobre-cifra .etiqueta{font-size:12px;color:var(--gris-leg);margin-top:5px}

/* ── Contacto por departamentos ───────────────────────────── */
.departamentos{background:#17191C;color:#A8AFBA;padding:50px 0}
.departamentos .ceja{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--pri-m);margin-bottom:26px;display:block;font-weight:600}
.rejilla-departamentos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.departamento{
  background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);
  border-radius:var(--r-lg);padding:20px;display:flex;gap:14px;align-items:flex-start
}
.departamento .icono{font-size:22px;line-height:1}
.departamento .nombre{color:#fff;font-size:14.5px;font-weight:500;margin-bottom:3px}
.departamento .zona{font-size:12px;color:#A3AAB6;margin-bottom:9px}
.departamento a{font-size:12.5px;color:var(--pri-m);word-break:break-all}
.departamento a:hover{text-decoration:underline}

/* ── Llamada a la acción ──────────────────────────────────── */
.llamada{background:var(--pri-l);border-top:1px solid rgba(244,121,32,.18);border-bottom:1px solid rgba(244,121,32,.18);padding:42px 0}
.llamada .contenedor{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.llamada h2{font-size:clamp(21px,2.8vw,29px);margin-bottom:6px}
.llamada p{color:#7A6A5C;font-size:14px}
.llamada-botones{margin-left:auto;display:flex;gap:11px;flex-wrap:wrap}

/* ── Pie ──────────────────────────────────────────────────── */
.pie{background:#111315;color:#7D848F;padding:48px 0 0;font-size:13.5px}
.pie-rejilla{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:36px;padding-bottom:36px}
.pie-marca img{height:44px;width:auto;margin-bottom:18px}
.pie-marca p{line-height:1.75;margin-bottom:16px;max-width:330px}
.pie-datos{line-height:2;font-size:13px}
.pie-datos a:hover{color:var(--pri-m)}
.pie-columna h3{color:#fff;font-size:13px;font-weight:600;margin-bottom:14px;font-family:var(--f-txt);letter-spacing:.03em}
.pie-columna li{margin-bottom:9px}
.pie-columna a:hover{color:var(--pri-m)}
.redes{display:flex;gap:9px;margin-top:16px}
.red{
  width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.06);
  display:grid;place-items:center;transition:background .15s
}
.red:hover{background:rgba(255,255,255,.13)}
.pie-fin{
  border-top:1px solid rgba(255,255,255,.07);padding:18px 0;
  display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:12px;color:#9AA2AE
}
.pie-legal{display:flex;gap:16px;flex-wrap:wrap}
.pie-legal a:hover{color:var(--pri-m)}

/* ── Botones flotantes ────────────────────────────────────── */
.flotantes{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:10px;z-index:150}
.flotante{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  font-size:20px;box-shadow:0 6px 20px rgba(0,0,0,.22);transition:transform .15s
}
.flotante:hover{transform:scale(1.07)}
.flotante-tel{background:var(--pri-leg);color:#fff}
.flotante-mail{background:var(--sec);color:#fff}

/* ── Cookies ──────────────────────────────────────────────── */
.cookies{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:400;background:#fff;
  border:1px solid rgba(0,0,0,.1);border-radius:var(--r-lg);
  box-shadow:0 18px 50px rgba(0,0,0,.2);padding:22px;max-width:620px;margin:0 auto
}
.cookies[hidden]{display:none}
.cookies h2{font-size:17px;margin-bottom:9px}
.cookies p{font-size:13.5px;color:#666;line-height:1.65;margin-bottom:16px}
.cookies-botones{display:flex;gap:9px;flex-wrap:wrap}
.cookies-detalle{border-top:1px solid rgba(0,0,0,.08);margin-top:16px;padding-top:16px}
.cookies-opcion{display:flex;gap:12px;align-items:flex-start;padding:9px 0}
.cookies-opcion input{width:17px;height:17px;margin-top:2px;accent-color:var(--pri)}
.cookies-opcion strong{display:block;font-size:13.5px;margin-bottom:2px}
.cookies-opcion span{font-size:12.5px;color:#777;line-height:1.55}

/* ── Páginas de texto (legales) ───────────────────────────── */
.pagina-texto{max-width:820px;margin:0 auto;padding:48px 0 64px}
.pagina-texto h1{font-size:clamp(26px,4vw,38px);margin-bottom:10px}
.pagina-texto .actualizado{color:var(--gris-leg);font-size:13px;margin-bottom:32px}
.pagina-texto h2{font-size:20px;margin:32px 0 12px;color:var(--texto)}
.pagina-texto h3{font-size:16px;margin:22px 0 9px}
.pagina-texto p{margin-bottom:14px;color:#555;line-height:1.8}
.pagina-texto ul{margin:0 0 16px 20px;list-style:disc;color:#555}
.pagina-texto li{margin-bottom:7px;line-height:1.7}
.pagina-texto table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13.5px}
.pagina-texto th,.pagina-texto td{border:1px solid rgba(0,0,0,.1);padding:9px 12px;text-align:left}
.pagina-texto th{background:#fff;font-weight:600}
.pagina-texto a{color:var(--pri-leg);text-decoration:underline}

/* ── Estados ──────────────────────────────────────────────── */
.sin-resultados{text-align:center;padding:56px 20px;color:var(--gris-leg)}
.sin-resultados h3{font-size:19px;color:var(--texto);margin-bottom:7px}
.sin-resultados p{font-size:14px;max-width:400px;margin:0 auto 20px}

.esqueleto{background:linear-gradient(90deg,#EFEFEF 25%,#F7F7F7 50%,#EFEFEF 75%);
  background-size:200% 100%;animation:brillo 1.4s infinite;border-radius:var(--r)}
@keyframes brillo{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Paginación ───────────────────────────────────────────── */
.paginas{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:38px;flex-wrap:wrap}
.paginas a,.paginas span{
  padding:9px 14px;border-radius:var(--r);font-size:13.5px;
  border:1px solid rgba(0,0,0,.11);background:#fff;color:var(--texto)
}
.paginas a:hover{border-color:var(--pri);color:var(--pri-leg)}
.paginas [aria-current]{background:var(--pri);border-color:var(--pri);color:#fff;font-weight:600}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width:1000px){
  .hero-cifras{display:none}
  .sobre .contenedor{grid-template-columns:1fr;gap:30px}
  .pie-rejilla{grid-template-columns:1fr 1fr;gap:28px}
  .ficha{grid-template-columns:1fr;gap:28px}
  .ficha-imagen{position:static}
}
@media (max-width:820px){
  .superior{display:none}
  .buscador-cab{order:3;max-width:100%;flex-basis:100%;margin-top:11px}
  .acciones-cab{display:none}
  .menu-movil{display:flex}
  .cabecera .contenedor{flex-wrap:wrap}
  .navegacion .contenedor{display:none;flex-direction:column;padding-bottom:10px}
  .navegacion.abierta .contenedor{display:flex}
  .nav-enlace{border-bottom:none;border-left:2px solid transparent;padding:12px 4px}
  .nav-enlace[aria-current]{border-left-color:var(--pri);padding-left:12px}
  .diapositiva{min-height:330px}
  .diapositiva-contenido{padding:40px 0}
  .diapositiva[data-pos="derecha"] .diapositiva-contenido,
  .diapositiva[data-pos="centro"] .diapositiva-contenido{text-align:left;margin:0}
  .carrusel-control{width:36px;height:36px}
  .carrusel-control.anterior{left:8px}
  .carrusel-control.siguiente{right:8px}
  .seccion{padding:40px 0}
  .seccion-enlace{margin-left:0}
  .llamada-botones{margin-left:0;width:100%}
  .llamada .contenedor{gap:18px}
  .pie-rejilla{grid-template-columns:1fr;gap:26px}
}
@media (max-width:520px){
  .contenedor{padding:0 16px}
  .rejilla-productos{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .rejilla-categorias{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .producto-cuerpo{padding:11px 12px 12px}
  .producto-nombre{font-size:12.5px}
  .tarjeta-categoria{padding:20px 13px}
  .tarjeta-categoria .icono{font-size:28px}
  .barra-orden{margin-left:0;width:100%}
  .barra-orden select{flex:1}
  .cookies{left:10px;right:10px;bottom:10px;padding:18px}
  .flotantes{right:12px;bottom:12px}
  .flotante{width:44px;height:44px;font-size:18px}
  .sobre-cifras{gap:10px}
  .sobre-cifra .valor{font-size:26px}
}

@media print{
  .superior,.cabecera,.navegacion,.flotantes,.cookies,.llamada,.departamentos,.pie{display:none !important}
  body{background:#fff;font-size:11pt}
  .seccion{padding:12pt 0}
  a{text-decoration:none;color:#000}
}

/* ── Página de empresa ────────────────────────────────────── */
.empresa-intro{padding:60px 0 50px;border-bottom:1px solid rgba(0,0,0,.07)}
.empresa-intro h1{
  font-size:clamp(30px,4.6vw,52px);line-height:1.1;max-width:17ch;
  margin:10px 0 0;text-wrap:balance
}
.empresa-entradilla{
  font-size:clamp(17px,1.9vw,21px);line-height:1.6;color:var(--texto);
  max-width:56ch;margin-top:22px
}
.empresa-bajada{
  color:#666;font-size:16px;line-height:1.75;max-width:56ch;margin-top:14px
}
.empresa-cifras{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:0;margin:40px 0 0;border-top:1px solid rgba(0,0,0,.09)
}
.empresa-cifras > div{
  padding:22px 24px 0;border-right:1px solid rgba(0,0,0,.07)
}
.empresa-cifras > div:last-child{border-right:none}
.empresa-cifras > div:first-child{padding-left:0}
.empresa-cifras dt{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gris-leg);font-weight:600;margin-bottom:6px
}
.empresa-cifras dd{
  margin:0;font-family:var(--f-tit);font-size:36px;line-height:1;
  /* El naranja de marca da 2,76 de contraste sobre el fondo claro. Ni siquiera
     a 36 px llega al 3,0 que pide la norma para texto grande, así que aquí va
     la variante legible, que PHP oscurece hasta cumplir. */
  color:var(--pri-leg);font-variant-numeric:tabular-nums
}
.empresa-cifras .unidad{font-size:20px;color:var(--gris-leg);margin-left:1px}

/* Los pilares SÍ son una secuencia numerada: orientar → economizar → impulsar */
.pilares{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:28px;list-style:none;counter-reset:pilar;margin:0;padding:0
}
.pilar{position:relative;padding-top:6px}
.pilar-num{
  display:block;font-family:var(--f-tit);font-size:38px;line-height:1;
  color:var(--pri-m);margin-bottom:10px;font-variant-numeric:tabular-nums
}
.pilar h3{font-size:21px;margin-bottom:9px}
.pilar p{color:#666;font-size:14.5px;line-height:1.75}

.valores{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.valor{
  background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:var(--r-lg);
  padding:24px 22px
}
.valor h3{
  font-size:18px;margin-bottom:8px;padding-bottom:10px;
  border-bottom:2px solid var(--pri);display:inline-block
}
.valor p{color:#666;font-size:14.5px;line-height:1.72;margin-top:4px}

@media (max-width:640px){
  .empresa-intro{padding:38px 0 34px}
  .empresa-cifras > div{padding:18px 14px 0}
  .empresa-cifras > div:nth-child(2n){border-right:none}
  .empresa-cifras dd{font-size:29px}
}

/* Categorías con imagen o icono propios */
.tarjeta-categoria .icono-img{display:block;width:48px;height:48px;object-fit:contain;margin-bottom:10px}
.tarjeta-categoria.con-foto{position:relative;overflow:hidden;color:#fff;isolation:isolate}
.tarjeta-categoria.con-foto::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background-image:var(--foto);background-size:cover;background-position:center}
.tarjeta-categoria.con-foto::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,18,15,.35) 0%,rgba(20,18,15,.82) 100%)}
.tarjeta-categoria.con-foto h3,
.tarjeta-categoria.con-foto .cuenta{color:#fff}
.tarjeta-categoria.con-foto .cuenta{opacity:.85}

/* Página de contacto */
.rejilla-contacto{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.tarjeta-contacto{background:#fff;border:1px solid var(--linea);border-radius:var(--r);padding:24px}
.tarjeta-contacto h2{font-size:17px;margin-bottom:12px}
.lista-contacto{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.lista-contacto a{font-size:15px;word-break:break-word}
.tarjeta-contacto .dato-sec{margin-top:12px;font-size:13.5px;color:var(--texto-suave,#6B6B6B)}
.boton-s{font-size:13px;padding:8px 14px;margin-top:12px}
.pagina-texto .entradilla{font-size:17px;color:var(--texto-suave,#6B6B6B);margin-top:6px}

/* Página de error 404 */
.buscador-404{display:flex;gap:8px;justify-content:center;max-width:460px;margin:20px auto 0;flex-wrap:wrap}
.buscador-404 .control{flex:1;min-width:200px;padding:11px 14px;border:1px solid var(--linea);
  border-radius:var(--r-s,8px);font:inherit;background:#fff}
.oculto-visual{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Contadores dentro de las pastillas de filtro: han de seguir leyéndose */
.pastilla-cuenta{color:#5F5F5F}
.pastilla[aria-current] .pastilla-cuenta{color:#fff;opacity:.85}

/* Tarjetas de zona comercial sobre fondo claro (página de contacto) */
.seccion-clara .rejilla-departamentos .departamento{background:#fff;border:1px solid var(--linea)}
.seccion-clara .departamento h3{color:var(--texto);font-size:15px;margin-bottom:3px}
.seccion-clara .departamento .zona{color:#5F5F5F}
.seccion-clara .departamento a{color:var(--pri-leg)}


/* ── Buscador instantáneo del catálogo ─────────────────────── */
.estado-busqueda{
  font-size:13px;color:var(--gris-leg);margin:0 0 12px;min-height:1.2em;
  display:flex;align-items:center;gap:8px
}
/* El punto que gira solo aparece mientras se está buscando */
.estado-busqueda.cargando::before{
  content:"";width:13px;height:13px;flex:none;border-radius:50%;
  border:2px solid var(--linea);border-top-color:var(--pri-leg);
  animation:girar .7s linear infinite
}
@keyframes girar{to{transform:rotate(360deg)}}
/* Quien haya pedido menos movimiento no ve girar nada */
@media (prefers-reduced-motion: reduce){
  .estado-busqueda.cargando::before{animation:none;border-top-color:var(--pri-leg)}
}
/* Mientras llega la respuesta, lo viejo se atenúa: se ve que está cambiando */
#catalogo-resultados[aria-busy="true"]{opacity:.55;transition:opacity .15s}

/* ── Que nada se salga de la pantalla ─────────────────────────
   Regla que se comprueba automáticamente en cada entrega:
   document.documentElement.scrollWidth <= window.innerWidth
   (herramientas: node desbordamiento.mjs) */

/* Las tablas de los textos legales tienen cuatro columnas y nombres de
   cookie que no se pueden partir por la mitad (`_ga_<identificador>`). A
   390 px se salían 13 px en privacidad y 81 en cookies.

   No se apretujan las columnas hasta hacerlas ilegibles: la tabla se queda
   con su ancho mínimo y es ELLA la que se desplaza, dentro de su marco, sin
   arrastrar consigo a la página. */
.pagina-texto table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.pagina-texto table thead,
.pagina-texto table tbody{display:table;width:100%;min-width:420px}
.pagina-texto th,.pagina-texto td{overflow-wrap:anywhere}
/* Un `<code>` largo sí puede partirse: es preferible a que empuje la página */
.pagina-texto code{overflow-wrap:anywhere;word-break:break-word}

/* Red de seguridad general: nada dentro del contenido puede ser más ancho
   que su sitio. No sustituye a arreglar cada caso, pero evita que un texto
   pegado sin espacios rompa la página entera. */
.pagina-texto{overflow-wrap:break-word}
