/*
Theme Name: Materbo Baño
Theme URI: https://materbo.com
Author: Materbo Baño & Reforma
Description: Tema de tienda online de baño para WooCommerce: mamparas, platos de ducha, grifería, sanitarios, muebles y accesorios. Incluye portada con slider, menú desplegable por categorías, fichas de producto con selector de acabados, páginas informativas y un importador del catálogo con imágenes.
Version: 1.5.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
WC requires at least: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: materbo
Tags: e-commerce, woocommerce, custom-logo, custom-menu
*/

:root{
  --bg:#FFFFFF; --soft:#F4F5F7; --soft2:#EBEDF0; --ink:#1F2328; --muted:#6B7280; --line:#E3E6EA;
  --navy:#0B2A55; --navy2:#123A73; --blue:#0A6FD8; --blue2:#0858AE; --sale:#D7141A; --green:#1B8A3E; --gold:#16A3FF; --goldl:#8FD3FF;
  --h:"Poppins","Helvetica Neue",Arial,sans-serif; --b:"Lato","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--bg); color:var(--ink); font-family:var(--b); font-size:15px; line-height:1.6}
img{max-width:100%; height:auto}
button,input,select,textarea{font:inherit; color:inherit}
a{color:inherit; text-decoration:none}
a:hover{color:var(--blue)}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px}
h1,h2,h3,h4{font-family:var(--h); line-height:1.2; margin:0 0 .5em; text-wrap:balance}
.wrap{max-width:1360px; margin-inline:auto; padding-inline:20px}
.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px)}
.num{font-variant-numeric:tabular-nums}

/* Botones */
.btn,.button,button.button,a.button,input.button,.wc-block-components-button:not(.is-link),.wp-element-button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:4px; padding:12px 24px;
  font-family:var(--h); font-weight:700; font-size:13px; letter-spacing:.05em; text-transform:uppercase; line-height:1.2;
  background:var(--blue); color:#fff; cursor:pointer; transition:background .15s; text-decoration:none}
.btn:hover,.button:hover,.wc-block-components-button:not(.is-link):hover{background:var(--blue2); color:#fff}
.btn.dark{background:var(--navy)} .btn.dark:hover{background:var(--navy2)}
.btn.white{background:#fff; color:var(--navy)} .btn.white:hover{background:#EEF2F7; color:var(--navy)}
.btn.line{background:#fff; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy)} .btn.line:hover{background:var(--navy); color:#fff}
.button.alt,.checkout-button,.single_add_to_cart_button,#place_order,.wc-block-components-checkout-place-order-button{background:var(--green)!important; color:#fff!important}
.button.alt:hover,.checkout-button:hover,.single_add_to_cart_button:hover,#place_order:hover{background:#15732F!important}
.button.disabled,.button:disabled{opacity:.5; cursor:not-allowed}
.btn svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2}

/* Barra superior */
.topbar{background:var(--navy); color:#fff; font:500 12.5px/1.2 var(--h)}
.topbar .wrap{display:flex; justify-content:space-between; gap:20px; padding-block:9px; white-space:nowrap; overflow:hidden}
.topbar span{display:inline-flex; align-items:center; gap:7px}
.topbar a{color:#fff}
.topbar svg{width:15px; height:15px; stroke:#fff; fill:none; stroke-width:2}
@media (max-width:1000px){ .topbar span:nth-child(n+3){display:none} }
@media (max-width:560px){ .topbar .wrap{justify-content:center} .topbar span:nth-child(n+2){display:none} }

/* Cabecera */
.site-header{background:#fff; position:sticky; top:0; z-index:50; box-shadow:0 1px 0 var(--line)}
.admin-bar .site-header{top:32px}
@media (max-width:782px){ .admin-bar .site-header{top:0} }
.hrow{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; padding-block:14px}
.hsearch{position:relative; max-width:380px; margin:0}
.hsearch input[type=search]{width:100%; border:1px solid var(--line); background:var(--soft); border-radius:4px; padding:11px 44px 11px 14px; outline:none; font-size:14px}
.hsearch input[type=search]:focus{border-color:var(--blue); background:#fff}
.hsearch button{position:absolute; right:4px; top:4px; bottom:4px; width:36px; border:0; background:var(--navy); border-radius:3px; display:grid; place-items:center; cursor:pointer}
.hsearch svg{width:17px; height:17px; stroke:#fff; fill:none; stroke-width:2.2}
.site-logo{display:flex; align-items:center; justify-content:center}
.site-logo img{height:62px; width:auto; display:block}
.hicons{display:flex; justify-content:flex-end; align-items:center; gap:4px}
.hi{border:0; background:none; display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:4px; position:relative; font-size:13px; cursor:pointer; color:var(--ink)}
.hi:hover{background:var(--soft); color:var(--ink)}
.hi svg{width:24px; height:24px; stroke:var(--ink); fill:none; stroke-width:1.6}
.hi .lbl{display:flex; flex-direction:column; line-height:1.2; text-align:left}
.hi .lbl small{color:var(--muted); font-size:11.5px}
.hi .lbl b{font-family:var(--h); font-size:13.5px}
.hi .lbl .woocommerce-Price-amount{font-family:var(--h); font-weight:700; font-size:13.5px}
.cnt{position:absolute; top:0; left:22px; min-width:18px; height:18px; border-radius:9px; background:var(--sale); color:#fff; font:700 10.5px/18px var(--h); text-align:center; padding:0 4px}
.cnt.empty{display:none}
.phone{font-size:12px; color:var(--muted); text-align:right; line-height:1.25; margin-right:8px}
.phone b{display:block; font-family:var(--h); color:var(--navy); font-size:15px}
.burger{display:none}
@media (max-width:1100px){ .phone,.hi .lbl{display:none} }
@media (max-width:860px){
  .hrow{grid-template-columns:auto 1fr auto; gap:10px; padding-block:10px}
  .hsearch{grid-column:1/-1; grid-row:2; max-width:none}
  .burger{display:flex}
  .site-logo img{height:48px}
  .hi.hide-sm{display:none}
}

/* Menú principal y desplegable */
.main-nav{background:#fff; border-top:1px solid var(--line)}
.main-nav > .wrap{display:flex; justify-content:center}
.main-nav ul{list-style:none; margin:0; padding:0}
.mi{position:static}
.mi > a{display:flex; align-items:center; gap:5px; padding:15px 13px; font:600 13px/1.2 var(--h); letter-spacing:.04em; text-transform:uppercase; border-bottom:3px solid transparent; white-space:nowrap}
.mi > a:hover,.mi.current > a{color:var(--blue); border-bottom-color:var(--blue)}
.mi > a.red{color:var(--sale)}
.mi > a svg{width:10px; height:10px; stroke:currentColor; fill:none; stroke-width:2.5}
.mega{position:absolute; left:0; right:0; top:100%; background:#fff; border-top:1px solid var(--line); box-shadow:0 18px 30px -12px rgba(20,30,50,.25); display:none}
.mi:hover .mega,.mi:focus-within .mega{display:block}
.mega .wrap{display:grid; grid-template-columns:1fr 1fr 1.2fr; gap:36px; padding-block:26px 30px}
.mega h4{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:12px}
.mega ul{display:grid; gap:6px}
.mega li a{font-size:14.5px}
.mega li a:hover{text-decoration:underline}
.mega-promo{display:grid; grid-template-columns:150px 1fr; gap:16px; align-items:center; background:var(--soft); border-radius:4px; padding:14px}
.mega-promo img{background:#fff; border-radius:3px; aspect-ratio:1; object-fit:cover; width:100%}
.mega-promo b{font-family:var(--h); display:block; font-size:15px; margin-bottom:4px}
.mega-promo em{display:block; font-style:normal; color:var(--sale); font:700 18px var(--h); margin-top:6px}
/* menú de WordPress (si se asigna uno) */
.main-nav .menu{display:flex; justify-content:center}
.main-nav .menu > li{position:relative}
.main-nav .menu > li > a{display:block; padding:15px 13px; font:600 13px/1.2 var(--h); text-transform:uppercase; letter-spacing:.04em}
.main-nav .menu .sub-menu{position:absolute; left:0; top:100%; background:#fff; min-width:230px; box-shadow:0 14px 28px -10px rgba(20,30,50,.3); padding:10px 0; display:none; z-index:5}
.main-nav .menu li:hover > .sub-menu,.main-nav .menu li:focus-within > .sub-menu{display:block}
.main-nav .menu .sub-menu a{display:block; padding:8px 18px; font-size:14.5px}
@media (max-width:1180px){ .mi > a,.main-nav .menu > li > a{padding-inline:8px; font-size:12px} }
@media (max-width:980px){ .main-nav{display:none} }

/* Menú móvil */
.side-bg{position:fixed; inset:0; background:rgba(15,20,30,.5); z-index:90}
.side{position:fixed; top:0; bottom:0; left:0; width:min(340px,88%); background:#fff; z-index:95; overflow:auto}
.side-head{display:flex; justify-content:space-between; align-items:center; padding:16px 18px; background:var(--navy); color:#fff; font:700 15px var(--h)}
.side-head button{border:0; background:none; color:#fff; font-size:26px; line-height:1; cursor:pointer}
.side details{border-bottom:1px solid var(--line)}
.side summary{padding:14px 18px; font:600 14px var(--h); text-transform:uppercase; letter-spacing:.03em; cursor:pointer}
.side ul{list-style:none; margin:0; padding:0 18px 12px 30px}
.side li a{display:block; padding:7px 0; font-size:14.5px}
.side .side-contact{padding:18px; font-size:14px; color:var(--muted)}
.side .side-contact b{display:block; color:var(--navy); font-size:17px}

/* Slider */
.slider{position:relative; background:var(--navy); overflow:hidden}
.slides{display:grid}
.slide{grid-area:1/1; opacity:0; visibility:hidden; transition:opacity .7s ease,visibility .7s; position:relative}
.slide.on{opacity:1; visibility:visible}
.slide > img{display:block; width:100%; height:clamp(340px,38vw,540px); object-fit:cover}
.slide-txt{position:absolute; inset:0; display:flex; align-items:center}
.slide-txt .wrap{width:100%; padding-inline:84px}
.slide-box{max-width:520px; color:#fff}
.kick{font:600 13px var(--h); letter-spacing:.2em; text-transform:uppercase; color:var(--goldl)}
.slide-box h2{font-size:clamp(28px,4.2vw,54px); font-weight:800; margin:12px 0 14px; text-transform:uppercase; color:#fff}
.slide-box p{font-size:17px; margin:0 0 24px; color:#E6EAF0; max-width:44ch}
.s-arrow{position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,.9); display:grid; place-items:center; z-index:3; cursor:pointer}
.s-arrow svg{width:18px; height:18px; stroke:var(--navy); fill:none; stroke-width:2.5}
.s-arrow.l{left:18px} .s-arrow.r{right:18px}
.dots{position:absolute; bottom:18px; left:0; right:0; display:flex; justify-content:center; gap:10px; z-index:3}
.dots button{width:11px; height:11px; border-radius:50%; border:2px solid #fff; background:transparent; padding:0; cursor:pointer}
.dots button.on{background:#fff}
@media (max-width:700px){ .s-arrow{display:none} .slide-txt .wrap{padding-inline:20px} .slide-txt{align-items:flex-end; padding-bottom:50px} .slide-box p{font-size:15px} }

/* Ventajas */
.perks{background:var(--soft); border-bottom:1px solid var(--line)}
.perks .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding-block:22px}
.perk{display:flex; gap:14px; align-items:center; justify-content:center}
.perk svg{width:38px; height:38px; stroke:var(--navy); fill:none; stroke-width:1.4; flex:none}
.perk b{display:block; font:700 14px var(--h); text-transform:uppercase; letter-spacing:.03em}
.perk span{font-size:13px; color:var(--muted)}
@media (max-width:900px){ .perks .wrap{grid-template-columns:repeat(2,1fr); gap:18px} .perk{justify-content:flex-start} }

/* Secciones portada */
.sec{padding-block:54px 10px}
.sec-title{text-align:center; margin-bottom:30px}
.sec-title h2{font-size:clamp(24px,2.6vw,32px); font-weight:800; text-transform:uppercase; letter-spacing:.02em; margin:0}
.sec-title h2::after{content:""; display:block; width:56px; height:3px; background:var(--gold); margin:14px auto 0}
.sec-title p{color:var(--muted); margin:12px auto 0; max-width:60ch}
.cats{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.catc{border:1px solid var(--line); background:#fff; text-align:center; border-radius:4px; overflow:hidden; transition:box-shadow .2s; display:block}
.catc:hover{box-shadow:0 12px 28px -12px rgba(20,30,50,.3); color:inherit}
.catc img{display:block; width:100%; aspect-ratio:4/3; object-fit:cover}
.catc .t{padding:14px 12px 16px; border-top:1px solid var(--line)}
.catc b{display:block; font:700 15.5px var(--h); text-transform:uppercase; letter-spacing:.03em}
.catc span{font-size:13px; color:var(--blue); font-weight:700}
@media (max-width:900px){ .cats{grid-template-columns:repeat(2,1fr); gap:12px} .catc b{font-size:13px} }
.promo{background:var(--navy); color:#fff; border-radius:4px; overflow:hidden; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; margin-top:54px}
.promo .tx{padding:40px 48px}
.promo h3{font-size:clamp(24px,3vw,38px); font-weight:800; text-transform:uppercase; margin:10px 0 12px; color:#fff}
.promo p{color:#D6DCE5; margin:0 0 22px; max-width:46ch}
.promo .code{display:inline-block; border:2px dashed var(--goldl); font:700 14px var(--h); letter-spacing:.12em; padding:6px 12px; margin-left:8px}
.promo img{display:block; width:100%; height:100%; min-height:240px; object-fit:cover}
@media (max-width:800px){ .promo{grid-template-columns:1fr} .promo .tx{padding:28px 22px} }
.brands{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.brandc{position:relative; border-radius:4px; overflow:hidden; display:block; background:var(--soft)}
.brandc img{display:block; width:100%; aspect-ratio:4/3.1; object-fit:cover}
.brandc .t{position:absolute; left:0; right:0; bottom:0; padding:22px; background:linear-gradient(transparent,rgba(15,22,34,.88)); color:#fff}
.brandc b{font:800 20px var(--h); text-transform:uppercase; display:block}
.brandc span{font-size:14px; color:#E3E7ED}
.brandc u{display:inline-block; margin-top:10px; font:700 12.5px var(--h); letter-spacing:.08em; text-transform:uppercase; text-decoration:none; border-bottom:2px solid var(--goldl); padding-bottom:2px}
@media (max-width:900px){ .brands{grid-template-columns:1fr} }
.about{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; background:var(--soft); border-radius:4px; padding:44px}
.about h2{font-size:clamp(24px,2.6vw,32px); font-weight:800; text-transform:uppercase}
.about p{color:#40464F}
.about .facts{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:22px}
.about .facts div{background:#fff; border-radius:4px; padding:14px; text-align:center}
.about .facts b{display:block; font:800 24px var(--h); color:var(--navy)}
.about .facts span{font-size:12.5px; color:var(--muted)}
.about img{border-radius:4px; display:block; width:100%; aspect-ratio:4/3; object-fit:cover}
@media (max-width:900px){ .about{grid-template-columns:1fr; padding:22px} }

/* Rejillas de producto (WooCommerce) */
ul.products{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
ul.products.columns-5{grid-template-columns:repeat(5,1fr)}
ul.products.columns-3{grid-template-columns:repeat(3,1fr)}
ul.products::before,ul.products::after{display:none}
@media (max-width:1200px){ ul.products.columns-5{grid-template-columns:repeat(4,1fr)} }
@media (max-width:1000px){ ul.products,ul.products.columns-5{grid-template-columns:repeat(3,1fr)} }
@media (max-width:760px){ ul.products,ul.products.columns-5,ul.products.columns-3{grid-template-columns:repeat(2,1fr); gap:10px} }
li.product.pc{background:#fff; border:1px solid var(--line); border-radius:4px; display:flex; flex-direction:column; position:relative; transition:box-shadow .2s,border-color .2s; margin:0; width:auto; float:none}
li.product.pc:hover{box-shadow:0 14px 30px -14px rgba(20,30,50,.35); border-color:#D2D7DD}
.pc .im{display:block; padding:8px; background:#fff}
.pc .im img{display:block; width:100%; aspect-ratio:1; object-fit:contain; margin:0}
.badges{position:absolute; top:10px; left:10px; display:flex; flex-direction:column; gap:5px; z-index:1}
.bdg{font:700 11.5px/1 var(--h); padding:5px 8px; border-radius:2px; color:#fff; background:var(--navy); letter-spacing:.03em}
.bdg.s{background:var(--sale)} .bdg.n{background:var(--blue)} .bdg.g{background:var(--gold)}
.pc .bd{padding:12px 14px 14px; display:flex; flex-direction:column; gap:6px; flex:1; border-top:1px solid var(--soft2)}
.pc .br{font:600 11px var(--h); color:var(--muted); letter-spacing:.08em; text-transform:uppercase}
.pc h3,.pc .woocommerce-loop-product__title{font:700 14.5px/1.35 var(--b); margin:0; padding:0}
.sw{display:flex; gap:4px; align-items:center; font-size:12px; color:var(--muted)}
.sw i{width:13px; height:13px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.pc .pr{margin-top:auto; padding-top:6px}
.price{font-family:var(--h); font-weight:800; font-size:20px; color:var(--ink)}
.price .desde{display:block; font:400 12px var(--b); color:var(--muted)}
.price del{color:var(--muted); font-weight:400; font-size:14px; font-family:var(--b); margin-right:6px}
.price ins{text-decoration:none; color:var(--sale)}
.stock-line{font-size:12.5px; color:var(--green); font-weight:700; display:flex; align-items:center; gap:5px}
.stock-line::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--green)}
.pc .button{margin-top:8px; padding:10px 12px; font-size:12px; width:100%}
.pc .button.product_type_variable{background:#fff; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy)}
.pc .button.product_type_variable:hover{background:var(--navy); color:#fff}
.pc .added_to_cart{display:block; text-align:center; font-size:13px; font-weight:700; color:var(--green); margin-top:6px}
@media (max-width:600px){ .pc .bd{padding:10px} .pc .woocommerce-loop-product__title{font-size:13px} .price{font-size:17px} .pc .button{font-size:11px; padding:9px 6px} }
/* carrusel */
.car{position:relative}
.car ul.products{display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:calc((100% - 64px)/5); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px}
.car ul.products::-webkit-scrollbar{display:none}
.car li.product{scroll-snap-align:start}
.car-btn{position:absolute; top:38%; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:#fff; display:grid; place-items:center; z-index:2; box-shadow:0 4px 12px rgba(0,0,0,.12); cursor:pointer}
.car-btn svg{width:16px; height:16px; stroke:var(--navy); fill:none; stroke-width:2.5}
.car-btn.l{left:-14px} .car-btn.r{right:-14px}
@media (max-width:1200px){ .car ul.products{grid-auto-columns:calc((100% - 48px)/4)} }
@media (max-width:760px){ .car ul.products{grid-auto-columns:calc((100% - 10px)/2); gap:10px} .car-btn{display:none} }

/* Migas, cabecera de categoría y filtros */
.woocommerce-breadcrumb{font-size:13px; color:var(--muted); padding-block:16px; margin:0}
.woocommerce-breadcrumb a{color:var(--muted)} .woocommerce-breadcrumb a:hover{color:var(--blue); text-decoration:underline}
.cat-head{background:var(--soft); border-radius:4px; padding:26px 30px; margin-bottom:24px}
.cat-head h1{font-size:clamp(24px,3vw,34px); font-weight:800; text-transform:uppercase; margin:0}
.cat-head .term-description{margin-top:8px; color:#4A515B; max-width:75ch}
.cat-head .term-description p{margin:0}
.subnav{display:flex; gap:8px; flex-wrap:wrap; margin-top:16px}
.subnav a{border:1px solid var(--line); background:#fff; border-radius:20px; padding:6px 14px; font-size:13.5px; font-weight:700}
.subnav a.on{background:var(--navy); border-color:var(--navy); color:#fff}
.layout{display:grid; grid-template-columns:260px 1fr; gap:28px; align-items:start; padding-bottom:40px}
.filters{border:1px solid var(--line); border-radius:4px; position:sticky; top:150px}
.fblock{border-bottom:1px solid var(--line); padding:16px 18px}
.fblock:last-child{border-bottom:0}
.fblock h4{font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px}
.fblock ul{list-style:none; margin:0; padding:0; display:grid; gap:2px}
.flink{display:flex; align-items:center; gap:10px; padding:5px 0; font-size:14px}
.flink .box{width:16px; height:16px; border:1.5px solid #B8BEC6; border-radius:3px; flex:none; display:grid; place-items:center}
.flink.on .box{background:var(--navy); border-color:var(--navy)}
.flink.on .box::after{content:""; width:8px; height:4px; border:2px solid #fff; border-top:0; border-right:0; transform:rotate(-45deg) translate(1px,-1px)}
.flink i{width:16px; height:16px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2); flex:none}
.flink em{margin-left:auto; font-style:normal; color:var(--muted); font-size:12.5px}
.flink.on{font-weight:700}
.filters .widget{padding:16px 18px; border-top:1px solid var(--line)}
.tbar{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:18px}
.woocommerce-result-count{font-size:14px; color:var(--muted); margin:0}
.woocommerce-ordering{margin:0}
.woocommerce-ordering select{border:1px solid var(--line); border-radius:4px; padding:9px 12px; background:#fff}
.ftoggle{display:none}
.woocommerce-pagination{margin-top:30px}
.woocommerce-pagination ul{list-style:none; display:flex; justify-content:center; gap:6px; padding:0; margin:0; border:0}
.woocommerce-pagination li{border:0}
.woocommerce-pagination a,.woocommerce-pagination span{display:grid; place-items:center; min-width:40px; height:40px; border:1px solid var(--line); border-radius:4px; font:700 14px var(--h)}
.woocommerce-pagination span.current{background:var(--navy); color:#fff; border-color:var(--navy)}
@media (max-width:980px){ .layout{grid-template-columns:1fr} .filters{position:static; display:none} .filters.open{display:block} .ftoggle{display:inline-flex} .cat-head{padding:20px} }

/* Ficha de producto */
.single-product div.product{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:44px; padding-bottom:30px; position:relative}
.single-product div.product > *{min-width:0}
.woocommerce-product-gallery{max-width:100%; overflow:hidden}
.woocommerce-product-gallery .flex-viewport{border:1px solid var(--line); border-radius:4px; background:#fff}
.woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper{border:0; border-radius:0}
.woocommerce-product-gallery__image a{display:block}
.woocommerce-product-gallery__image img{height:auto; max-width:100%}
.single-product div.product .woocommerce-product-gallery{grid-column:1; width:auto!important; float:none!important; position:relative; margin:0}
.single-product div.product .summary{grid-column:2; width:auto!important; float:none!important; margin:0}
.single-product div.product .woocommerce-tabs,.single-product div.product .related,.single-product div.product .upsells{grid-column:1/-1}
.woocommerce-product-gallery__wrapper{margin:0; border:1px solid var(--line); border-radius:4px; background:#fff}
.woocommerce-product-gallery__image img{display:block; width:100%}
.woocommerce-product-gallery .flex-control-thumbs{list-style:none; padding:0; margin:12px 0 0; display:flex; gap:8px; flex-wrap:wrap}
.woocommerce-product-gallery .flex-control-thumbs li{width:74px; cursor:pointer}
.woocommerce-product-gallery .flex-control-thumbs img{border:1px solid var(--line); border-radius:3px; opacity:.7}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active,.woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1; border-color:var(--navy)}
.woocommerce-product-gallery__trigger{position:absolute; top:12px; right:12px; z-index:3; background:#fff; border-radius:50%; width:38px; height:38px; display:grid; place-items:center; box-shadow:0 1px 4px rgba(0,0,0,.15); font-size:0}
.woocommerce-product-gallery__trigger::before{content:"⤢"; font-size:18px}
.single-product .onsale{position:absolute; top:12px; left:12px; z-index:3; background:var(--sale); color:#fff; font:700 12px var(--h); padding:5px 9px; border-radius:2px}
.summary .p-brand{font:700 12.5px var(--h); letter-spacing:.1em; color:var(--gold); text-transform:uppercase}
.summary .product_title{font-size:clamp(22px,2.4vw,30px); font-weight:700; margin:8px 0 10px}
.summary .p-ref{font-size:13px; color:var(--muted); display:flex; gap:16px; flex-wrap:wrap; margin-bottom:6px}
.summary > .price{display:block; border-top:1px solid var(--line); padding-top:18px; margin:12px 0 4px; font-size:34px}
.summary .p-iva{font-size:13px; color:var(--muted)}
.summary .p-plazos{font-size:13.5px; background:#EAF3FE; border:1px solid #C8DFFA; border-radius:4px; padding:9px 12px; margin:10px 0 18px}
.woocommerce-product-details__short-description{color:#40464F; border-top:1px solid var(--line); padding-top:16px}
table.variations{width:100%; border-collapse:collapse; margin-bottom:10px}
table.variations th,table.variations td{display:block; text-align:left; padding:0}
table.variations th label{font:700 13px var(--h); text-transform:uppercase; letter-spacing:.04em; display:block; margin:14px 0 10px}
table.variations select{border:1px solid var(--line); border-radius:4px; padding:10px 12px; min-width:220px}
.reset_variations{font-size:13px; color:var(--muted); display:inline-block; margin-top:8px}
.msw{display:flex; flex-wrap:wrap; gap:8px}
.msw button{border:1px solid var(--line); background:#fff; border-radius:4px; cursor:pointer; font-size:13.5px; color:var(--ink)}
.msw-color button{padding:6px 12px 6px 6px; display:flex; align-items:center; gap:8px}
.msw-color i{width:26px; height:26px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),inset -4px -5px 8px rgba(0,0,0,.15),inset 3px 4px 6px rgba(255,255,255,.4)}
.msw-text button{padding:9px 14px; font-weight:700; min-width:74px}
.msw button.on{border:2px solid var(--navy); font-weight:700}
.msw-color button.on{padding:5px 11px 5px 5px} .msw-text button.on{padding:8px 13px; background:var(--soft)}
.msw button:disabled{opacity:.35; text-decoration:line-through; cursor:not-allowed}
.single_variation_wrap .woocommerce-variation-price .price{font-size:28px}
.woocommerce-variation-availability p{margin:4px 0}
form.cart{display:flex; flex-wrap:wrap; gap:12px; align-items:stretch; margin-top:16px}
form.variations_form{display:block}
.woocommerce-variation-add-to-cart{display:flex; flex-wrap:wrap; gap:12px; margin-top:14px}
.quantity .qty{width:84px; height:50px; border:1px solid var(--line); border-radius:4px; text-align:center; font-weight:700; font-size:16px}
.single_add_to_cart_button{flex:1; min-width:200px; padding-block:15px!important; font-size:14px!important}
.p-avail{display:grid; gap:10px; margin-top:22px; border:1px solid var(--line); border-radius:4px; padding:16px}
.p-avail div{display:flex; gap:12px; align-items:flex-start; font-size:14px}
.p-avail svg{width:22px; height:22px; stroke:var(--navy); fill:none; stroke-width:1.6; flex:none}
.p-avail small{color:var(--muted); font-size:13px}
.product_meta{font-size:13px; color:var(--muted); margin-top:18px; display:grid; gap:4px}
.woocommerce-tabs{border-top:1px solid var(--line); margin-top:10px}
.woocommerce-tabs ul.tabs{list-style:none; display:flex; gap:0; border-bottom:1px solid var(--line); padding:0; margin:0; overflow-x:auto}
.woocommerce-tabs ul.tabs li{margin:0}
.woocommerce-tabs ul.tabs li a{display:block; padding:16px 20px; font:700 13.5px var(--h); text-transform:uppercase; letter-spacing:.04em; color:var(--muted); border-bottom:3px solid transparent; white-space:nowrap}
.woocommerce-tabs ul.tabs li.active a{color:var(--ink); border-bottom-color:var(--navy)}
.woocommerce-tabs .panel{padding:24px 0 10px; max-width:900px}
.woocommerce-tabs .panel > h2:first-child{display:none}
.materbo-specs,.woocommerce-product-attributes{width:100%; border-collapse:collapse; font-size:14.5px}
.materbo-specs tr:nth-child(odd),.woocommerce-product-attributes tr:nth-child(odd){background:var(--soft)}
.materbo-specs th,.materbo-specs td,.woocommerce-product-attributes th,.woocommerce-product-attributes td{padding:11px 14px; text-align:left; vertical-align:top}
.materbo-specs th,.woocommerce-product-attributes th{width:38%}
.woocommerce-product-attributes td p{margin:0}
.related > h2,.upsells > h2,.cross-sells > h2{text-align:center; font-size:26px; text-transform:uppercase; font-weight:800; margin:40px 0 24px}
@media (max-width:900px){ .single-product div.product{grid-template-columns:minmax(0,1fr); gap:24px} .single-product div.product .summary,.single-product div.product .woocommerce-product-gallery{grid-column:1} }

/* Avisos */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none; margin:0 0 20px; padding:14px 18px; border-radius:4px; border-left:4px solid var(--green); background:#EEF7F1; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center}
.woocommerce-info{border-color:var(--blue); background:#EEF4FA}
.woocommerce-error{border-color:var(--sale); background:#FDEEEE; display:block}
.woocommerce-message .button,.woocommerce-info .button{padding:9px 16px; order:2}

/* Carrito y checkout clásicos */
table.shop_table{width:100%; border-collapse:collapse; margin-bottom:24px}
table.shop_table th{text-align:left; font:700 12px var(--h); text-transform:uppercase; letter-spacing:.06em; color:var(--muted); padding:12px 10px; border-bottom:2px solid var(--line)}
table.shop_table td{padding:14px 10px; border-bottom:1px solid var(--line); vertical-align:middle}
table.shop_table img{width:80px; border:1px solid var(--line); border-radius:3px}
.cart-collaterals .cart_totals{border:1px solid var(--line); border-radius:4px; padding:22px; max-width:440px; margin-left:auto}
.cart_totals h2{font-size:16px; text-transform:uppercase}
.woocommerce-checkout .col2-set{display:grid; grid-template-columns:1fr 1fr; gap:30px}
.woocommerce form .form-row{margin:0 0 14px; display:flex; flex-direction:column; gap:5px}
.woocommerce form .form-row label{font-size:13px; font-weight:700}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row select,.woocommerce form .form-row textarea{border:1px solid #CDD2D8; border-radius:4px; padding:11px 12px; width:100%; background:#fff}
#order_review,.woocommerce-checkout-review-order{border:1px solid var(--line); border-radius:4px; padding:20px}
@media (max-width:800px){ .woocommerce-checkout .col2-set{grid-template-columns:1fr} }
.wc-block-cart,.wc-block-checkout{padding-bottom:40px}

/* Páginas y contenido */
.page-wrap{padding-bottom:50px}
.page-head{background:var(--soft); padding:34px 0; margin-bottom:34px}
.page-head h1{font-size:clamp(26px,3.2vw,38px); font-weight:800; text-transform:uppercase; margin:0}
.page-head .woocommerce-breadcrumb{padding:0 0 10px}
.info-layout{display:grid; grid-template-columns:260px 1fr; gap:40px; align-items:start}
.info-nav{border:1px solid var(--line); border-radius:4px; position:sticky; top:150px}
.info-nav h4{margin:0; padding:14px 18px; background:var(--navy); color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.08em; border-radius:4px 4px 0 0}
.info-nav ul{list-style:none; margin:0; padding:8px 0}
.info-nav a{display:block; padding:9px 18px; font-size:14.5px; border-left:3px solid transparent}
.info-nav a.on{border-left-color:var(--gold); background:var(--soft); font-weight:700}
.entry{max-width:820px}
.entry h2{font-size:21px; margin-top:34px; text-transform:uppercase; letter-spacing:.02em}
.entry h3{font-size:17px; margin-top:24px}
.entry p,.entry li{color:#343A42}
.entry table{width:100%; border-collapse:collapse; margin:18px 0; font-size:14.5px}
.entry th,.entry td{border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top}
.entry th{background:var(--soft)}
.entry mark{background:#FFF1B8; padding:0 3px}
.entry details{border:1px solid var(--line); border-radius:4px; margin-bottom:10px}
.entry summary{padding:14px 18px; font-weight:700; cursor:pointer}
.entry details > div{padding:0 18px 14px}
.contact-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:20px 0 30px}
.contact-cards div{border:1px solid var(--line); border-radius:4px; padding:18px; text-align:center}
.contact-cards b{display:block; font:700 13px var(--h); text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:6px}
.contact-cards a,.contact-cards span{font:800 17px var(--h); color:var(--navy)}
@media (max-width:900px){ .info-layout{grid-template-columns:1fr} .info-nav{position:static} .contact-cards{grid-template-columns:1fr} }

/* Pie */
.follow{background:var(--navy2); color:#fff; margin-top:60px}
.follow .wrap{display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; padding-block:30px}
.follow h3{font-size:22px; font-weight:800; text-transform:uppercase; margin:0; color:#fff}
.follow p{margin:6px 0 0; color:#C9D1DC; font-size:14px}
.follow .acts{display:flex; gap:10px; flex-wrap:wrap}
@media (max-width:800px){ .follow .wrap{grid-template-columns:1fr} }
.site-footer{background:var(--navy); color:#C9D1DC; font-size:14px}
.site-footer a:hover{color:#fff; text-decoration:underline}
.fgrid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:34px; padding-block:48px 36px}
.fgrid h4{color:#fff; font-size:13px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px}
.fgrid ul{list-style:none; margin:0; padding:0; display:grid; gap:9px}
.flogo img{height:70px; width:auto}
.fcontact{display:grid; gap:8px; margin-top:18px}
.fcontact span,.fcontact a{display:flex; gap:9px; align-items:center}
.fcontact svg{width:16px; height:16px; stroke:var(--goldl); fill:none; stroke-width:2; flex:none}
.fbottom{border-top:1px solid rgba(255,255,255,.12); padding-block:18px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px}
.paylogos{display:flex; gap:6px; flex-wrap:wrap}
.paylogos i{font:800 10.5px var(--h); font-style:normal; background:#fff; color:var(--navy); padding:4px 7px; border-radius:3px; letter-spacing:.03em}
@media (max-width:900px){ .fgrid{grid-template-columns:1fr 1fr} .fgrid > div:first-child{grid-column:1/-1} }
.wa-float{position:fixed; right:18px; bottom:18px; z-index:60; width:56px; height:56px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 6px 18px rgba(0,0,0,.25)}
.wa-float svg{width:30px; height:30px; fill:#fff}
.wa-float:hover{transform:scale(1.05)}

/* 404 y búsqueda */
.notfound{text-align:center; padding:60px 20px}
.notfound h1{font-size:72px; color:var(--navy); margin:0}
@media (prefers-reduced-motion: reduce){ *{transition:none!important; scroll-behavior:auto!important} }
