/* =====================================================
   PLANTILLA CORPORATIVA v1.0
   Variables en :root — cambiar para cada cliente
===================================================== */
:root {
  --primary:   #C41E1E;
  --primary-dk:#8B1515;
  --black:     #0A0A0A;
  --black-2:   #111111;
  --black-3:   #1C1C1C;
  --gray-dk:   #2A2A2A;
  --gray-md:   #666666;
  --gray-lt:   #AAAAAA;
  --white:     #FFFFFF;
  --off:       #F2F1EF;
  --wa:        #25D366;
  --font-d:    "Bebas Neue","Impact","Arial Black",sans-serif;
  --font-b:    "Barlow","Arial",sans-serif;
  --font-m:    "Share Tech Mono","Courier New",monospace;
  --max:       1200px;
}

/* Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:var(--font-b);line-height:1.6}
body.menu-open{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1!important;transform:none!important;transition:none!important}}

/* Layout */
.container{width:min(var(--max),calc(100% - 2rem));margin-inline:auto}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
.section{padding:5rem 0}
.s-black{background:var(--black);color:var(--white)}
.s-dark{background:var(--black-2);color:var(--white)}
.s-white{background:var(--white);color:var(--black)}
.s-off{background:var(--off);color:var(--black)}

/* ── NAV ── */
.top-bar{height:3px;background:var(--primary)}
.site-nav{position:sticky;top:0;z-index:50;background:rgba(10,10,10,.97);backdrop-filter:blur(18px);border-bottom:1px solid var(--gray-dk)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:66px;gap:1rem}
.brand{display:flex;align-items:center;gap:.8rem}
.brand-mark{width:42px;height:42px;background:var(--primary);display:grid;place-items:center;font-family:var(--font-d);font-size:1.3rem;color:#fff;clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%)}
.brand-text{display:grid}
.brand-name{font-family:var(--font-d);font-size:1.2rem;letter-spacing:.08em;line-height:1}
.brand-sub{font-family:var(--font-m);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gray-lt)}
.nav-links{display:flex;align-items:center;gap:1.8rem}
.nav-links a{font-family:var(--font-m);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-lt);transition:color .15s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:#fff}
.nav-cta{padding:.5rem 1.3rem;background:var(--primary);color:#fff;font-family:var(--font-m);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border:none;cursor:pointer;transition:background .15s;clip-path:polygon(0 0,100% 0,100% 68%,88% 100%,0 100%);display:inline-block}
.nav-cta:hover{background:var(--primary-dk)}
.menu-toggle{display:none;background:transparent;border:1px solid var(--gray-dk);color:#fff;padding:.4rem .75rem;font-family:var(--font-m);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}

/* ── HERO SLIDER ── */
.hero{position:relative;min-height:100vh;width:100%;display:flex;align-items:center;overflow:hidden}
.hero-slides{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}
.hero-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease;overflow:hidden}
.hero-slide.active{opacity:1}
.hero-slide img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hero-slide::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:linear-gradient(100deg,rgba(10,10,10,.88) 0%,rgba(10,10,10,.6) 55%,rgba(10,10,10,.25) 100%)}
.hero-content{position:relative;z-index:5;padding:7rem 0 5rem;width:100%}
.hero-tag{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-m);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--primary);margin-bottom:1.25rem}
.hero-tag::before{content:"";width:28px;height:2px;background:var(--primary)}
.hero-h1{font-family:var(--font-d);font-size:clamp(4rem,12vw,11rem);line-height:.88;text-transform:uppercase;letter-spacing:.02em;max-width:780px}
.hero-h1 .accent{color:var(--primary);display:block}
.hero-p{max-width:500px;margin-top:1.75rem;color:rgba(255,255,255,.8);font-size:1rem;font-weight:300;line-height:1.7}
.hero-btns{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.hero-strip{display:flex;gap:0;margin-top:3.5rem;border-top:1px solid rgba(255,255,255,.12);padding-top:2rem}
.hero-stat{padding-right:2.5rem}
.hero-stat:not(:last-child){border-right:1px solid rgba(255,255,255,.12);margin-right:2.5rem}
.hero-stat-val{display:block;font-family:var(--font-d);font-size:3rem;color:var(--primary);line-height:1}
.hero-stat-lbl{font-family:var(--font-m);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:.25rem;display:block}
.hero-dots{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:10;display:flex;gap:.5rem}
.hero-dot{width:28px;height:3px;background:rgba(255,255,255,.3);border:none;cursor:pointer;transition:background .3s,width .3s;padding:0}
.hero-dot.active{background:var(--primary);width:44px}

/* ── BOTONES ── */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.8rem;font-family:var(--font-m);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border:2px solid transparent;transition:all .15s}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);clip-path:polygon(0 0,100% 0,100% 70%,92% 100%,0 100%)}
.btn-primary:hover{background:var(--primary-dk)}
.btn-outline{border-color:rgba(255,255,255,.45);color:#fff}
.btn-outline:hover{border-color:#fff}
.btn-dark{background:var(--black);color:#fff;border-color:var(--black);clip-path:polygon(0 0,100% 0,100% 70%,92% 100%,0 100%)}
.btn-dark:hover{background:var(--black-3)}

/* ── EYEBROW / TITULOS ── */
.eyebrow{font-family:var(--font-m);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--primary);display:flex;align-items:center;gap:.6rem;margin-bottom:.9rem}
.eyebrow::before{content:"";width:20px;height:2px;background:currentColor}
.s-white .eyebrow,.s-off .eyebrow{color:var(--primary)}
.sec-title{font-family:var(--font-d);font-size:clamp(2.5rem,5.5vw,5.5rem);line-height:.92;text-transform:uppercase;letter-spacing:.03em}
.sec-title em{color:var(--primary);font-style:normal}
.s-white .sec-title,.s-off .sec-title{color:var(--black)}
.muted{color:var(--gray-lt)}
.s-white .muted,.s-off .muted{color:var(--gray-md)}

/* ── SERVICIOS CON FOTO ── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--gray-dk);margin-top:2.5rem;grid-auto-rows:1fr}
.srv-card{position:relative;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;overflow:hidden;cursor:pointer;text-decoration:none;color:inherit}
.srv-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.srv-card:hover .srv-img{transform:scale(1.05)}
.srv-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.92) 0%,rgba(10,10,10,.5) 50%,rgba(10,10,10,.15) 100%);transition:background .3s}
.srv-card:hover .srv-overlay{background:linear-gradient(to top,rgba(196,30,30,.85) 0%,rgba(10,10,10,.7) 55%,rgba(10,10,10,.2) 100%)}
.srv-content{position:relative;z-index:2}
.srv-num{font-family:var(--font-m);font-size:.58rem;letter-spacing:.2em;color:var(--primary);text-transform:uppercase;margin-bottom:.4rem;display:block}
.srv-title{font-family:var(--font-d);font-size:1.6rem;text-transform:uppercase;letter-spacing:.04em;line-height:1.05;color:#fff;margin-bottom:.5rem}
.srv-desc{font-size:.82rem;color:rgba(255,255,255,.7);line-height:1.5;max-height:0;overflow:hidden;transition:max-height .4s ease,opacity .3s}
.srv-card:hover .srv-desc{max-height:80px;opacity:1}
.srv-cta{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-m);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-top:.6rem;opacity:0;transition:opacity .3s}
.srv-card:hover .srv-cta{opacity:1}

/* ── SPLIT FOTO + TEXTO ── */
.photo-split{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
.split-img{position:relative;overflow:hidden}
.split-img img{width:100%;height:100%;object-fit:cover}
.split-body{padding:4rem;display:flex;flex-direction:column;justify-content:center;gap:1.25rem}
.split-body.dark{background:var(--black-2)}
.split-body.light{background:var(--white);color:var(--black)}

/* ── PROCESO ── */
.process-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:var(--gray-dk);margin-top:2.5rem}
.proc-step{background:var(--black-2);padding:2.25rem 1.75rem;border-top:3px solid var(--gray-dk);transition:border-color .2s}
.proc-step:hover{border-top-color:var(--primary)}
.proc-n{font-family:var(--font-d);font-size:3.5rem;color:rgba(255,255,255,.06);line-height:1;margin-bottom:.75rem}
.proc-title{font-family:var(--font-d);font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;color:var(--white)}
.proc-desc{font-size:.82rem;color:var(--gray-lt);line-height:1.6}

/* ── VALORES ── */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:#ddd;margin-top:2rem}
.val-card{padding:2.25rem;background:#fff;color:var(--black);border-top:3px solid transparent;transition:border-color .2s}
.val-card:hover{border-top-color:var(--primary)}
.val-n{font-family:var(--font-d);font-size:3rem;color:rgba(0,0,0,.07);line-height:1;margin-bottom:.5rem}
.val-title{font-family:var(--font-d);font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;color:var(--black)}
.val-desc{font-size:.87rem;color:var(--gray-md);line-height:1.6}

/* ── PROYECTOS ── */
.project-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--gray-dk);margin-top:2.5rem}
.proj-card{position:relative;min-height:360px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem}
.proj-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.proj-card:hover .proj-img{transform:scale(1.04)}
.proj-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.92) 0%,rgba(10,10,10,.4) 60%,transparent 100%)}
.proj-body{position:relative;z-index:2}
.proj-type{font-family:var(--font-m);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin-bottom:.4rem}
.proj-name{font-family:var(--font-d);font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em;line-height:1.1;color:#fff}
.proj-loc{font-family:var(--font-m);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:.4rem}

/* ── CTA BAND ── */
.cta-band{position:relative;overflow:hidden;padding:5rem 0}
.cta-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center}
.cta-bg::after{content:"";position:absolute;inset:0;background:rgba(196,30,30,.88)}
.cta-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:center}
.cta-band .sec-title{color:#fff}
.cta-band .sec-title em{color:#FFD700}
.cta-band .muted{color:rgba(255,255,255,.85)}
.cta-band .eyebrow{color:rgba(255,255,255,.7)}

/* ── PAGE HERO ── */
.page-hero{position:relative;overflow:hidden;padding:5.5rem 0 3.5rem}
.page-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.page-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.92) 0%,rgba(10,10,10,.65) 60%,rgba(10,10,10,.3) 100%)}
.page-hero-body{position:relative;z-index:2}
.page-hero h1{font-family:var(--font-d);font-size:clamp(2.8rem,7vw,7rem);line-height:.9;text-transform:uppercase;letter-spacing:.03em;color:#fff;margin:.6rem 0 .9rem}
.page-hero h1 em{color:var(--primary);font-style:normal}
.page-hero-line{height:3px;background:var(--primary);margin-top:2.5rem}

/* ── SERVICIOS DETALLE ── */
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:#ddd;margin-top:2rem}
.d-card{background:#fff;color:var(--black);padding:1.75rem;border-top:3px solid transparent;transition:border-color .2s}
.d-card:hover{border-top-color:var(--primary)}
.d-cat{font-family:var(--font-m);font-size:.57rem;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:.35rem}
.d-title{font-family:var(--font-d);font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;color:var(--black)}
.d-desc{font-size:.83rem;color:var(--gray-md);line-height:1.6;margin-bottom:.65rem}
.d-list{list-style:none;display:grid;gap:.2rem}
.d-list li{font-family:var(--font-m);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-md);padding-left:.9rem;position:relative}
.d-list li::before{content:">";position:absolute;left:0;color:var(--primary)}
.d-badge{display:inline-block;margin-top:.65rem;padding:.18rem .55rem;border:1px solid var(--primary);color:var(--primary);font-family:var(--font-m);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase}

/* ── FAQ ── */
.faq-list{margin-top:2.5rem;display:grid;gap:2px;background:#ccc}
.faq-item{background:#fff}
.faq-item summary{padding:1.3rem 1.75rem;cursor:pointer;list-style:none;font-family:var(--font-d);font-size:1rem;text-transform:uppercase;letter-spacing:.04em;color:var(--black);display:flex;justify-content:space-between;align-items:center;gap:1rem;border-left:4px solid transparent;transition:border-color .15s}
.faq-item[open] summary{border-left-color:var(--primary)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-m);color:var(--primary);font-size:1.4rem;flex-shrink:0}
.faq-item[open] summary::after{content:"-"}
.faq-answer{padding:.25rem 1.75rem 1.4rem;font-size:.88rem;color:var(--gray-md);line-height:1.7}

/* ── CONTACTO ── */
.contact-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:0;background:#ddd;min-height:500px}
.contact-info{background:var(--black-2);padding:3.5rem;display:flex;flex-direction:column;gap:2rem;justify-content:center}
.c-item{border-left:3px solid var(--primary);padding-left:1.1rem}
.c-lbl{font-family:var(--font-m);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray-lt);display:block;margin-bottom:.2rem}
.c-val{font-family:var(--font-d);font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;color:#fff}
.c-val a{color:#fff}
.c-val a:hover{color:var(--primary)}
.contact-form-wrap{background:var(--off);padding:3.5rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.f-field{display:grid;gap:.3rem}
.f-field.full{grid-column:1/-1}
.f-field label{font-family:var(--font-m);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gray-md)}
.f-field input,.f-field textarea,.f-field select{width:100%;padding:.8rem 1rem;border:1px solid #ccc;background:#fff;color:var(--black);border-radius:0;font-size:.9rem;transition:border-color .15s}
.f-field input:focus,.f-field textarea:focus,.f-field select:focus{border-color:var(--primary);outline:none}
.f-field textarea{min-height:120px;resize:vertical}
[data-form-status]{padding:.8rem 1rem;font-size:.85rem;border:1px solid}
[data-form-status][data-status="success"]{border-color:#2d7a2d;color:#2d7a2d;background:#f0faf0}
[data-form-status][data-status="error"]{border-color:#b3261e;color:#b3261e;background:#fdf0f0}
.hp-wrap{position:absolute;left:-9999px;opacity:0;pointer-events:none}

/* ── TESTIMONIO ── */
.quote-wrap{background:var(--black-2);padding:4rem}
blockquote.big-q{border-left:4px solid var(--primary);padding-left:2rem}
blockquote.big-q p{font-family:var(--font-d);font-size:clamp(1.5rem,3vw,2.5rem);text-transform:uppercase;letter-spacing:.03em;line-height:1.15;color:#fff}
blockquote.big-q cite{display:block;margin-top:1rem;font-family:var(--font-m);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray-lt);font-style:normal}

/* ── MAPA ── */
.section-map{background:var(--black-2)}
.map-header{padding:3.5rem 0 2rem}
.map-wrap{border-top:3px solid var(--primary)}
.map-wrap iframe{display:block;width:100%;height:420px;border:0}

/* ── FOOTER ── */
.footer{background:#050505}
.footer-main{padding:4rem 0 2.5rem;border-top:3px solid var(--primary)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:3rem}
.footer-brand-mark{width:48px;height:48px;background:var(--primary);display:grid;place-items:center;font-family:var(--font-d);font-size:1.4rem;color:#fff;clip-path:polygon(0 0,100% 0,100% 70%,70% 100%,0 100%);margin-bottom:1rem}
.footer-brand-name{font-family:var(--font-d);font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:.5rem}
.footer-brand-desc{font-size:.83rem;color:var(--gray-lt);line-height:1.7;margin-bottom:1.25rem}
.footer-wa-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.1rem;background:#25D366;color:#fff;font-family:var(--font-m);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:background .15s}
.footer-wa-btn:hover{background:#1fbd5a}
.footer-col-title{font-family:var(--font-d);font-size:1rem;text-transform:uppercase;letter-spacing:.1em;color:#fff;margin-bottom:1.1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-dk)}
.footer-links{list-style:none;display:grid;gap:.5rem}
.footer-links a{font-family:var(--font-m);font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-lt);transition:color .15s}
.footer-links a:hover{color:var(--primary)}
.footer-contact-list{list-style:none;display:grid;gap:1rem}
.footer-contact-list li{display:grid;gap:.15rem}
.fc-label{font-family:var(--font-m);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--primary)}
.footer-contact-list span,.footer-contact-list a{font-size:.83rem;color:var(--gray-lt);line-height:1.5}
.footer-contact-list a:hover{color:#fff}
.footer-bottom{border-top:1px solid var(--gray-dk);padding:1.25rem 0}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}
.footer-bottom-inner span{font-family:var(--font-m);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-md)}

/* ── WA FLOAT ── */
.wa-float{position:fixed;right:1.25rem;bottom:1.25rem;z-index:100;width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 6px 24px rgba(37,211,102,.35);transition:transform .2s;text-decoration:none}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:28px;height:28px}

/* ── CATALOGO ── */
.cat-filter{display:flex;flex-wrap:wrap;gap:3px;background:var(--gray-dk);padding:3px;margin-top:2.5rem}
.cat-btn{flex:1 1 auto;padding:.75rem 1.25rem;background:var(--black-2);border:none;cursor:pointer;font-family:var(--font-m);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-lt);transition:background .15s,color .15s;white-space:nowrap}
.cat-btn:hover{background:var(--black-3);color:#fff}
.cat-btn.active{background:var(--primary);color:#fff;font-weight:700}
.cat-count{font-family:var(--font-m);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-md);margin-top:1rem}
.cat-count strong{color:var(--primary)}
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--gray-dk);margin-top:3px}
.prod-card{background:var(--black-2);display:flex;flex-direction:column;transition:background .2s;position:relative;overflow:hidden}
.prod-card:hover{background:var(--black-3)}
.prod-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary);opacity:0;transition:opacity .2s}
.prod-card:hover::before{opacity:1}
.prod-img-wrap{position:relative;overflow:hidden;aspect-ratio:4/3;background:#111}
.prod-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.prod-card:hover .prod-img-wrap img{transform:scale(1.04)}
.prod-cat-badge{position:absolute;top:.75rem;left:.75rem;background:var(--primary);color:#fff;font-family:var(--font-m);font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;padding:.2rem .55rem}
.prod-body{padding:1.4rem 1.5rem 1.25rem;display:flex;flex-direction:column;flex:1;gap:.5rem}
.prod-name{font-family:var(--font-d);font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;line-height:1.1;color:#fff}
.prod-ref{font-family:var(--font-m);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.prod-desc{font-size:.83rem;color:var(--gray-lt);line-height:1.6;flex:1}
.prod-specs{list-style:none;display:grid;gap:.2rem;margin-top:.25rem}
.prod-specs li{font-family:var(--font-m);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-md);padding-left:.85rem;position:relative}
.prod-specs li::before{content:">";position:absolute;left:0;color:var(--primary)}
.prod-actions{display:flex;gap:3px;margin-top:1rem}
.prod-wa{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem .75rem;background:#25D366;color:#fff;font-family:var(--font-m);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;border:none;cursor:pointer;text-decoration:none;transition:background .15s}
.prod-wa:hover{background:#1fbd5a}
.prod-ficha{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem .85rem;background:var(--black-3);color:var(--gray-lt);font-family:var(--font-m);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--gray-dk);text-decoration:none;transition:all .15s;white-space:nowrap}
.prod-ficha:hover{border-color:var(--primary);color:#fff}
.prod-ficha.no-ficha{opacity:.35;pointer-events:none;cursor:default}
.prod-empty{grid-column:1/-1;padding:4rem 2rem;text-align:center;font-family:var(--font-m);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-md)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .menu-toggle{display:inline-flex}
  .nav-links{position:fixed;top:69px;left:0;right:0;display:none;flex-direction:column;padding:2rem;background:var(--black);border-bottom:3px solid var(--primary);z-index:49}
  .nav-links.is-open{display:flex}
  .hero-strip{flex-direction:column;gap:1rem}
  .hero-stat{border-right:none!important;margin-right:0;border-top:1px solid rgba(255,255,255,.12);padding-top:1rem}
  .services-grid{grid-template-columns:1fr}
  .srv-card{min-height:280px}
  .srv-desc{max-height:60px;opacity:1}
  .srv-cta{opacity:1}
  .photo-split{grid-template-columns:1fr}
  .split-img{min-height:280px}
  .process-row{grid-template-columns:1fr 1fr}
  .cta-inner{grid-template-columns:1fr}
  .detail-grid,.prod-grid{grid-template-columns:1fr}
  .project-mosaic,.values-grid{grid-template-columns:1fr}
  .contact-split,.form-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
  .cat-btn{flex:none}
}
@media(max-width:540px){
  .process-row,.footer-grid,.prod-grid{grid-template-columns:1fr}
  .prod-actions{flex-direction:column}
}

/* ════════════════════════════════════════════
   FIX MOVIL — viewport overflow + hero adaptado
════════════════════════════════════════════ */

/* Evitar overflow horizontal en toda la pagina */
html, body { max-width: 100%; overflow-x: hidden; }
* { max-width: 100%; }
img, svg, iframe { max-width: 100%; }

/* Hero: altura real de viewport en moviles (Chrome Android/Samsung) */
@media(max-width: 900px) {
  .hero {
    min-height: 100vh;
    min-height: 100dvh; /* dynamic viewport height - corrige el espacio extra de la barra de Chrome */
  }
  .hero-h1 {
    font-size: clamp(2.8rem, 11vw, 5rem);
    max-width: 100%;
    word-break: break-word;
  }
  .hero-content { padding: 6rem 0 3.5rem; }
  .hero-tag { font-size: .56rem; letter-spacing: .14em; }
  .hero-p { font-size: .9rem; max-width: 100%; }

  /* Imagen del slider: reencuadre vertical sin cambiar el archivo */
  .hero-slide img {
    object-position: center 22%; /* sube el encuadre para priorizar rostro/accion en formato vertical */
  }
  .hero-slide::after {
    background: linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.75) 55%, rgba(10,10,10,.92) 100%);
  }
}

@media(max-width: 480px) {
  .hero-h1 { font-size: clamp(2.4rem, 13vw, 3.6rem); }
  .hero-stat-val { font-size: 2.2rem; }
  .container { width: calc(100% - 1.5rem); }
}

/* ════════════════════════════════════════════
   PAGINA DE DETALLE DE PRODUCTO
════════════════════════════════════════════ */
.prod-detail{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:600px}
.prod-gallery{position:relative;background:#0a0a0a;overflow:hidden}
.prod-gallery-main{position:relative;aspect-ratio:4/3;overflow:hidden;background:#111}
.prod-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.prod-gallery-thumbs{display:flex;gap:3px;padding:3px;background:var(--gray-dk)}
.prod-thumb{flex:1;aspect-ratio:1/1;overflow:hidden;cursor:pointer;border:2px solid transparent;background:#111;padding:0}
.prod-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.55;transition:opacity .2s}
.prod-thumb.active{border-color:var(--primary)}
.prod-thumb.active img{opacity:1}
.prod-thumb:hover img{opacity:.85}

.prod-detail-info{padding:3.5rem;background:var(--white);color:var(--black);display:flex;flex-direction:column;justify-content:center}
.prod-detail-cat{font-family:var(--font-m);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin-bottom:.5rem}
.prod-detail-ref{font-family:var(--font-m);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-md);margin-bottom:1rem}
.prod-detail-title{font-family:var(--font-d);font-size:clamp(2rem,4vw,3rem);text-transform:uppercase;letter-spacing:.03em;line-height:1.05;color:var(--black);margin-bottom:1rem}
.prod-detail-desc{font-size:1rem;color:var(--gray-md);line-height:1.7;margin-bottom:1.5rem}
.prod-detail-specs{list-style:none;display:grid;gap:.6rem;margin-bottom:2rem;padding:1.5rem;background:var(--off);border-left:3px solid var(--primary)}
.prod-detail-specs li{font-size:.88rem;color:var(--black);padding-left:1.2rem;position:relative}
.prod-detail-specs li::before{content:"\2713";position:absolute;left:0;color:var(--primary);font-weight:700}
.prod-detail-actions{display:flex;flex-wrap:wrap;gap:.75rem}

.prod-back{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-m);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-lt);margin-bottom:1.5rem}
.prod-back:hover{color:var(--white)}

.prod-related{margin-top:0}
.prod-related-title{font-family:var(--font-d);font-size:1.8rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:1.5rem}

@media(max-width:900px){
  .prod-detail{grid-template-columns:1fr}
  .prod-detail-info{padding:2rem 1.5rem}
}

/* ── Ajuste boton ver detalle en card de catalogo ── */
.prod-actions { flex-wrap: wrap; }
.prod-ficha[href^="producto-"] { background: var(--black-3); color: var(--white); border: 1px solid var(--gray-dk); }
.prod-ficha[href^="producto-"]:hover { border-color: var(--primary); }


/* ═══════════════════════════════════════════════════
   PAGINAS DE ESPECIALIDAD
═══════════════════════════════════════════════════ */
.esp-features {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    background:#e0e0e0;
}
.esp-feat {
    background:#fff;
    padding:1.75rem;
    display:flex;
    gap:1rem;
    align-items:flex-start;
    border-top:3px solid transparent;
    transition:border-color .2s;
}
.esp-feat:hover { border-top-color:var(--primary) }
.esp-feat-icon {
    color:var(--primary);
    font-size:.7rem;
    margin-top:.35rem;
    flex-shrink:0;
}
.esp-feat strong {
    display:block;
    font-family:var(--font-d);
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--black);
    margin-bottom:.3rem;
}
.esp-feat p {
    font-size:.83rem;
    color:var(--gray-md);
    line-height:1.6;
    margin:0;
}

/* Video */
.esp-video-wrap {
    max-width:860px;
    margin:2rem auto 0;
}
.esp-video-embed {
    position:relative;
    padding-bottom:56.25%;
    height:0;
    overflow:hidden;
    background:#000;
}
.esp-video-embed iframe {
    position:absolute;
    top:0; left:0;
    width:100%; height:100%;
    border:0;
}
.esp-video-placeholder {
    aspect-ratio:16/9;
    background:var(--black-3);
    border:2px dashed var(--gray-dk);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.75rem;
    cursor:pointer;
    transition:border-color .2s;
}
.esp-video-placeholder:hover { border-color:var(--primary) }
.esp-video-icon {
    font-size:3rem;
    color:var(--primary);
    line-height:1;
}
.esp-video-placeholder p {
    font-family:var(--font-d);
    font-size:1.2rem;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:#fff;
    margin:0;
}
.esp-video-placeholder span {
    font-family:var(--font-m);
    font-size:.6rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--gray-lt);
}

/* Responsive especialidades */
@media(max-width:900px) {
    .esp-features { grid-template-columns:1fr 1fr }
}
@media(max-width:540px) {
    .esp-features { grid-template-columns:1fr }
}
