:root {
  --gold: #d7c000;
  --gold-deep: #c5ae00;
  --ink: #3c3c3c;
  --muted: #777;
  --line: #b8b8b8;
  --panel: #f3f3f3;
  --page: #eceeee;
  --lower: #f3b0b3;
  --white: #fff;
  --max: 980px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--page);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 14px;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.include-error {
  max-width: var(--max);
  margin: 16px auto;
  padding: 14px 18px;
  background: #fff4d8;
  border: 1px solid #e0c366;
}

/* HEADER COMÚN */
.site-header { background: #fff; position: relative; }


.brand { display: block; width: 170px; }
.brand-logo { display: block; width: 150px; height: 82px; object-fit: contain; object-position: left center; }









/* CUERPO */
.product-page { background: #f7f7f7; }
.product-shell { max-width: 660px; margin: 0 auto; padding: 26px 0 18px; }
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 340px) minmax(250px, 1fr);
  gap: 34px;
  align-items: center;
}
.product-copy h1 { font-size: 31px; font-weight: 400; margin: 0 0 2px; letter-spacing: -.5px; }
.product-copy .category { font-size: 20px; line-height: 1.05; margin: 0 0 12px; }
.product-copy .use { font-size: 16px; margin: 0 0 14px; }
.product-copy .power { font-size: 14px; margin: 0 0 18px; }

/* Escala tipográfica común de las fichas de producto (referencia: Icon / Zen) */
.product-copy .product-info-line.info-1 {
  font-size: 20px;
  line-height: 1.05;
  margin: 0 0 12px;
}
.product-copy .product-info-line.info-2 {
  font-size: 16px;
  line-height: normal;
  margin: 0 0 14px;
}
.product-copy .product-info-line.info-3 {
  font-size: 14px;
  line-height: normal;
  margin: 0 0 18px;
}
/* Etiquetas energéticas combinadas (clase + icono), como en el PDF de referencia */
.energy-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin: 0 0 22px;
}
.energy-composite {
  display: block;
  width: 132px;
  height: auto;
  object-fit: contain;
  object-position: left center;
}
.energy-heating { width: 134px; }
.energy-acs { width: 131px; }
.badges { display: flex; align-items: end; gap: 8px; margin-top: 0; }
.badges img { height: 77px; width: auto; object-fit: contain; }

.carousel { position: relative; overflow: hidden; }
.main-carousel {
  width: 340px;
  max-width: 340px;
  min-height: 390px;
  padding-bottom: 42px;
  box-sizing: border-box;
  background: transparent;
  display: grid;
  place-items: center;
  justify-self: start;
}
.main-carousel .carousel-image {
  width: 300px;
  height: 340px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 16px 13px rgba(40, 40, 40, .12));
}
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 33px;
  height: 33px;
  border-radius: 50%;
  border: 2px solid var(--gold);
  background: transparent;
  color: var(--gold-deep);
  font-size: 26px;
  line-height: 24px;
  cursor: pointer;
  z-index: 2;
}
.carousel-arrow:hover { background: transparent; }
.carousel-arrow.prev { left: 8px; }
.carousel-arrow.next { right: 8px; }
.carousel-counter {
  position: absolute;
  left: 50%;
  bottom: 4px;
  transform: translateX(-50%);
  font-size: 11px;
  color: #737373;
  background: rgba(255,255,255,.78);
  padding: 3px 7px;
  border-radius: 10px;
}

.content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-top: 18px; }
.section-title { margin: 0; padding: 0 10px; border-top: 2px solid #8e8e8e; border-bottom: 1px solid #9f9f9f; font-size: 14px; height: 36px; box-sizing: border-box; display: flex; align-items: center; }
.downloads { grid-column: 1 / 2; }
.download-list { list-style: none; padding: 0; margin: 0; }
.download-list li { min-height: 31px; border-bottom: 1px solid #aaa; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 3px 6px 3px 10px; font-size: 11px; }
.download-list a { text-decoration: none; display: flex; align-items: center; gap: 8px; }
.download-icon { width: 18px; height: 18px; object-fit: contain; }

/* DESCARGAS DESPLEGABLES (Ficha de producto / Etiqueta energética) */
.download-list > li.download-expandable {
  display: block;
  padding: 0;
}
.download-toggle {
  width: 100%;
  min-height: 31px;
  border: 0;
  background: transparent;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 3px 6px 3px 10px;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.download-toggle:hover, .download-toggle:focus-visible { background: rgba(215,192,0,.07); }
.download-toggle .expand-icon { transition: transform .18s ease; }
.download-toggle[aria-expanded="true"] .expand-icon { transform: rotate(180deg); }
.download-options {
  list-style: none;
  margin: 0;
  padding: 3px 0 5px 58px;
  background: rgba(255,255,255,.14);
}
.download-options[hidden] { display: none; }
.download-options li {
  min-height: 27px;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 6px 2px 0;
  font-size: 10px;
}
.download-options li a { margin-left: auto; }

.actions { display: flex; flex-direction: column; justify-content: end; padding-bottom: 2px; }
.action-btn {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #d9c316;
  color: #fff;
  text-decoration: none;
  margin-top: 6px;
  padding: 7px 10px 7px 14px;
  font-size: 13px;
  font-weight: 700;
}
.action-btn img { width: 30px; height: 30px; object-fit: contain; }

.features { margin-top: 16px; }
.features h2 { font-size: 14px; margin: 0 0 3px; border-top: 2px solid #8e8e8e; border-bottom: 1px solid #9f9f9f; padding: 0 10px; height: 36px; box-sizing: border-box; display: flex; align-items: center; }
.feature-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; }
.feature {
  min-height: 34px;
  border-top: 1px solid #aaa;
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  gap: 6px;
  font-size: 10px;
}
.feature img { width: 31px; height: 31px; object-fit: contain; }
.feature:nth-last-child(-n + 2) { border-bottom: 1px solid #aaa; }




/* SEGUNDO CARRUSEL */
.bottom-carousel-section { background: var(--lower); min-height: 355px; }
.bottom-carousel { min-height: 355px; width: 100%; display: grid; place-items: center; }
.bottom-carousel .carousel-image,
.bottom-carousel .carousel-video { width: min(760px, 78vw); height: 300px; object-fit: contain; display: block; }
/* El atributo hidden debe prevalecer sobre los display del carrusel. */
.carousel [hidden] { display: none !important; }
.bottom-carousel .carousel-arrow.prev { left: 20px; }
.bottom-carousel .carousel-arrow.next { right: 20px; }
.carousel-empty { max-width: 520px; padding: 28px; text-align: center; color: rgba(60,60,60,.72); border: 1px dashed rgba(60,60,60,.32); background: rgba(255,255,255,.18); }

/* FOOTER COMÚN */
.site-footer { background: #fff; }
.footer-inner {
  max-width: var(--max);
  min-height: 145px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 130px 1fr;
  gap: 24px;
  align-items: center;
  padding: 10px 15px;
}
.footer-contact { display: flex; align-items: center; gap: 12px; min-width: 0; }
.footer-symbol { width: 52px; height: 52px; object-fit: contain; }
.footer-contact p { font-size: 11px; line-height: 1.25; margin: 0; color: #666; white-space: nowrap; }
.footer-mail { width: 46px; height: 33px; object-fit: contain; margin-left: 8px; }
.footer-anniversary { align-self: start; margin-top: -42px; text-align: center; }
.footer-anniversary img { width: 92px; height: 132px; object-fit: contain; }
.footer-right { display: flex; align-items: center; gap: 22px; justify-content: flex-end; }
.legal-nav { display: flex; flex-direction: column; }
.legal-nav a { font-size: 11px; line-height: 1.25; text-decoration: none; color: #666; }
.socials { display: flex; align-items: center; gap: 7px; }
.socials a { display: grid; place-items: center; width: 26px; height: 26px; }
.socials img { max-width: 24px; max-height: 24px; object-fit: contain; }

@media (max-width: 760px) {
  .header-accent { display: none; }
  .header-inner { grid-template-columns: 1fr; gap: 5px; padding: 8px 16px 14px; }
  .brand { margin: 0 auto; }
  .brand-logo { width: 135px; height: 70px; }
  .header-navs { align-self: auto; padding: 0; }
  .top-nav { justify-content: center; }
  .top-nav a { font-size: 10px; padding: 5px 7px; }
  .product-nav { justify-content: center; gap: 15px; margin-top: 10px; }

  .product-shell { width: min(94%, 660px); padding-top: 16px; }
  .hero-grid { grid-template-columns: 1fr; gap: 2px; }
  .main-carousel {
    width: 100%;
    max-width: 340px;
    min-height: 355px;
    padding-bottom: 45px;
    justify-self: center;
  }
  .main-carousel .carousel-image { height: 305px; }
  .product-copy { text-align: center; }
  .energy-stack { align-items: center; }
  .badges { justify-content: center; }
  .content-grid { grid-template-columns: 1fr; gap: 10px; }
  .downloads { grid-column: auto; }
  .feature-grid { grid-template-columns: 1fr; }
  .feature:nth-last-child(-n + 2) { border-bottom: 0; }
  .feature:last-child { border-bottom: 1px solid #aaa; }

  .footer-inner { grid-template-columns: 1fr; text-align: center; gap: 8px; padding-top: 15px; }
  .footer-contact, .footer-right { justify-content: center; }
  .footer-anniversary { order: -1; margin-top: -35px; }
  .footer-anniversary img { width: 78px; height: 112px; }
}

/* ==========================================================
   VARIANTE RINNAI / ZEN
   Se aplica sólo cuando <body> lleva la clase .rinnai-theme.
   ========================================================== */
.rinnai-theme {
  --rinnai-red: #cf2027;
  --rinnai-blue: #d7dfeb;
  --rinnai-blue-deep: #6f7883;
  --lower: #d60000;
}




.rinnai-theme .carousel-arrow { border-color: var(--rinnai-red); color: var(--rinnai-red); }
.rinnai-theme .carousel-arrow:hover { background: #fff; }
.rinnai-theme .download-toggle:hover,
.rinnai-theme .download-toggle:focus-visible { background: rgba(207,32,39,.06); }
.rinnai-theme .action-btn { background: var(--rinnai-blue); color: #4e5358; font-weight: 400; }
.rinnai-theme .action-btn img { filter: brightness(.48) saturate(.45); }
.rinnai-theme .bottom-tabs button { background: var(--rinnai-blue); color: #111; }
.rinnai-theme .bottom-carousel-section { background: var(--lower, #BA251D); min-height: 370px; }
.rinnai-theme .bottom-carousel { min-height: 370px; }
.rinnai-theme .bottom-carousel .carousel-image,
.rinnai-theme .bottom-carousel .carousel-video { height: 320px; width: min(680px, 72vw); }
.rinnai-theme .bottom-carousel .carousel-arrow { background: #fff; border-color: #fff; color: var(--rinnai-red); }
.rinnai-theme .zen-feature-icon {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 2px;
  background: #dbe2eb;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
.rinnai-theme .zen-feature-icon:not(:first-letter) { font-size: 9px; }
.rinnai-theme .zen-features .feature:last-child { border-bottom: 1px solid #aaa; }
.rinnai-theme .footer-anniversary { z-index: 2; }

/* Iconos reales de características de Rinnai Zen */
.rinnai-theme .zen-features .feature img {
  width: 31px;
  height: 31px;
  object-fit: contain;
  flex: 0 0 31px;
}
.rinnai-theme .actions .action-btn img {
  width: 31px;
  height: 31px;
  object-fit: contain;
  filter: none;
}

/* HEADER MODERNO · OPCIÓN A */
.modern-header{
  position:relative;
  z-index:100;
  background:#fff;
  border-bottom:1px solid #e8e8e4;
}
.modern-header-inner{
  width:min(1180px, calc(100% - 48px));
  min-height:84px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:36px;
}
.modern-brand{
  flex:0 0 auto;
  display:flex;
  align-items:center;
}
.modern-brand .brand-logo{
  display:block;
  width:152px;
  height:auto;
}
.modern-nav{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:28px;
}
.modern-nav > a,
.modern-products-trigger{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:0;
  background:transparent;
  padding:31px 0 29px;
  color:#555;
  font:inherit;
  font-size:14px;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
  transition:color .16s ease;
}
.modern-nav > a:hover,
.modern-nav > a:focus,
.modern-products-trigger:hover,
.modern-products-trigger:focus{
  color:#8d8544;
}
.modern-nav > a::after,
.modern-products-trigger::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:22px;
  height:1px;
  background:#9b914a;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .16s ease;
}
.modern-nav > a:hover::after,
.modern-nav > a:focus::after,
.modern-products-trigger:hover::after,
.modern-products-trigger:focus::after,
.modern-products-menu.is-open .modern-products-trigger::after{
  transform:scaleX(1);
}


.modern-products-menu:hover .modern-products-chevron,
.modern-products-menu:focus-within .modern-products-chevron,
.modern-products-menu.is-open .modern-products-chevron{
  transform:rotate(180deg);
}


.modern-products-menu:hover .modern-mega-menu,
.modern-products-menu:focus-within .modern-mega-menu,
.modern-products-menu.is-open .modern-mega-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}







.modern-header-tools{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:14px;
  padding-left:20px;
  border-left:1px solid #ddd;
}
.modern-header-tools a{
  color:#555;
  text-decoration:none;
}
.modern-search-link{
  font-size:19px;
  line-height:1;
}
.modern-language{
  font-size:12px;
  font-weight:500;
}
.modern-mobile-toggle{
  display:none;
  width:34px;
  height:34px;
  margin-left:auto;
  padding:7px;
  border:0;
  background:transparent;
  cursor:pointer;
}
.modern-mobile-toggle span{
  display:block;
  height:1px;
  margin:5px 0;
  background:#555;
  transition:transform .18s ease, opacity .18s ease;
}

@media(max-width:900px){
  .modern-header-inner{
    width:min(100% - 32px, 1180px);
    min-height:72px;
  }
  .modern-nav,
  .modern-header-tools{
    display:none;
  }
  .modern-mobile-toggle{
    display:block;
  }
  .modern-header.is-mobile-open .modern-nav{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:10px 24px 18px;
    background:#fff;
    border-top:1px solid #ededeb;
    border-bottom:1px solid #deded9;
    box-shadow:0 14px 30px rgba(0,0,0,.1);
  }
  .modern-header.is-mobile-open .modern-nav > a,
  .modern-header.is-mobile-open .modern-products-trigger{
    width:100%;
    justify-content:space-between;
    padding:14px 0;
    font-size:14px;
  }
  .modern-header.is-mobile-open .modern-nav > a::after,
  .modern-header.is-mobile-open .modern-products-trigger::after{
    display:none;
  }
  .modern-header.is-mobile-open .modern-products-menu{
    width:100%;
  }
  .modern-header.is-mobile-open .modern-mega-menu{
    position:static;
    width:100%;
    display:none;
    grid-template-columns:1fr;
    gap:18px;
    margin:0 0 8px;
    padding:16px;
    border-radius:10px;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    background:#fafaf7;
  }
  .modern-header.is-mobile-open .modern-products-menu:hover .modern-mega-menu,
  .modern-header.is-mobile-open .modern-products-menu:focus-within .modern-mega-menu{
    display:none;
  }
  .modern-header.is-mobile-open .modern-products-menu.is-open .modern-mega-menu{
    display:grid;
  }
  .modern-header.is-mobile-open .modern-header-tools{
    display:none;
  }
  .modern-header.is-mobile-open .modern-mobile-toggle span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
  }
  .modern-header.is-mobile-open .modern-mobile-toggle span:nth-child(2){
    opacity:0;
  }
  .modern-header.is-mobile-open .modern-mobile-toggle span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
  }
}

/* CARGA SUAVE DE CABECERA Y CONTENIDO
   Evita que el cuerpo de la página aparezca antes que los includes. */
[data-include="header"],
[data-include="header-rinnai"]{
  min-height:84px;
  background:#fff;
}
body:not(.includes-ready) > main,
body:not(.includes-ready) > [data-include="foot"]{
  opacity:0;
}
body > main,
body > [data-include="foot"]{
  transition:opacity .16s ease;
}
[data-include="header"],
[data-include="header-rinnai"]{
  opacity:0;
  transition:opacity .12s ease;
}
body.includes-ready [data-include="header"],
body.includes-ready [data-include="header-rinnai"]{
  opacity:1;
}
@media(max-width:900px){
  [data-include="header"],
  [data-include="header-rinnai"]{
    min-height:72px;
  }
}

/* AJUSTES ICON / ZEN · características, flechas y etiquetas energéticas */

/* Evita duplicar la línea bajo el título "Características" en la primera fila. */
.feature-grid .feature:nth-child(-n + 2){
  border-top:0;
}

/* En móvil la rejilla pasa a una columna: recuperamos la separación entre
   el primer y el segundo elemento, pero mantenemos sin línea el primero. */
@media(max-width:760px){
  .feature-grid .feature:nth-child(2){
    border-top:1px solid #aaa;
  }
}

/* Las dos etiquetas AD/AF tienen exactamente el mismo tamaño y algo menor. */
.energy-composite,
.energy-heating,
.energy-acs{
  width:118px;
  height:auto;
}

/* Sustituimos los caracteres ‹ › por los iconos gráficos del proyecto. */
.carousel-arrow{
  width:31px;
  height:31px;
  padding:0;
  border:0;
  border-radius:0;
  font-size:0;
  line-height:0;
  background-color:transparent !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
}
.carousel-arrow.prev,
.carousel-arrow.prev:hover,
.rinnai-theme .carousel-arrow.prev,
.rinnai-theme .carousel-arrow.prev:hover,
.rinnai-theme .bottom-carousel .carousel-arrow.prev,
.rinnai-theme .bottom-carousel .carousel-arrow.prev:hover{
  background-image:url("../img/anterior.png") !important;
}
.carousel-arrow.next,
.carousel-arrow.next:hover,
.rinnai-theme .carousel-arrow.next,
.rinnai-theme .carousel-arrow.next:hover,
.rinnai-theme .bottom-carousel .carousel-arrow.next,
.rinnai-theme .bottom-carousel .carousel-arrow.next:hover{
  background-image:url("../img/siguiente.png") !important;
}

/* Si las imágenes antiguas están declaradas como <img>, ocultamos su fichero
   visualmente y mostramos las nuevas etiquetas en el mismo espacio. */
.energy-heating[src*="AD_radiador"],
.energy-acs[src*="AF_grifo"]{
  object-position:-9999px 0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.energy-heating[src*="AD_radiador"]{
  background-image:url("../img/clase-a-cal.png");
}
.energy-acs[src*="AF_grifo"]{
  background-image:url("../img/clase-a-acs.png");
}

/* CLASE A CAL / ACS · mismo tamaño visual en ICON y ZEN.
   Reducidos un 20% adicional respecto a 38px: 30.4px. */
.energy-stack .energy-heating,
.energy-stack .energy-acs{
  width:auto !important;
  height:30.4px !important;
  max-width:none;
  object-fit:contain;
  object-position:left center;
  display:block;
}

/* ==========================================================
   MENÚ DE PRODUCTOS · desplegables jerárquicos
   Gas, Gasóleo, Energía solar térmica y Accesorios se abren por hover.
   ========================================================== */
.modern-header-inner{
  min-height:108px;
  align-items:center;
}
.modern-header-navigation{
  margin-left:auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-self:stretch;
  justify-content:center;
  gap:4px;
}
.modern-nav-corporate{
  margin-left:0;
  justify-content:flex-end;
  gap:26px;
}
.modern-nav-products{
  margin-left:0;
  gap:30px;
}
.modern-nav-corporate > a{
  padding:10px 0 8px;
  font-size:12px;
}
.modern-nav-corporate > a::after{ bottom:3px; }
.modern-nav-products > a,
.modern-nav-products .modern-products-trigger{
  padding:13px 0 12px;
  font-size:13px;
}
.modern-nav-products > a::after,
.modern-nav-products .modern-products-trigger::after{ bottom:5px; }

.modern-products-menu:hover .modern-mega-menu,
.modern-products-menu:focus-within .modern-mega-menu,
.modern-products-menu.is-open .modern-mega-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}






.catalog-category-trigger:hover,
.catalog-category-trigger:focus-visible,
.catalog-category.is-open > .catalog-category-trigger{
  background:#d9dcb8;
  outline:none;
}



.catalog-category:hover > .catalog-series-menu,
.catalog-category:focus-within > .catalog-series-menu,
.catalog-category.is-open > .catalog-series-menu{
  opacity:1;
  visibility:visible;
  transform:translateX(0);
}



@media(max-width:1100px) and (min-width:901px){
  .modern-header-inner{ width:min(100% - 28px, 1180px); gap:18px; }
  .modern-nav-products{ gap:18px; }
  .modern-nav-corporate{ gap:18px; }
  .modern-header-tools{ padding-left:12px; }
}

@media(max-width:900px){
  .modern-header-inner{ min-height:72px; }
  .modern-header-navigation{ display:none; }
  .modern-header.is-mobile-open .modern-header-navigation{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    display:flex;
    max-height:calc(100vh - 72px);
    overflow:auto;
    padding:8px 22px 20px;
    background:#fff;
    border-top:1px solid #ededeb;
    border-bottom:1px solid #deded9;
    box-shadow:0 14px 30px rgba(0,0,0,.1);
  }
  .modern-header.is-mobile-open .modern-nav{
    position:static;
    display:flex;
    padding:0;
    border:0;
    box-shadow:none;
    background:transparent;
  }
  .modern-header.is-mobile-open .modern-nav-corporate{
    order:2;
    margin-top:10px;
    border-top:1px solid #ddd;
  }
  .modern-header.is-mobile-open .modern-nav-products{ order:1; }
  .modern-header.is-mobile-open .modern-products-menu{ width:100%; }
  .modern-header.is-mobile-open .modern-mega-menu{
    position:static;
    width:100%;
    margin:0 0 8px;
    padding:0;
    border-radius:0;
    background:#e7e8cf;
  }
  .modern-header.is-mobile-open .modern-products-menu.is-open .modern-mega-menu{ display:block; }
  .catalog-category-trigger{
    min-height:58px;
    text-align:left;
    padding-left:14px;
  }
  .catalog-series-menu{
    position:static;
    width:100%;
    display:none;
    padding:0 0 6px 18px;
    border:0;
    border-top:1px solid #c8c9ad;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    background:#e7e8cf;
  }
  .catalog-category:hover > .catalog-series-menu,
  .catalog-category:focus-within > .catalog-series-menu{ display:none; }
  .catalog-category.is-open > .catalog-series-menu{ display:block; }
  .catalog-series-menu a{ padding:10px 14px; }
}

/* TERCER NIVEL · variantes de una serie (por ejemplo Serie Eurofell) */


.catalog-series-trigger:hover,
.catalog-series-trigger:focus-visible,
.catalog-series-item.is-open > .catalog-series-trigger{
  background:#d9dcb8;
  outline:none;
}


.catalog-series-item:hover > .catalog-model-menu,
.catalog-series-item:focus-within > .catalog-model-menu,
.catalog-series-item.is-open > .catalog-model-menu{
  opacity:1;
  visibility:visible;
  transform:translateX(0);
}



@media(max-width:900px){
  .catalog-series-trigger{
    min-height:40px;
    padding:10px 14px;
  }
  .catalog-model-menu{
    position:static;
    width:100%;
    display:none;
    padding:0 0 6px 18px;
    border:0;
    border-top:1px solid #c8c9ad;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    background:#e7e8cf;
  }
  .catalog-series-item:hover > .catalog-model-menu,
  .catalog-series-item:focus-within > .catalog-model-menu{ display:none; }
  .catalog-series-item.is-open > .catalog-model-menu{ display:block; }
  .catalog-model-menu a{ padding:10px 14px; }
}


/* ==========================================================
   ECOMAX SCW / NEOCON SC · ajustes según PDF de referencia
   ========================================================== */
.ecomax-theme { --lower: #d9d6f2; }
.neocon-theme { --lower: #9eafba; }

.ecomax-theme .bottom-carousel-section,
.neocon-theme .bottom-carousel-section {
  background: var(--lower);
}

.ecomax-theme .product-badges-high-power,
.neocon-theme .product-badges-high-power {
  margin-top: 72px;
}

.ecomax-theme .main-carousel .carousel-image,
.neocon-theme .main-carousel .carousel-image {
  object-fit: contain;
}

@media (max-width: 760px) {
  .ecomax-theme .product-badges-high-power,
  .neocon-theme .product-badges-high-power {
    margin-top: 18px;
  }
}

/* ==========================================================
   MEGA MENÚ POR COLUMNAS · integrado en WEB_PR_26
   Sustituye visualmente a los desplegables jerárquicos previos.
   ========================================================== */
.mega-header{
  position:relative;
  z-index:200;
  background:#fff;
  border-bottom:1px solid #e8e8e8;
}
.mega-header .mega-header-bar{
  width:min(1220px, calc(100% - 48px));
  min-height:104px;
  margin:0 auto;
  display:grid;
  grid-template-columns:185px minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
}
.mega-header .modern-brand .brand-logo{
  width:150px;
  height:auto;
}
.mega-header-navigation{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
}
.mega-header .mega-corporate-nav,
.mega-header .mega-product-nav{
  margin:0;
  display:flex;
  align-items:center;
}
.mega-header .mega-corporate-nav{
  justify-content:flex-end;
  gap:28px;
}
.mega-header .mega-corporate-nav > a{
  padding:5px 0;
  font-size:12px;
  color:#666;
}
.mega-header .mega-corporate-nav > a::after{
  bottom:0;
}
.mega-header .mega-product-nav{
  justify-content:flex-start;
  gap:28px;
}
.mega-product-menu{
  position:static;
}
.mega-product-trigger{
  position:relative;
  appearance:none;
  border:0;
  background:transparent;
  padding:9px 0 10px;
  color:#353535;
  font:inherit;
  font-size:14px;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}
.mega-product-trigger::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:3px;
  height:2px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .18s ease;
}
.mega-product-menu:hover .mega-product-trigger::after,
.mega-product-menu:focus-within .mega-product-trigger::after,
.mega-product-menu.is-open .mega-product-trigger::after{
  transform:scaleX(1);
}
.mega-panel{
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  background:#fff;
  border-top:1px solid #ededed;
  box-shadow:0 24px 50px rgba(0,0,0,.12);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.mega-product-menu.is-open > .mega-panel{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.mega-panel-inner{
  width:min(1280px, calc(100% - 48px));
  margin:0 auto;
  padding:27px 16px 34px;
}
.mega-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding:0 8px 17px;
  margin-bottom:22px;
  border-bottom:1px solid #ececec;
}
.mega-eyebrow{
  display:block;
  margin-bottom:4px;
  color:#969696;
  font-size:10px;
  letter-spacing:.18em;
}
.mega-panel-head h2{
  margin:0;
  color:#333;
  font-size:28px;
  font-weight:400;
}
.mega-close{
  width:35px;
  height:35px;
  border:0;
  border-radius:50%;
  background:#f1f1f1;
  color:#555;
  font-size:23px;
  line-height:1;
  cursor:pointer;
}
.mega-columns{
  display:grid;
  gap:0;
}
.mega-columns-6{ grid-template-columns:repeat(6,minmax(0,1fr)); }
.mega-columns-5{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.mega-columns-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.mega-columns-2{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:760px; }
.mega-category{
  min-width:0;
  min-height:170px;
  padding:5px 23px 10px;
  border-right:1px solid #ececec;
}
.mega-category:first-child{ padding-left:8px; }
.mega-category:last-child{ border-right:0; }
.mega-num{
  display:block;
  margin-bottom:10px;
  color:var(--gold-deep);
  font-size:11px;
  font-weight:700;
}
.mega-category h3{
  min-height:55px;
  margin:0 0 13px;
  color:#3f3f3f;
  font-size:14px;
  font-weight:600;
  line-height:1.35;
}
.mega-series a{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:9px;
  padding:7px 0;
  color:#616161;
  font-size:13px;
  line-height:1.3;
  text-decoration:none;
  transition:color .14s ease;
}
.mega-series a span{
  flex:0 0 auto;
  color:#aaa;
  font-size:11px;
}
.mega-series a:hover,
.mega-series a:focus{
  color:#1f1f1f;
  outline:none;
}
.mega-header-tools{
  display:flex;
  align-items:center;
  gap:14px;
  padding-left:16px;
  border-left:1px solid #ddd;
}

.mega-header-tools .modern-header-access{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 12px;
  box-sizing:border-box;
  background:#d9c316;
  color:#fff;
  font-size:11px;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.mega-header .mega-mobile-toggle{
  display:none;
}

@media (max-width:1100px) and (min-width:901px){
  .mega-header .mega-header-bar{
    width:min(100% - 28px,1220px);
    grid-template-columns:155px minmax(0,1fr) auto;
    gap:18px;
  }
  .mega-header .modern-brand .brand-logo{ width:135px; }
  .mega-header .mega-product-nav{ gap:17px; }
  .mega-header .mega-corporate-nav{ gap:18px; }
  .mega-product-trigger{ font-size:12px; }
  .mega-category{ padding-left:15px; padding-right:15px; }
  .mega-category h3{ font-size:12px; }
  .mega-series a{ font-size:12px; }
}

@media (max-width:900px){
  .mega-header .mega-header-bar{
    width:min(100% - 32px,1180px);
    min-height:72px;
    display:flex;
    gap:16px;
  }
  .mega-header .modern-brand .brand-logo{
    width:135px;
  }
  .mega-header-navigation,
  .mega-header-tools{
    display:none;
  }
  .mega-header .mega-mobile-toggle{
    display:block;
    margin-left:auto;
  }
  .mega-header.is-mobile-open .mega-header-navigation{
    position:absolute;
    left:0;
    right:0;
    top:100%;
    display:flex;
    max-height:calc(100vh - 72px);
    overflow:auto;
    padding:8px 20px 20px;
    background:#fff;
    border-top:1px solid #ededed;
    border-bottom:1px solid #dedede;
    box-shadow:0 14px 30px rgba(0,0,0,.1);
  }
  .mega-header.is-mobile-open .mega-corporate-nav,
  .mega-header.is-mobile-open .mega-product-nav{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .mega-header.is-mobile-open .mega-corporate-nav{
    order:2;
    margin-top:10px;
    padding-top:8px;
    border-top:1px solid #ddd;
  }
  .mega-header.is-mobile-open .mega-product-nav{ order:1; }
  .mega-header.is-mobile-open .mega-corporate-nav > a{
    padding:12px 0;
  }
  .mega-product-menu{
    position:relative;
    width:100%;
    border-bottom:1px solid #ececec;
  }
  .mega-product-trigger{
    width:100%;
    padding:15px 0;
    text-align:left;
    font-size:14px;
  }
  .mega-product-trigger::after{ display:none; }
  .mega-panel{
    position:static;
    display:none;
    width:100%;
    max-height:none;
    overflow:visible;
    border:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    background:#f8f8f6;
  }
  .mega-product-menu.is-open > .mega-panel{ display:block; }
  .mega-panel-inner{
    width:100%;
    padding:15px 14px 18px;
  }
  .mega-panel-head{
    align-items:center;
    margin-bottom:10px;
    padding:0 0 12px;
  }
  .mega-panel-head h2{ font-size:21px; }
  .mega-close{ width:31px; height:31px; font-size:20px; }
  .mega-columns,
  .mega-columns-6,
  .mega-columns-5,
  .mega-columns-4,
  .mega-columns-2{
    grid-template-columns:1fr;
    max-width:none;
  }
  .mega-category,
  .mega-category:first-child{
    min-height:0;
    padding:14px 0;
    border-right:0;
    border-bottom:1px solid #e2e2e2;
  }
  .mega-category:last-child{ border-bottom:0; }
  .mega-category h3{
    min-height:0;
    margin-bottom:7px;
  }
}


/* Tercer nivel del mega menú: variantes/modelos de cada serie */
.mega-series-group{
  margin-bottom:10px;
}
.mega-series-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:9px;
  padding:7px 0 6px;
  color:#4d4d4d;
  font-size:13px;
  font-weight:600;
  line-height:1.3;
}
.mega-models{
  margin:1px 0 7px 5px;
  padding:3px 0 3px 10px;
  border-left:1px solid #dedcc8;
}
.mega-models a{
  display:block;
  padding:4px 0;
  color:#777;
  font-size:11px;
  line-height:1.28;
  text-decoration:none;
}
.mega-models a:hover,
.mega-models a:focus{
  color:#8c8200;
  outline:none;
}

@media (max-width:900px){
  .mega-models a{
    font-size:12px;
    padding:6px 0;
  }
}


@media (min-width:901px){
  .mega-header{
    overflow:visible;
  }
  .mega-product-menu{
    position:static;
  }
  .mega-panel{
    max-height:calc(100vh - 108px);
    overflow-y:auto;
  }
  /* Zona invisible que une la barra de navegación con el panel y evita
     que un pequeño movimiento del ratón cierre el desplegable. */
  .mega-panel::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-22px;
    height:22px;
    background:transparent;
  }
}



/* ==========================================================
   HOME / INDEX
   ========================================================== */
.home-page{
  background:#fff;
}

.home-page main{
  overflow:hidden;
}

.home-hero{
  position:relative;
  background:
    radial-gradient(circle at 78% 40%, rgba(215,192,0,.14), transparent 23%),
    linear-gradient(135deg, #f7f7f4 0%, #fff 55%, #f4f3ea 100%);
  border-bottom:1px solid #e9e9e4;
}

.home-hero-inner{
  width:min(1180px, calc(100% - 48px));
  min-height:610px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(420px, 1.08fr);
  align-items:center;
  gap:56px;
  padding:54px 0 42px;
}

.home-hero-copy{
  position:relative;
  z-index:2;
  max-width:560px;
}

.home-kicker{
  margin:0 0 16px;
  color:#a39300;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
}

.home-hero h1{
  margin:0;
  max-width:650px;
  color:#333;
  font-size:clamp(42px, 5.3vw, 72px);
  font-weight:300;
  line-height:.98;
  letter-spacing:-.055em;
}

.home-lead{
  max-width:520px;
  margin:26px 0 0;
  color:#656565;
  font-size:18px;
  line-height:1.55;
}

.home-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}

.home-btn{
  min-height:47px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border:1px solid transparent;
  text-decoration:none;
  font-size:13px;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.home-btn:hover{ transform:translateY(-2px); }

.home-btn-primary{
  background:#d1bb00;
  color:#fff;
}
.home-btn-primary:hover{ background:#bca900; }

.home-btn-secondary{
  border-color:#bdbdb6;
  background:rgba(255,255,255,.56);
  color:#555;
}
.home-btn-secondary:hover{
  border-color:#8d8d84;
  background:#fff;
}

.home-hero-visual{
  position:relative;
  min-height:500px;
  display:grid;
  place-items:center;
}

.home-product-glow{
  position:absolute;
  width:390px;
  height:390px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(215,192,0,.2), rgba(215,192,0,.03) 55%, transparent 70%);
}

.home-orbit{
  position:absolute;
  border:1px solid rgba(155,145,74,.23);
  border-radius:50%;
}
.home-orbit-one{ width:410px; height:410px; }
.home-orbit-two{ width:520px; height:520px; }

.home-hero-product{
  position:relative;
  z-index:2;
  width:min(410px, 68vw);
  height:410px;
  object-fit:contain;
  filter:drop-shadow(0 26px 23px rgba(50,50,50,.18));
  transform:translateY(-12px);
}

.home-product-label{
  position:absolute;
  z-index:3;
  right:0;
  bottom:28px;
  width:235px;
  padding:18px 20px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(190,190,180,.72);
  backdrop-filter:blur(9px);
  text-decoration:none;
  box-shadow:0 12px 36px rgba(0,0,0,.08);
}
.home-product-label span,
.home-product-label small{
  display:block;
  color:#868686;
  font-size:10px;
}
.home-product-label strong{
  display:block;
  margin:3px 0 5px;
  color:#343434;
  font-size:26px;
  font-weight:400;
}
.home-product-label small{ color:#8d8200; }

.home-hero-bottom{
  width:min(1180px, calc(100% - 48px));
  min-height:64px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.8fr 1.45fr 1fr;
  align-items:center;
  border-top:1px solid rgba(160,160,150,.32);
  color:#777;
  font-size:11px;
  letter-spacing:.025em;
}
.home-hero-bottom span{
  padding-right:24px;
}

.home-families,
.home-featured{
  width:min(1180px, calc(100% - 48px));
  margin:0 auto;
  padding:82px 0;
}

.home-section-heading{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:60px;
  align-items:end;
  margin-bottom:38px;
}
.home-section-heading h2,
.home-service h2{
  margin:0;
  color:#3e3e3e;
  font-size:clamp(30px, 3.5vw, 46px);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-.035em;
}
.home-section-heading > p{
  max-width:460px;
  justify-self:end;
  margin:0 0 3px;
  color:#777;
  font-size:14px;
  line-height:1.6;
}

.home-family-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  border-top:1px solid #d9d9d4;
  border-bottom:1px solid #d9d9d4;
}

.home-family-card{
  position:relative;
  min-height:300px;
  padding:25px 22px 24px;
  border-right:1px solid #d9d9d4;
  color:#444;
  text-decoration:none;
  overflow:hidden;
  transition:background .2s ease, transform .2s ease;
}
.home-family-card:last-child{ border-right:0; }
.home-family-card::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:5px;
  background:var(--family-accent, #d1bb00);
  transform:scaleX(.22);
  transform-origin:left;
  transition:transform .24s ease;
}
.home-family-card:hover{
  background:#f8f8f5;
}
.home-family-card:hover::after{ transform:scaleX(1); }

.home-family-number{
  display:block;
  margin-bottom:28px;
  color:#aaa;
  font-size:10px;
}
.home-family-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  margin-bottom:26px;
  border:1px solid currentColor;
  border-radius:50%;
  color:var(--family-accent, #a89700);
  font-size:12px;
  font-weight:700;
  letter-spacing:-.03em;
}
.home-family-card h3{
  margin:0 0 11px;
  font-size:20px;
  font-weight:500;
}
.home-family-card p{
  min-height:60px;
  margin:0;
  color:#7b7b7b;
  font-size:12px;
  line-height:1.5;
}
.home-family-link{
  position:absolute;
  left:22px;
  bottom:25px;
  color:#696969;
  font-size:11px;
}

.home-family-gas{ --family-accent:#d1bb00; }
.home-family-oil{ --family-accent:#129bd0; }
.home-family-solar{ --family-accent:#09aa63; }
.home-family-aero{ --family-accent:#cf231d; }
.home-family-accessories{ --family-accent:#888; }


















.home-service{
  width:min(1180px, calc(100% - 48px));
  margin:0 auto 82px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  padding:48px 52px;
  background:#3f403d;
  color:#fff;
}
.home-service h2{
  max-width:520px;
  color:#fff;
}
.home-service-copy > p:last-child{
  max-width:520px;
  margin:20px 0 0;
  color:#c9c9c4;
  font-size:13px;
  line-height:1.6;
}
.home-service-actions{
  display:grid;
  gap:10px;
}
.home-service-actions a{
  min-height:72px;
  display:grid;
  grid-template-columns:42px 1fr 24px;
  gap:14px;
  align-items:center;
  padding:10px 16px;
  border:1px solid #62635e;
  color:#fff;
  text-decoration:none;
  transition:background .18s ease, border-color .18s ease;
}
.home-service-actions a:hover{
  background:#4a4b47;
  border-color:#87887f;
}
.home-service-actions img{
  width:34px;
  height:34px;
  object-fit:contain;
}
.home-service-actions small,
.home-service-actions strong{
  display:block;
}
.home-service-actions small{
  color:#aaa;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.home-service-actions strong{
  margin-top:3px;
  font-size:13px;
  font-weight:500;
}
.home-service-actions b{
  color:#d1bb00;
  font-size:20px;
  font-weight:400;
}

@media(max-width:1000px){
  .home-hero-inner{
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
  .home-family-grid{ grid-template-columns:repeat(3, 1fr); }
  .home-family-card:nth-child(3){ border-right:0; }
  .home-family-card:nth-child(-n/**/+3){ border-bottom:1px solid #d9d9d4; }
  .home-family-card:nth-child(4){ border-left:1px solid #d9d9d4; }
  .home-product-grid{ grid-template-columns:repeat(2, 1fr); }
}

@media(max-width:760px){
  .home-hero-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .home-btn{
    width:100%;
    box-sizing:border-box;
  }
  .home-hero-inner{
    width:min(92%, 680px);
    min-height:0;
    grid-template-columns:1fr;
    padding:46px 0 22px;
  }
  .home-hero-copy{ text-align:left; }
  .home-hero h1{ font-size:46px; }
  .home-lead{ font-size:16px; }
  .home-hero-visual{ min-height:370px; }
  .home-hero-product{ width:280px; height:300px; }
  .home-orbit-one{ width:290px; height:290px; }
  .home-orbit-two{ width:355px; height:355px; }
  .home-product-label{
    right:3%;
    bottom:8px;
    width:205px;
  }
  .home-hero-bottom{
    width:min(92%, 680px);
    grid-template-columns:1fr;
    gap:6px;
    padding:16px 0;
  }
  .home-families,
  .home-featured{
    width:min(92%, 680px);
    padding:58px 0;
  }
  .home-section-heading{
    grid-template-columns:1fr;
    gap:15px;
    margin-bottom:28px;
  }
  .home-section-heading > p{
    justify-self:start;
  }
  .home-family-grid{ grid-template-columns:1fr; }
  .home-family-card,
  .home-family-card:nth-child(3),
  .home-family-card:nth-child(4){
    min-height:210px;
    border:0;
    border-bottom:1px solid #d9d9d4;
  }
  .home-family-card:first-child{ border-top:1px solid #d9d9d4; }
  .home-family-card p{ min-height:0; max-width:420px; }
  .home-product-grid{ grid-template-columns:1fr; }
  .home-service{
    width:min(92%, 680px);
    grid-template-columns:1fr;
    gap:30px;
    margin-bottom:55px;
    padding:34px 24px;
  }
}

/* OPCIÓN 4 · Corporativo ligero + catálogo con indicador amarillo */
@media (min-width:901px){
  .mega-header .mega-corporate-nav{
    gap:30px;
  }
  .mega-header .mega-corporate-nav > a{
    padding:4px 0;
    color:#999995;
    font-size:10px;
    font-weight:400;
    letter-spacing:.02em;
  }
  .mega-header .mega-corporate-nav > a::after{
    display:none;
  }
  .mega-header .mega-product-nav{
    gap:31px;
  }
  .mega-product-trigger{
    padding-bottom:13px;
    color:#333;
    font-size:14px;
    font-weight:500;
  }
  .mega-product-trigger::after{
    left:50%;
    right:auto;
    bottom:4px;
    width:26px;
    height:3px;
    border-radius:2px;
    transform:translateX(-50%) scaleX(0);
    transform-origin:center;
    transition:transform .20s ease;
  }
  .mega-product-menu:hover .mega-product-trigger,
  .mega-product-menu:focus-within .mega-product-trigger,
  .mega-product-menu.is-open .mega-product-trigger{
    color:#6f6700;
  }
  .mega-product-menu:hover .mega-product-trigger::after,
  .mega-product-menu:focus-within .mega-product-trigger::after,
  .mega-product-menu.is-open .mega-product-trigger::after{
    transform:translateX(-50%) scaleX(1);
  }
}

/* ==========================================================
   ALINEACIÓN VERTICAL DEL HERO DE PRODUCTO
   - El bloque de textos comienza a la altura superior de la fotografía.
   - Los distintivos (badges) quedan alineados con la parte inferior.
   - Las etiquetas/iconos de clase energética se centran en el espacio
     disponible entre los textos y los distintivos.
   ========================================================== */
@media (min-width: 761px) {
  .hero-grid {
    align-items: stretch;
  }

  .product-copy {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    min-height: 348px;
  }

  .product-copy .energy-stack {
    margin-top: auto;
    margin-bottom: auto;
  }

  .product-copy .badges {
    margin-top: 0;
  }
}

/* Plantilla común: anclaje inferior de badges cuando no existe bloque energético. */
@media (min-width: 761px) {
  .product-copy .badges {
    margin-top: auto;
  }

  /* Cuando sí hay clase energética, ésta ocupa el espacio intermedio. */
  .product-copy .energy-stack + .badges {
    margin-top: 0;
  }
}

.icon-extra-panels{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:14px;align-items:start}
.icon-extra-title{width:100%;min-height:34px;border:0;background:#8d8d8d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font:inherit;font-size:13px;cursor:pointer}
.icon-extra-chevron{width:10px;height:10px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg);transition:.18s}
.icon-extra-panel.is-open .icon-extra-chevron{transform:rotate(225deg)}
.icon-extra-content{display:none;background:#f7f7f7}
.icon-extra-panel:hover>.icon-extra-content,.icon-extra-panel:focus-within>.icon-extra-content,.icon-extra-panel.is-open>.icon-extra-content{display:block}
.icon-option-row{min-height:76px;padding:12px 10px;border-bottom:1px solid #aaa}
.icon-option-row strong,.icon-option-row small,.icon-accessory-item strong,.icon-accessory-item small{display:block}
.icon-option-row strong,.icon-accessory-item strong{font-size:10px;font-weight:400}.icon-option-row small,.icon-accessory-item small{margin-top:3px;color:#666;font-size:9px}
.icon-accessory-trigger{width:100%;min-height:31px;border:0;border-bottom:1px solid #aaa;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:4px 8px;color:inherit;font:inherit;font-size:10px;cursor:pointer}
.icon-accessory-trigger>span:last-child{font-size:23px;transition:.18s}.icon-accessory-group.is-open .icon-accessory-trigger>span:last-child{transform:rotate(90deg)}
.icon-accessory-detail{display:none;padding:4px 8px 8px;background:#f1f1f1}.icon-accessory-group.is-open .icon-accessory-detail{display:block}
.icon-accessory-item{min-height:39px;padding:7px 4px;border-bottom:1px solid #c3c3c3}.icon-accessory-item:last-child{border-bottom:0}
@media(max-width:760px){.icon-extra-panels{grid-template-columns:1fr;gap:10px}.icon-extra-panel:hover>.icon-extra-content{display:none}.icon-extra-panel.is-open>.icon-extra-content{display:block}}


/* ICON · miniaturas de ejemplo para opciones/accesorios.
   Sustituye únicamente el src="assets/img/accesorio-ejemplo.png"
   por la imagen real de cada accesorio. */
.icon-option-row,
.icon-accessory-item{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  column-gap:10px;
  align-items:center;
}
.icon-accessory-thumb{
  display:block;
  width:48px;
  height:38px;
  object-fit:contain;
  object-position:left center;
  justify-self:start;
  background:transparent;
}
.icon-option-row .icon-accessory-thumb{
  width:54px;
  height:46px;
}


/* OPCIONES Y ACCESORIOS · aplicación al resto de fichas de producto */
.product-extra-panels .product-accessory-link .icon-accessory-trigger{
  cursor:default;
}
.product-extra-panels .product-accessory-link .icon-accessory-trigger>span:last-child{
  transform:none !important;
}


/* Accesorios de producto · miniatura discreta como en ICON */
.product-extra-panels .icon-accessory-detail{padding:4px 8px 8px;background:#f1f1f1}
.product-extra-panels .icon-accessory-item{
  display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:10px;align-items:center;
  min-height:48px;padding:6px 4px;border-bottom:1px solid #c3c3c3;
}
.product-extra-panels .icon-accessory-item:last-child{border-bottom:0}
.product-extra-panels .icon-accessory-thumb{
  display:block;width:48px;height:38px;object-fit:contain;object-position:left center;justify-self:start;background:transparent;
}


/* Ecofell: distintivo Biodiésel alineado verticalmente con Descargas */
.ecofell-biodiesel-download-row{
  grid-column:2;
  grid-row:1;
  align-self:start;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  pointer-events:none;
  margin-top:0;
  transform:translateX(24px);
}
.ecofell-biodiesel-download-row img{
  width:auto;
  height:80px;
  object-fit:contain;
}
@media(max-width:800px){
  .ecofell-biodiesel-download-row{
    grid-column:1;
    grid-row:auto;
    margin:4px 0 12px;
  
    transform:none;}
  .ecofell-biodiesel-download-row img{height:68px}
}


/* ===== Megamenú siempre por encima de SAT / Red Comercial =====
   Importante: .mega-product-menu debe seguir en position:static para que
   .mega-panel tome como referencia el ancho completo del header. */
.mega-header{
  position:relative;
  z-index:10000 !important;
}
.mega-product-menu{
  position:static !important;
}
.mega-header .mega-panel{
  z-index:10001 !important;
}

/* ===== Consentimiento de cookies Tifell ===== */
.cookie-dialog-open{overflow:auto}
.cookie-consent[hidden]{display:none!important}
.cookie-consent{position:fixed;inset:0;z-index:99999;font-family:inherit}
.cookie-consent__backdrop{position:absolute;inset:0;background:rgba(35,35,30,.20)}
.cookie-consent__dialog{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(620px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto;
  box-sizing:border-box;background:#fff;border:1px solid rgba(0,0,0,.12);
  border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.22);padding:34px 38px 30px;color:#222
}
.cookie-consent__eyebrow{margin:0 0 12px;color:#8b8a2f;font-size:12px;font-weight:700;letter-spacing:.14em}
.cookie-consent h2{margin:0 0 16px;font-size:25px;line-height:1.2;font-weight:500}
.cookie-consent p{margin:0;color:#4d4d4d;font-size:14px;line-height:1.58}
.cookie-consent__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:26px}
.cookie-consent__actions .cookie-btn--primary{grid-column:1/-1}
.cookie-btn{
  min-height:46px;padding:10px 18px;border-radius:7px;border:1px solid #8b8a2f;
  background:#fff;color:#77762a;font:inherit;font-size:14px;cursor:pointer
}
.cookie-btn:hover,.cookie-btn:focus-visible{box-shadow:0 0 0 3px rgba(139,138,47,.12);outline:none}
.cookie-btn--primary{background:#92912f;color:#fff;border-color:#92912f}
.cookie-consent__links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:20px;font-size:12px;color:#888}
.cookie-consent__links a{color:#555;text-underline-offset:3px}
.cookie-consent__close{
  position:absolute;right:14px;top:10px;border:0;background:transparent;color:#777;
  font-size:27px;line-height:1;cursor:pointer
}
.cookie-consent__back{border:0;background:none;padding:0;margin:0 0 18px;color:#555;cursor:pointer;font:inherit;font-size:13px}
.cookie-consent__intro{margin-bottom:18px!important}
.cookie-option{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding:17px 0;border-top:1px solid #e5e5e5
}
.cookie-option strong{display:block;margin-bottom:4px;font-size:14px}
.cookie-option p{font-size:12.5px;line-height:1.45}
.cookie-required{flex:0 0 auto;color:#666;font-size:12px}
.cookie-switch{position:relative;flex:0 0 44px;width:44px;height:24px}
.cookie-switch input{position:absolute;opacity:0;pointer-events:none}
.cookie-switch span{position:absolute;inset:0;border-radius:20px;background:#bbb;transition:.2s;cursor:pointer}
.cookie-switch span:after{
  content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s
}
.cookie-switch input:checked+span{background:#92912f}
.cookie-switch input:checked+span:after{transform:translateX(20px)}
.cookie-switch input:focus-visible+span{outline:3px solid rgba(139,138,47,.18);outline-offset:2px}
.cookie-consent__settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
@media(max-width:600px){
  .cookie-consent__dialog{padding:27px 22px 22px;border-radius:10px}
  .cookie-consent h2{font-size:21px}
  .cookie-consent__actions,.cookie-consent__settings-actions{grid-template-columns:1fr}
  .cookie-consent__actions .cookie-btn--primary{grid-column:auto}
  .cookie-option{align-items:flex-start}
}


/* Lectura de información legal antes de decidir sobre cookies */
.cookie-consent.cookie-consent--legal-reading{
  pointer-events:none;
}
.cookie-consent.cookie-consent--legal-reading .cookie-consent__backdrop,
.cookie-consent.cookie-consent--legal-reading .cookie-consent__dialog{
  display:none;
}
.cookie-legal-return{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:99998;
  border:1px solid #8b8a2f;
  border-radius:7px;
  background:#fff;
  color:#66651f;
  padding:11px 17px;
  box-shadow:0 5px 20px rgba(0,0,0,.14);
  font:inherit;
  font-size:13px;
  cursor:pointer;
}
.cookie-legal-return:hover{background:#f4f4e9}
@media(max-width:600px){
  .cookie-legal-return{right:14px;bottom:14px}
}

/* Plan Óptima */
.plan-optima-page .product-copy .info-1{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.2}
.plan-optima-page .product-copy .info-2{margin-top:28px;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.35}
.plan-optima-page .action-btn{background:#f2c2ba}
.download-pending{color:#777;font-size:.78rem}






@media(max-width:700px){.optima-grid{grid-template-columns:1fr}.plan-optima-page .product-copy .info-2{margin-top:15px}}

/* Enlaces y promoción del Plan Óptima */
.plan-optima-badge-link{display:inline-flex;line-height:0;border-radius:50%}
.plan-optima-badge-link:focus-visible{outline:3px solid #d9c316;outline-offset:4px}
.home-optima{
  width:min(1180px,calc(100% - 40px));margin:34px auto 64px;
  padding:clamp(28px,5vw,56px);display:grid;
  grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:clamp(28px,6vw,72px);box-sizing:border-box;
  background:linear-gradient(120deg,#faf7e8 0%,#f3e89a 100%);border-radius:3px
}
.home-optima-copy h2{
  max-width:760px;
  margin:8px 0 14px;
  font-size:clamp(30px, 3.5vw, 46px);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-.035em;
}
.home-optima-copy>p:not(.home-kicker){max-width:720px;margin:0 0 24px;line-height:1.65}
.home-optima-badge{
  display:flex;width:180px;min-height:210px;padding:24px 20px;box-sizing:border-box;
  flex-direction:column;align-items:center;justify-content:center;gap:16px;
  color:inherit;background:rgba(255,255,255,.72);text-align:center;text-decoration:none;
  transition:transform .2s ease,background-color .2s ease
}
.home-optima-badge:hover,.home-optima-badge:focus-visible{transform:translateY(-4px);background:#fff}
.home-optima-badge img{width:112px;height:112px;object-fit:contain}
.home-optima-badge span{font-weight:700}
@media(max-width:700px){
  .home-optima{grid-template-columns:1fr}
  .home-optima-badge{width:100%;min-height:auto;flex-direction:row}
  .home-optima-badge img{width:78px;height:78px}
}

/* Index: evita solapamiento de descripción y "Explorar gama" en móvil */
@media(max-width:760px){
  .home-family-card,
  .home-family-card:nth-child(3),
  .home-family-card:nth-child(4){
    min-height:0;
    padding-bottom:24px;
  }
  .home-family-link{
    position:static;
    display:block;
    margin-top:18px;
  }
}

/* ==========================================================
   MENÚ SUPERIOR · indicador por familia
   Colores coordinados con "Encuentra la solución que necesitas".
   ========================================================== */
.mega-product-nav .mega-product-menu:nth-child(1) .mega-product-trigger::after{
  background:#d1bb00; /* Gas */
}
.mega-product-nav .mega-product-menu:nth-child(2) .mega-product-trigger::after{
  background:#129bd0; /* Gasóleo */
}
.mega-product-nav .mega-product-menu:nth-child(3) .mega-product-trigger::after{
  background:#09aa63; /* Energía solar térmica */
}
.mega-product-nav .mega-product-menu:nth-child(4) .mega-product-trigger::after{
  background:#cf231d; /* Aerotermia */
}
.mega-product-nav .mega-product-menu:nth-child(5) .mega-product-trigger::after{
  background:#888; /* Complementos */
}

/* Menú superior móvil: versión táctil, limpia y responsive. */
@media (max-width:900px){
  .mega-header{
    position:relative;
    overflow:visible;
  }

  .mega-header .mega-header-bar{
    width:calc(100% - 28px);
    min-height:68px;
    display:flex;
    align-items:center;
    gap:12px;
  }

  .mega-header .modern-brand{
    flex:0 1 auto;
    min-width:0;
  }

  .mega-header .modern-brand .brand-logo{
    width:min(135px, 38vw);
    height:auto;
  }

  .mega-header-navigation,
  .mega-header-tools{
    display:none;
  }

  .mega-header .mega-mobile-toggle{
    display:flex;
    flex:0 0 44px;
    width:44px;
    height:44px;
    margin-left:auto;
    padding:10px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    border:0;
    background:transparent;
    cursor:pointer;
  }

  .mega-header.is-mobile-open .mega-header-navigation{
    position:absolute;
    z-index:1000;
    top:100%;
    left:0;
    right:0;
    display:flex;
    flex-direction:column;
    width:100%;
    max-height:calc(100dvh - 68px);
    margin:0;
    padding:0 18px 18px;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    box-sizing:border-box;
    background:#fff;
    border-top:1px solid #ededed;
    border-bottom:1px solid #dedede;
    box-shadow:0 14px 30px rgba(0,0,0,.10);
  }

  .mega-header.is-mobile-open .mega-product-nav,
  .mega-header.is-mobile-open .mega-corporate-nav{
    display:flex;
    width:100%;
    margin:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .mega-header.is-mobile-open .mega-product-nav{ order:1; }

  .mega-header.is-mobile-open .mega-corporate-nav{
    order:2;
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid #ddd;
  }

  .mega-product-menu{
    width:100%;
    border-bottom:1px solid #ececec;
  }

  .mega-product-trigger{
    position:relative;
    display:block;
    width:100%;
    min-height:50px;
    padding:16px 2px 14px;
    box-sizing:border-box;
    color:#353535;
    font-size:15px;
    line-height:1.2;
    text-align:left;
    text-decoration:none !important;
    white-space:normal;
    -webkit-tap-highlight-color:transparent;
  }

  .mega-product-trigger::after{
    display:block;
    left:0;
    right:auto;
    bottom:6px;
    width:48px;
    height:2px;
    transform:scaleX(0);
    transform-origin:left center;
  }

  .mega-product-menu.is-open > .mega-product-trigger::after{
    transform:scaleX(1);
  }

  .mega-panel{
    position:static;
    display:none;
    width:100%;
    max-height:none;
    overflow:visible;
    border:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    background:#f8f8f6;
  }

  .mega-product-menu.is-open > .mega-panel{ display:block; }

  .mega-panel-inner{
    width:100%;
    margin:0;
    padding:14px 14px 18px;
    box-sizing:border-box;
  }

  .mega-panel-head{
    align-items:center;
    gap:12px;
    margin:0 0 10px;
    padding:0 0 12px;
  }

  .mega-panel-head h2{ font-size:21px; }
  .mega-close{ flex:0 0 34px; width:34px; height:34px; }

  .mega-columns,
  .mega-columns-6,
  .mega-columns-5,
  .mega-columns-4,
  .mega-columns-2{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
    max-width:none;
  }

  .mega-category,
  .mega-category:first-child{
    min-height:0;
    padding:13px 0;
    border-right:0;
    border-bottom:1px solid #e2e2e2;
  }

  .mega-category:last-child{ border-bottom:0; }

  .mega-category h3{
    min-height:0;
    margin:0 0 7px;
    font-size:13px;
  }

  .mega-series a,
  .mega-models a{
    min-height:38px;
    box-sizing:border-box;
    padding:9px 0;
    font-size:13px;
    line-height:1.35;
  }

  .mega-series-title{
    padding:8px 0 5px;
    font-size:13px;
  }

  .mega-models{
    margin-left:4px;
    padding-left:12px;
  }

  .mega-header.is-mobile-open .mega-corporate-nav > a{
    display:block;
    padding:12px 2px;
    color:#666;
    text-decoration:none;
  }
}

@media (max-width:420px){
  .mega-header .mega-header-bar{ width:calc(100% - 20px); }
  .mega-header.is-mobile-open .mega-header-navigation{ padding-left:14px; padding-right:14px; }
  .mega-panel-inner{ padding-left:10px; padding-right:10px; }
}

/* Indicador visible del menú en móvil: hamburguesa + texto. */
@media (max-width:900px){
  .mega-header .mega-mobile-toggle{
    flex-basis:58px;
    width:58px;
    height:50px;
    padding:6px 8px 4px;
    gap:3px;
  }

  .mega-header .mega-mobile-toggle span{
    display:block;
    flex:0 0 auto;
    width:25px;
    height:2px;
    margin:0;
    border-radius:2px;
    background:#555;
  }

  .mega-header .mega-mobile-toggle::after{
    content:"MENÚ";
    display:block;
    margin-top:2px;
    color:#555;
    font-size:9px;
    font-weight:600;
    line-height:1;
    letter-spacing:.08em;
  }

  .mega-header.is-mobile-open .mega-mobile-toggle::after{
    content:"CERRAR";
  }
}


/* Menú móvil: evita que el navegador conserve un punto intermedio del
   desplegable al abrir una gama (p. ej. Serie Neocon en vez de Icon/Zen). */
@media (max-width:900px){
  .mega-header.is-mobile-open .mega-header-navigation,
  .mega-header.is-mobile-open .mega-product-nav,
  .mega-header.is-mobile-open .mega-product-menu,
  .mega-header.is-mobile-open .mega-panel{
    overflow-anchor:none;
  }
}

/* ==========================================================
   MENÚ MÓVIL · panel de gama desde el principio de la pantalla
   El panel abierto usa su propio scroll. De este modo nunca hereda
   la posición vertical del listado principal y siempre comienza en 01.
   ========================================================== */
@media (max-width:900px){
  .mega-header.is-mobile-open .mega-product-menu.is-open > .mega-panel{
    position:fixed !important;
    z-index:1200;
    top:68px !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    margin:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#f8f8f6;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    overflow-anchor:none;
  }

  .mega-header.is-mobile-open .mega-product-menu.is-open > .mega-panel .mega-panel-inner{
    width:100%;
    max-width:none;
    margin:0;
    padding:16px 18px 28px;
  }

  .mega-header.is-mobile-open .mega-product-menu.is-open > .mega-panel .mega-panel-head{
    position:static;
    margin:0 0 10px;
  }
}

@media (max-width:420px){
  .mega-header.is-mobile-open .mega-product-menu.is-open > .mega-panel{
    top:68px !important;
  }
  .mega-header.is-mobile-open .mega-product-menu.is-open > .mega-panel .mega-panel-inner{
    padding-left:14px;
    padding-right:14px;
  }
}

/* ==========================================================
   MENÚ MÓVIL · visor independiente de gama
   Se crea como una copia nueva al pulsar una gama. Al ser un nodo nuevo,
   el navegador no puede restaurar un scroll anterior del megamenú.
   ========================================================== */
@media (max-width:900px){
  body.mobile-mega-open{ overflow:hidden; }

  .mobile-mega-overlay{
    position:fixed !important;
    z-index:12050 !important;
    top:68px !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    margin:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#f8f8f6 !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    transition:none !important;
    overflow-anchor:none;
  }

  .mobile-mega-overlay .mega-panel-inner{
    width:100%;
    max-width:none;
    margin:0;
    padding:10px 18px 24px;
    box-sizing:border-box;
  }

  .mobile-mega-overlay .mega-panel-head{
    margin:0 0 4px;
    padding:0 0 8px;
  }

  .mobile-mega-overlay .mega-panel-head h2{ font-size:19px; }
  .mobile-mega-overlay .mega-eyebrow{ font-size:9px; }

  .mobile-mega-overlay .mega-category,
  .mobile-mega-overlay .mega-category:first-child{
    min-height:0;
    padding:9px 0;
  }

  .mobile-mega-overlay .mega-num{ margin-bottom:5px; }
  .mobile-mega-overlay .mega-category h3{
    margin:0 0 4px;
    font-size:12px;
    line-height:1.3;
  }
  .mobile-mega-overlay .mega-series a,
  .mobile-mega-overlay .mega-models a{
    min-height:32px;
    padding:6px 0;
    line-height:1.25;
  }
  .mobile-mega-overlay .mega-series-title{ padding:6px 0 3px; }
}

@media (max-width:420px){
  .mobile-mega-overlay .mega-panel-inner{ padding-left:14px; padding-right:14px; }
}

/* ===== Visor ampliado de opciones y accesorios ===== */
.icon-extra-panels .icon-accessory-thumb,
.product-extra-panels .icon-accessory-thumb{
  cursor:zoom-in;
  transition:transform .18s ease, opacity .18s ease;
}
.icon-extra-panels .icon-accessory-thumb:hover,
.product-extra-panels .icon-accessory-thumb:hover{
  transform:scale(1.06);
}
.icon-extra-panels .icon-accessory-thumb:focus-visible,
.product-extra-panels .icon-accessory-thumb:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
  border-radius:3px;
}
body.accessory-lightbox-open{overflow:hidden}
.accessory-lightbox{
  width:min(860px,calc(100% - 36px));
  max-width:860px;
  max-height:calc(100dvh - 36px);
  padding:0;
  border:0;
  border-radius:14px;
  background:#fff;
  color:#242424;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  overflow:auto;
}
.accessory-lightbox::backdrop{background:rgba(20,20,18,.62)}
.accessory-lightbox__panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  min-height:430px;
}
.accessory-lightbox__close{
  position:absolute;
  z-index:2;
  top:14px;
  right:16px;
  width:38px;
  height:38px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  box-shadow:0 2px 12px rgba(0,0,0,.12);
  color:#333;
  font:300 30px/36px Arial,sans-serif;
  cursor:pointer;
}
.accessory-lightbox__close:hover{background:#f0f0ed}
.accessory-lightbox__close:focus-visible{outline:2px solid #555;outline-offset:2px}
.accessory-lightbox__media{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:430px;
  padding:42px;
  box-sizing:border-box;
  background:#f4f4f1;
}
.accessory-lightbox__image{
  display:block;
  width:100%;
  max-width:430px;
  max-height:420px;
  object-fit:contain;
  filter:drop-shadow(0 14px 14px rgba(40,40,40,.12));
}
.accessory-lightbox__info{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:58px 46px 46px;
  box-sizing:border-box;
}
.accessory-lightbox__eyebrow{
  margin:0 0 12px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.13em;
  color:#88872e;
}
.accessory-lightbox__title{
  margin:0 0 24px;
  font-size:clamp(22px,3vw,30px);
  line-height:1.12;
  font-weight:500;
}
.accessory-lightbox__code-wrap{margin:0;font-size:13px;color:#777}
.accessory-lightbox__code-wrap span{display:block;margin-bottom:5px}
.accessory-lightbox__code{font-size:17px;font-weight:600;color:#292929;letter-spacing:.02em}
.accessory-lightbox__description{margin:20px 0 0;font-size:14px;line-height:1.55;color:#555}
@media(max-width:680px){
  .accessory-lightbox{
    width:min(94vw,520px);
    max-height:calc(100dvh - 24px);
    border-radius:12px;
  }
  .accessory-lightbox__panel{display:block;min-height:0}
  .accessory-lightbox__media{min-height:0;height:min(52vh,390px);padding:42px 28px 24px}
  .accessory-lightbox__image{max-height:100%;max-width:100%}
  .accessory-lightbox__info{padding:24px 26px 30px}
  .accessory-lightbox__title{margin-bottom:18px;font-size:22px}
  .accessory-lightbox__close{top:10px;right:10px}
}
@media(prefers-reduced-motion:reduce){
  .icon-extra-panels .icon-accessory-thumb,
  .product-extra-panels .icon-accessory-thumb{transition:none}
}


/* === PRODUCT TEMPLATE V1: estructura comun de paginas de producto === */
/*
   Capa comun para todas las fichas de producto. Las diferencias de marca/gama
   deben limitarse a variables (p. ej. --product-lower) y modificadores de marca.
   Las secciones opcionales pueden omitirse sin cambiar la estructura base.
*/
.product-template {
  --lower: var(--product-lower, #c2c1c1);
}
.product-template .product-template-main { background: #f7f7f7; }
.product-template .product-template-downloads,
.product-template .product-template-features { min-width: 0; }
.product-template .product-template-lower {
  background: var(--product-lower, var(--lower));
}
.product-template .product-template-lower.is-empty {
  min-height: 80px !important;
  height: 80px !important;
}
.product-template .product-template-lower.is-empty .product-template-bottom-carousel {
  min-height: 80px !important;
  height: 80px !important;
}
@media (max-width: 768px) {
  .product-template .product-template-lower.is-empty,
  .product-template .product-template-lower.is-empty .product-template-bottom-carousel {
    min-height: 50px !important;
    height: 50px !important;
  }
}

/* Enlaces a otros productos desde accesorios: aspecto de tarjeta, sin subrayado */
.product-extra-panels a.accessory-product-link,
.icon-extra-panels a.accessory-product-link{
  color:inherit;
  text-decoration:none;
  background:#e7e7e7;
  border:1px solid #d2d2d2;
  border-radius:6px;
  margin:4px 0;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.product-extra-panels a.accessory-product-link:hover,
.icon-extra-panels a.accessory-product-link:hover{
  color:inherit;
  text-decoration:none;
  background:#dddddd;
  border-color:#b7b7b7;
  box-shadow:0 2px 7px rgba(0,0,0,.10);
}
.product-extra-panels a.accessory-product-link:focus-visible,
.icon-extra-panels a.accessory-product-link:focus-visible{
  text-decoration:none;
  outline:2px solid currentColor;
  outline-offset:2px;
}
.product-extra-panels a.accessory-product-link strong,
.icon-extra-panels a.accessory-product-link strong{
  text-decoration:none;
}
@media (prefers-reduced-motion:reduce){
  .product-extra-panels a.accessory-product-link,
  .icon-extra-panels a.accessory-product-link{transition:none}
}

/* ==========================================================
   CTA SAT / SOLICITUD DE INFORMACIÓN · diseño tipo "Cerca de ti"
   ========================================================== */
@media (min-width: 761px) {
  /* Igualamos la retícula de Descargas/Acciones con Opciones/Accesorios. */
  .content-grid {
    gap: 18px;
  }
}

.actions .action-btn,
.rinnai-theme .actions .action-btn,
.plan-optima-page .actions .action-btn {
  min-height: 47px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  box-sizing: border-box;
  margin-top: 6px;
  padding: 5px 14px 5px 12px;
  border: 0;
  background: #d9c316;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.15;
  transition: filter .18s ease;
}

.actions .action-btn:hover,
.actions .action-btn:focus-visible,
.rinnai-theme .actions .action-btn:hover,
.rinnai-theme .actions .action-btn:focus-visible,
.plan-optima-page .actions .action-btn:hover,
.plan-optima-page .actions .action-btn:focus-visible {
  background: #d9c316;
  color: #fff;
  filter: brightness(.94);
}

.actions .action-btn img,
.rinnai-theme .actions .action-btn img,
.plan-optima-page .actions .action-btn img {
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  width: 34px;
  height: 34px;
  object-fit: contain;
  filter: none;
}

.actions .action-btn span {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

.actions .action-btn::after {
  content: "→";
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  color: #fff;
  font-size: 17px;
  font-weight: 400;
  line-height: 1;
}

/* ==========================================================
   ALINEACIÓN DESCARGAS / OPCIONES · escritorio
   Mantiene exactamente la misma retícula de dos columnas.
   ========================================================== */
@media (min-width: 761px) {
  .product-template .content-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 18px;
  }
  .product-template .product-template-downloads {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
}

/* ==========================================================
   INDEX · Plan Óptima 6 años a sangre dentro de su recuadro
   ========================================================== */
.home-optima-badge.home-optima-badge--full {
  padding: 0;
  gap: 0;
  overflow: hidden;
  line-height: 0;
}

.home-optima-badge.home-optima-badge--full img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 700px) {
  .home-optima-badge.home-optima-badge--full {
    width: 180px;
    min-height: 199px;
    justify-self: center;
  }
  .home-optima-badge.home-optima-badge--full img {
    min-height: 199px;
  }
}

/* ==========================================================
   INDEX · Plan Óptima sin fondo blanco bajo el PNG
   Las esquinas del PNG son transparentes: dejamos ver el fondo amarillo.
   ========================================================== */
.home-optima-badge.home-optima-badge--full,
.home-optima-badge.home-optima-badge--full:hover,
.home-optima-badge.home-optima-badge--full:focus-visible {
  background: transparent;
}

/* RINNAI · CTA SAT / SOLICITUD · iconos blancos como el resto de productos */
.rinnai-theme .actions .action-btn img {
  filter: brightness(0) invert(1) !important;
}

/* ==========================================================
   PÁGINAS DE GAMA · navegación interna más visible
   Subrayado de color permanente para indicar que cada opción
   es un enlace de desplazamiento a una sección de la página.
   ========================================================== */
.gas-category-nav a,
.catalog-category-nav a {
  position: relative;
  display: inline-block;
  padding-bottom: 9px;
  text-decoration: none;
}

.gas-category-nav a::after,
.catalog-category-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2px;
  height: 3px;
  background: var(--nav-accent, #9a9a9a);
  transform: scaleX(.72);
  transform-origin: center;
  transition: transform .18s ease;
}

@media (hover: hover) and (pointer: fine) {
  .gas-category-nav a:hover::after,
  .catalog-category-nav a:hover::after {
    transform: scaleX(1);
  }
}

.gas-category-nav a:focus-visible::after,
.catalog-category-nav a:focus-visible::after {
  transform: scaleX(1);
}

/* Gas */
.gas-page .gas-category-nav a:nth-child(1) { --nav-accent: #e9a6b4; }
.gas-page .gas-category-nav a:nth-child(2) { --nav-accent: #aaa5d8; }
.gas-page .gas-category-nav a:nth-child(3) { --nav-accent: #77989d; }
.gas-page .gas-category-nav a:nth-child(4) { --nav-accent: #cf231d; }
.gas-page .gas-category-nav a:nth-child(5) { --nav-accent: #b61f24; }

/* Gasóleo */
.gasoleo-page .catalog-category-nav a:nth-child(1) { --nav-accent: #21a9c2; }
.gasoleo-page .catalog-category-nav a:nth-child(2) { --nav-accent: #789bb7; }
.gasoleo-page .catalog-category-nav a:nth-child(3) { --nav-accent: #a8adb0; }
.gasoleo-page .catalog-category-nav a:nth-child(4) { --nav-accent: #9bb93e; }
.gasoleo-page .catalog-category-nav a:nth-child(5) { --nav-accent: #8f9295; }

/* Solar térmica */
.solar-page .catalog-category-nav a:nth-child(1),
.solar-termica-page .catalog-category-nav a:nth-child(1) { --nav-accent: #54b88a; }
.solar-page .catalog-category-nav a:nth-child(2),
.solar-termica-page .catalog-category-nav a:nth-child(2) { --nav-accent: #74b998; }
.solar-page .catalog-category-nav a:nth-child(3),
.solar-termica-page .catalog-category-nav a:nth-child(3) { --nav-accent: #98c9aa; }
.solar-page .catalog-category-nav a:nth-child(4),
.solar-termica-page .catalog-category-nav a:nth-child(4) { --nav-accent: #62b889; }

/* Aerotermia */
.aerotermia-page .catalog-category-nav a { --nav-accent: #42aeb2; }
.aerotermia-page .catalog-category-nav a:nth-child(2) { --nav-accent: #70bfc0; }
.aerotermia-page .catalog-category-nav a:nth-child(3) { --nav-accent: #96cfd0; }

/* Complementos */
.complementos-page .catalog-category-nav a:nth-child(1) { --nav-accent: #7eb49a; }
.complementos-page .catalog-category-nav a:nth-child(2) { --nav-accent: #d5c45a; }
.complementos-page .catalog-category-nav a:nth-child(3) { --nav-accent: #a8d327; }
.complementos-page .catalog-category-nav a:nth-child(4) { --nav-accent: #96999b; }
.complementos-page .catalog-category-nav a:nth-child(5) { --nav-accent: #a8d327; }

@media (max-width: 760px) {
  .gas-category-nav a,
  .catalog-category-nav a {
    padding-bottom: 8px;
  }
  .gas-category-nav a::after,
  .catalog-category-nav a::after {
    transform: scaleX(.82);
  }
}

/* ==========================================================
   PÁGINAS DE GAMA · colores reales de serie (corrección)
   Las páginas catalog usan theme-* en BODY; estas reglas
   sustituyen los selectores históricos *-page que no aplicaban.
   ========================================================== */
/* Gasóleo: Eurofell / Eurofell Blue / Eficon / Ecofell / TR */
.theme-oil .catalog-category-nav a:nth-child(1) { --nav-accent: #007CC3; }
.theme-oil .catalog-category-nav a:nth-child(2) { --nav-accent: #75C5F0; }
.theme-oil .catalog-category-nav a:nth-child(3) { --nav-accent: #AFBCC0; }
.theme-oil .catalog-category-nav a:nth-child(4) { --nav-accent: #9DCD17; }
.theme-oil .catalog-category-nav a:nth-child(5) { --nav-accent: #797196; }

/* Solar térmica */
.theme-solar .catalog-category-nav a:nth-child(1) { --nav-accent: #54b88a; }
.theme-solar .catalog-category-nav a:nth-child(2) { --nav-accent: #74b998; }
.theme-solar .catalog-category-nav a:nth-child(3) { --nav-accent: #98c9aa; }
.theme-solar .catalog-category-nav a:nth-child(4) { --nav-accent: #62b889; }

/* Aerotermia */
.theme-aero .catalog-category-nav a:nth-child(1) { --nav-accent: #42aeb2; }
.theme-aero .catalog-category-nav a:nth-child(2) { --nav-accent: #70bfc0; }
.theme-aero .catalog-category-nav a:nth-child(3) { --nav-accent: #96cfd0; }

/* Complementos */
.theme-accessories .catalog-category-nav a:nth-child(1) { --nav-accent: #7eb49a; }
.theme-accessories .catalog-category-nav a:nth-child(2) { --nav-accent: #d5c45a; }
.theme-accessories .catalog-category-nav a:nth-child(3) { --nav-accent: #a8d327; }
.theme-accessories .catalog-category-nav a:nth-child(4) { --nav-accent: #96999b; }
.theme-accessories .catalog-category-nav a:nth-child(5) { --nav-accent: #a8d327; }

/* ==========================================================
   RINNAI · CTA SAT / SOLICITUD · imagen corporativa
   Recupera el aspecto gris azulado original solo en Rinnai.
   ========================================================== */
.rinnai-theme .actions .action-btn {
  background: var(--rinnai-blue, #d7dfeb);
  color: #4e5358;
  border-bottom: 1px solid #8f9397;
  font-weight: 400;
}
.rinnai-theme .actions .action-btn:hover,
.rinnai-theme .actions .action-btn:focus-visible {
  background: var(--rinnai-blue, #d7dfeb);
  color: #4e5358;
  filter: brightness(.97);
}
.rinnai-theme .actions .action-btn img {
  filter: brightness(.48) saturate(.45) !important;
}
.rinnai-theme .actions .action-btn::after {
  color: #4e5358;
}

/* Language switch in the common header */
.language-switch { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.language-switch .modern-language { display:inline-flex; align-items:center; min-height:32px; font-size:12px; font-weight:600; text-decoration:none; }
.language-switch .modern-language:hover, .language-switch .modern-language:focus-visible { color:#a42228; text-decoration:underline; text-underline-offset:4px; }
.language-switch .modern-language.is-current { color:#a42228; font-weight:800; }
.language-switch .language-divider { color:#a9a9a9; }
@media (max-width:900px) {
  .mega-header .mega-header-tools { display:flex; margin-left:auto; padding-left:0; border-left:0; }
  .mega-header .mega-header-tools .modern-search-link { display:none; }
  .mega-header .mega-mobile-toggle { margin-left:0; }
}


/* Infinity E / Enjin / NB: separación real entre IPX5D y distintivos en móvil */
@media (max-width: 760px) {
  .infinity-ipx5d-badge {
    margin-bottom: 0 !important;
  }
  .infinity-lower-badges {
    margin-top: 22px !important;
  }
}


/* Index: separación REAL de ~1 cm entre las gamas y Plan Óptima.
   Se elimina el padding inferior de la sección de gamas para que no se sume al margen. */
.home-families {
  padding-bottom: 0 !important;
}

.home-optima {
  margin-top: 38px !important;
  margin-bottom: 38px !important;
}

@media (max-width: 768px) {
  .home-families {
    padding-bottom: 0 !important;
  }

  .home-optima {
    margin-top: 38px !important;
    margin-bottom: 38px !important;
  }
}


/* Carrusel inferior: mismo fondo que el cuerpo de las páginas de producto */
.bottom-carousel-section,
.rinnai-theme .bottom-carousel-section,
.ecomax-theme .bottom-carousel-section,
.neocon-theme .bottom-carousel-section,
.product-template .product-template-lower {
  background: #f7f7f7 !important;
}

/* Separación entre la galería inferior y el emblema de los 45 años. */
.bottom-carousel-section:not(.is-empty) {
  padding-bottom: 32px;
}
@media (max-width: 760px) {
  .bottom-carousel-section:not(.is-empty) {
    padding-bottom: 24px;
  }
}

/* Mayor presencia de los vídeos verticales, sin deformación ni recorte. */
.bottom-carousel-section .bottom-carousel .carousel-video.is-portrait-video {
  height: 480px;
  width: min(440px, 88vw);
  object-fit: contain;
}
@media (max-width: 760px) {
  .bottom-carousel-section .bottom-carousel .carousel-video.is-portrait-video {
    width: 94vw;
    height: auto;
    max-height: none;
  }
}
