/* ══════════════════════════════════════════════════════
   eSol Energías — esol.css
   Versión: 2.0.0
   Paleta: Carbón oscuro + Gold #C49825 + Crema
   Tipografía: Cinzel (headings) + Josefin Sans (body)
══════════════════════════════════════════════════════ */

/* ── CSS TOKENS ── */
:root {
  --bg1:#141410; --bg2:#1C1C17; --bg3:#252520;
  --bgborder:#2E2E28; --bg5:#3A3A32;
  --tx:#F0EFE8; --txmuted:#9A9A8A; --txdim:#6A6A5E;
  --gold:#C49825; --gold-l:#D4AE3A; --gold-d:#8B6C1A; --gold-txt:#C49825;
  --nav-bg:rgba(20,20,16,0);
  --nav-scrolled:rgba(20,20,16,.97);
  --input-bg:#252520;
  --hero-overlay:radial-gradient(ellipse at 70% 50%,rgba(30,28,22,.3) 0%,rgba(20,20,16,.85) 100%);
  --card-lbl:rgba(20,20,16,.90);
  --sb-track:#141410;
  --shadow:rgba(0,0,0,.5);
  --topo-stroke:rgba(196,152,37,.07);
}
html[data-theme="light"] {
  --bg1:#F9F8F3; --bg2:#F1F0E9; --bg3:#E9E8E0;
  --bgborder:#D5D4CB; --bg5:#C5C4BB;
  --tx:#1C1C17; --txmuted:#4A4A40; --txdim:#5E5E54;
  --gold:#C49825; --gold-l:#D4AE3A; --gold-d:#8B6C1A;
  --gold-txt:#7A5C00;
  --nav-bg:rgba(249,248,243,0);
  --nav-scrolled:rgba(249,248,243,.97);
  --input-bg:#fff;
  --hero-overlay:radial-gradient(ellipse at 70% 50%,rgba(249,248,243,.05) 0%,rgba(249,248,243,.35) 100%);
  --card-lbl:rgba(249,248,243,.93);
  --sb-track:#F1F0E9;
  --shadow:rgba(0,0,0,.12);
  --topo-stroke:rgba(122,92,0,.10);
}

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Josefin Sans',sans-serif;
  background:var(--bg1);
  color:var(--tx);
  -webkit-font-smoothing:antialiased;
  transition:background-color .35s ease,color .35s ease;
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3,h4{font-family:'Cinzel',serif;line-height:1.2;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--sb-track);}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px;}

/* ── CONTAINER ── */
.container{max-width:1280px;margin:0 auto;padding:0 1.5rem;}
@media(min-width:1024px){.container{padding:0 3rem;}}

/* ── SECTION ── */
.section{padding:5rem 0;}
@media(min-width:1024px){.section{padding:6rem 0;}}

/* ── BACKGROUNDS ── */
.sect-bg1{background-color:var(--bg1);}
.sect-bg2{background-color:var(--bg2);}
.sect-bg3{background-color:var(--bg3);}

/* ── GOLD LINE ── */
.gold-line{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}

/* ── SECTION LABEL ── */
.section-label{
  font-family:'Josefin Sans',sans-serif;
  font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-txt);display:block;
}

/* ── SECTION HEADER ── */
.section-header{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:4rem;}
@media(min-width:768px){.section-header{flex-direction:row;align-items:flex-end;justify-content:space-between;}}
.section-title{font-family:'Cinzel',serif;font-size:clamp(1.75rem,3vw,2.5rem);color:var(--tx);margin-top:.75rem;}
.section-intro{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.9rem;line-height:1.7;max-width:22rem;letter-spacing:.02em;}

/* ── BODY TEXT ── */
.body-text{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.9rem;line-height:1.7;letter-spacing:.03em;}

/* ── GOLD GRADIENT TEXT ── */
.text-gold-gradient{
  background:linear-gradient(135deg,var(--gold-txt) 0%,var(--gold-l) 50%,var(--gold-txt) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

/* ── TOPO BG ── */
.topo-bg{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='rgba(196%2C152%2C37%2C0.07)' stroke-width='1'%3E%3Cellipse cx='150' cy='300' rx='60' ry='220'/%3E%3Cellipse cx='150' cy='300' rx='100' ry='270'/%3E%3Cellipse cx='150' cy='300' rx='140' ry='310'/%3E%3Cellipse cx='150' cy='300' rx='180' ry='340'/%3E%3Cellipse cx='150' cy='300' rx='220' ry='365'/%3E%3Cellipse cx='150' cy='300' rx='260' ry='385'/%3E%3Cellipse cx='150' cy='300' rx='300' ry='400'/%3E%3C/g%3E%3C/svg%3E");
  background-position:left center;background-repeat:no-repeat;background-size:55% auto;
}
html[data-theme="light"] .topo-bg{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='rgba(122%2C92%2C0%2C0.10)' stroke-width='1'%3E%3Cellipse cx='150' cy='300' rx='60' ry='220'/%3E%3Cellipse cx='150' cy='300' rx='100' ry='270'/%3E%3Cellipse cx='150' cy='300' rx='140' ry='310'/%3E%3Cellipse cx='150' cy='300' rx='180' ry='340'/%3E%3Cellipse cx='150' cy='300' rx='220' ry='365'/%3E%3Cellipse cx='150' cy='300' rx='260' ry='385'/%3E%3Cellipse cx='150' cy='300' rx='300' ry='400'/%3E%3C/g%3E%3C/svg%3E");
}

/* ══════════════════════════════════════════════
   LOGO ADAPTATIVO DARK / LIGHT + TAMAÑO
   El alto real se inyecta via wp_add_inline_style
   según esol_logo_height del Customizer.
══════════════════════════════════════════════ */
.logo-img {
  max-height: 44px;   /* fallback — sobreescrito por inline style */
  width: auto;
  display: block;
  object-fit: contain;
  transition: max-height .3s ease;
}
.logo-footer { max-height: 36px; }   /* fallback — sobreescrito por inline style (82% del navbar) */

/* Contenedor del logo en el footer — necesario para el selector de filtro CSS */
.footer-logo-wrap { display: inline-flex; }

/* Icono SVG por defecto: hereda tamaño del contenedor */
.nav-logo svg:first-child {
  width: 44px; height: 44px;   /* fallback */
  flex-shrink: 0;
  transition: width .3s, height .3s;
}

/* Dark mode → logo para fondo oscuro */
.site-logo-dark  { display: block; }
.site-logo-light { display: none;  }
/* Light mode → logo para fondo claro */
html[data-theme="light"] .site-logo-dark  { display: none;  }
html[data-theme="light"] .site-logo-light { display: block; }

/* ══════════════════════════════════════════════
   NAVBAR
══════════════════════════════════════════════ */
#navbar{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:var(--nav-bg);
  transition:background .3s ease,box-shadow .3s ease;
  padding:1.25rem 0;
}
.nav-container{
  max-width:1280px;margin:0 auto;padding:0 1.5rem;
  display:flex;align-items:center;justify-content:space-between;
}
@media(min-width:1024px){.nav-container{padding:0 3rem;}}
.nav-scrolled{background:var(--nav-scrolled)!important;box-shadow:0 1px 0 rgba(196,152,37,.2);}

/* Logo */
.nav-logo{display:flex;align-items:center;gap:.75rem;cursor:pointer;}
.logo-name{font-family:'Cinzel',serif;font-size:1.15rem;color:var(--tx);letter-spacing:.2em;line-height:1;display:block;transition:color .3s;}
.logo-sub{font-family:'Josefin Sans',sans-serif;font-size:.6rem;color:var(--txmuted);letter-spacing:.35em;font-weight:300;display:block;margin-top:.2rem;transition:color .3s;}

/* Nav links */
.nav-links{display:none;gap:2.5rem;}
@media(min-width:1024px){.nav-links{display:flex;align-items:center;}}
.nav-link{font-family:'Josefin Sans',sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--txmuted);transition:color .2s;cursor:pointer;}
.nav-link:hover{color:var(--gold-txt);}

/* Actions */
.nav-actions{display:flex;align-items:center;gap:.75rem;}

/* CTA button */
.btn-cotizar{
  display:none;
  font-family:'Josefin Sans',sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--gold);color:var(--gold);
  padding:.6rem 1.5rem;cursor:pointer;
  transition:background .3s,color .3s;
}
@media(min-width:640px){.btn-cotizar{display:inline-flex;align-items:center;}}
.btn-cotizar:hover{background:var(--gold);color:var(--bg1);}
.btn-cotizar.mobile{display:flex;justify-content:center;margin-top:.5rem;padding:.75rem 1.5rem;}

/* Theme toggle */
#themeToggle{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border:1px solid var(--bgborder);
  color:var(--txmuted);cursor:pointer;background:transparent;
  transition:border-color .2s,color .2s;
  flex-shrink:0;
}
#themeToggle:hover{border-color:var(--gold-txt);color:var(--gold-txt);}
#icon-moon{display:block;}
#icon-sun{display:none;}
html[data-theme="light"] #icon-moon{display:none;}
html[data-theme="light"] #icon-sun{display:block;}

/* Hamburger */
.nav-hamburger{
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;color:var(--txmuted);
  cursor:pointer;padding:.25rem;
}
@media(min-width:1024px){.nav-hamburger{display:none;}}

/* Mobile menu */
#mobileMenu{
  border-top:1px solid rgba(196,152,37,.15);
  margin-top:1rem;padding:1rem 1.5rem 1rem;
  display:flex;flex-direction:column;gap:1rem;
  background:var(--nav-scrolled);
}
#mobileMenu[hidden]{display:none!important;}
@media(min-width:1024px){#mobileMenu{display:none!important;}}

/* ══════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════ */
.btn-gold{
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;
  background:var(--gold);color:var(--bg1);
  font-family:'Josefin Sans',sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  padding:1rem 2rem;cursor:pointer;border:none;
  transition:background .3s;
}
.btn-gold:hover{background:var(--gold-l);}
.btn-gold.btn-full{width:100%;}
.btn-outline{
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;
  border:1px solid var(--txmuted);color:var(--txmuted);
  font-family:'Josefin Sans',sans-serif;font-size:.7rem;
  letter-spacing:.1em;text-transform:uppercase;
  padding:1rem 2rem;cursor:pointer;background:transparent;
  transition:border-color .3s,color .3s;
}
.btn-outline:hover{border-color:var(--gold-txt);color:var(--gold-txt);}
.link-arrow{
  display:inline-flex;align-items:center;gap:.75rem;
  color:var(--gold-txt);
  font-family:'Josefin Sans',sans-serif;font-size:.7rem;
  letter-spacing:.1em;text-transform:uppercase;
  transition:gap .2s;cursor:pointer;
}
.link-arrow:hover{gap:1.25rem;}

/* ══════════════════════════════════════════════
   WHATSAPP FLOAT
══════════════════════════════════════════════ */
.wa-btn{
  position:fixed;bottom:28px;right:28px;z-index:100;
  width:56px;height:56px;background:#25D366;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.35);
  transition:transform .2s,box-shadow .2s;
}
.wa-btn:hover{transform:scale(1.1);box-shadow:0 6px 28px rgba(37,211,102,.55);}

/* ══════════════════════════════════════════════
   REVEAL ANIMATIONS
══════════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease;}
.reveal.up{opacity:1;transform:translateY(0);}
.reveal-left{opacity:0;transform:translateX(-28px);transition:opacity .8s ease,transform .8s ease;}
.reveal-left.up{opacity:1;transform:translateX(0);}

/* ══════════════════════════════════════════════
   HERO
══════════════════════════════════════════════ */
.hero-section{
  position:relative;min-height:100vh;
  display:flex;align-items:center;overflow:hidden;
  background-color:var(--bg1);
}
.hero-overlay{
  position:absolute;inset:0;
  background:var(--hero-overlay);
  pointer-events:none;
}
.hero-accent-line{
  position:absolute;left:0;top:0;bottom:0;width:1px;
  background:linear-gradient(180deg,transparent 0%,rgba(196,152,37,.4) 30%,rgba(196,152,37,.4) 70%,transparent 100%);
}
.hero-inner{position:relative;z-index:1;padding-top:7rem;padding-bottom:5rem;width:100%;}
.hero-grid{display:grid;gap:4rem;align-items:center;}
@media(min-width:1024px){.hero-grid{grid-template-columns:1fr 1fr;}}
.hero-title{font-family:'Cinzel',serif;font-size:clamp(2.25rem,4.5vw,3.75rem);color:var(--tx);line-height:1.1;margin:.75rem 0 1.5rem;}
.hero-divider{max-width:80px;margin-bottom:1.75rem;}
.hero-desc{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.95rem;line-height:1.75;max-width:32rem;margin-bottom:2.5rem;letter-spacing:.03em;}
.hero-ctas{display:flex;flex-direction:column;gap:1rem;margin-bottom:4rem;}
@media(min-width:480px){.hero-ctas{flex-direction:row;}}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);}
.stat{padding:.5rem 0;}
.stats-divider{border-left:1px solid var(--bgborder);border-right:1px solid var(--bgborder);padding-left:1.5rem;padding-right:1.5rem;}
.stat-num{font-family:'Cinzel',serif;font-size:1.4rem;color:var(--gold-txt);display:block;margin-bottom:.25rem;}
.stat-lbl{font-family:'Josefin Sans',sans-serif;font-size:.6rem;color:var(--txdim);letter-spacing:.15em;text-transform:uppercase;}
.hero-img-wrap{display:none;position:relative;}
@media(min-width:1024px){.hero-img-wrap{display:block;}}
.scroll-hint{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  opacity:.4;
}
.scroll-hint span{font-family:'Josefin Sans',sans-serif;font-size:.55rem;color:var(--txmuted);letter-spacing:.15em;text-transform:uppercase;}
.scroll-line{width:1px;height:2rem;background:var(--txmuted);animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.4;}50%{opacity:1;}}

/* ── Frame / corners ── */
.frame-border{position:relative;border:1px solid var(--bgborder);padding:4px;}
.frame-border img{width:100%;height:480px;object-fit:cover;filter:grayscale(15%);}
.frame-border--sm img{height:450px;}
.frame-label{
  position:absolute;bottom:0;left:0;right:0;padding:1.5rem;
  background:linear-gradient(transparent,var(--card-lbl));
  display:flex;align-items:center;gap:.75rem;
}
.frame-label-bar{width:1px;height:2rem;background:var(--gold);opacity:.8;}
.frame-label span{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--tx);letter-spacing:.2em;font-size:.85rem;text-transform:uppercase;}
.frame-label-bottom{
  position:absolute;bottom:0;left:0;padding:1.25rem;
}
.ante-lbl-bg{background-color:var(--card-lbl);}
.ante-lbl-inner{border-left:2px solid var(--gold-txt);padding:.75rem 1rem;}
.ante-lbl-sub{font-family:'Josefin Sans',sans-serif;font-size:.6rem;color:var(--txdim);letter-spacing:.15em;text-transform:uppercase;display:block;margin-bottom:.2rem;}
.ante-lbl-main{font-family:'Josefin Sans',sans-serif;font-weight:600;color:var(--tx);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;}
.corner{position:absolute;width:24px;height:24px;border-color:rgba(196,152,37,.6)!important;border-style:solid;}
.corner.tl{top:-8px;left:-8px;border-width:1px 0 0 1px;}
.corner.tr{top:-8px;right:-8px;border-width:1px 1px 0 0;}
.corner.bl{bottom:-8px;left:-8px;border-width:0 0 1px 1px;}
.corner.br{bottom:-8px;right:-8px;border-width:0 1px 1px 0;}
.corner.corner--lg{width:32px;height:32px;border-width:2px 0 0 2px;}
.corner.corner--lg.tr{border-width:2px 2px 0 0;}
.corner.corner--lg.bl{border-width:0 0 2px 2px;}

/* ══════════════════════════════════════════════
   SERVICIOS
══════════════════════════════════════════════ */
.services-grid{display:grid;gap:1px;background:var(--bgborder);}
@media(min-width:768px){.services-grid{grid-template-columns:1fr 1fr;}}
.service-card{padding:2.5rem;cursor:pointer;border:1px solid transparent;transition:border-color .3s,transform .3s,box-shadow .3s;}
.service-card:hover{border-color:rgba(196,152,37,.45);transform:translateY(-4px);box-shadow:0 20px 50px var(--shadow);}
.service-card h3{font-family:'Cinzel',serif;font-size:1.4rem;color:var(--tx);margin:.75rem 0 1rem;line-height:1.3;transition:color .3s;}
.service-card:hover h3{color:var(--gold-txt);}
.service-card p{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.875rem;line-height:1.7;margin-bottom:1.75rem;letter-spacing:.02em;}
.service-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2.5rem;}
.service-list li{
  font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.875rem;
  letter-spacing:.02em;padding-left:1.25rem;position:relative;
}
.service-list li::before{content:'—';color:var(--gold-txt);position:absolute;left:0;}
@media(min-width:1024px){.service-card{padding:3.5rem;}}

/* ══════════════════════════════════════════════
   TWO-COL GRID
══════════════════════════════════════════════ */
.two-col-grid{display:grid;gap:4rem;align-items:start;}
@media(min-width:1024px){.two-col-grid{grid-template-columns:1fr 1fr;align-items:center;}}

/* ══════════════════════════════════════════════
   STEPS
══════════════════════════════════════════════ */
.steps{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2.5rem;}
.step{display:flex;align-items:flex-start;gap:1.25rem;}
.step-num{
  flex-shrink:0;width:40px;height:40px;
  border:1px solid rgba(196,152,37,.35);
  display:flex;align-items:center;justify-content:center;
}
.step-num span{font-family:'Cinzel',serif;color:var(--gold-txt);font-size:.85rem;}
.step strong{font-family:'Josefin Sans',sans-serif;font-weight:600;color:var(--tx);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.3rem;}
.step p{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.875rem;letter-spacing:.02em;}

/* ══════════════════════════════════════════════
   PRODUCTOS
══════════════════════════════════════════════ */
.cat-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--bgborder);margin-bottom:1px;
}
@media(min-width:640px){.cat-grid{grid-template-columns:repeat(4,1fr);}}
.cat-item{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;cursor:pointer;transition:background-color .2s;}
.cat-item:hover{background-color:var(--bg3);}
.cat-icon{color:var(--gold-txt);opacity:.7;transition:opacity .2s;}
.cat-item:hover .cat-icon{opacity:1;}
.cat-item strong{font-family:'Josefin Sans',sans-serif;font-weight:600;color:var(--tx);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;display:block;}
.cat-item span{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txdim);font-size:.75rem;}

.products-grid{display:grid;gap:1px;background:var(--bgborder);}
@media(min-width:640px){.products-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.products-grid{grid-template-columns:repeat(4,1fr);}}
.product-card{overflow:hidden;cursor:pointer;transition:transform .3s;background:var(--bg2);}
.product-card:hover{transform:translateY(-5px);}
.product-img-wrap{overflow:hidden;height:208px;}
.product-img{width:100%;height:100%;object-fit:cover;filter:grayscale(15%);transition:transform .5s ease,filter .5s ease;}
.product-card:hover .product-img{transform:scale(1.05);filter:grayscale(0);}
.product-info{padding:1.5rem;border-top:1px solid var(--bgborder);}
.product-brand{font-family:'Josefin Sans',sans-serif;font-size:.7rem;color:var(--gold-d);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.5rem;}
.product-name{font-family:'Josefin Sans',sans-serif;font-weight:600;color:var(--tx);font-size:.875rem;line-height:1.4;letter-spacing:.03em;margin-bottom:.75rem;}
.product-footer{display:flex;align-items:center;justify-content:space-between;}
.product-footer span{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;}
.product-arrow{color:var(--gold-txt);transition:color .2s;display:flex;}
.product-arrow:hover{color:var(--gold-l);}

/* ── Pestañas de grupos (modo WooCommerce) ───────────────────── */
.prod-tabs{
  display:flex;flex-wrap:wrap;gap:.5rem;
  margin-bottom:2rem;
}
.prod-tab-btn{
  font-family:'Josefin Sans',sans-serif;
  font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--txmuted);
  background:transparent;
  border:1px solid var(--bgborder);
  padding:.5rem 1.25rem;
  border-radius:2px;
  cursor:pointer;
  transition:color .2s,border-color .2s,background .2s;
  white-space:nowrap;
}
.prod-tab-btn:hover{color:var(--tx);border-color:var(--bg5);}
.prod-tab-btn.active{
  color:var(--gold-txt);
  border-color:var(--gold);
  background:rgba(196,152,37,.06);
}
.prod-tab-panel{display:none;}
.prod-tab-panel.active{display:block;}

/* ── SKU en tarjeta WooCommerce ──────────────────────────────── */
.product-sku{
  font-family:'Josefin Sans',sans-serif;
  font-size:.65rem;color:var(--txdim);
  letter-spacing:.08em;margin-bottom:.5rem;
}

/* ── Precio WooCommerce ──────────────────────────────────────── */
.wc-price,.wc-price *{
  font-family:'Josefin Sans',sans-serif;
  font-size:.75rem;font-weight:600;
  color:var(--gold-txt);
  letter-spacing:.03em;
}
.wc-price del{opacity:.5;font-weight:300;margin-right:.25rem;}
.wc-price ins{text-decoration:none;}

/* ── Placeholder sin imagen ──────────────────────────────────── */
.product-img-placeholder{
  height:208px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg3);color:var(--bg5);
}

/* ── Estado vacío (categoría sin productos) ──────────────────── */
.prod-empty{
  text-align:center;
  padding:4rem 2rem;
  color:var(--txmuted);
  display:flex;flex-direction:column;align-items:center;gap:1rem;
}
.prod-empty svg{opacity:.3;}
.prod-empty p{font-size:.875rem;}
.prod-empty strong{color:var(--tx);}

/* ══════════════════════════════════════════════
   MARCAS
══════════════════════════════════════════════ */
.marcas-section{border-top:1px solid var(--bgborder);border-bottom:1px solid var(--bgborder);}
.brands-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--bgborder);margin-top:3rem;
}
@media(min-width:640px){.brands-grid{grid-template-columns:repeat(4,1fr);}}
@media(min-width:1024px){.brands-grid{grid-template-columns:repeat(6,1fr);}}
.brand-item{
  padding:1.25rem 1.5rem;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg1);cursor:pointer;
  transition:background .2s;
}
.brand-item:hover{background:var(--bg3);}
.brand-item span{
  font-family:'Cinzel',serif;color:var(--txmuted);
  font-size:.65rem;letter-spacing:.15em;
  transition:color .2s;
}
.brand-item:hover span{color:var(--gold-txt);}

/* ══════════════════════════════════════════════
   DIFERENCIADORES
══════════════════════════════════════════════ */
.diffs-grid{display:grid;gap:3rem;}
@media(min-width:640px){.diffs-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.diffs-grid{grid-template-columns:repeat(3,1fr);}}
.diff-item{}
.diff-num{font-family:'Cinzel',serif;color:var(--gold-txt);font-size:2.5rem;opacity:.35;margin-bottom:1rem;}
.diff-item strong{font-family:'Josefin Sans',sans-serif;font-weight:600;color:var(--tx);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.75rem;}
.diff-item p{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txmuted);font-size:.875rem;line-height:1.7;letter-spacing:.02em;}

/* ══════════════════════════════════════════════
   CONTACTO
══════════════════════════════════════════════ */
.contact-list{display:flex;flex-direction:column;gap:1.5rem;}
.contact-item{display:flex;align-items:center;gap:1.25rem;}
.contact-icon{
  width:48px;height:48px;flex-shrink:0;
  border:1px solid var(--bgborder);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-txt);
}
.contact-label{font-family:'Josefin Sans',sans-serif;font-size:.65rem;color:var(--txdim);letter-spacing:.15em;text-transform:uppercase;display:block;margin-bottom:.2rem;}
.contact-value{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--tx);font-size:.9rem;transition:color .2s;}
a.contact-value:hover{color:var(--gold-txt);}

/* Form card */
.form-card{border:1px solid var(--bgborder);padding:2rem;}
@media(min-width:1024px){.form-card{padding:2.5rem;}}
.form-card h3{font-family:'Cinzel',serif;font-size:1.1rem;color:var(--tx);letter-spacing:.08em;margin-bottom:2rem;}
.form-row{display:grid;gap:1rem;margin-bottom:1rem;}
@media(min-width:480px){.form-row{grid-template-columns:1fr 1fr;}}
.form-field{margin-bottom:1rem;}
.form-field label{
  display:block;font-family:'Josefin Sans',sans-serif;font-size:.65rem;
  color:var(--txdim);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.5rem;
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;background-color:var(--input-bg);border:1px solid var(--bgborder);
  color:var(--tx);font-family:'Josefin Sans',sans-serif;font-weight:300;font-size:.9rem;
  padding:.75rem 1rem;letter-spacing:.02em;
  transition:background-color .3s,border-color .3s,color .3s;
  appearance:none;
}
.form-field input::placeholder,
.form-field textarea::placeholder{color:var(--bg5);}
.form-field textarea{resize:none;}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;
  border-color:rgba(196,152,37,.6);
  box-shadow:0 0 0 3px rgba(196,152,37,.08);
}
html[data-theme="light"] .form-field input::placeholder,
html[data-theme="light"] .form-field textarea::placeholder{color:#9A9A90;}

#formMsg.success{color:var(--gold-txt);}
#formMsg.error{color:#e05555;}

/* ══════════════════════════════════════════════
   CARD HOVER
══════════════════════════════════════════════ */
.card-hover{transition:border-color .3s,transform .3s,box-shadow .3s;}
.card-hover:hover{border-color:rgba(196,152,37,.45)!important;transform:translateY(-4px);box-shadow:0 20px 50px var(--shadow);}

/* ══════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════ */
footer{background-color:var(--bg1);border-top:1px solid var(--bgborder);padding:3.5rem 0;}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1fr 1fr;}
@media(min-width:1024px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1.5fr;}}
.footer-brand{grid-column:span 2;}
@media(min-width:1024px){.footer-brand{grid-column:span 1;}}
.footer-tagline{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txdim);font-size:.75rem;line-height:1.7;letter-spacing:.02em;margin:.75rem 0 1rem;max-width:200px;}
.footer-social{display:flex;gap:.5rem;}
.social-btn{
  width:32px;height:32px;border:1px solid var(--bgborder);
  display:flex;align-items:center;justify-content:center;
  color:var(--txdim);transition:border-color .2s,color .2s;
}
.social-btn:hover{border-color:var(--gold-txt);color:var(--gold-txt);}
.footer-col h5,.footer-col-title{font-family:'Josefin Sans',sans-serif;font-size:.7rem;color:var(--gold-txt);letter-spacing:.15em;text-transform:uppercase;margin-bottom:1.25rem;}
.footer-col ul{display:flex;flex-direction:column;gap:.75rem;}
.footer-col ul a,.footer-col ul span{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txdim);font-size:.75rem;letter-spacing:.08em;transition:color .2s;}
.footer-col ul a:hover{color:var(--tx);}
.footer-contact-list{display:flex;flex-direction:column;gap:.75rem;}
.footer-contact-list li{display:flex;align-items:center;gap:.6rem;color:var(--txdim);}
.footer-contact-list svg{flex-shrink:0;color:var(--gold-txt);}
.footer-contact-list a,.footer-contact-list span{font-family:'Josefin Sans',sans-serif;font-weight:300;font-size:.75rem;letter-spacing:.03em;color:var(--txdim);transition:color .2s;}
.footer-contact-list a:hover{color:var(--gold-txt);}
.footer-bottom{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;}
@media(min-width:640px){.footer-bottom{flex-direction:row;align-items:center;justify-content:space-between;}}
.footer-bottom p,.footer-legal a{font-family:'Josefin Sans',sans-serif;font-weight:300;color:var(--txdim);font-size:.7rem;letter-spacing:.08em;}
.footer-legal{display:flex;gap:1.5rem;}
.footer-legal a:hover{color:var(--gold-txt);}

/* ══════════════════════════════════════════════
   RESPONSIVE UTILS
══════════════════════════════════════════════ */
@media(max-width:767px){
  .two-col-grid > *:first-child{order:2;}
  .two-col-grid > *:last-child{order:1;}
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.card-hover,.product-img,.btn-gold,.btn-outline,.link-arrow{
    transition:none!important;
    opacity:1!important;transform:none!important;
  }
  .scroll-line{animation:none;}
}

/* GSAP Transitions */
.gsap-reveal {
    opacity: 0;
    will-change: transform, opacity;
}

html[data-gsap-enabled="true"] .reveal,
html[data-gsap-enabled="true"] .reveal-left {
    transition: none !important;
}

/* Anteproyecto Storytelling */
.ante-story-container { position: relative; width: 100%; aspect-ratio: 700 / 450; height: auto; overflow: hidden; border-radius: 12px; border: 1px solid var(--bgborder); background: var(--bg2); }
.ante-layers { position: relative; width: 100%; height: 100%; }
.ante-layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.layer-mesh { opacity: 0; mix-blend-mode: screen; background-size: 50px 50px; pointer-events: none; }
.layer-panels { opacity: 0; transform: translateY(-20px); pointer-events: none; }
.layer-data { opacity: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }

.tech-tag { position: absolute; background: rgba(20,20,16,0.85); backdrop-filter: blur(8px); border: 1px solid var(--gold); border-radius: 6px; padding: 10px 14px; color: var(--tx); display: flex; flex-direction: column; gap: 2px; }
.tag-1 { top: 20%; right: 10%; }
.tag-2 { bottom: 20%; left: 10%; }
.tag-label { font-size: 0.65rem; text-transform: uppercase; color: var(--txmuted); letter-spacing: 0.1em; }
.tag-value { font-size: 0.9rem; font-weight: 700; color: var(--gold); }

.css-panel-mock {
    position: absolute;
    top: 35%;
    left: 25%;
    width: 40%;
    height: 30%;
    background: linear-gradient(135deg, rgba(30,30,25,0.8) 0%, rgba(10,10,8,0.9) 100%);
    border: 1px solid var(--gold);
    transform: perspective(1000px) rotateX(45deg) rotateZ(-10deg);
    box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
