/*
Theme Name: Martiartu
Theme URI: https://compositesmartiartu.net
Author: Composites Martiartu
Description: Tema a medida para Composites Martiartu — ingeniería de materiales SMC/CSMC. Basado en el prototipo v2 y la paleta de marca de la sección 3.3 del brief.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: martiartu
*/

:root{
  --navy:#122A52;
  --navy-2:#16305A;
  --navy-deep:#0B1930;
  --cyan:#1E9BE8;
  --cyan-2:#4FB6F2;
  --ink:#1A2333;
  --steel:#4E5B6E;
  --steel-light:#7C879A;
  --paper:#F4F6F8;
  --paper-2:#E8EDF1;
  --line:#DCE2E8;
  --white:#FFFFFF;
  --surface:#FFFFFF;
  --ok:#2FA36B;
  --amber:#E8A23E;
  --danger:#D1453B;
  --heading:var(--navy);

  /* Tokens de espaciado — escala consistente para paddings/gaps/márgenes */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;

  /* Tokens de radio — consistencia entre botones, tarjetas y paneles */
  --radius-sm:4px;
  --radius-md:6px;
  --radius-lg:8px;
  --radius-xl:10px;
  --radius-pill:20px;
}

/* Modo oscuro: por defecto sigue la preferencia del sistema; el toggle
   del header fuerza data-theme y lo recuerda en localStorage. Solo se
   redefinen los tokens de superficie/texto — --navy y --cyan (marca,
   botones, capstrip...) se mantienen iguales en ambos modos porque ya
   funcionan como acento sobre fondo oscuro. --white tampoco se redefine:
   es el color de texto/iconos sobre fondos navy constantes (botones,
   hero, footer...); --surface es la tarjeta blanca que sí debe
   invertirse a superficie oscura en modo noche. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#E7ECF4;
    --steel:#9DA9BC;
    --steel-light:#8091AC;
    --paper:#0F1420;
    --paper-2:#161C29;
    --line:#2A3344;
    --surface:#1B2331;
    --heading:#EAF1FB;
    --topbar-bg:rgba(15,20,32,0.92);
  }
}
:root[data-theme="dark"]{
  --ink:#E7ECF4;
  --steel:#9DA9BC;
  --steel-light:#8091AC;
  --paper:#0F1420;
  --paper-2:#161C29;
  --line:#2A3344;
  --surface:#1B2331;
  --heading:#EAF1FB;
  --topbar-bg:rgba(15,20,32,0.92);
}
:root, :root[data-theme="dark"], :root[data-theme="light"]{
  color-scheme:light dark;
}
body{transition:background-color .2s ease, color .2s ease;}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.mono{font-family:'JetBrains Mono', monospace;}
h1,h2,h3,.display{font-family:'Archivo', sans-serif; letter-spacing:-0.01em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--cyan); color:#fff;}
a:focus-visible, button:focus-visible, input:focus-visible{outline:2px solid var(--cyan); outline-offset:3px;}

.wrap{max-width:1320px; margin:0 auto; padding:0 32px;}
@media(max-width:720px){.wrap{padding:0 20px;}}

.grid-bg{
  background-image:
    linear-gradient(rgba(18,42,82,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,42,82,0.04) 1px, transparent 1px);
  background-size:34px 34px;
}

/* PLACEHOLDER FOTO — marca los huecos donde falta fotografía real */
.photo-ph{
  position:relative; background:linear-gradient(135deg,#2b3648,#1a2333);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  color:#8b96a8; text-align:center;
}
.photo-ph::before{
  content:''; position:absolute; inset:0; opacity:.5;
  background-image:repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(255,255,255,0.03) 8px, rgba(255,255,255,0.03) 16px);
}
.photo-ph .tag{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.03em;
  padding:6px 12px; border:1px dashed #56607a; border-radius:3px; position:relative; z-index:1;
  background:rgba(11,25,48,0.6);
}
.photo-ph.light{background:linear-gradient(135deg,#e4e9ee,#d4dbe3);}
.photo-ph.light .tag{color:#5c6b82; border-color:#aab6c4; background:rgba(255,255,255,0.7);}

/* Foto real — mismo hueco/proporción que .photo-ph, pero con imagen. */
.photo-real{background-size:cover; background-position:center; background-repeat:no-repeat;}

/* ============ TOPBAR ============ */
.topbar{
  position:sticky; top:0; z-index:100;
  background:var(--topbar-bg, rgba(244,246,248,0.94));
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 32px; max-width:1320px; margin:0 auto;
}
.logo{display:flex; align-items:center; gap:11px;}
.logo-link{display:flex; align-items:center;}
.logo-img{height:38px; width:auto; display:block;}
.logo-footer{background:#fff; padding:10px 16px; border-radius:6px; display:inline-flex; margin-bottom:18px;}
.logo-footer .logo-img{height:34px;}
.logo .mark{width:34px; height:28px; flex-shrink:0;}
.logo .word{font-family:'Archivo',sans-serif; font-weight:800; font-size:16.5px; color:var(--heading); line-height:1.1;}
.logo .word small{display:block; font-family:'JetBrains Mono',monospace; font-weight:500; font-size:8.5px; letter-spacing:.08em; color:var(--steel-light); text-transform:uppercase; margin-top:1px;}
nav.primary{display:flex; gap:32px; align-items:center;}
nav.primary a{font-size:13.5px; font-weight:600; color:var(--steel); position:relative; padding:4px 0;}
nav.primary a:hover{color:var(--heading);}
nav.primary a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--cyan); transition:width .25s ease;}
nav.primary a:hover::after{width:100%;}
nav.primary ul{display:flex; gap:32px; align-items:center; list-style:none;}
.topbar-actions{display:flex; align-items:center; gap:12px;}
.lang-switch{display:flex; gap:0; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; color:var(--steel);}
.lang-switch span, .lang-switch a{padding:4px 8px; cursor:pointer; text-decoration:none; color:inherit;}
.lang-switch span.active, .lang-switch a.active{color:var(--cyan); border-bottom:2px solid var(--cyan);}
.btn{display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:4px; font-size:13.5px; font-weight:700; cursor:pointer; border:1px solid transparent; white-space:nowrap; font-family:'Archivo',sans-serif;}
.btn-primary{background:var(--navy); color:var(--white);}
.btn-primary:hover{background:var(--cyan);}
.btn-accent{background:var(--cyan); color:var(--white);}
.btn-accent:hover{background:var(--cyan-2);}
.btn-ghost{border-color:var(--line); color:var(--heading);}
.btn-ghost:hover{border-color:var(--heading);}
.btn-ghost-dark{border-color:#3a4a63; color:var(--white);}
.btn-ghost-dark:hover{border-color:var(--cyan); color:var(--cyan);}
.btn-sm{padding:8px 14px; font-size:12px;}
.btn-lg{padding:14px 26px; font-size:14.5px;}

.mobile-toggle{display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:38px; height:38px; background:none; border:1px solid var(--line); border-radius:6px; cursor:pointer; padding:0;}
.mobile-toggle span{display:block; width:18px; height:2px; background:var(--heading); border-radius:2px; transition:transform .2s ease, opacity .2s ease;}
.mobile-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.mobile-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.mobile-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.lang-switch-mobile, .mobile-nav-extra{display:none;}

@media(max-width:980px){
  .lang-switch:not(.lang-switch-mobile){display:none;}
  .topbar-only{display:none;}
  .mobile-toggle{display:flex;}
  nav.primary{
    display:none; position:fixed; inset:0 0 0 auto; z-index:400;
    width:min(320px, 84vw); height:100vh; overflow-y:auto;
    background:var(--paper); border-left:1px solid var(--line);
    flex-direction:column; align-items:stretch; gap:0;
    padding:88px 28px 32px; box-shadow:-24px 0 60px -20px rgba(0,0,0,0.35);
  }
  nav.primary.is-open{display:flex;}
  nav.primary ul{flex-direction:column; align-items:stretch; gap:0;}
  nav.primary ul li{border-bottom:1px solid var(--line);}
  nav.primary ul a{display:block; padding:16px 0; font-size:15px;}
  nav.primary ul a::after{display:none;}
  .lang-switch-mobile{display:flex; margin-top:20px;}
  .mobile-nav-extra{display:flex; margin-top:12px; justify-content:center;}
  body.mobile-nav-open{overflow:hidden;}
  body.mobile-nav-open::after{
    content:''; position:fixed; inset:0; z-index:390;
    background:rgba(11,25,48,0.5);
  }
}

/* ============ HERO ============ */
.hero{position:relative; min-height:640px; display:flex; align-items:center; background:var(--navy-deep); overflow:hidden;}
.hero-photo{position:absolute; inset:0; background:linear-gradient(120deg, rgba(11,25,48,0.94), rgba(18,42,82,0.75)), repeating-linear-gradient(115deg, #1a2740, #1a2740 2px, #202f4c 2px, #202f4c 4px);}
.hero-inner{position:relative; z-index:2; padding:80px 32px; max-width:1320px; margin:0 auto; width:100%;}
.eyebrow-pill{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:600; letter-spacing:.05em;
  color:var(--cyan-2); text-transform:uppercase; padding:7px 14px;
  border:1px solid rgba(79,182,242,0.35); border-radius:20px; background:rgba(30,155,232,0.08);
  margin-bottom:30px;
}
.hero h1{font-size:clamp(36px,5.6vw,64px); font-weight:900; line-height:1.05; color:var(--white); max-width:880px; margin-bottom:8px; text-transform:uppercase;}
.hero h1 .accent{color:var(--cyan-2);}
.hero-sub{font-size:17.5px; color:#B7C2D4; max-width:600px; line-height:1.6; margin:24px 0 40px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
.hero-divider{width:100%; height:1px; background:rgba(255,255,255,0.12); margin-bottom:40px; max-width:640px;}
.hero-stats{display:flex; gap:56px; flex-wrap:wrap;}
.hero-stats .stat .n{font-family:'Archivo',sans-serif; font-size:38px; font-weight:900; color:var(--white); line-height:1;}
.hero-stats .stat .n .u{font-size:20px; color:var(--cyan-2);}
.hero-stats .stat .l{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.05em; color:#8b96ac; text-transform:uppercase; margin-top:8px;}

/* ============ BENTO GRID (métricas clave, debajo del hero) ============ */
.bento-section{padding:var(--space-8) 0;}
.bento-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:repeat(2,1fr); gap:var(--space-4);}
.bento-item{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:var(--space-6); display:flex; flex-direction:column; justify-content:center;
  transition:transform .25s ease, box-shadow .25s ease;
}
.bento-item:hover{transform:translateY(-3px); box-shadow:0 16px 32px -18px rgba(18,42,82,0.22);}
.bento-item.b-large{grid-row:1/3;}
.bento-item.b-wide{grid-column:2/4;}
.bento-n{font-family:'Archivo',sans-serif; font-weight:900; font-size:36px; color:var(--heading); line-height:1;}
.bento-item.b-large .bento-n{font-size:52px;}
.bento-n .u{font-size:20px; color:var(--cyan); margin-left:2px;}
.bento-l{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--steel-light); text-transform:uppercase; letter-spacing:.04em; margin-top:10px;}
@media(max-width:860px){
  .bento-grid{grid-template-columns:1fr 1fr;}
  .bento-item.b-large{grid-row:auto; grid-column:1/3;}
  .bento-item.b-wide{grid-column:1/3;}
}
@media(max-width:560px){
  .bento-grid{grid-template-columns:1fr;}
  .bento-item.b-large, .bento-item.b-wide{grid-column:1;}
}

/* ============ SECTION SHARED ============ */
section{padding:96px 0;}
.section-head{max-width:680px; margin-bottom:52px;}
.section-head .tag{
  display:flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:.06em; color:var(--cyan); margin-bottom:16px;
}
.section-head .tag::before{content:''; width:26px; height:3px; background:var(--cyan); border-radius:2px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px); font-weight:800; line-height:1.12; color:var(--heading);}
.section-head p{color:var(--steel); font-size:16px; margin-top:14px; line-height:1.6;}

/* ============ CAPABILITY STRIP ============ */
.capstrip{background:var(--navy); padding:0; overflow:hidden;}
.capstrip-row{display:flex;}
.cap-item{
  flex:1; padding:28px 24px; border-right:1px solid rgba(255,255,255,0.08);
  text-align:center;
}
.cap-item:last-child{border-right:none;}
.cap-item .n{font-family:'Archivo',sans-serif; font-weight:900; font-size:24px; color:var(--cyan-2);}
.cap-item .l{font-family:'JetBrains Mono',monospace; font-size:10px; color:#9fb0c8; text-transform:uppercase; letter-spacing:.04em; margin-top:5px;}
@media(max-width:900px){.capstrip-row{flex-wrap:wrap;} .cap-item{flex:1 1 33%; border-bottom:1px solid rgba(255,255,255,0.08);}}
@media(max-width:560px){.cap-item{flex:1 1 50%;}}

/* ============ INFRASTRUCTURE ============ */
.infra-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
@media(max-width:900px){.infra-grid{grid-template-columns:1fr;}}
.infra-photo{aspect-ratio:4/3; border-radius:6px;}
.fact-row{display:flex; gap:16px; margin-bottom:28px;}
.fact-box{flex:1; background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22px;}
.fact-box .ic{color:var(--cyan); margin-bottom:12px;}
.fact-box .n{font-family:'Archivo',sans-serif; font-weight:900; font-size:26px; color:var(--heading);}
.fact-box .l{font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--steel-light); text-transform:uppercase; letter-spacing:.03em; margin-top:4px;}
.checklist{list-style:none; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:0 6px 6px 0; padding:22px 24px;}
.checklist li{display:flex; gap:12px; font-size:14px; color:var(--steel); line-height:1.5; margin-bottom:14px;}
.checklist li:last-child{margin-bottom:0;}
.checklist li .dot{width:18px; height:18px; border-radius:50%; background:var(--cyan); flex-shrink:0; display:flex; align-items:center; justify-content:center; margin-top:1px;}
.checklist li .dot svg{width:10px; height:10px;}
.checklist li b{color:var(--heading);}
.logistics-foot{display:flex; gap:24px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); font-size:12.5px; color:var(--steel); font-weight:600;}
.logistics-foot span{display:flex; align-items:center; gap:6px;}

/* ============ PRESS FLEET TABLE ============ */
.press-section{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.press-layout{display:grid; grid-template-columns:340px 1fr; gap:36px; align-items:start;}
@media(max-width:860px){.press-layout{grid-template-columns:1fr;}}
.crown-card{background:var(--navy-deep); border-radius:8px; overflow:hidden;}
.crown-photo{aspect-ratio:4/3;}
.crown-body{padding:22px;}
.crown-tag{font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--cyan-2); text-transform:uppercase; letter-spacing:.06em;}
.crown-num{font-family:'Archivo',sans-serif; font-weight:900; font-size:36px; color:var(--white); margin:6px 0 2px;}
.crown-sub{font-size:12px; color:#8b96ac; font-family:'JetBrains Mono',monospace;}
table.press-table{width:100%; border-collapse:collapse; background:var(--surface); border-radius:6px; overflow:hidden; border:1px solid var(--line);}
table.press-table th{background:var(--navy); color:var(--white); font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.04em; text-align:left; padding:14px 18px; font-weight:600;}
table.press-table td{padding:13px 18px; font-size:14px; color:var(--ink); border-top:1px solid var(--line); font-family:'JetBrains Mono',monospace;}
table.press-table tr:nth-child(even) td{background:var(--paper);}
table.press-table tr.hi td{background:rgba(30,155,232,0.08); font-weight:700; border-left:3px solid var(--cyan);}
table.press-table td:first-child{font-weight:700; color:var(--heading);}

/* ============ MAPA DE PLANTA (esquemático, con hotspots) ============ */
.plant-map-section{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.plant-map{
  position:relative; width:100%; aspect-ratio:16/9; max-height:520px;
  background:
    linear-gradient(rgba(18,42,82,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,42,82,0.05) 1px, transparent 1px),
    linear-gradient(135deg,#eef2f6,#dde4ea);
  background-size:28px 28px, 28px 28px, cover;
  border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
}
.plant-hotspot{
  position:absolute; border:1.5px dashed rgba(30,155,232,0.45); background:rgba(30,155,232,0.06);
  background-size:cover; background-position:center; border-radius:var(--radius-md); padding:8px; cursor:pointer;
  display:flex; align-items:flex-end; justify-content:flex-start;
  transition:background-color .2s ease, border-color .2s ease; font-family:inherit;
}
.plant-hotspot:hover, .plant-hotspot:focus-visible{border-color:var(--cyan);}
.plant-hotspot:not(.has-photo):hover, .plant-hotspot:not(.has-photo):focus-visible{background-color:rgba(30,155,232,0.18);}
.plant-hotspot.has-photo{border-style:solid; border-color:rgba(255,255,255,0.35);}
.plant-hotspot-dot{
  position:absolute; top:8px; left:8px; width:12px; height:12px; border-radius:50%;
  background:var(--cyan); box-shadow:0 0 0 5px rgba(30,155,232,0.22); animation:pulse 2s infinite;
}
.plant-hotspot-label{
  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:var(--navy);
  background:rgba(255,255,255,0.88); padding:4px 8px; border-radius:4px; text-align:left; line-height:1.3;
}
.plant-hotspot.has-photo .plant-hotspot-label{color:#fff; background:rgba(11,25,48,0.55);}
@media(max-width:640px){.plant-hotspot-label{font-size:9.5px; padding:3px 6px;}}

.plant-drawer-overlay{position:fixed; inset:0; background:rgba(11,25,48,0.5); opacity:0; pointer-events:none; transition:opacity .3s ease; z-index:390;}
.plant-drawer-overlay.is-visible{opacity:1; pointer-events:auto;}
.plant-drawer{
  position:fixed; top:0; right:0; height:100%; width:420px; max-width:92vw;
  background:var(--surface); box-shadow:-24px 0 60px -20px rgba(0,0,0,0.35);
  transform:translateX(100%); transition:transform .3s ease; z-index:400; padding:32px; overflow-y:auto;
}
.plant-drawer.is-open{transform:translateX(0);}
.plant-drawer-close{
  position:absolute; top:18px; right:18px; width:32px; height:32px; border-radius:50%;
  border:1px solid var(--line); background:var(--surface); cursor:pointer; font-size:14px; color:var(--steel);
}
.plant-drawer-photo{width:100%; aspect-ratio:4/3; background-size:cover; background-position:center; border-radius:var(--radius-lg); margin-bottom:var(--space-4); background-color:var(--paper-2);}
.plant-drawer-body h3{color:var(--heading); font-size:20px; margin-bottom:var(--space-4); font-family:'Archivo',sans-serif; font-weight:800;}

/* ============ MATERIALS ENGINEERING ============ */
.mat-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media(max-width:900px){.mat-grid{grid-template-columns:1fr;}}
.mat-photos{display:grid; grid-template-columns:1.4fr 1fr; grid-template-rows:1fr 1fr; gap:12px; height:400px;}
.mat-photos .p1{grid-row:1/3; border-radius:6px;}
.mat-photos .p2, .mat-photos .p3{border-radius:6px;}
.mat-card{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:22px; margin-bottom:16px;}
.mat-card:last-child{margin-bottom:0;}
.mat-card .head{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.mat-card .ic{color:var(--cyan); flex-shrink:0;}
.mat-card h4{font-size:16.5px; font-weight:700; color:var(--heading);}
.mat-card p{font-size:13.5px; color:var(--steel); line-height:1.55;}
.mat-card .spec{display:inline-block; margin-top:10px; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; color:var(--heading); background:var(--paper-2); padding:4px 10px; border-radius:3px;}

/* ============ PRECISION FINISHING ============ */
.finish-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:860px){.finish-grid{grid-template-columns:1fr;}}
.finish-card{background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.finish-photo{aspect-ratio:16/10;}
.finish-body{padding:22px;}
.finish-body .head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.finish-body h4{font-size:15.5px; font-weight:700; color:var(--heading); display:flex; align-items:center; gap:8px;}
.finish-body .ic{color:var(--cyan);}
.finish-body p{font-size:13px; color:var(--steel); line-height:1.55;}
.badge-deg{font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700; color:var(--cyan); border:1px solid var(--line); border-radius:12px; padding:3px 9px;}

/* ============ CONFIGURATOR (teaser — lógica real en Fase 4) ============ */
.configurator{
  background:var(--navy-deep); color:var(--white); border-radius:10px;
  padding:56px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  position:relative; overflow:hidden;
}
.configurator::before{content:''; position:absolute; top:-120px; right:-120px; width:380px; height:380px; background:radial-gradient(circle, rgba(30,155,232,0.22), transparent 70%);}
.configurator h2{color:var(--white); font-size:clamp(24px,3vw,34px); font-weight:800;}
.configurator p{color:#9fb0c8; margin-top:14px; line-height:1.6; font-size:15px;}
.config-steps{display:flex; flex-direction:column; gap:0; margin-top:28px;}
.config-step{display:flex; align-items:center; gap:14px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,0.1);}
.config-step:last-child{border-bottom:none;}
.config-step .dot{width:24px; height:24px; border-radius:4px; background:rgba(30,155,232,0.15); border:1px solid rgba(30,155,232,0.4); display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--cyan-2); flex-shrink:0;}
.config-step span{font-size:13.5px; color:#cbd5e3;}
.mock-panel{background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.12); border-radius:8px; padding:26px;}
.mock-row{display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid rgba(255,255,255,0.08); font-size:13px;}
.mock-row:last-child{border-bottom:none;}
.mock-row .label{color:#8b96ac;}
.mock-row .val{color:var(--white); font-family:'JetBrains Mono',monospace; font-weight:600;}
.configurator .mock-row{opacity:0; transform:translateX(-8px); transition:opacity .45s ease, transform .45s ease;}
.configurator.reveal.in .mock-row{opacity:1; transform:translateX(0);}
.configurator.reveal.in .mock-row:nth-child(1){transition-delay:.05s;}
.configurator.reveal.in .mock-row:nth-child(2){transition-delay:.15s;}
.configurator.reveal.in .mock-row:nth-child(3){transition-delay:.25s;}
.configurator.reveal.in .mock-row:nth-child(4){transition-delay:.35s;}
.configurator.reveal.in .mock-row:nth-child(5){transition-delay:.45s;}
.configurator .mock-total{opacity:0; transition:opacity .5s ease .55s;}
.configurator.reveal.in .mock-total{opacity:1;}
@media(prefers-reduced-motion: reduce){.configurator .mock-row, .configurator .mock-total{opacity:1; transform:none; transition:none;}}
.mock-total{display:flex; justify-content:space-between; align-items:baseline; margin-top:18px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.12);}
.mock-total .l{font-size:12px; color:#8b96ac; font-family:'JetBrains Mono',monospace;}
.mock-total .v{font-family:'Archivo',sans-serif; font-size:26px; font-weight:800; color:var(--cyan-2);}
@media(max-width:860px){.configurator{grid-template-columns:1fr; padding:36px 28px;}}

/* ============ SMART FACTORY ============ */
.smart-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media(max-width:900px){.smart-grid{grid-template-columns:1fr;}}
.monitor-card{background:var(--navy-deep); border-radius:8px; padding:26px; color:var(--white);}
.monitor-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:22px;}
.monitor-head .t{display:flex; align-items:center; gap:10px; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;}
.pulse{width:8px; height:8px; border-radius:50%; background:var(--ok); animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:.4;}}
.status-pill{font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700; color:var(--ok); background:rgba(47,163,107,0.15); padding:4px 10px; border-radius:10px;}
.monitor-metrics{display:flex; gap:40px; margin-bottom:24px;}
.monitor-metrics .m .n{font-family:'Archivo',sans-serif; font-size:34px; font-weight:900; color:var(--ok);}
.monitor-metrics .m .n.blue{color:var(--cyan-2);}
.monitor-metrics .m .l{font-family:'JetBrains Mono',monospace; font-size:10px; color:#8b96ac; text-transform:uppercase; margin-top:4px;}
.cycle-label{font-family:'JetBrains Mono',monospace; font-size:10.5px; color:#8b96ac; text-transform:uppercase; margin-bottom:10px;}
.cycle-bars{display:flex; gap:8px; align-items:flex-end; height:44px;}
.cycle-bars .bar{flex:1; height:100%; border-radius:4px; background:var(--cyan); transform-origin:bottom; animation:cycle-wave 2.4s ease-in-out infinite;}
.cycle-bars .bar:nth-child(1){animation-delay:0s;}
.cycle-bars .bar:nth-child(2){animation-delay:.15s;}
.cycle-bars .bar:nth-child(3){animation-delay:.3s;}
.cycle-bars .bar:nth-child(4){animation-delay:.45s;}
.cycle-bars .bar.done{background:var(--ok); animation:none; transform:scaleY(1);}
@keyframes cycle-wave{0%,100%{transform:scaleY(.55);} 50%{transform:scaleY(1);}}
@media(prefers-reduced-motion: reduce){.cycle-bars .bar{animation:none; transform:scaleY(.85);}}

/* ============ CASOS DE APLICACIÓN ============ */
.cases-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:900px){.cases-grid{grid-template-columns:1fr;}}
.case-card{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:26px; transition:transform .25s ease, box-shadow .25s ease;}
.case-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -20px rgba(11,25,48,0.25);}
.case-card .ic{color:var(--cyan); margin-bottom:14px;}
.case-tag{display:inline-block; font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--cyan); background:var(--paper-2); padding:4px 10px; border-radius:10px; margin-bottom:10px;}
.case-card h4{font-size:16.5px; font-weight:800; color:var(--heading); margin-bottom:12px; line-height:1.3;}
.case-card p{font-size:13px; color:var(--steel); line-height:1.55; margin-bottom:10px;}
.case-card p b{color:var(--heading); font-weight:700;}
.case-resultado{margin-bottom:0 !important; padding-top:10px; border-top:1px solid var(--line);}
.case-metric{font-family:'Archivo',sans-serif; font-weight:900; font-size:16px; color:var(--ok);}

/* ============ SECTORS ============ */
.sectors-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:860px){.sectors-grid{grid-template-columns:1fr;}}
.sector-card{background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.sector-photo{aspect-ratio:16/10;}
.sector-body{padding:24px;}
.sector-body .ic{color:var(--cyan); margin-bottom:12px;}
.sector-body h4{font-size:16.5px; font-weight:700; color:var(--heading); margin-bottom:8px;}
.sector-body p{font-size:13.5px; color:var(--steel); line-height:1.55;}

/* ============ TIENDA / SHOP (placeholder — WooCommerce real en Fase 3) ============ */
.shop-section{background:var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cat-tabs{display:flex; gap:8px; margin-bottom:36px; flex-wrap:wrap;}
.cat-tab{padding:9px 18px; border-radius:20px; font-size:13px; font-weight:600; border:1px solid var(--line); background:var(--surface); cursor:pointer; color:var(--steel);}
.cat-tab.active{background:var(--navy); color:var(--white); border-color:var(--heading);}
.cat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:900px){.cat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.cat-grid{grid-template-columns:1fr;}}
.product-card{background:var(--surface); border:1px solid var(--line); border-radius:6px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease;}
.product-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -16px rgba(18,42,82,0.18);}
.product-swatch{aspect-ratio:4/3;}
.product-body{padding:20px;}
.product-body .k{font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--cyan); text-transform:uppercase; letter-spacing:.03em; font-weight:700;}
.product-body h4{font-size:16px; font-weight:700; margin:8px 0; color:var(--heading);}
.product-body p{font-size:13px; color:var(--steel); line-height:1.5; margin-bottom:16px;}
.product-foot{display:flex; align-items:center; justify-content:space-between;}
.price{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--heading); font-weight:700;}
.price small{color:var(--steel-light); font-weight:400;}
.link-arrow{font-size:12.5px; font-weight:700; color:var(--heading);}

/* ============ AI ASSISTANT ============ */
.ai-block{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media(max-width:900px){.ai-block{grid-template-columns:1fr;}}
.chat-mock{background:var(--surface); border:1px solid var(--line); border-radius:10px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(18,42,82,0.25);}
.chat-head{display:flex; align-items:center; gap:10px; padding:16px 20px; border-bottom:1px solid var(--line); background:var(--navy);}
.chat-head span{font-size:13px; font-weight:700; color:var(--white); font-family:'JetBrains Mono',monospace;}
.chat-body{padding:22px; display:flex; flex-direction:column; gap:14px;}
.bubble{max-width:85%; padding:12px 16px; border-radius:8px; font-size:13.5px; line-height:1.5;}
.bubble.user{align-self:flex-end; background:var(--navy); color:var(--white); border-bottom-right-radius:2px;}
.bubble.bot{align-self:flex-start; background:var(--paper-2); border:1px solid var(--line); border-bottom-left-radius:2px; color:var(--ink);}
.bubble.bot b{color:var(--cyan);}

/* ============ CTA ============ */
.cta-band{background:linear-gradient(120deg, var(--navy-deep), var(--navy)); color:var(--white); border-radius:10px; padding:64px 56px; text-align:center; position:relative; overflow:hidden;}
.cta-band::before{content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px); background-size:34px 34px;}
.cta-band > *{position:relative; z-index:1;}
.cta-band h2{color:var(--white); font-size:clamp(26px,4vw,40px); font-weight:800; max-width:680px; margin:0 auto 18px;}
.cta-band p{color:#9fb0c8; max-width:520px; margin:0 auto 34px; font-size:15.5px;}
.cta-band .ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

/* ============ FOOTER ============ */
footer{background:var(--navy-deep); color:#8b96ac; padding:64px 0 28px;}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px;}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}
.foot-grid h5{color:var(--white); font-family:'JetBrains Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px; font-weight:700;}
.foot-grid ul{list-style:none;}
.foot-grid li{margin-bottom:10px; font-size:13px;}
.foot-grid a:hover{color:var(--cyan-2);}
.foot-brand p{font-size:13.5px; line-height:1.6; max-width:280px; margin-top:14px;}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; border-top:1px solid rgba(255,255,255,0.1); font-size:12px; flex-wrap:wrap; gap:12px;}
.foot-legal{display:flex; gap:20px; flex-wrap:wrap;}

/* ============ TARJETAS DE SECCIÓN (page.php — hijas de Producto/Servicio/Sectores...) ============ */
.section-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px;}
@media(max-width:860px){.section-cards{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.section-cards{grid-template-columns:1fr;}}
.section-card{
  display:block; background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.section-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -16px rgba(18,42,82,0.18);}
.section-card-photo{aspect-ratio:16/10; overflow:hidden;}
.section-card-photo img{width:100%; height:100%; object-fit:cover; margin:0;}
.section-card-ic{
  aspect-ratio:16/10; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--paper-2),var(--paper)); color:var(--cyan);
}
.section-card-body{padding:20px;}
.section-card-body h4{font-size:15.5px; font-weight:700; color:var(--heading); margin-bottom:8px;}
.section-card-body p{font-size:13px; color:var(--steel); line-height:1.55; margin-bottom:12px;}

/* ============ SELECTOR DE MATERIAL (página Producto) ============ */
.mat-sel{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; margin:32px 0;}
.mat-sel-paso{margin-bottom:24px;}
.mat-sel-paso h4{font-size:14px; font-weight:700; color:var(--heading); margin-bottom:12px;}
.mat-sel-opciones{display:flex; flex-wrap:wrap; gap:10px;}
.mat-sel-opcion{
  border:1px solid var(--line); background:var(--paper); color:var(--steel); border-radius:var(--radius-pill);
  padding:9px 18px; font-size:13px; font-weight:600; cursor:pointer; font-family:'Inter',sans-serif;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.mat-sel-opcion:hover{border-color:var(--cyan);}
.mat-sel-opcion.active{background:var(--navy); border-color:var(--navy); color:var(--white);}
.mat-sel-resultado{margin-top:28px; padding-top:24px; border-top:1px solid var(--line);}
.mat-sel-label{font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--steel-light); margin-bottom:10px;}
.mat-sel-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.mat-sel-chip{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:700; color:var(--heading); background:var(--paper-2); border:1px solid var(--line); border-radius:4px; padding:6px 12px;}
.mat-sel-nota{font-size:12.5px; color:var(--steel-light); line-height:1.5; margin-bottom:16px;}
.mat-sel-vacio{font-size:13.5px; color:var(--steel); line-height:1.5; margin-bottom:16px;}
.mat-sel-progreso{font-size:13px; color:var(--steel-light); font-style:italic; padding:12px 0;}

/* ============ CONTACTO ============ */
.contacto-datos{display:flex; flex-direction:column; gap:16px;}
.contacto-item{display:flex; align-items:center; gap:12px; font-size:14px; color:var(--steel);}
.contacto-item .ic{color:var(--cyan); flex-shrink:0;}
.contacto-item a{color:var(--heading); font-weight:600;}
.contacto-item a:hover{color:var(--cyan);}

/* ============ PÁGINA GENÉRICA (page.php) ============ */
.page-hero{background:var(--navy-deep); padding:72px 0; color:var(--white);}
.page-hero .breadcrumb{font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--cyan-2); text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px;}
.page-hero h1{color:var(--white); font-size:clamp(28px,4vw,42px); font-weight:800;}
.page-content{padding:64px 0; font-size:16px; line-height:1.7; color:var(--steel); max-width:800px;}
.page-hero-photo{border-radius:var(--radius-lg); overflow:hidden; margin-bottom:28px; aspect-ratio:16/8;}
.page-hero-photo img{width:100%; height:100%; object-fit:cover; margin:0;}
.page-hero-ic{
  border-radius:var(--radius-lg); margin-bottom:28px; aspect-ratio:16/8;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--paper-2),var(--paper)); color:var(--cyan);
}
.page-content h2{color:var(--heading); margin:32px 0 14px; font-size:24px;}
.page-content p{margin-bottom:16px;}

/* ============ HUB TÉCNICO — ARTICLE CARD ============ */
.article-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media(max-width:900px){.article-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.article-grid{grid-template-columns:1fr;}}
.article-card{background:var(--surface); border:1px solid var(--line); border-radius:8px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease;}
.article-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -16px rgba(18,42,82,0.18);}
.article-card-photo{position:relative; display:block; aspect-ratio:16/10; overflow:hidden;}
.article-card-photo img{width:100%; height:100%; object-fit:cover;}
.article-sector-badge{
  position:absolute; top:12px; left:12px; font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em; color:var(--white); background:rgba(18,42,82,0.85);
  padding:5px 10px; border-radius:20px;
}
.article-card-body{padding:20px;}
.article-card-body h4{font-size:15.5px; font-weight:700; color:var(--heading); margin-bottom:8px;}
.article-card-body p{font-size:13px; color:var(--steel); line-height:1.55;}

/* ============ CENTRO DE DESCARGAS TÉCNICAS ============ */
.descargas-categoria{margin-top:var(--space-8); padding-top:var(--space-6); border-top:1px solid var(--line);}
.descargas-categoria:first-of-type{margin-top:var(--space-6);}
.descargas-categoria h2{color:var(--heading); font-size:19px; margin-bottom:var(--space-4);}
.descargas-vacio{color:var(--steel-light); font-size:14px; font-style:italic;}
.descargas-lista{list-style:none;}
.descargas-lista li{margin-bottom:10px;}
.descargas-lista a{
  display:flex; align-items:center; gap:10px; padding:14px 18px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md);
  color:var(--heading); font-weight:600; font-size:14px; transition:border-color .2s ease, background .2s ease;
}
.descargas-lista a:hover{border-color:var(--cyan); background:var(--paper-2);}
.descargas-lista .ic{color:var(--cyan); flex-shrink:0;}

/* ============ WOOCOMMERCE ============ */
.wc-section{padding:64px 0 96px;}
.shop-medidas-nota{background:var(--paper-2); border-left:3px solid var(--cyan); border-radius:0 6px 6px 0; padding:14px 18px; font-size:13.5px; color:var(--steel); margin-bottom:28px;}
.woocommerce-notices-wrapper{margin-bottom:24px;}
.woocommerce-message, .woocommerce-info, .woocommerce-error{list-style:none; background:var(--surface); border:1px solid var(--line); border-left:3px solid var(--cyan); border-radius:0 6px 6px 0; padding:16px 20px; font-size:14px; color:var(--steel); margin-bottom:24px;}
.woocommerce-error{border-left-color:var(--danger);}
.woocommerce-message .button, .woocommerce-error .button{float:right; margin-left:16px;}

.woocommerce ul.products{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; list-style:none;}
@media(max-width:900px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.woocommerce ul.products{grid-template-columns:1fr;}}
.woocommerce ul.products li.product{
  background:var(--surface); border:1px solid var(--line); border-radius:6px; overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease; padding:0;
  /* WooCommerce deja width/float/margin de su sistema antiguo de columnas
     (pensado para float, no para grid) — sin esto, cada tarjeta hereda un
     % pensado para otro contexto y queda diminuta dentro de la celda. */
  width:auto !important; float:none !important; margin:0 !important; list-style:none;
}
.woocommerce ul.products li.product:hover{transform:translateY(-4px); box-shadow:0 20px 40px -16px rgba(18,42,82,0.18);}
.woocommerce ul.products li.product a img{aspect-ratio:4/3; object-fit:cover; width:100%; margin:0;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:16px; font-weight:700; color:var(--heading); margin:16px 20px 8px; font-family:'Archivo',sans-serif;}
.woocommerce ul.products li.product .price{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--heading); font-weight:700; margin:0 20px;}
.woocommerce ul.products li.product .button{display:inline-flex; margin:16px 20px 20px; padding:11px 20px; border-radius:4px; font-size:13.5px; font-weight:700; font-family:'Archivo',sans-serif; background:var(--navy); color:var(--white) !important;}
.woocommerce ul.products li.product .button:hover{background:var(--cyan);}
.woocommerce ul.products li.product a.woocommerce-loop-product__link{color:inherit;}

.woocommerce nav.woocommerce-pagination ul{display:flex; gap:8px; list-style:none; border:none;}
.woocommerce nav.woocommerce-pagination ul li{border:none;}
.woocommerce nav.woocommerce-pagination a, .woocommerce nav.woocommerce-pagination span{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid var(--line); border-radius:4px; font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--steel);}
.woocommerce nav.woocommerce-pagination .current{background:var(--navy); color:var(--white); border-color:var(--heading);}

/* Producto individual */
.woocommerce div.product .summary h1.product_title{font-family:'Archivo',sans-serif; font-size:clamp(24px,3.2vw,32px); font-weight:800; color:var(--heading); margin-bottom:10px;}
.woocommerce div.product .summary .price{font-family:'JetBrains Mono',monospace; font-size:22px; color:var(--heading); font-weight:700; margin-bottom:18px; display:block;}
.woocommerce div.product .summary .woocommerce-product-details__short-description{color:var(--steel); line-height:1.65; margin-bottom:20px;}
.woocommerce div.product form.cart .button{background:var(--navy); color:var(--white); border-radius:4px; padding:13px 24px; font-family:'Archivo',sans-serif; font-weight:700; border:none;}
.woocommerce div.product form.cart .button:hover{background:var(--cyan);}
.woocommerce div.product .woocommerce-product-gallery{border-radius:6px; overflow:hidden;}
.woocommerce span.onsale{background:var(--cyan); font-family:'JetBrains Mono',monospace; font-weight:700;}

/* Carrito / checkout */
.woocommerce table.shop_table{width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--line); border-radius:6px; overflow:hidden;}
.woocommerce table.shop_table th{background:var(--navy); color:var(--white); font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.04em; padding:14px 16px; text-align:left;}
.woocommerce table.shop_table td{padding:14px 16px; border-top:1px solid var(--line); font-size:14px;}
.woocommerce #order_review, .woocommerce-checkout-review-order{background:var(--paper-2); border:1px solid var(--line); border-radius:6px; padding:24px;}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button, .woocommerce #payment #place_order{background:var(--cyan); color:var(--white) !important; border-radius:4px; font-family:'Archivo',sans-serif; font-weight:700; padding:14px 26px;}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover, .woocommerce #payment #place_order:hover{background:var(--cyan-2);}
.form-row input.input-text, .form-row select, .form-row textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea{
  border:1px solid var(--line); border-radius:4px; padding:10px 12px; font-family:'Inter',sans-serif;
  background:var(--surface); color:var(--ink); width:100%;
}
.form-row input.input-text:focus, .form-row select:focus, .form-row textarea:focus,
.woocommerce form .form-row input.input-text:focus{outline:2px solid var(--cyan); outline-offset:1px;}
.form-row label, .woocommerce-form-row label{font-size:13.5px; font-weight:600; color:var(--heading); display:block; margin-bottom:6px;}
.form-row .required{color:var(--danger);}

/* Mi cuenta / login-registro */
.woocommerce-account .woocommerce-MyAccount-navigation{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:8px; margin-bottom:32px;}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;}
.woocommerce-account .woocommerce-MyAccount-navigation li{border-bottom:1px solid var(--line);}
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{border-bottom:none;}
.woocommerce-account .woocommerce-MyAccount-navigation a{display:block; padding:11px 14px; font-size:13.5px; font-weight:600; color:var(--steel);}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{color:var(--heading); background:var(--paper-2); border-radius:4px;}
.woocommerce-form-login, .woocommerce-form-register{background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:28px;}
.woocommerce button.woocommerce-Button, .woocommerce input.woocommerce-Button{background:var(--navy); color:var(--white); border:none; border-radius:4px; padding:12px 22px; font-family:'Archivo',sans-serif; font-weight:700; cursor:pointer;}
.woocommerce button.woocommerce-Button:hover, .woocommerce input.woocommerce-Button:hover{background:var(--cyan);}
.woocommerce-LostPassword{margin-top:14px; font-size:13px;}
.u-columns{display:grid; grid-template-columns:1fr 1fr; gap:32px;}
@media(max-width:700px){.u-columns{grid-template-columns:1fr;}}

/* ============ BANNER DE COOKIES ============ */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:300;
  background:var(--navy-deep); border-top:1px solid rgba(255,255,255,0.12);
  transition:transform .3s ease, opacity .3s ease;
}
.cookie-banner.is-hidden{transform:translateY(100%); opacity:0;}
.cookie-banner-inner{
  max-width:1320px; margin:0 auto; padding:18px 32px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cookie-banner-inner p{color:#c5cedb; font-size:13px; line-height:1.55; flex:1 1 480px; margin:0;}
.cookie-banner-inner a{color:var(--cyan-2); text-decoration:underline;}
.cookie-banner-actions{display:flex; gap:10px; flex-shrink:0;}
@media(max-width:600px){.cookie-banner-inner{padding:16px 20px;}}

/* ============ CTA PRESENTACIÓN (home) ============ */
.pres-cta{
  background:linear-gradient(120deg, var(--navy-deep), var(--navy)); border-radius:10px;
  padding:48px 56px; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;
}
.pres-cta h2{font-size:clamp(22px,2.8vw,30px); font-weight:800;}
.pres-cta p{color:#9fb0c8; margin-top:12px; line-height:1.6; font-size:15px; max-width:520px;}
.pres-cta .btn{flex-shrink:0;}
@media(max-width:700px){.pres-cta{padding:36px 28px;}}

/* ============ CALCULADORA RÁPIDA (presupuestador) ============ */
.calc-card{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:28px; margin:24px 0 20px;}
.calc-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media(max-width:600px){.calc-grid{grid-template-columns:1fr;}}
.calc-resultado{background:var(--paper-2); border:1px solid var(--line); margin-top:8px;}
.calc-resultado .mock-row .label, .calc-resultado .mock-total .l{color:var(--steel);}
.calc-resultado .mock-row .val{color:var(--heading);}
.calc-resultado .mock-total{border-top-color:var(--line);}
.calc-resultado .mock-total .v{color:var(--cyan);}
.calc-disclaimer{font-size:12.5px; color:var(--steel-light); line-height:1.6; margin-top:14px; padding-top:14px; border-top:1px solid var(--line);}

/* ============ NAV RÁPIDA PRESUPUESTADOR ============ */
.wp-quicknav{padding:28px 0 0;}
.wp-quicknav-inner{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-lg); padding:16px 20px;}
.wp-quicknav-label{font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; color:var(--steel); text-transform:uppercase; letter-spacing:.03em;}

/* ============ CPQ — configurador de placa ============ */
.cpq-unit-toggle{display:inline-flex; border:1px solid var(--line); border-radius:var(--radius-pill); padding:3px; margin-bottom:var(--space-5);}
.cpq-unit-btn{border:none; background:transparent; padding:7px 16px; border-radius:var(--radius-pill); font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; color:var(--steel); cursor:pointer;}
.cpq-unit-btn.active{background:var(--navy); color:var(--white);}
.cpq-grid-3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:var(--space-5); margin-bottom:var(--space-3);}
@media(max-width:600px){.cpq-grid-3{grid-template-columns:1fr;}}
.cpq-grado-wrap[hidden]{display:none;}
.cpq-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:var(--space-5);}
.cpq-nota{font-size:12px; color:var(--steel-light); margin-top:10px; line-height:1.5;}
.print-only{display:none;}
.cpq-print-header{display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; padding-bottom:16px; border-bottom:2px solid var(--navy);}
.cpq-print-logo{height:44px; width:auto;}
.cpq-print-contacto{font-size:11px; line-height:1.5; color:var(--ink); text-align:right;}

@media print{
	body *{visibility:hidden;}
	.cpq-print-area, .cpq-print-area *{visibility:visible;}
	.cpq-print-area{position:absolute; top:0; left:0; width:100%; padding:0;}
	.cpq-no-print{display:none !important;}
	.print-only{display:flex !important;}
}

/* ============ ICONOS SOCIALES / WHATSAPP ============ */
.icon-link{display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; color:var(--steel); transition:color .2s ease, background .2s ease;}
.icon-link:hover{color:var(--cyan); background:var(--paper-2);}

/* ============ BUSCADOR ============ */
.site-search{position:relative;}
.search-panel{
  position:absolute; top:calc(100% + 10px); right:0; z-index:120;
  display:flex; gap:8px; background:var(--surface); border:1px solid var(--line);
  border-radius:8px; padding:10px; box-shadow:0 20px 40px -16px rgba(11,25,48,0.3);
  width:300px;
}
.search-panel input[type="search"]{
  flex:1; border:1px solid var(--line); border-radius:4px; padding:8px 10px;
  font-size:13.5px; background:var(--paper); color:var(--ink); min-width:0;
}
.search-panel button{
  border:none; border-radius:4px; padding:8px 14px; background:var(--navy);
  color:var(--white); font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap;
}
.search-panel button:hover{background:var(--cyan);}
.search-panel-mobile{display:none;}
@media(max-width:980px){
  .site-search{display:none;}
  .search-panel-mobile{display:flex; margin-top:24px; position:static; width:auto; box-shadow:none; padding:0;}
}
.foot-social{display:flex; gap:10px; margin-top:16px;}
.foot-social a{display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,0.14); color:#8b96ac; transition:color .2s ease, border-color .2s ease;}
.foot-social a:hover{color:var(--cyan-2); border-color:var(--cyan-2);}
.whatsapp-float{
  /* El asistente IA también es un botón flotante fijo en bottom-right
     (z-index 9999) — si compartieran esquina, uno taparía al otro por
     completo. WhatsApp va a la izquierda para que ambos sean visibles. */
  position:fixed; left:24px; bottom:24px; z-index:200;
  width:58px; height:58px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px -6px rgba(0,0,0,0.35);
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-float:hover{transform:translateY(-3px) scale(1.05); box-shadow:0 12px 30px -6px rgba(0,0,0,0.4);}
@media(max-width:600px){.whatsapp-float{left:16px; bottom:16px; width:52px; height:52px;}}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}}
