/*
Theme Name: Tienda Hogar
Template: generatepress
Description: Tema hijo de GeneratePress para tienda-hogar.es. Precio cerrado con instalación en Badalona y 35 km.
Version: 2.0
*/

:root{
  --th-ink:#151B21; --th-ink-2:#3D4852; --th-muted:#68737D; --th-line:#E4E8EC;
  --th-accent:#C4551A; --th-accent-dark:#A34513; --th-accent-soft:#FBF0E8;
  --th-frio:#1F6D89; --th-frio-soft:#EAF3F7;
  --th-soft:#F5F7F8; --th-ok:#1F7A46; --th-ok-soft:#E8F3EC; --th-amarillo:#F2A93B;
  --th-radius:10px; --th-shadow:0 1px 3px rgba(15,23,30,.06),0 8px 28px rgba(15,23,30,.09);
  --th-shadow-lg:0 4px 14px rgba(15,23,30,.10),0 18px 48px rgba(15,23,30,.16);
}

/* ============ base ============ */
body{color:var(--th-ink);font-size:16.5px;line-height:1.65;background:#fff;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--th-frio)}
h1,h2,h3,h4{color:var(--th-ink);font-weight:800;line-height:1.15;letter-spacing:-.015em}
h1{font-size:2.5rem}
h2{font-size:1.85rem;margin-top:2.2em}
h3{font-size:1.18rem}
@media(max-width:768px){h1{font-size:1.9rem}h2{font-size:1.45rem}}

/* ============ lienzo a todo el ancho ============ */
.grid-container,.site-header .inside-header{max-width:1760px;width:100%;
  padding-left:32px;padding-right:32px;margin-left:auto;margin-right:auto}
.th-topbar .th-topbar-inner,.th-footer-inner{max-width:1760px;padding-left:32px;padding-right:32px}
.entry-content .alignwide{max-width:none}
.entry-content > p,.entry-content > ul:not(.products),.entry-content > ol{max-width:78ch}
.woocommerce-product-details__short-description,.woocommerce-Tabs-panel p{max-width:78ch}
@media(max-width:768px){.grid-container,.site-header .inside-header{padding-left:18px;padding-right:18px}}

/* ============ cabecera ============ */
.th-topbar{background:var(--th-ink);color:#fff;font-size:.83rem;padding:8px 0}
.th-topbar .th-topbar-inner{margin:0 auto;display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;justify-content:space-between}
.th-topbar a{color:#fff;text-decoration:none;font-weight:700}
.th-topbar .th-claim{color:#B9C2CA}
.th-topbar .th-claim strong{color:#fff}
@media(max-width:640px){.th-topbar .th-claim{display:none}}
.site-header{background:#fff;box-shadow:0 1px 0 var(--th-line),0 6px 24px rgba(15,23,30,.05);position:relative;z-index:40}
.site-header .inside-header{padding-top:16px;padding-bottom:16px}
.site-header .site-logo img{max-width:210px;height:auto}
.site-header .main-title,.site-header .site-description{display:none}
.main-navigation .main-nav ul li a{font-weight:700;font-size:.98rem;color:var(--th-ink-2);
  padding-left:16px;padding-right:16px;position:relative}
.main-navigation .main-nav ul li a:hover,.main-navigation .main-nav ul li.current-menu-item a{color:var(--th-accent)}
.main-navigation .main-nav ul li.current-menu-item > a:after{content:"";position:absolute;left:16px;right:16px;bottom:14px;height:3px;background:var(--th-accent);border-radius:2px}
.menu-toggle{background:var(--th-accent)!important;border-radius:8px}
@media(max-width:768px){.site-header .site-logo img{max-width:165px}}

/* ============ botones ============ */
.button,button,input[type=submit],.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,.single_add_to_cart_button{
  background:var(--th-accent)!important;color:#fff!important;border-radius:8px;font-weight:800;
  padding:.8em 1.5em;box-shadow:0 2px 6px rgba(196,85,26,.28);transition:transform .12s,box-shadow .12s,background .12s}
.button:hover,.wp-block-button__link:hover,.woocommerce a.button:hover,.single_add_to_cart_button:hover{
  background:var(--th-accent-dark)!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(196,85,26,.35)}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent!important;color:var(--th-ink)!important;
  border:2px solid currentColor;box-shadow:none}
.th-hero .is-style-outline .wp-block-button__link{color:#fff!important;border-color:rgba(255,255,255,.85)!important}
.th-hero .is-style-outline .wp-block-button__link:hover{background:rgba(255,255,255,.12)!important}

/* ============ hero ============ */
.th-hero{border-radius:16px;overflow:hidden;margin-top:28px}
.th-hero.wp-block-cover{min-height:560px;padding:72px 0}
.th-hero .wp-block-cover__background{background:linear-gradient(78deg,rgba(10,15,20,.92) 0%,rgba(10,15,20,.72) 42%,rgba(10,15,20,.28) 100%)!important;opacity:1!important}
.th-hero .wp-block-cover__inner-container{max-width:1760px;margin:0 auto;padding:0 32px}
.th-hero h1{color:#fff;font-size:3.1rem;max-width:17em;text-wrap:balance;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.th-hero p{color:#E4E9ED;font-size:1.16rem;max-width:52ch}
.th-hero .wp-block-buttons{margin-top:26px;gap:14px}
.th-hero .wp-block-button__link{font-size:1.05rem;padding:.95em 1.9em}
@media(max-width:768px){.th-hero.wp-block-cover{min-height:440px;padding:44px 0}.th-hero h1{font-size:2rem}.th-hero .wp-block-cover__inner-container{padding:0 18px}}

/* ============ secciones de contenido ============ */
.th-kicker{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--th-accent);font-weight:800}
.th-card{border:1px solid var(--th-line);border-radius:var(--th-radius);padding:26px;height:100%;background:#fff;
  box-shadow:0 1px 2px rgba(15,23,30,.04);transition:box-shadow .15s,transform .15s,border-color .15s}
.th-card:hover{box-shadow:var(--th-shadow);border-color:#D3DAE0}
.th-card h3{margin-top:0}
.th-card h3 a{color:var(--th-ink);text-decoration:none}
.th-card h3 a:hover{color:var(--th-accent)}
.th-card p{color:var(--th-ink-2);margin-bottom:0}
.th-soft-section{background:var(--th-soft);border-radius:16px}
/* Antes era un numero hueco con -webkit-text-stroke: en fuentes del sistema
   sin peso 800 real, Chrome simula el negrita y el trazo duplica el contorno
   (se veia mal sobre todo en el "2"). Ademas quedaba invisible en Firefox. */
.th-num{font-size:2.6rem;font-weight:800;color:var(--th-accent);opacity:.32;line-height:1;margin-bottom:.15em}
.th-check li{margin:.4em 0;list-style:none;padding-left:1.7em;position:relative}
.th-check li:before{content:"✓";position:absolute;left:0;top:0;color:#fff;background:var(--th-ok);width:1.15em;height:1.15em;
  border-radius:50%;font-size:.85em;line-height:1.15em;text-align:center;font-weight:800;margin-top:.2em}

/* franja de confianza bajo el hero */
.home .entry-content > .wp-block-group:first-of-type .wp-block-column{
  background:#fff;border:1px solid var(--th-line);border-radius:var(--th-radius);padding:18px 20px;box-shadow:0 1px 2px rgba(15,23,30,.04)}
.home .entry-content > .wp-block-group:first-of-type .wp-block-column p{margin:0;color:var(--th-ink-2);font-size:.95rem}
.home .entry-content > .wp-block-group:first-of-type .wp-block-column strong{display:block;color:var(--th-ink);font-size:1.02rem;margin-bottom:2px}
.home .site-main{margin-top:0}
.home .inside-article{padding-top:0}

/* ============ rejilla de productos ============ */
.woocommerce ul.products,ul.products{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:22px;width:100%;margin:12px 0 0!important;padding:0}
ul.products::before,ul.products::after{display:none!important}
.woocommerce ul.products li.product,ul.products li.product{width:auto!important;margin:0!important;float:none!important;
  text-align:left;border:1px solid var(--th-line);border-radius:var(--th-radius);
  padding:0!important;overflow:hidden;background:#fff;transition:box-shadow .18s,transform .18s,border-color .18s;
  display:flex;flex-direction:column}
ul.products li.product:hover{box-shadow:var(--th-shadow-lg);transform:translateY(-2px);border-color:#CBD4DB}
ul.products li.product .woocommerce-LoopProduct-link{display:flex;flex-direction:column;flex:1;text-decoration:none}
ul.products li.product img{border-radius:0;margin:0;background:#fff;padding:18px;width:100%;
  aspect-ratio:1/1;object-fit:contain;height:auto}
ul.products li.product .th-badge-fila{display:flex;min-height:24px;margin:10px 16px 0;align-items:flex-start}
ul.products li.product .th-badge{margin:0}
ul.products li.product .woocommerce-loop-product__title{font-size:1.03rem;line-height:1.4;font-weight:700;
  padding:8px 16px 0;color:var(--th-ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;min-height:calc(1.4em * 3 + 8px)}
ul.products li.product .price{padding:6px 16px 0;font-size:1.28rem!important;color:var(--th-accent)!important;
  font-weight:800;min-height:2.5em;line-height:1.35;display:block}
ul.products li.product .price del{color:var(--th-muted);font-size:.82em}
ul.products li.product .price .woocommerce-Price-amount{color:var(--th-accent)}
ul.products li.product .button{margin:10px 16px 16px;text-align:center;width:auto;white-space:nowrap;
  font-size:.95rem;padding:.75em 1em}
ul.products li.product .onsale{background:var(--th-amarillo);color:var(--th-ink);font-weight:800;border-radius:6px;
  position:absolute;top:12px;right:12px;z-index:2}
ul.products li.product{position:relative}
@media(max-width:640px){
  .woocommerce ul.products,ul.products{grid-template-columns:repeat(2,1fr);gap:12px}
  ul.products li.product .woocommerce-loop-product__title{font-size:.92rem}
  ul.products li.product .price{font-size:1.1rem!important}
}

/* ============ insignias ============ */
.th-badge{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 11px;border-radius:20px;margin:0 0 8px}
.th-badge-inst{background:var(--th-ok-soft);color:var(--th-ok)}
.th-badge-visita{background:var(--th-frio-soft);color:var(--th-frio)}
ul.products li.product .th-badge{margin-top:12px;align-self:flex-start}

/* ============ ficha de producto ============ */
.single-product div.product .woocommerce-product-gallery{border:1px solid var(--th-line);border-radius:var(--th-radius);
  padding:20px;background:#fff}
.woocommerce div.product .product_title{font-size:2rem;letter-spacing:-.015em}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--th-ink);font-weight:800;font-size:1.75rem}
.woocommerce-variation-price .price{font-size:2rem;color:var(--th-accent)!important}
.single-product p.price:not(:has(bdi)){display:none}
.th-fin-ficha{font-size:.92rem;color:var(--th-ink-2);background:#FFF9EE;border:1px solid #F3E3C2;border-left:4px solid var(--th-amarillo);
  padding:14px 16px;border-radius:8px;margin:14px 0}
.th-fin-ficha__titulo{display:block;margin:0 0 8px;color:var(--th-ink)}
.th-fin-ficha__lista{margin:0;padding-left:20px;display:grid;gap:6px}
.th-fin-ficha__lista a{font-weight:700;color:var(--th-frio)}
.th-zona-nota{font-size:.88rem;color:var(--th-muted);margin-top:8px}
.th-zona-nota a{font-weight:700}
table.variations th{display:none}
table.variations select{max-width:100%;padding:11px 13px;border-radius:8px;border:1.5px solid #C9D2D9;font-size:1rem;font-weight:600;background:#fff}
.single_add_to_cart_button{font-size:1.08rem;padding:.9em 2.2em}
.reset_variations{font-size:.8rem}
.woocommerce-breadcrumb{font-size:.83rem;color:var(--th-muted);margin-bottom:22px!important}
.woocommerce-breadcrumb a{color:var(--th-muted)}

/* CTA de producto a consultar */
.th-visita-cta{border:1px solid var(--th-line);border-radius:var(--th-radius);padding:22px 24px;margin:16px 0;
  background:var(--th-soft);box-shadow:0 1px 2px rgba(15,23,30,.04)}
.th-visita-cta strong{display:block;margin-bottom:6px;font-size:1.05rem}
.th-visita-cta .th-visita-botones{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.th-visita-cta a{display:inline-block;padding:11px 20px;border-radius:8px;font-weight:800;text-decoration:none;transition:transform .12s}
.th-visita-cta a:hover{transform:translateY(-1px)}
.th-visita-cta a.th-btn-llamar{background:var(--th-accent);color:#fff;box-shadow:0 2px 6px rgba(196,85,26,.28)}
.th-visita-cta a.th-btn-wa{background:#1EBE5D;color:#fff;box-shadow:0 2px 6px rgba(30,190,93,.28)}
.th-visita-cta a.th-btn-form{background:#fff;color:var(--th-ink);border:2px solid var(--th-ink)}

/* ============ avisos woo ============ */
.woocommerce-message,.woocommerce-info{border-top-color:var(--th-frio);border-radius:0 0 8px 8px}
.woocommerce-error{border-top-color:var(--th-accent)}

/* ============ pie ============ */
.th-footer{background:var(--th-ink);color:#B9C2CA;padding:56px 0 36px;margin-top:64px}
.th-footer-inner{margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:36px}
.th-footer h4{color:#fff;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px}
.th-footer h4:after{content:"";display:block;width:28px;height:3px;background:var(--th-accent);border-radius:2px;margin-top:8px}
.th-footer ul{list-style:none;margin:0;padding:0}
.th-footer li{margin:7px 0}
.th-footer a{color:#B9C2CA;text-decoration:none}
.th-footer a:hover{color:#fff}
.th-footer .th-foot-nirak{font-size:.88rem;line-height:1.6}
.th-footer-legal{grid-column:1/-1;margin:26px 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);
  font-size:.78rem;line-height:1.6;color:#7C8894}
.site-info{background:#0E1318;color:#7C8894;font-size:.82rem}
.site-info a{color:#7C8894}

/* formularios */
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],
.wpforms-container textarea{border:1.5px solid #C9D2D9!important;border-radius:8px!important;padding:11px 13px!important}
.wpforms-container button[type=submit]{border-radius:8px!important;font-weight:800!important}

/* ============ barra lateral de categorias ============ */
.th-con-sidebar .site-content{display:flex;gap:40px;align-items:flex-start}
.th-con-sidebar #left-sidebar{width:272px;flex:0 0 272px;float:none}
.th-con-sidebar .content-area{flex:1;min-width:0;width:auto;float:none}
.th-con-sidebar .inside-left-sidebar{margin-top:0}
/* los widgets por defecto de GP no pintan nada aqui */
.inside-left-sidebar > *:not(.th-sidenav){display:none}
.th-sidenav{position:sticky;top:24px;border:1px solid var(--th-line);border-radius:var(--th-radius);
  background:#fff;padding:20px 18px;box-shadow:0 1px 2px rgba(15,23,30,.04)}
.th-sidenav h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--th-muted);
  margin:0 0 10px;font-weight:800}
.th-sidenav h3:not(:first-child){margin-top:22px;padding-top:18px;border-top:1px solid var(--th-line)}
.th-sidenav ul{list-style:none;margin:0;padding:0}
.th-sidenav li{margin:0}
.th-sidenav a{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:7px 10px;border-radius:7px;color:var(--th-ink-2);text-decoration:none;font-weight:600;font-size:.94rem}
.th-sidenav a:hover{background:var(--th-soft);color:var(--th-ink)}
.th-sidenav .th-activo > a{background:var(--th-accent-soft);color:var(--th-accent)}
.th-sidenav .th-activo > a .th-cnt{background:var(--th-accent);color:#fff}
.th-sidenav .th-cnt{font-size:.72rem;font-weight:800;background:var(--th-soft);color:var(--th-muted);
  border-radius:12px;padding:1px 8px;min-width:1.9em;text-align:center}
.th-sidenav .th-sub{margin:2px 0 4px 14px;border-left:2px solid var(--th-line);padding-left:6px}
.th-sidenav .th-sub a{font-size:.82rem;padding:5px 8px;white-space:nowrap}
.th-sidenav .th-sub .th-cnt{flex:0 0 auto;font-size:.68rem;padding:1px 6px;min-width:1.6em}
.th-sidenav .th-links a{color:var(--th-frio);font-size:.9rem}
@media(max-width:1024px){
  /* En tablet y movil la barra de categorias/marcas se ocultaba entera pero
     seguia arriba del todo, tapando los primeros productos con un bloque
     larguisimo de enlaces. Se quita del todo: para navegar por categoria en
     movil ya esta el menu superior. */
  .th-con-sidebar #left-sidebar{display:none}
  .th-con-sidebar .content-area{width:100%}
}

/* ============ descripcion larga bajo el titulo de categoria ============ */
.th-desc-toggle{display:none}
@media(max-width:1024px){
  .term-description{max-height:4.6em;overflow:hidden;position:relative}
  .term-description.th-desc--abierta{max-height:none}
  .term-description:not(.th-desc--abierta):after{content:"";position:absolute;left:0;right:0;bottom:0;
    height:2.4em;background:linear-gradient(rgba(255,255,255,0),#fff)}
  .th-desc-toggle{display:inline-block;margin-top:8px;font-size:.86rem;font-weight:700;
    color:var(--th-frio);background:none;border:0;padding:0;cursor:pointer}
}

/* ============ portada: los cuatro puntos ============ */
.th-ventajas{display:grid;grid-template-columns:repeat(auto-fit,minmax(266px,1fr));gap:18px;margin:44px 0 10px}
.th-ventaja{display:flex;gap:15px;align-items:flex-start;background:#fff;border:1px solid var(--th-line);
  border-radius:12px;padding:22px 20px;box-shadow:0 1px 2px rgba(15,23,30,.05);transition:box-shadow .16s,border-color .16s}
.th-ventaja:hover{box-shadow:var(--th-shadow);border-color:#D3DAE0}
.th-ventaja__icono{flex:0 0 46px;width:46px;height:46px;border-radius:11px;background:var(--th-accent-soft);
  color:var(--th-accent);display:grid;place-items:center}
.th-ventaja h3{font-size:1.04rem;margin:0 0 5px;line-height:1.25}
.th-ventaja p{margin:0;font-size:.94rem;line-height:1.55;color:var(--th-ink-2);max-width:none}
@media(max-width:600px){.th-ventajas{gap:12px;margin-top:30px}.th-ventaja{padding:18px 16px}}

/* ============ paneles (contacto) ============ */
.th-contacto.wp-block-columns{align-items:flex-start;gap:32px}
.th-contacto .wp-block-column{align-self:flex-start}
.th-panel{background:#fff;border:1px solid var(--th-line);border-radius:12px;padding:26px 26px 28px;
  box-shadow:0 1px 2px rgba(15,23,30,.05)}
.th-panel__titulo{margin:0 0 18px;font-size:1.22rem;padding-bottom:14px;border-bottom:1px solid var(--th-line)}
.th-panel .wpforms-container{margin:0}
.th-datos{list-style:none;margin:0;padding:0}
.th-datos li{display:grid;grid-template-columns:106px 1fr;gap:12px;padding:11px 0;border-bottom:1px dashed var(--th-line);
  font-size:.96rem;align-items:start}
.th-datos li:last-child{border-bottom:0}
.th-dato__etq{font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--th-muted);font-weight:800;padding-top:3px}
.th-dato__val{color:var(--th-ink);line-height:1.5}
.th-panel__nota{margin:16px 0 0;font-size:.93rem;color:var(--th-ink-2);line-height:1.55;background:var(--th-soft);
  border-radius:8px;padding:13px 15px}
.th-panel__botones{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.th-panel__botones a{flex:1 1 auto;text-align:center;padding:11px 16px;border-radius:8px;font-weight:800;
  text-decoration:none;font-size:.95rem;transition:transform .12s}
.th-panel__botones a:hover{transform:translateY(-1px)}
.th-panel__botones .th-btn-llamar{background:var(--th-accent);color:#fff;box-shadow:0 2px 6px rgba(196,85,26,.28)}
.th-panel__botones .th-btn-wa{background:#1EBE5D;color:#fff;box-shadow:0 2px 6px rgba(30,190,93,.28)}
.th-mapa{margin-top:18px;border:1px solid var(--th-line);border-radius:12px;overflow:hidden;line-height:0;
  box-shadow:0 1px 2px rgba(15,23,30,.05)}
@media(max-width:781px){.th-contacto.wp-block-columns{gap:20px}.th-panel{padding:20px 18px 22px}}

/* ============ alineación única de todo el contenido ============
   GeneratePress mete 40px de padding lateral en .inside-article, asi que el
   contenido caia en x=72 mientras cabecera y pie estan en x=32, y los bloques
   "alignwide" lo compensaban con margin-left:-40px. Se elimina el padding y se
   neutraliza el margen negativo: todo comparte el mismo eje. */
.entry-content .alignwide,
.entry-content .wp-block-columns.alignwide,
.entry-content .wp-block-group.alignwide{margin-left:0;margin-right:0;width:auto;max-width:none}
/* los bloques anidados dejan de encogerse al ancho de prosa por defecto */
.entry-content .wp-block-group.alignwide > .wp-block-columns,
.entry-content .wp-block-group.alignwide > .wp-block-heading,
.entry-content .wp-block-group.th-soft-section > *{max-width:none;margin-left:0;margin-right:0}
/* el hero ya no es a sangre completa: mismo ancho de columna que el resto de
   banners de Inicio (th-instala, th-soft-section), para que las esquinas
   redondeadas se vean contra el fondo blanco en vez de cortarse en el borde
   de la ventana. */
.home .th-hero.alignfull{margin-left:auto;margin-right:auto;width:100%;max-width:1760px}

/* botones del hero: mismo ancho en movil */
@media(max-width:600px){
  .th-hero .wp-block-buttons{flex-direction:column;align-items:stretch}
  .th-hero .wp-block-button,.th-hero .wp-block-button__link{width:100%;text-align:center}
}
/* tarjetas de categoria: menos aire muerto cuando el texto es corto */
.th-card{display:flex;flex-direction:column}
.th-card p:last-child{margin-bottom:0}
@media(max-width:560px){
  .th-datos li{grid-template-columns:1fr;gap:3px}
  .th-dato__etq{padding-top:0}
}

/* ============ portada: qué instalamos + instalación ============ */
.th-instalamos{margin:66px 0 0}
.th-instalamos__cab{max-width:70ch;margin-bottom:26px}
.th-instalamos__cab h2{margin:0 0 8px}
.th-instalamos__cab p{margin:0;font-size:1.06rem;color:var(--th-ink-2);line-height:1.6}

/* las cinco familias */
.th-fams{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:18px}
.th-fam{display:flex;flex-direction:column;background:#fff;border:1px solid var(--th-line);border-radius:12px;
  padding:24px 22px 20px;text-decoration:none;box-shadow:0 1px 2px rgba(15,23,30,.05);
  transition:box-shadow .16s,transform .16s,border-color .16s}
.th-fam:hover{box-shadow:var(--th-shadow-lg);transform:translateY(-3px);border-color:#CBD4DB}
.th-fam__icono{width:48px;height:48px;border-radius:12px;background:var(--th-accent-soft);color:var(--th-accent);
  display:grid;place-items:center;margin-bottom:16px}
.th-fam h3{margin:0 0 8px;font-size:1.12rem;color:var(--th-ink)}
.th-fam p{margin:0 0 18px;font-size:.94rem;line-height:1.55;color:var(--th-ink-2);flex:1;max-width:none}
.th-fam__pie{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;
  border-top:1px solid var(--th-line);color:var(--th-accent);font-size:.98rem}
.th-fam__pie strong{font-weight:800}
.th-fam__flecha{transition:transform .16s}
.th-fam:hover .th-fam__flecha{transform:translateX(4px)}

/* destacados dentro de "Que instalamos", entre la rejilla de familias y la franja de instalacion */
.th-mas-instalados{margin-top:44px}
.th-mas-instalados h2{margin:0 0 20px}
.th-mas-instalados ul.products{margin:0 0 22px}

/* la franja de instalación */
.th-instala{margin-top:22px;background:var(--th-ink);color:#D5DCE2;border-radius:16px;padding:38px 40px;
  display:grid;grid-template-columns:minmax(280px,0.85fr) 1.15fr;gap:38px;align-items:start}
.th-instala__kicker{display:inline-block;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:800;color:var(--th-amarillo);background:rgba(242,169,59,.14);padding:5px 12px;border-radius:20px;
  margin-bottom:14px}
.th-instala__intro h3{color:#fff;font-size:1.6rem;margin:0 0 12px;line-height:1.2}
.th-instala__intro p{margin:0 0 16px;font-size:1rem;line-height:1.65;color:#C2CBD3;max-width:46ch}
.th-instala__intro a{color:#fff}
.th-instala__enlace{display:inline;font-weight:700;font-size:.96rem;text-decoration:underline;
  text-decoration-color:var(--th-amarillo);text-decoration-thickness:2px;text-underline-offset:4px}
.th-instala__enlace:hover{color:var(--th-amarillo)}
.th-instala__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:22px 26px}
.th-instala__lista li{display:flex;gap:13px;align-items:flex-start}
.th-instala__icono{flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.09);
  color:#fff;display:grid;place-items:center}
.th-instala__lista strong{display:block;color:#fff;font-size:1rem;margin-bottom:4px;line-height:1.3}
.th-instala__lista span{display:block;font-size:.9rem;line-height:1.55;color:#AFB9C2}

@media(max-width:1100px){
  .th-instala{grid-template-columns:1fr;gap:28px;padding:32px 28px}
  .th-instala__intro p{max-width:none}
}
@media(max-width:680px){
  .th-instalamos{margin-top:44px}
  .th-instala{padding:26px 20px;border-radius:14px}
  .th-instala__lista{grid-template-columns:1fr;gap:20px}
  .th-instala__intro h3{font-size:1.32rem}
}

/* ============ ritmo vertical entre secciones ============ */
/* el primer titular dentro de una caja no arrastra su margen superior */
.th-soft-section > .wp-block-group__inner-container > :first-child,
.th-panel > :first-child,
.th-card > :first-child{margin-top:0}
.th-soft-section{padding:38px 40px 40px!important;margin:52px 0}
.th-soft-section .wp-block-columns{margin-bottom:0}
.th-soft-section .wp-block-column > :last-child{margin-bottom:0}
@media(max-width:680px){.th-soft-section{padding:26px 20px 28px!important;margin:36px 0}}

/* ============ cabecera fija al hacer scroll ============ */
/* --th-promo-h la fija el JS de th-promo.php con la altura real de la barra
   de promocion, que varia segun se parta el texto en movil. Vale 0px si la
   barra no existe o el cliente ya la cerro. */
:root{--th-promo-h:0px}
.site-header{position:sticky;top:var(--th-promo-h,0px);z-index:120;
  transition:box-shadow .18s ease}
body.admin-bar .site-header{top:calc(32px + var(--th-promo-h,0px))}
@media screen and (max-width:782px){body.admin-bar .site-header{top:calc(46px + var(--th-promo-h,0px))}}
.site-header.th-fijada{box-shadow:0 2px 6px rgba(15,23,30,.07),0 10px 30px rgba(15,23,30,.10)}
.site-header.th-fijada .inside-header{padding-top:10px;padding-bottom:10px}
.site-header.th-fijada .site-logo img{max-width:168px;transition:max-width .18s ease}
.site-logo img{transition:max-width .18s ease}
@media(prefers-reduced-motion:reduce){.site-header,.site-logo img{transition:none}}

/* ============ tarjeta de producto: alineación y precio "desde" ============ */
/* WooCommerce impone padding lateral 0 al titulo y lo desalineaba del resto */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title{padding:0 18px!important;margin:0 0 2px}
.woocommerce ul.products li.product img,ul.products li.product img{padding:14px 14px 6px}
ul.products li.product .th-badge-fila{margin:0 18px 8px;min-height:auto}
ul.products li.product .price{padding:8px 18px 0!important;min-height:auto;
  display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
ul.products li.product .button{margin:14px 18px 18px}
.th-desde{font-size:.8rem;font-weight:700;color:var(--th-muted);text-transform:lowercase;letter-spacing:.01em}
.woocommerce div.product p.price .th-desde{font-size:.95rem}
/* el titulo empuja el resto hacia abajo de forma uniforme */
ul.products li.product .woocommerce-loop-product__title{min-height:calc(1.4em * 3)}

/* ============ boton "Finalizar compra" del carrito (bloque WooCommerce) ============
   Es un <a> estilizado como boton. WordPress fija su color en blanco con
   :where(.wp-element-button) a proposito con especificidad CERO para que el tema
   pueda anularlo facilmente, pero la regla global de GeneratePress "a:hover,a:focus,
   a:active{color:var(--contrast)}" tiene mas especificidad y ganaba, dejando el texto
   casi negro sobre el fondo oscuro del boton (ilegible). Se fija el blanco con clase
   propia para que sobreviva al hover/focus/active. */
a.wp-element-button.contained:hover,
a.wp-element-button.contained:focus,
a.wp-element-button.contained:active,
a.wc-block-components-button.contained:hover,
a.wc-block-components-button.contained:focus,
a.wc-block-components-button.contained:active{color:#fff!important}

/* ============ modal generico (legales + info de zona) ============ */
.th-modal-overlay{position:fixed;inset:0;background:rgba(15,20,25,.55);z-index:9998;
  display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;
  transition:opacity .18s ease;pointer-events:none}
.th-modal-overlay.th-abierto{opacity:1;pointer-events:auto}
.th-modal{background:#fff;border-radius:14px;max-width:680px;width:100%;max-height:85vh;
  display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(15,20,25,.35);
  transform:translateY(14px) scale(.98);transition:transform .18s ease}
.th-modal-overlay.th-abierto .th-modal{transform:translateY(0) scale(1)}
.th-modal__cab{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:22px 26px 16px;border-bottom:1px solid var(--th-line)}
.th-modal__titulo{margin:0;font-size:1.3rem;line-height:1.3}
.th-modal__cerrar{flex:0 0 auto;width:34px;height:34px;border-radius:8px;border:0;
  background:var(--th-soft);color:var(--th-ink-2);font-size:1.3rem;line-height:1;cursor:pointer;
  display:grid;place-items:center;transition:background .12s,color .12s}
.th-modal__cerrar:hover{background:var(--th-line);color:var(--th-ink)}
.th-modal__cuerpo{padding:20px 26px 28px;overflow-y:auto;font-size:.97rem;line-height:1.65;color:var(--th-ink-2)}
.th-modal__cuerpo h1,.th-modal__cuerpo h2,.th-modal__cuerpo h3{color:var(--th-ink);margin-top:1.4em}
.th-modal__cuerpo h1:first-child,.th-modal__cuerpo h2:first-child{margin-top:0}
.th-modal__cuerpo p{margin:.75em 0}
.th-modal__cuerpo ul,.th-modal__cuerpo ol{padding-left:1.3em}
.th-modal__cuerpo a{color:var(--th-frio)}
.th-modal__cargando{padding:40px 26px;text-align:center;color:var(--th-muted)}
body.th-modal-abierto{overflow:hidden}
@media(max-width:600px){
  .th-modal-overlay{padding:0;align-items:flex-end}
  .th-modal{max-width:none;width:100%;max-height:88vh;border-radius:16px 16px 0 0}
  .th-modal__cab{padding:18px 20px 14px}
  .th-modal__cuerpo{padding:16px 20px 24px}
}

/* ============ FAQ por familia ============ */
.th-faq{margin:52px 0 0;padding-top:36px;border-top:1px solid var(--th-line);clear:both}
.th-faq h2{margin-top:0;margin-bottom:.7em}
.th-faq__item{border:1px solid var(--th-line);border-radius:var(--th-radius);background:#fff;
  margin:10px 0;overflow:hidden;transition:border-color .12s}
.th-faq__item[open]{border-color:#D3DAE0}
.th-faq__item summary{cursor:pointer;padding:16px 20px;font-weight:700;color:var(--th-ink);
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;line-height:1.4}
.th-faq__item summary::-webkit-details-marker{display:none}
.th-faq__item summary:after{content:"+";flex:0 0 auto;font-size:1.35rem;font-weight:400;
  color:var(--th-accent);line-height:1;transition:transform .15s}
.th-faq__item[open] summary:after{content:"\2212"}
.th-faq__item summary:hover{color:var(--th-accent)}
.th-faq__resp{padding:0 20px 18px}
.th-faq__resp p{margin:0;color:var(--th-ink-2);line-height:1.65;max-width:78ch}
.th-faq__pie{margin-top:18px;font-size:.93rem;color:var(--th-muted)}
@media(max-width:600px){
  .th-faq{margin-top:38px;padding-top:28px}
  .th-faq__item summary{padding:14px 16px}
  .th-faq__resp{padding:0 16px 16px}
}

/* ============ enlaces a guias de compra ============ */
.th-guia-enlace{display:block;border:1px solid var(--th-line);border-left:4px solid var(--th-frio);
  border-radius:var(--th-radius);padding:14px 18px;margin:16px 0;text-decoration:none;background:#fff;
  transition:box-shadow .15s,border-color .15s}
.th-guia-enlace:hover{box-shadow:var(--th-shadow);border-color:#D3DAE0}
.th-guia-enlace__etq{display:block;font-size:.72rem;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--th-frio);margin-bottom:3px}
.th-guia-enlace__tit{display:block;font-weight:700;color:var(--th-ink);line-height:1.3}
.th-guia-enlace__sub{display:block;font-size:.9rem;color:var(--th-muted);margin-top:2px;line-height:1.45}
.th-guia-bloque{margin:28px 0 0;max-width:620px}
.th-guia-cierre{margin:44px 0 0;padding:26px 28px;background:var(--th-soft);border-radius:var(--th-radius)}
.th-guia-cierre__txt{margin:0 0 16px;color:var(--th-ink-2);max-width:70ch}
.th-guia-cierre__btns{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.th-guia-cierre__sec{font-weight:700}
.th-guia-otras{margin:36px 0 0;padding-top:26px;border-top:1px solid var(--th-line)}
.th-guia-otras h2{margin-top:0;font-size:1.35rem}
.th-guia-otras ul{padding-left:1.15em;margin:0}
.th-guia-otras li{margin:6px 0}
@media(max-width:600px){
  .th-guia-cierre{padding:22px 18px}
  .th-guia-cierre__btns{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ============ cabecera de entrada del blog ============ */
.single-post .post-image img,.single-post .wp-post-image{
  width:100%;height:340px;object-fit:cover;border-radius:var(--th-radius);display:block}
.single-post .entry-content{max-width:none}
.single-post .entry-content > p,
.single-post .entry-content > ul,
.single-post .entry-content > ol,
.single-post .entry-content > h2,
.single-post .entry-content > h3{max-width:74ch}
.single-post .entry-content h2{margin-top:1.9em}
@media(max-width:600px){
  .single-post .post-image img,.single-post .wp-post-image{height:210px}
}

/* ============ buscador a pantalla completa ============ */
.th-buscar-abrir{width:40px;height:40px;padding:0;border:0;border-radius:9px;background:transparent;
  color:var(--th-ink-2);display:grid;place-items:center;cursor:pointer;margin-left:6px;
  transition:background .12s,color .12s}
.th-buscar-abrir:hover{background:var(--th-soft);color:var(--th-ink)}
.th-buscar-abrir svg{width:20px;height:20px}

/* ============ icono de carrito en cabecera ============ */
.th-carrito-abrir{position:relative;width:40px;height:40px;padding:0;border-radius:9px;
  background:var(--th-accent);color:#fff;display:grid;place-items:center;margin-left:8px;
  text-decoration:none;transition:background .12s}
.th-carrito-abrir:hover{background:var(--th-accent-dark);color:#fff}
.th-carrito-abrir svg{width:20px;height:20px}
.th-carrito-cnt{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;
  border-radius:999px;background:var(--th-ink);color:#fff;font-size:.68rem;font-weight:800;
  display:grid;place-items:center;line-height:1;border:2px solid #fff}
.th-carrito-cnt.th-oculto{display:none}

.th-buscador{position:fixed;inset:0;z-index:99990;display:flex;justify-content:center;
  align-items:flex-start;padding:9vh 20px 20px;opacity:0;pointer-events:none;
  transition:opacity .16s ease}
.th-buscador.th-abierto{opacity:1;pointer-events:auto}
.th-buscador__fondo{position:absolute;inset:0;background:rgba(12,17,22,.62);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.th-buscador__caja{position:relative;width:100%;max-width:660px;background:#fff;
  border-radius:16px;box-shadow:0 24px 70px rgba(10,15,20,.42);display:flex;flex-direction:column;
  max-height:82vh;overflow:hidden;transform:translateY(-10px) scale(.985);
  transition:transform .18s cubic-bezier(.2,.8,.3,1)}
.th-buscador.th-abierto .th-buscador__caja{transform:translateY(0) scale(1)}

.th-buscador__form{display:flex;align-items:center;gap:12px;padding:16px 18px;
  border-bottom:1px solid var(--th-line);flex:0 0 auto}
.th-buscador__lupa{width:22px;height:22px;flex:0 0 auto;color:var(--th-muted)}
.th-buscador__campo{flex:1 1 auto;border:0!important;outline:0;padding:6px 0!important;
  font-size:1.16rem;color:var(--th-ink);background:transparent;min-width:0;box-shadow:none!important}
.th-buscador__campo::placeholder{color:#9AA4AD}
.th-buscador__campo::-webkit-search-cancel-button{display:none}
.th-buscador__cerrar{flex:0 0 auto;border:1px solid var(--th-line);background:var(--th-soft);
  color:var(--th-muted);border-radius:7px;padding:5px 9px!important;font-size:.72rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;cursor:pointer;line-height:1;transition:background .12s}
.th-buscador__cerrar:hover{background:var(--th-line);color:var(--th-ink)}

.th-buscador__cuerpo{overflow-y:auto;padding:16px 18px 18px;-webkit-overflow-scrolling:touch}
.th-buscador__etq{margin:0 0 10px;font-size:.72rem;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--th-muted)}
.th-buscador__chips{display:flex;flex-wrap:wrap;gap:8px}
.th-buscador__chip{display:inline-block;padding:8px 14px;border:1px solid var(--th-line);
  border-radius:999px;font-size:.93rem;font-weight:600;color:var(--th-ink-2);text-decoration:none;
  transition:background .12s,border-color .12s,color .12s}
.th-buscador__chip:hover{background:var(--th-accent-soft);border-color:var(--th-accent);color:var(--th-accent)}
.th-buscador__pista{margin:16px 0 0;font-size:.9rem;color:var(--th-muted)}

.th-buscador__lista{display:flex;flex-direction:column;gap:2px}
.th-buscador__item{display:flex;align-items:center;gap:14px;padding:10px;border-radius:10px;
  text-decoration:none;transition:background .1s}
.th-buscador__item:hover,.th-buscador__item.th-activo{background:var(--th-soft)}
.th-buscador__item-img{flex:0 0 52px;width:52px;height:52px;border:1px solid var(--th-line);
  border-radius:8px;overflow:hidden;background:var(--th-soft);display:grid;place-items:center}
.th-buscador__item-img img{mix-blend-mode:multiply}
.th-buscador__item-img img{width:100%;height:100%;object-fit:contain}
.th-buscador__item-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.th-buscador__item-nombre{font-weight:700;color:var(--th-ink);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.th-buscador__item-precio{font-size:.95rem;color:var(--th-accent);font-weight:700}
.th-buscador__item-precio .th-desde{color:var(--th-muted);font-weight:600}
.th-buscador__item-precio del{color:var(--th-muted);font-weight:400;margin-right:5px}

.th-buscador__todos{display:block;margin-top:10px;padding:11px;border-radius:9px;text-align:center;
  background:var(--th-soft);font-weight:700;font-size:.94rem;text-decoration:none;color:var(--th-frio);
  transition:background .12s}
.th-buscador__todos:hover{background:var(--th-line)}
.th-buscador__cargando{margin:0;padding:22px 0;text-align:center;color:var(--th-muted)}
.th-buscador__vacio{padding:8px 0 4px}
.th-buscador__vacio-tit{margin:0 0 6px;font-weight:800;color:var(--th-ink);font-size:1.05rem}
.th-buscador__vacio p{margin:0 0 14px;color:var(--th-ink-2);font-size:.95rem;line-height:1.6}
.th-buscador__vacio-cta{display:inline-block;padding:9px 18px;border-radius:8px;
  background:var(--th-accent);color:#fff!important;font-weight:700;text-decoration:none}
.th-buscador__vacio-cta:hover{background:var(--th-accent-dark)}

body.th-buscador-abierto{overflow:hidden}

@media(max-width:600px){
  .th-buscador{padding:0;align-items:stretch}
  .th-buscador__caja{max-width:none;max-height:100%;border-radius:0;height:100%}
  .th-buscador__form{padding:14px 15px}
  .th-buscador__campo{font-size:1.05rem}
  .th-buscador__cuerpo{padding:14px 15px 20px}
}

/* ============ pagina de marcas: casillas con logo ============ */
.th-marcas-bloque{margin:36px 0 44px}
.th-marcas-bloque h2{margin-bottom:18px}
.th-marcas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}
.th-marca{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  padding:26px 18px;border:1px solid var(--th-line);border-radius:var(--th-radius);background:#fff;
  text-decoration:none;transition:box-shadow .15s,transform .15s,border-color .15s}
.th-marca:hover{box-shadow:var(--th-shadow);border-color:#D3DAE0;transform:translateY(-2px)}
.th-marca__logo{display:flex;align-items:center;justify-content:center;height:56px;width:100%}
.th-marca__logo img{max-height:56px;max-width:140px;width:auto;height:auto;object-fit:contain}
.th-marca__nombre{font-weight:700;color:var(--th-ink);font-size:1rem}
.th-marca__desc{font-size:.86rem;color:var(--th-muted);line-height:1.4}
@media(max-width:600px){
  .th-marcas-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
  .th-marca{padding:18px 12px}
}
.th-instala--simple{grid-template-columns:1fr;text-align:left}
.th-instala--simple .th-instala__intro p{max-width:62ch}

/* ============ listado de guias de compra en rejilla ============ */
.th-guias-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:26px;margin-top:8px}
.th-guias-grid article{border:1px solid var(--th-line);border-radius:var(--th-radius);overflow:hidden;
  background:#fff;transition:box-shadow .15s,transform .15s,border-color .15s;display:flex;flex-direction:column}
.th-guias-grid article:hover{box-shadow:var(--th-shadow);border-color:#D3DAE0;transform:translateY(-2px)}
.th-guias-grid .inside-article{display:flex;flex-direction:column;flex:1;padding:0}
.th-guias-grid .featured-image,.th-guias-grid .post-image{margin:0}
.th-guias-grid .featured-image img,.th-guias-grid .post-image img{width:100%;height:170px;object-fit:cover;display:block}
.th-guias-grid .entry-header{padding:18px 20px 0}
.th-guias-grid .entry-title{font-size:1.08rem;line-height:1.35;margin:0 0 6px}
.th-guias-grid .entry-title a{color:var(--th-ink)}
.th-guias-grid .entry-meta{font-size:.82rem;color:var(--th-muted);margin-bottom:4px}
.th-guias-grid .entry-summary{padding:6px 20px 20px;font-size:.92rem;color:var(--th-ink-2);line-height:1.55}
.th-guias-grid .entry-summary p{margin:0}
@media(max-width:600px){.th-guias-grid{grid-template-columns:1fr}}
.th-mantenimiento-caja{background:var(--th-frio-soft);border:1px solid #C9E0E9;border-radius:var(--th-radius);
  padding:26px 28px;margin:8px 0 30px}
.th-mantenimiento-caja p{max-width:62ch}
.th-mantenimiento-caja .wp-block-buttons{margin-top:6px}
.th-con-sidebar #left-sidebar{margin-top:26px}

/* ============ chips de filtro rapido en categorias con hijas ============ */
.th-chips-filtro{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.th-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--th-line);
  border-radius:999px;font-size:.9rem;font-weight:600;color:var(--th-ink-2);text-decoration:none;
  transition:background .12s,border-color .12s,color .12s}
.th-chip span{font-size:.78rem;font-weight:700;color:var(--th-muted)}
.th-chip:hover{background:var(--th-accent-soft);border-color:var(--th-accent);color:var(--th-accent)}
.th-chip:hover span{color:var(--th-accent)}
.th-card__icono{width:40px;height:40px;border-radius:10px;background:var(--th-accent-soft);color:var(--th-accent);
  display:grid;place-items:center;margin-bottom:14px;flex:0 0 auto}

/* GeneratePress aplica margin-left/right:auto a TODO .wp-block-group__inner-container.
   Dentro de .th-card, que es flex-direction:column, esos margenes automaticos dejan de
   ser inocuos: en flexbox un margen auto en el eje transversal anula el estirado y
   centra la caja a su ancho de contenido. Resultado: las tarjetas con parrafo corto
   salian desplazadas a la derecha y las de parrafo largo no, porque llenaban el ancho.
   Afectaba a las 25 tarjetas del catalogo, no solo a las de Banos. */
.th-card > .wp-block-group__inner-container{max-width:none;width:100%;margin-left:0;margin-right:0}
/* Ritmo vertical identico tengan o no las clases is-layout-flow de WordPress, que
   varian segun como quedo parseado cada bloque al insertar el icono. */
.th-card > .wp-block-group__inner-container > :first-child{margin-top:0}
.th-card .th-card__icono + h3{margin-top:0}
/* El min-width explicito del contador anula el tamano minimo automatico del flex item,
   asi que con etiquetas largas (p. ej. "Sistemas de instalacion") flexbox lo encogia por
   debajo del ancho de los digitos y el "30" se partia en dos lineas. */
.th-sidenav .th-cnt{flex:0 0 auto;white-space:nowrap}

/* ============ scroll infinito en listados ============ */
.th-scroll-centinela{min-height:24px;text-align:center;padding:30px 0 40px;color:var(--th-muted);font-size:.92rem}

/* ============ swap AJAX de orden y chips en listados ============ */
#main.th-cargando{opacity:.45;pointer-events:none;transition:opacity .15s}

/* ============ loader global (cualquier navegacion de la web) ============ */
.th-loader-global{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;
  background:rgba(21,27,33,.28);backdrop-filter:blur(1.5px);opacity:0;pointer-events:none;
  transition:opacity .15s ease}
.th-loader-global.th-activo{opacity:1;pointer-events:auto}
.th-loader-global__caja{position:relative;width:64px;height:64px;display:grid;place-items:center;
  background:#fff;border-radius:16px;box-shadow:var(--th-shadow-lg)}
.th-loader-global__anillo{position:absolute;inset:8px;width:48px;height:48px;color:var(--th-accent);
  animation:th-girar 1s linear infinite}
.th-loader-global__anillo circle{stroke:currentColor;stroke-linecap:round;
  stroke-dasharray:90;stroke-dashoffset:60}
.th-loader-global__icono{width:22px;height:22px;color:var(--th-ink)}
@keyframes th-girar{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.th-loader-global__anillo{animation-duration:2.4s}}

/* ============ planes de mantenimiento ============ */
.woocommerce ul.products.th-planes-grid,ul.products.th-planes-grid{
  grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:26px}
.th-planes-grid li.product{overflow:visible}
.th-plan{display:flex;flex-direction:column;height:100%}
.th-plan__media{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  height:150px;overflow:hidden;background:linear-gradient(135deg,var(--th-accent-soft),#EFF4F7);
  color:var(--th-accent);text-decoration:none;border-bottom:1px solid var(--th-line)}
/* Algunas fotos de plan llegan cuadradas (300x300): sin esto WooCommerce les
   impone su propio aspect-ratio:1/1 y la tarjeta triplica el alto de las
   demas, dejando el contenido real fuera de la vista. */
.th-plan__media img{width:100%!important;height:100%!important;aspect-ratio:auto!important;
  object-fit:cover!important;padding:0!important;max-width:100%!important}
.th-plan__icono{display:grid;place-items:center;width:44px;height:44px}
.th-plan__icono svg{width:32px;height:32px}
.th-plan__media-txt{font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--th-ink-2)}
.th-plan__cuerpo{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.th-plan__eyebrow{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800;
  color:var(--th-accent)}
.th-plan__tit{font-size:1.32rem;line-height:1.25;margin:6px 0 0}
.th-plan__tit a{color:var(--th-ink);text-decoration:none}
.th-plan__tit a:hover{color:var(--th-accent)}
.th-plan__variante{margin:4px 0 0;font-size:.92rem;color:var(--th-muted);line-height:1.45}
.th-plan__precios{margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--th-line)}
.th-plan__mes{margin:0;display:flex;align-items:baseline;gap:4px}
.th-plan__mes strong{font-size:1.85rem;font-weight:800;color:var(--th-ink)}
.th-plan__mes .woocommerce-Price-amount{color:var(--th-ink)}
.th-plan__mes span{font-size:1rem;color:var(--th-muted);font-weight:600}
.th-plan__anual{margin:4px 0 0;font-size:.92rem;color:var(--th-ink-2);display:flex;flex-wrap:wrap;
  align-items:center;gap:8px}
.th-plan__anual strong{font-weight:800}
.th-plan__ahorro{background:var(--th-ok-soft);color:var(--th-ok);font-weight:800;font-size:.78rem;
  padding:3px 9px;border-radius:999px;white-space:nowrap}
.th-plan__ahorro .woocommerce-Price-amount{color:var(--th-ok)}
.th-plan__lista{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:7px}
.th-plan__lista li{position:relative;padding-left:24px;font-size:.9rem;line-height:1.5;color:var(--th-ink-2)}
.th-plan__lista li:before{content:"";position:absolute;left:0;top:.42em;width:14px;height:8px;
  border-left:2px solid var(--th-ok);border-bottom:2px solid var(--th-ok);transform:rotate(-45deg)}
.th-plan__mas{margin:10px 0 0;font-size:.88rem}
.th-plan__mas a{color:var(--th-frio);font-weight:600}
.th-plan__botones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 0}
.th-plan__btn{display:block;text-align:center;padding:.82em 1em;border-radius:8px;font-weight:700;
  font-size:.94rem;text-decoration:none;background:var(--th-accent);color:#fff;
  transition:background .12s,transform .12s}
.th-plan__btn:hover{background:var(--th-accent-dark);color:#fff;transform:translateY(-1px)}
.th-plan__btn--sec{background:#fff;color:var(--th-ink);border:2px solid var(--th-ink)}
.th-plan__btn--sec:hover{background:var(--th-ink);color:#fff}
.th-plan__detalle{margin:12px 0 0;font-size:.9rem;font-weight:600;color:var(--th-frio);text-decoration:none}
.th-plan__detalle:hover{text-decoration:underline}
@media(max-width:520px){
  .woocommerce ul.products.th-planes-grid,ul.products.th-planes-grid{grid-template-columns:1fr}
  .th-plan__botones{grid-template-columns:1fr}
}

/* --- planes agrupados por familia --- */
.th-planes-duplicado{display:none!important}
.th-planes-bloques{display:flex;flex-direction:column;gap:46px;margin:8px 0 10px}
.th-planes-bloque__cab{margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--th-line)}
.th-planes-bloque__tit{margin:0;font-size:1.35rem;line-height:1.25;letter-spacing:-.01em}
.th-planes-bloque__sub{margin:6px 0 0;font-size:.95rem;color:var(--th-muted);max-width:70ch}
.th-planes-bloque .th-planes-grid{margin:0!important}
@media(max-width:520px){
  .th-planes-bloques{gap:34px}
  .th-planes-bloque__tit{font-size:1.15rem}
}

/* ficha del plan */
.th-plan-modalidades{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:22px 0 0}
.th-plan-mod{border:1px solid var(--th-line);border-radius:var(--th-radius);padding:20px 20px 22px;background:#fff}
.th-plan-mod--destacada{border:2px solid var(--th-accent);background:var(--th-accent-soft)}
.th-plan-mod__etq{display:flex;align-items:center;gap:8px;font-size:.74rem;letter-spacing:.11em;
  text-transform:uppercase;font-weight:800;color:var(--th-ink-2)}
.th-plan-mod__dto{background:var(--th-ok);color:#fff;padding:2px 8px;border-radius:999px;letter-spacing:.04em}
.th-plan-mod__precio{margin:10px 0 0;display:flex;align-items:baseline;gap:4px}
.th-plan-mod__precio strong{font-size:2rem;font-weight:800;color:var(--th-ink)}
.th-plan-mod__precio .woocommerce-Price-amount{color:var(--th-ink)}
.th-plan-mod__precio span{font-size:1rem;color:var(--th-muted);font-weight:600}
.th-plan-mod__nota{margin:6px 0 16px;font-size:.88rem;color:var(--th-ink-2);line-height:1.5}
.th-plan-mod__nota .woocommerce-Price-amount{font-weight:700;color:var(--th-ok)}
.th-plan-legal{margin:14px 0 0;font-size:.85rem;color:var(--th-muted);line-height:1.6}
.th-plan-detalle{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;
  margin:44px 0 0;padding:30px 32px;background:var(--th-soft);border-radius:var(--th-radius)}
.th-plan-detalle h2{font-size:1.2rem;margin:0 0 14px}
.th-plan-detalle ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.th-plan-detalle li{position:relative;padding-left:26px;font-size:.94rem;line-height:1.55;color:var(--th-ink-2)}
.th-plan-detalle__si li:before{content:"";position:absolute;left:2px;top:.45em;width:13px;height:7px;
  border-left:2px solid var(--th-ok);border-bottom:2px solid var(--th-ok);transform:rotate(-45deg)}
.th-plan-detalle__no li:before{content:"";position:absolute;left:2px;top:.72em;width:12px;height:2px;
  background:var(--th-muted)}
.th-plan-pdf{margin:20px 0 0;font-size:.94rem}
.th-plan-precio-inline small{color:var(--th-muted);font-weight:600}
@media(max-width:680px){.th-plan-detalle{padding:24px 20px;gap:24px}}
.th-plan__resumen{margin:16px 0 0;font-size:.9rem;line-height:1.6;color:var(--th-ink-2)}
.th-plan__botones{margin-top:auto;padding-top:18px}
/* El aviso global "Impuestos incluidos" cuelga del precio, que en un plan se
   sustituye por el bloque de modalidades: sin precio queda huerfano bajo el H1. */
body.th-plan-single .summary > div:not([class]){display:none}

/* ============ mega-menu de "Catálogo" ============ */
.main-navigation .main-nav ul li.th-tiene-mega{position:static}
.th-mega{position:fixed;left:0;right:0;z-index:9999;background:#fff;
  border-top:3px solid var(--th-accent);box-shadow:0 24px 48px rgba(15,23,30,.14);
  padding:34px 0;max-height:calc(100vh - 120px);overflow-y:auto}
.th-mega__inner{max-width:1760px;margin:0 auto;padding:0 32px;
  display:grid;grid-template-columns:1.1fr 1.1fr 1.3fr 1fr;gap:36px;text-align:left}
.th-mega__col h3{margin:0 0 14px;font-size:.76rem;letter-spacing:.11em;text-transform:uppercase;
  font-weight:800;color:var(--th-accent)}
.th-mega__col ul{list-style:none;margin:0;padding:0}
.th-mega__col li{margin:0}
.th-mega__col > ul > li > a{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 0;font-weight:600;font-size:.95rem;color:var(--th-ink);text-decoration:none;
  border-bottom:1px solid transparent}
.th-mega__col > ul > li > a:hover{color:var(--th-accent)}
.th-mega__cnt{font-size:.72rem;font-weight:800;color:var(--th-muted);background:var(--th-soft);
  border-radius:10px;padding:1px 8px}
.th-mega__ver-todo{display:inline-block;margin-top:10px;font-size:.88rem;font-weight:700;
  color:var(--th-frio);text-decoration:none}
.th-mega__ver-todo:hover{text-decoration:underline}
.th-mega__servicios li{margin-bottom:14px}
.th-mega__servicios li:last-child{margin-bottom:0}
.th-mega__servicios a{display:block;font-weight:700;font-size:.95rem;color:var(--th-ink);
  text-decoration:none;margin-bottom:2px}
.th-mega__servicios a:hover{color:var(--th-accent)}
.th-mega__servicios span{display:block;font-size:.82rem;color:var(--th-muted);line-height:1.4}
.th-mega__cta{margin-top:20px;background:var(--th-ink);color:#fff;border-radius:12px;
  padding:18px 20px}
.th-mega__cta strong{display:block;font-size:.98rem;margin-bottom:4px}
.th-mega__cta span{display:block;font-size:.84rem;color:#C2CBD3;line-height:1.5;margin-bottom:12px}
.th-mega__cta a{display:inline-block;background:#25D366;color:#fff;font-weight:700;font-size:.88rem;
  padding:9px 16px;border-radius:8px;text-decoration:none}
.th-mega__cta a:hover{background:#1eb958}
@media(max-width:1024px){
  .th-mega__inner{grid-template-columns:1fr 1fr;row-gap:28px}
}
@media(max-width:768px){
  .th-mega{display:none!important}
}

.main-navigation .main-nav ul li.th-mega-abierto > a{color:var(--th-accent)}

/* ============ Inicio en móvil/tablet: sin barra de categorías ============ */
@media(max-width:900px){
  /* .th-con-sidebar es una clase del propio <body>, no de un contenedor interno. */
  body.home#left-sidebar,body.home #left-sidebar{display:none!important}
}

/* ============ favoritos: portada y fila recomendada ============ */
.th-mas-instalados__grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))!important}
.th-reco{margin:6px 0 26px;padding:22px 24px 24px;border-radius:var(--th-radius);
  background:linear-gradient(135deg,var(--th-accent-soft),#F7FAFB);
  border:1px solid #F0DCCF}
.th-reco__tit{margin:0;font-size:1.18rem;display:flex;align-items:center;gap:9px}
.th-reco__tit:before{content:"";width:18px;height:18px;flex:0 0 18px;background:var(--th-accent);
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.th-reco__sub{margin:4px 0 0;font-size:.92rem;color:var(--th-ink-2)}
.th-reco .products{margin-top:16px!important}
.th-reco-grid li.product{position:relative;border-color:var(--th-accent)!important;
  box-shadow:0 4px 16px rgba(196,85,26,.13)}
.th-reco-grid li.product:before{content:"Recomendado";position:absolute;top:0;left:0;z-index:3;
  background:var(--th-accent);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;padding:5px 11px;border-radius:var(--th-radius) 0 10px 0}
.th-reco-grid li.product .th-badge-fila{margin-top:22px}
@media(max-width:600px){.th-reco{padding:18px 16px 20px}}

/* ============ pagina de instalacion: rejilla de destacados ============ */
.th-inst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0 0}
.th-inst-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--th-line);
  border-radius:var(--th-radius);padding:24px;text-decoration:none;color:var(--th-ink);
  transition:box-shadow .15s,transform .15s,border-color .15s}
.th-inst-card:hover{box-shadow:var(--th-shadow-lg);transform:translateY(-2px);border-color:#CBD4DB}
.th-inst-card__icono{width:44px;height:44px;border-radius:10px;background:var(--th-accent-soft);
  color:var(--th-accent);display:grid;place-items:center;margin-bottom:14px;flex:0 0 auto}
.th-inst-card__icono svg{width:24px;height:24px}
.th-inst-card h3{margin:0 0 8px;font-size:1.08rem}
.th-inst-card p{margin:0;font-size:.92rem;color:var(--th-ink-2);line-height:1.55;flex:1}
.th-inst-card__pie{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--th-line);color:var(--th-accent);font-size:.98rem}
.th-inst-card__pie strong{font-weight:800}
.th-inst-card__flecha{transition:transform .16s}
.th-inst-card:hover .th-inst-card__flecha{transform:translateX(4px)}
@media(max-width:900px){.th-inst-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.th-inst-grid{grid-template-columns:1fr}}

/* ============ pagina de instalacion: listado compacto por sector ============ */
/* Columnas de flujo real (no rejilla): cada bloque se coloca donde haya
   sitio, sin que un sector con pocos servicios deje toda su fila vacia
   junto a un sector largo. */
.th-inst-listado{column-count:3;column-gap:40px;margin:20px 0 0}
.th-inst-bloque{margin:0 0 30px;break-inside:avoid}
@media(max-width:1024px){.th-inst-listado{column-count:2}}
@media(max-width:640px){.th-inst-listado{column-count:1}}
.th-inst-bloque h3{display:flex;align-items:baseline;gap:8px;font-size:1rem;margin:0 0 8px;
  padding-bottom:8px;border-bottom:2px solid var(--th-line)}
.th-inst-bloque h3 span{font-size:.78rem;font-weight:600;color:var(--th-muted)}
.th-inst-bloque ul{list-style:none;margin:0;padding:0}
.th-inst-bloque li{border-bottom:1px solid var(--th-line)}
.th-inst-bloque a{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:9px 0;text-decoration:none;color:var(--th-ink-2);font-size:.92rem}
.th-inst-bloque a:hover{color:var(--th-accent)}
.th-inst-listado__nombre{flex:1;min-width:0}
.th-inst-listado__precio{flex:0 0 auto;font-weight:700;color:var(--th-ink);white-space:nowrap;font-size:.88rem}
.th-inst-bloque a:hover .th-inst-listado__precio{color:var(--th-accent)}

/* ============ pagina de instalacion: familia por familia ============ */
.th-instal-fila{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:start;
  margin:44px 0 0;padding-top:36px;border-top:1px solid var(--th-line)}
.th-instal-fila__foto img{width:100%;border-radius:var(--th-radius);display:block;aspect-ratio:4/3;object-fit:cover}
.th-instal-fila__cuerpo h2{margin:0 0 10px}
.th-instal-precio{font-size:1.05rem;color:var(--th-ink);margin:0 0 14px}
.th-instal-precio strong{color:var(--th-accent)}
.th-instal-no{margin:14px 0 0;font-size:.92rem;color:var(--th-ink-2);line-height:1.6;
  background:var(--th-soft);border-radius:10px;padding:14px 16px}
@media(max-width:700px){.th-instal-fila{grid-template-columns:1fr;gap:16px}}

.th-aerotermia-caja{margin:44px 0 0;padding:30px 32px;background:var(--th-ink);color:#D5DCE2;
  border-radius:16px}
.th-aerotermia-caja h2{color:#fff;margin:0 0 12px}
.th-aerotermia-caja p{margin:0 0 14px;max-width:62ch;line-height:1.6}
.th-aerotermia-caja .wp-block-button__link{background:var(--th-accent);color:#fff}
@media(max-width:600px){.th-aerotermia-caja{padding:24px 20px}}

/* ============ pagina de instalacion: modulo Nirak ============ */
.th-nirak{display:flex;gap:28px;align-items:center;margin:36px 0 0;padding:28px 32px;
  background:#fff;border:1px solid var(--th-line);border-radius:var(--th-radius);box-shadow:var(--th-shadow)}
.th-nirak__logo{flex:0 0 120px}
.th-nirak__logo img{width:100%;display:block}
.th-nirak__kicker{font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:var(--th-accent)}
.th-nirak__cuerpo h2{margin:4px 0 10px}
.th-nirak__cuerpo p{margin:0 0 14px;max-width:62ch;color:var(--th-ink-2);line-height:1.6}
.th-nirak__datos{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:16px;font-size:.92rem;color:var(--th-ink-2)}
.th-nirak__rating{color:var(--th-amarillo);font-weight:800}
.th-nirak__rating span{color:var(--th-muted);font-weight:600;font-size:.86rem}
.th-nirak__botones{display:flex;flex-wrap:wrap;gap:12px}
.th-nirak__btn{display:inline-block;padding:.72em 1.3em;border-radius:8px;font-weight:700;font-size:.92rem;
  text-decoration:none;background:var(--th-accent);color:#fff}
.th-nirak__btn:hover{background:var(--th-accent-dark)}
.th-nirak__btn--sec{background:#fff;color:var(--th-ink);border:2px solid var(--th-ink)}
.th-nirak__btn--sec:hover{background:var(--th-ink);color:#fff}
@media(max-width:600px){.th-nirak{flex-direction:column;text-align:center;padding:24px 20px}
  .th-nirak__datos,.th-nirak__botones{justify-content:center}}

/* ============ cuota mensual bajo el precio, en la rejilla ============ */
ul.products li.product .th-cuota-fila{margin:2px 16px 0;padding:0;font-size:.76rem;color:var(--th-muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.woocommerce ul.products li.product .th-cuota-fila strong,
ul.products li.product .th-cuota-fila strong{color:var(--th-ink-2);font-weight:700;display:inline!important}
@media(max-width:768px){ul.products li.product .th-cuota-fila{margin:2px 18px 0}}

/* ============ pagina /financiacion/: configurador y comparativa ============ */
.th-fin{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);gap:34px;
  align-items:start;margin:26px 0 10px}
@media(max-width:1024px){.th-fin{grid-template-columns:1fr;gap:26px}}

.th-fin__mandos{display:flex;flex-direction:column;gap:26px}
.th-fin__bloque{background:#fff;border:1px solid var(--th-line);border-radius:var(--th-radius);padding:22px 24px}
.th-fin__etq{display:block;font-size:.82rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--th-muted);margin:0 0 12px}
.th-fin__ayuda{margin:10px 0 0;font-size:.85rem;color:var(--th-muted)}

.th-fin__importe{position:relative;max-width:280px}
.th-fin__importe input{width:100%;font-size:2.1rem;font-weight:800;color:var(--th-ink);
  padding:8px 44px 8px 14px;border:2px solid var(--th-line);border-radius:var(--th-radius);
  font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.th-fin__importe input:focus{outline:none;border-color:var(--th-accent)}
.th-fin__importe input::-webkit-outer-spin-button,
.th-fin__importe input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.th-fin__euro{position:absolute;right:16px;top:50%;transform:translateY(-50%);
  font-size:1.5rem;font-weight:800;color:var(--th-muted)}

.th-fin__rango{width:100%;margin:16px 0 0;accent-color:var(--th-accent);height:22px}

.th-fin__atajos{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.th-fin__atajo{background:var(--th-soft)!important;border:1px solid var(--th-line);border-radius:999px!important;
  padding:7px 14px!important;font-size:.83rem;font-weight:700;color:var(--th-ink-2)!important;cursor:pointer;
  display:flex;gap:6px;align-items:baseline;line-height:1.3;box-shadow:none!important}
.th-fin__atajo span{font-weight:500;color:var(--th-muted)!important;font-size:.78rem}
.th-fin__atajo:hover{border-color:var(--th-accent);background:var(--th-accent-soft)!important;color:var(--th-accent-dark)!important}
.th-fin__atajo:hover span{color:var(--th-accent-dark)!important}

.th-fin__planes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(max-width:560px){.th-fin__planes{grid-template-columns:1fr}}
.th-fin__plan{position:relative;display:block;cursor:pointer}
.th-fin__plan input{position:absolute;opacity:0;width:0;height:0}
.th-fin__plan-cuerpo{display:flex;flex-direction:column;gap:3px;height:100%;
  border:2px solid var(--th-line);border-radius:var(--th-radius);padding:14px 16px;background:#fff}
.th-fin__plan:hover .th-fin__plan-cuerpo{border-color:#C9D1D8}
.th-fin__plan input:checked + .th-fin__plan-cuerpo{border-color:var(--th-accent);background:var(--th-accent-soft)}
.th-fin__plan input:focus-visible + .th-fin__plan-cuerpo{outline:3px solid var(--th-frio);outline-offset:2px}
.th-fin__plan-tit{font-weight:800;color:var(--th-ink);font-size:1rem}
.th-fin__plan-sub{font-size:.85rem;color:var(--th-muted)}
.th-fin__plan-tag{align-self:flex-start;margin-top:6px;font-size:.72rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.04em;background:var(--th-ok-soft);color:var(--th-ok);
  padding:3px 9px;border-radius:999px}
.th-fin__plan-tag--int{background:#FDF3E3;color:#8A5A0B}

.th-fin__meses-fila{display:flex;align-items:center;gap:18px}
.th-fin__meses-fila .th-fin__rango{margin:0}
.th-fin__meses-valor{font-weight:800;font-size:1.05rem;white-space:nowrap;
  color:var(--th-ink);font-variant-numeric:tabular-nums}

.th-fin__resultado{position:sticky;top:24px;background:var(--th-ink);color:#fff;
  border-radius:var(--th-radius);padding:26px 26px 22px;box-shadow:var(--th-shadow-lg)}
@media(max-width:1024px){.th-fin__resultado{position:static}}
.th-fin__res-etq{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:#9AA6B0}
.th-fin__res-cuota{margin:4px 0 0;font-size:2.9rem;font-weight:800;line-height:1.1;
  color:#fff;font-variant-numeric:tabular-nums}
.th-fin__res-cuota small{font-size:1.1rem;font-weight:700;color:#9AA6B0;margin-left:4px}
.th-fin__res-plan{margin:6px 0 0;font-size:.95rem;color:#C6CFD6}

.th-fin__barra{display:flex;height:8px;border-radius:999px;overflow:hidden;
  background:rgba(255,255,255,.14);margin:20px 0 18px}
.th-fin__barra-capital{background:var(--th-accent);transition:width .18s ease}
.th-fin__barra-interes{background:var(--th-amarillo);transition:width .18s ease}

.th-fin__desglose{margin:0;display:flex;flex-direction:column;gap:0}
.th-fin__desglose div{display:flex;justify-content:space-between;gap:14px;
  padding:9px 0;border-bottom:1px solid rgba(255,255,255,.11)}
.th-fin__desglose dt{margin:0;font-size:.9rem;color:#9AA6B0}
.th-fin__desglose dd{margin:0;font-size:.92rem;font-weight:700;color:#fff;
  text-align:right;font-variant-numeric:tabular-nums}
.th-fin__total{border-bottom:0!important;padding-top:12px!important}
.th-fin__total dt{color:#fff!important;font-weight:700}
.th-fin__total dd{font-size:1.12rem!important}

.th-fin__aviso{margin:14px 0 0;font-size:.85rem;line-height:1.5;color:#F5D9A8;
  background:rgba(242,169,59,.13);border-left:3px solid var(--th-amarillo);
  padding:10px 12px;border-radius:0 6px 6px 0}

.th-fin__acciones{display:flex;gap:10px;margin:20px 0 0;flex-wrap:wrap}
.th-fin__cta{flex:1 1 140px;text-align:center;background:var(--th-accent);color:#fff!important;
  text-decoration:none;font-weight:800;padding:12px 16px;border-radius:var(--th-radius);font-size:.94rem}
.th-fin__cta:hover{background:var(--th-accent-dark)}
.th-fin__cta--sec{background:transparent;border:2px solid rgba(255,255,255,.28);padding:10px 16px}
.th-fin__cta--sec:hover{background:rgba(255,255,255,.09)}
.th-fin__legal{margin:16px 0 0;font-size:.76rem;line-height:1.5;color:#8C98A2}

/* comparativa */
.th-fin-tabla-caja{overflow-x:auto;margin:20px 0 0}
.th-fin-tabla{width:100%;border-collapse:collapse;min-width:640px;font-size:.94rem}
.th-fin-tabla th,.th-fin-tabla td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--th-line);vertical-align:top}
.th-fin-tabla thead th{background:var(--th-soft);font-size:.8rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--th-muted);border-bottom:2px solid var(--th-line)}
.th-fin-tabla tbody th{font-weight:700;color:var(--th-ink-2);width:26%}
.th-fin-tabla tbody td:first-of-type{background:var(--th-accent-soft)}

/* pasos */
.th-fin-pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin:22px 0 0;padding:0;list-style:none}
.th-fin-paso{background:#fff;border:1px solid var(--th-line);border-radius:var(--th-radius);padding:20px 22px}
.th-fin-paso__n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;background:var(--th-accent);color:#fff;font-weight:800;font-size:.9rem;margin:0 0 10px}
.th-fin-paso h3{margin:0 0 6px;font-size:1.02rem}
.th-fin-paso p{margin:0;font-size:.92rem;color:var(--th-ink-2)}

/* ============ cesta: servicios sugeridos ============ */
.th-sug{margin:34px 0 0;padding:26px 0 0;border-top:2px solid var(--th-line)}
.th-sug__tit{margin:0;font-size:1.35rem}
.th-sug__sub{margin:4px 0 0;color:var(--th-muted);font-size:.93rem}
.th-sug__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:16px;margin:18px 0 0}
.th-sug__tarjeta{display:flex;flex-direction:column;background:#fff;border:1px solid var(--th-line);
  border-radius:var(--th-radius);padding:18px 20px 20px}
.th-sug__tarjeta--plan{background:var(--th-frio-soft);border-color:#CFE2EA}
.th-sug__etq{align-self:flex-start;font-size:.7rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;padding:3px 9px;border-radius:999px;margin:0 0 10px}
.th-sug__etq--inst{background:var(--th-accent-soft);color:var(--th-accent-dark)}
.th-sug__etq--plan{background:#D9EAF1;color:var(--th-frio)}
.th-sug__tarjeta h3{margin:0;font-size:1rem;line-height:1.35}
.th-sug__tarjeta h3 a{color:var(--th-ink);text-decoration:none}
.th-sug__tarjeta h3 a:hover{color:var(--th-accent)}
.th-sug__para{margin:6px 0 0;font-size:.83rem;color:var(--th-muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.th-sug__precio{margin:12px 0 0;font-size:1.28rem;color:var(--th-accent);font-weight:800;
  display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}
.th-sug__tarjeta--plan .th-sug__precio{color:var(--th-frio)}
.th-sug__uds{font-size:.82rem;font-weight:600;color:var(--th-muted)}
.th-sug__cuota{margin:2px 0 0;font-size:.8rem;color:var(--th-muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.th-sug__btn{margin:16px 0 0;text-align:center;background:var(--th-accent);color:#fff!important;
  text-decoration:none;font-weight:800;padding:11px 14px;border-radius:var(--th-radius);font-size:.92rem}
.th-sug__btn:hover{background:var(--th-accent-dark)}
.th-sug__btn--sec{background:var(--th-frio)}
.th-sug__btn--sec:hover{background:#17566C}

/* ============ categorias de servicio: destacados ============ */
.th-serv-dest{background:var(--th-accent-soft);border:1px solid #F0DCCF;border-radius:var(--th-radius);
  padding:22px 24px 6px;margin:0 0 26px}
.th-serv-dest__tit{margin:0;font-size:1.3rem}
.th-serv-dest__sub{margin:4px 0 0;color:var(--th-muted);font-size:.93rem}
.th-serv-dest .th-serv-dest__grid{margin-top:18px}
.th-serv-dest__grid li.product{background:#fff;border:1px solid #F0DCCF}

/* ============ filtro de catalogo ============ */
.th-filtro-barra{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 22px}
.th-filtro-barra .woocommerce-result-count{margin:0!important;flex:1 1 auto;color:var(--th-muted);font-size:.92rem}
.th-filtro-barra .woocommerce-ordering{margin:0!important;order:3}
.th-filtro{position:relative;order:2}

.th-filtro__toggle{display:inline-flex;align-items:center;gap:8px;background:#fff!important;
  color:var(--th-ink)!important;border:1.5px solid var(--th-line)!important;border-radius:8px!important;
  padding:10px 16px!important;font-weight:700;font-size:.94rem;cursor:pointer;box-shadow:none!important}
.th-filtro__toggle:hover{border-color:var(--th-accent)!important;color:var(--th-accent-dark)!important;
  background:var(--th-accent-soft)!important;transform:none!important}
.th-filtro__contador{background:var(--th-accent);color:#fff;border-radius:999px;font-size:.72rem;
  min-width:19px;height:19px;display:inline-grid;place-items:center;padding:0 5px}

.th-filtro__panel{display:none;position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:min(370px,92vw);
  background:#fff;border:1px solid var(--th-line);border-radius:var(--th-radius);
  box-shadow:var(--th-shadow-lg);padding:20px 22px;text-align:left}
.th-filtro--abierto .th-filtro__panel{display:block}

.th-filtro__campo{margin:0 0 18px}
.th-filtro__etq{display:block;font-size:.78rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--th-muted);margin:0 0 9px}
.th-filtro__precios{display:flex;align-items:center;gap:9px}
.th-filtro__precios input{width:100%;padding:9px 11px;border:1.5px solid var(--th-line);border-radius:8px;
  font-size:.95rem;font-weight:600;-moz-appearance:textfield}
.th-filtro__precios input:focus{outline:none;border-color:var(--th-accent)}
.th-filtro__precios input::-webkit-outer-spin-button,
.th-filtro__precios input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.th-filtro__precios span{color:var(--th-muted);font-weight:700}

.th-filtro__marcas{max-height:210px;overflow-y:auto;display:grid;gap:2px;
  border:1px solid var(--th-line);border-radius:8px;padding:8px 10px}
.th-filtro__check{display:flex;align-items:center;gap:9px;font-size:.92rem;color:var(--th-ink-2);
  cursor:pointer;padding:4px 0;line-height:1.3}
.th-filtro__check input{width:16px;height:16px;accent-color:var(--th-accent);flex:0 0 auto;margin:0}
.th-filtro__check span{margin-left:auto;color:var(--th-muted);font-size:.8rem;font-variant-numeric:tabular-nums}
.th-filtro__check--stock{font-weight:600;color:var(--th-ink)}

.th-filtro__acciones{display:flex;align-items:center;gap:14px;margin:4px 0 0}
.th-filtro__aplicar{flex:1 1 auto;background:var(--th-accent)!important;color:#fff!important;
  border:0;border-radius:8px!important;padding:11px 16px!important;font-weight:800;font-size:.94rem;cursor:pointer}
.th-filtro__aplicar:hover{background:var(--th-accent-dark)!important}
.th-filtro__limpiar{font-size:.88rem;color:var(--th-muted);font-weight:600;white-space:nowrap}
.th-filtro__limpiar:hover{color:var(--th-accent)}

/* ============ recuadro de precio + simulador Klarna en la ficha ============ */
.th-precio{border:1px solid var(--th-line);border-radius:var(--th-radius);background:var(--th-soft);
  padding:18px 20px;margin:18px 0}
.th-precio__cabecera{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.th-precio__cabecera .price{margin:0!important;font-size:2.15rem!important;font-weight:800;
  color:var(--th-accent)!important;line-height:1.1}
.th-precio__cabecera .price del{font-size:.5em;color:var(--th-muted)!important;font-weight:600}
.th-precio__cabecera .price ins{text-decoration:none}
.th-precio__iva{font-size:.85rem;color:var(--th-muted);font-weight:600}

.th-precio__klarna{margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--th-line)}
.th-precio__klarna[hidden]{display:none}
.th-precio__klarna-tit{margin:0 0 11px;font-size:.92rem;color:var(--th-ink-2)}
.th-precio__klarna-tit strong{color:var(--th-ink)}

.th-precio__tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 13px}
.th-precio__tab{background:#fff!important;color:var(--th-ink-2)!important;border:1.5px solid var(--th-line)!important;
  border-radius:999px!important;padding:7px 14px!important;font-size:.84rem;font-weight:700;cursor:pointer;
  box-shadow:none!important;transition:none}
.th-precio__tab:hover{border-color:var(--th-accent)!important;color:var(--th-accent-dark)!important;transform:none!important}
.th-precio__tab.is-activa{background:var(--th-ink)!important;color:#fff!important;border-color:var(--th-ink)!important}

.th-precio__panel{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.th-precio__cuota{margin:0;font-size:1.5rem;font-weight:800;color:var(--th-ink);line-height:1.15;
  font-variant-numeric:tabular-nums}
.th-precio__cuota span{font-size:.9rem;font-weight:600;color:var(--th-muted);margin-left:3px}
.th-precio__detalle{margin:0;flex:1 1 190px;font-size:.85rem;color:var(--th-muted);line-height:1.45}
.th-precio__meses{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--th-muted);font-weight:600}
.th-precio__meses[hidden]{display:none}
.th-precio__meses select{padding:7px 10px;border:1.5px solid var(--th-line);border-radius:8px;
  font-size:.88rem;font-weight:600;background:#fff;max-width:none;width:auto}
.th-precio__nota{margin:13px 0 0;font-size:.8rem;color:var(--th-muted);line-height:1.5}
.th-precio__nota a{font-weight:700}
@media(max-width:520px){
  .th-precio__cabecera .price{font-size:1.75rem!important}
  .th-precio__panel{gap:10px}
}

/* ============ barra de promocion (encima de la barra de contacto) ============ */
.th-promo{background:linear-gradient(90deg,var(--th-accent-dark),var(--th-accent));color:#fff;
  font-size:.86rem;position:sticky;top:0;z-index:130}
body.admin-bar .th-promo{top:32px}
@media screen and (max-width:782px){body.admin-bar .th-promo{top:46px}}
.th-promo__inner{max-width:1760px;margin:0 auto;padding:9px 44px 9px 32px;
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-align:center;position:relative}
.th-promo__msg{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.th-promo__chispa{display:inline-block;color:#FFE1C4;animation:th-promo-brillo 2.2s ease-in-out infinite}
.th-promo__codigo{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);
  border:1.5px dashed rgba(255,255,255,.65);color:#fff;font-weight:800;letter-spacing:.03em;
  padding:3px 10px;border-radius:999px;cursor:pointer;font-size:.86rem;line-height:1.5;
  box-shadow:none!important;transition:background .15s}
.th-promo__codigo:hover{background:rgba(255,255,255,.28)}
.th-promo__codigo--copiado{background:#fff!important;color:var(--th-accent-dark)!important;border-style:solid}
.th-promo__cerrar{position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:transparent;border:0;color:rgba(255,255,255,.85);font-size:1.3rem;line-height:1;
  cursor:pointer;padding:4px 8px;box-shadow:none!important}
.th-promo__cerrar:hover{color:#fff}
@keyframes th-promo-brillo{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}
@media(prefers-reduced-motion:reduce){.th-promo__chispa{animation:none}}
@media(max-width:640px){.th-promo__inner{padding:9px 40px 9px 14px;font-size:.8rem}}

/* ============ cifras de la empresa (pagina "La empresa") ============ */
.th-cifras{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}
.th-cifras__item{flex:1 1 180px;background:var(--th-soft);border:1px solid var(--th-line);
  border-radius:var(--th-radius);padding:18px 20px;text-align:center}
.th-cifras__item strong{display:block;font-size:2.1rem;font-weight:800;color:var(--th-accent);line-height:1.1}
.th-cifras__item strong small{font-size:1.1rem;font-weight:700;color:var(--th-muted)}
.th-cifras__item span{display:block;margin-top:4px;font-size:.88rem;color:var(--th-ink-2);font-weight:600}
.th-cifras__item span a{color:var(--th-frio);font-weight:700}
@media(max-width:600px){.th-cifras{gap:10px}.th-cifras__item{padding:14px 12px}.th-cifras__item strong{font-size:1.7rem}}
