:root{
  --bg:#F7F5EF;
  --bg-soft:#ECE7D9;
  --card:#FFFFFF;
  --ink:#241F17;
  --ink-dim: rgba(36,31,23,0.64);
  --ink-faint: rgba(36,31,23,0.42);
  --line: rgba(36,31,23,0.12);
  --gold:#C79A22;
  --gold-deep:#A17818;
  --gold-soft:#F3E6BE;
  --yellow:#B8892F;
  --yellow-deep:#9A6F1F;
  --yellow-soft:#F1E3C3;
  --green:#2B6E49;
  --green-soft:#E1EEE2;
  --navy:#173E63;
  --navy-soft:#DDE7EF;
  --navy-dark:#102D46;
  --navy-darker:#0A1F33;
  --terracotta:#A8471F;
  --terracotta-soft:#F1E1D5;
  --teal:#1B6A5F;
  --teal-soft:#DEEBE8;
  --radius-lg: 28px;
  --radius-md: 18px;
  --shadow-soft: 0 24px 48px -26px rgba(36,31,23,0.32);
  --shadow-card: 0 14px 32px -20px rgba(36,31,23,0.26);
  --ease: cubic-bezier(.16,.84,.32,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Karla', sans-serif;
  overflow-x:hidden;
  position:relative;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--gold);color:#fff;}
a:focus-visible, button:focus-visible{
  outline:3px solid rgba(199,154,34,0.5);
  outline-offset:4px;
}

.serif{
  font-family:'Poppins', serif;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.1;
}
.mono{
  font-family:'Poppins', sans-serif;
  font-weight:600;
  letter-spacing:0.04em;
}
.eyebrow{
  font-family:'Poppins', sans-serif;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:650;
}
.eyebrow::before{
  content:'';
  width:14px; height:7px;
  border-left:1.5px solid var(--gold-deep);
  border-bottom:1.5px solid var(--gold-deep);
  transform:rotate(-45deg) translateY(-2px);
  display:inline-block;
}

.wrap{
  max-width:1320px;
  margin:0 auto;
  padding:0 clamp(20px,5vw,64px);
}

/* scroll progress */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:0%;
  background:var(--gold); z-index:200; transition:width .1s linear;
}

/* soft ambient blobs for warmth/depth */
.blobs{ position:absolute; inset:0; height:100%; pointer-events:none; z-index:0; overflow:hidden; }
.blobs span{ position:absolute; border-radius:50%; filter:blur(80px); opacity:0.22; }
.blobs .b1{ width:520px; height:520px; background:var(--gold-soft); top:-180px; right:-140px; }
.blobs .b2{ width:420px; height:420px; background:var(--teal-soft); top:900px; left:-180px; }
.blobs .b3{ width:460px; height:460px; background:var(--terracotta-soft); top:2200px; right:-200px; opacity:0.3;}
.blobs .b4{ width:480px; height:480px; background:var(--gold-soft); top:3400px; left:-160px; opacity:0.3; }
.blobs .b5{ width:440px; height:440px; background:var(--green-soft); top:4400px; right:-160px; opacity:0.28; }

/* faint photographic texture — visible only in the negative space around cards */
.bg-photos{ position:absolute; inset:0; height:100%; pointer-events:none; z-index:0; overflow:hidden; }
.bg-photos img{
  position:absolute; object-fit:cover; border-radius:60px;
  opacity:0.038; filter:grayscale(1) blur(1.5px) contrast(1.1);
  mix-blend-mode:multiply;
}
.bg-photos .p1{ width:620px; height:620px; top:40px; left:-180px; transform:rotate(-9deg); }
.bg-photos .p2{ width:520px; height:520px; top:1200px; right:-140px; transform:rotate(7deg); }
.bg-photos .p3{ width:540px; height:540px; top:3320px; left:-150px; transform:rotate(-6deg); }
.bg-photos .p4{ width:520px; height:520px; top:3980px; right:-160px; transform:rotate(8deg); }
.bg-photos .p5{ width:480px; height:480px; top:5000px; left:-110px; transform:rotate(-5deg); }
.bg-photos .p6{ width:460px; height:460px; top:2050px; right:-120px; transform:rotate(5deg); }

mark.hl{
  background:var(--gold); color:#fff; padding:12px 30px 15px; border-radius:999px;
  display:inline-block; transform:rotate(-1deg); line-height:1; white-space:nowrap;
}
.hero h1 mark.hl{ font-size:0.68em; vertical-align:middle; }

/* signature ghost numeral — recurring editorial motif */
.section-head{ position:relative; }
.ghost-num{
  position:absolute; top:-58px; right:0; font-family:'Poppins'; font-weight:600; font-size:120px;
  color:var(--ink); opacity:0.045; line-height:1; pointer-events:none; letter-spacing:-0.03em;
  user-select:none;
}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition: background .4s var(--ease), box-shadow .4s var(--ease), padding .3s var(--ease);
  padding:24px 0;
}
header.scrolled{
  background:var(--bg);
  box-shadow:0 1px 0 var(--line), 0 12px 30px -22px rgba(36,31,23,0.25);
  padding:14px 0;
}
nav{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{display:flex; align-items:center; gap:12px; flex:none;}
.nav-actions{display:flex; align-items:center; gap:10px;}
.brand img{height:72px; width:auto; max-width:none; object-fit:contain; border-radius:10px; transition:height .3s var(--ease);}
header.scrolled .brand img{height:56px;}
.brand-text{display:flex; flex-direction:column; line-height:1;}
.brand-text b{font-family:'Poppins'; font-weight:700; font-size:17px;}
.brand-text span{font-family:'Poppins'; font-size:9.5px; color:var(--ink-faint); letter-spacing:0.06em; margin-top:4px; font-weight:600;}

.nav-links{display:flex; gap:2px; align-items:center;}
.nav-links a{
  font-size:14px; font-weight:500;
  color:var(--ink-dim); position:relative; padding:9px 15px;
  transition:color .25s;
}
.nav-links a::after{
  content:''; position:absolute; left:15px; right:15px; bottom:4px; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav-links a:hover, .nav-links a.active{color:var(--ink);}
.nav-links a:hover::after, .nav-links a.active::after{ transform:scaleX(1); }

.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-size:14px; font-weight:600;
  padding:13px 24px; border-radius:999px;
  border:1px solid var(--navy-dark);
  color:#fff; background:var(--navy-dark);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s;
  white-space:nowrap; position:relative; overflow:hidden;
}
.btn::before{
  content:''; position:absolute; inset:0; background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,0.16) 50%, transparent 70%);
  transform:translateX(-120%); transition:transform .7s var(--ease);
}
.btn:hover::before{ transform:translateX(120%); }
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-soft); background:var(--navy-darker); }
.btn.ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn.ghost::before{ display:none; }
.btn.ghost:hover{ border-color:var(--ink); background:var(--card); }
.btn svg{width:15px;height:15px;}

.menu-btn{
  display:none; position:relative; align-items:center; justify-content:center;
  width:44px; height:44px; background:rgba(255,255,255,0.92);
  border:1px solid rgba(36,31,23,0.12); border-radius:50%;
  cursor:pointer; padding:0; flex:none;
  box-shadow:0 8px 20px -16px rgba(16,45,70,0.6);
  transition:background .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.menu-btn:hover{ transform:translateY(-1px); border-color:rgba(16,45,70,0.24); box-shadow:0 14px 26px -18px rgba(16,45,70,0.7); }
.menu-btn span{
  position:absolute; width:18px; height:2px; background:var(--ink); border-radius:2px;
  transition:transform .28s var(--ease), top .28s var(--ease), background .25s var(--ease);
}
.menu-btn span:first-child{ top:17px; }
.menu-btn span:last-child{ top:25px; }
.menu-btn[aria-expanded="true"]{ background:var(--navy-dark); border-color:var(--navy-dark); }
.menu-btn[aria-expanded="true"] span{ top:21px; background:#fff; }
.menu-btn[aria-expanded="true"] span:first-child{ transform:rotate(45deg); }
.menu-btn[aria-expanded="true"] span:last-child{ transform:rotate(-45deg); }
.mobile-only-link{ display:none; }

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  padding-top:120px;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:56px;
  align-items:center;
  width:100%;
}
.hero h1{
  font-size:clamp(42px, 5.1vw, 72px);
  color:var(--ink);
  line-height:1.14;
}
.hero h1 .line{ display:block; overflow:visible; padding-bottom:0.08em; margin-bottom:-0.08em; }
.hero h1 .line:nth-child(1){ overflow:visible; }
.hero h1 .line:nth-child(1) span{
  display:block;
  transform:translateY(115%);
  animation: rise .9s var(--ease) forwards;
  animation-delay:.15s;
}
.hero h1 .line:nth-child(2) span{
  display:block;
  opacity:0;
  animation: fadeIn .7s var(--ease) forwards;
  animation-delay:.4s;
}
@keyframes rise{ to{ transform:translateY(0); } }
@keyframes fadeIn{ to{ opacity:1; } }

.hero-sub{
  margin-top:26px; max-width:460px;
  font-size:17.5px; line-height:1.7; color:var(--ink-dim);
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.55s;
}
.hero-cta{
  margin-top:34px; display:flex; gap:14px; flex-wrap:wrap;
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.7s;
}
.hero-trust{
  margin-top:46px;
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.85s;
}
.hero-trust .label{
  font-family:'Poppins'; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; font-weight:600;
  color:var(--ink-faint); margin-bottom:14px; display:block;
}
.hero-trust .logos{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.hero-trust .logos img{
  height:22px; width:auto; object-fit:contain;
  transition:transform .35s var(--ease), filter .35s var(--ease);
}
.hero-trust .logos img:hover{ transform:translateY(-1px); filter:saturate(1.08) contrast(1.03); }

@keyframes fadeUp{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }
.hero-eyebrow{opacity:0; animation: fadeUp .7s var(--ease) forwards; animation-delay:.05s;}

.hero-media{
  position:relative;
  opacity:0; animation: fadeUp 1s var(--ease) forwards; animation-delay:.3s;
}
.hero-media .frame{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  aspect-ratio: 4/4.6; box-shadow:var(--shadow-soft);
}
.hero-media img{ width:100%; height:100%; object-fit:cover; filter:sepia(0.1) saturate(1.08) contrast(1.04); }
.hero-tag{
  position:absolute; bottom:-26px; left:-26px;
  background:var(--card); color:var(--ink);
  border-radius:var(--radius-md);
  padding:18px 20px; max-width:220px; line-height:1.5;
  box-shadow:var(--shadow-soft);
  display:flex; align-items:center; gap:14px;
  border:1px solid var(--line);
}
.hero-tag .num{ font-family:'Poppins'; font-size:30px; font-weight:700; color:var(--gold-deep); line-height:1; flex:none; }
.hero-tag span{ font-size:12px; color:var(--ink-dim); }
.hero-badge{
  position:absolute; top:-18px; right:-18px; width:88px; height:88px; border-radius:50%;
  background:var(--navy-dark); color:var(--bg); display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:'Poppins'; font-size:9.5px; line-height:1.35; letter-spacing:0.03em; font-weight:650; padding:8px;
  box-shadow:var(--shadow-card);
  animation: spin 20s linear infinite;
  border:1px solid rgba(251,247,237,0.15);
}
.hero-badge::before{
  content:''; position:absolute; inset:6px; border-radius:50%; border:1px dashed rgba(251,247,237,0.25);
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- MARQUEE / CREDENTIALS STRIP ---------- */
.marquee-wrap{
  background:var(--bg);
  padding:20px 0; overflow:hidden; position:relative; z-index:2;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.marquee{ display:flex; width:max-content; animation:scroll 42s linear infinite; }
.marquee span{
  font-family:'Poppins'; font-size:11px; font-weight:600; color:var(--ink-dim); letter-spacing:0.06em; text-transform:uppercase;
  padding:0 26px; white-space:nowrap; display:flex; align-items:center; gap:26px; border-right:1px solid var(--line);
}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- SECTION SHARED ---------- */
section{ position:relative; z-index:2; padding:120px 0; }
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:40px;
  margin-bottom:60px; flex-wrap:wrap;
}
.section-head h2{ font-size:clamp(32px,4vw,50px); }
.reveal{ opacity:0; transform:translateY(32px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal-stagger.in > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.12s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.19s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.26s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.33s;}
.reveal-stagger.in > *:nth-child(6){transition-delay:.4s;}
.serv-grid.reveal-stagger.in > *{ transition-delay:.05s; }

/* ---------- SERVICIOS ---------- */
.serv-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:52px 22px; align-items:stretch;
}
.serv-grid-compact{ gap:16px; margin-top:44px; }
.serv-card.compact{
  padding:26px 24px 24px; display:flex; flex-direction:column; background:rgba(236,231,217,0.78); border-style:dashed;
}
.serv-card.compact .ic{
  position:static; margin-bottom:18px; box-shadow:none; width:42px; height:42px;
}
.serv-card.compact .ic::after{ display:none; }
.serv-card.compact .body{ padding:0; }
.serv-card.compact h3{ font-size:18px; }
.serv-card.compact p{ font-size:13.5px; }
.serv-card.compact:hover{ box-shadow:var(--shadow-card); }
.serv-card{
  background:var(--card); border-radius:var(--radius-lg);
  border:1px solid var(--line); position:relative;
  display:block;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.serv-grid:not(.serv-grid-compact) .serv-card{
  height:100%;
  display:flex;
  flex-direction:column;
}
.serv-card:hover{ box-shadow:var(--shadow-soft); }
.serv-card .photo{
  position:relative; aspect-ratio:4/2.5; overflow:hidden; background:var(--bg-soft);
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.serv-card .photo img{
  width:100%; height:100%; object-fit:cover; transform:scale(1.1);
  filter:sepia(0.14) saturate(0.94) contrast(1.02) brightness(0.98);
  transition:transform .8s var(--ease), filter .5s var(--ease);
}
.serv-card:hover .photo img{ transform:scale(1.2); filter:sepia(0.05) saturate(1.1) contrast(1.04) brightness(1.01); }
.serv-card .photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(36,31,23,0) 55%, rgba(36,31,23,0.18) 100%);
}
.serv-card .ic{
  position:absolute; left:22px; bottom:-25px; z-index:2;
  width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--card); border:1.5px solid currentColor;
  box-shadow:0 10px 22px -10px rgba(36,31,23,0.4);
  transition:transform .4s var(--ease), background .35s var(--ease);
}
.serv-card .ic::after{
  content:''; position:absolute; width:6px; height:6px; border-radius:50%; background:var(--gold);
  top:-2px; right:-2px; box-shadow:0 0 0 2px var(--card);
}
.serv-card:hover .ic{ transform:scale(1.08); background:currentColor; }
.serv-card:hover .ic svg{ stroke:var(--card); }
.serv-card .ic svg{ width:22px; height:22px; stroke-width:1.5; fill:none; stroke:currentColor; transition:stroke .3s; }
.serv-card .body{ padding:43px 26px 28px; }
.serv-grid:not(.serv-grid-compact) .serv-card .body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding-bottom:64px;
}
.serv-card h3{ font-family:'Poppins'; font-weight:600; font-size:21px; margin-bottom:9px; }
.serv-grid:not(.serv-grid-compact) .serv-card h3{
  min-height:62px;
  margin-bottom:8px;
  display:flex;
  align-items:flex-start;
}
.serv-card p{ font-size:14px; color:var(--ink-dim); line-height:1.6; max-width:34ch; margin-bottom:20px; }
.serv-grid:not(.serv-grid-compact) .serv-card p{
  max-width:none;
  font-size:13.5px;
  line-height:1.52;
  min-height:68px;
  margin-bottom:18px;
}
.serv-card .more{ font-size:12.5px; font-weight:600; display:inline-flex; align-items:center; gap:7px; letter-spacing:0.03em; text-transform:uppercase; padding-bottom:2px; border-bottom:1px solid currentColor; }
.serv-grid:not(.serv-grid-compact) .serv-card .more{
  width:max-content;
  margin-top:auto;
}
.serv-card .more svg{ width:13px; height:13px; transition:transform .3s var(--ease); }
.serv-card:hover .more svg{ transform:translateX(4px); }

.c1 .ic{ color:var(--gold-deep); } .c1 .more{ color:var(--gold-deep); }
.c2 .ic{ color:var(--navy); } .c2 .more{ color:var(--navy); }
.c3 .ic{ color:var(--green); } .c3 .more{ color:var(--green); }
.c4 .ic{ color:var(--terracotta); } .c4 .more{ color:var(--terracotta); }
.c5 .ic{ color:var(--teal); } .c5 .more{ color:var(--teal); }
.c6 .ic{ color:var(--gold-deep); } .c6 .more{ color:var(--gold-deep); }

/* ---------- EMPRESA ---------- */
#empresa{ background:var(--bg-soft); border-radius:56px; margin:0 clamp(10px,2vw,24px); width:auto; }
#empresa .wrap{ display:grid; grid-template-columns:0.85fr 1fr; gap:76px; align-items:center; }
.empresa-media{ position:relative; }
.empresa-media .ph{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:4/5; }
.empresa-media img,
.empresa-media video{ width:100%; height:100%; object-fit:cover; filter:sepia(0.08) saturate(1.02) contrast(1.02); }
.empresa-stat{
  position:absolute; bottom:-22px; right:-22px; background:var(--navy-dark); color:var(--bg); border-radius:var(--radius-md);
  padding:22px 26px; text-align:left; box-shadow:var(--shadow-soft);
  max-width:calc(100% - 24px);
}
.empresa-stat b{ font-family:'Poppins'; font-size:38px; font-weight:700; color:var(--gold); display:block; line-height:1; }
.empresa-stat span{ font-family:'Poppins'; font-size:10px; color:rgba(251,247,237,0.66); letter-spacing:0.05em; font-weight:600; }

#empresa h2{ font-size:clamp(30px,3.6vw,44px); margin:18px 0 22px; }
#empresa p{ color:var(--ink-dim); font-size:16px; line-height:1.75; margin-bottom:16px; max-width:54ch; }

.checklist{ margin-top:32px; display:grid; grid-template-columns:1fr 1fr; gap:16px 26px; }
.checklist li{ list-style:none; display:flex; gap:11px; font-size:14px; color:var(--ink-dim); align-items:flex-start; line-height:1.5; }
.checklist li .tick{
  flex:none; width:18px; height:18px; position:relative; margin-top:2px; border:1.5px solid var(--gold-deep); border-radius:50%;
}
.checklist li .tick::after{ content:''; position:absolute; left:5px; top:4px; width:6px; height:3px; border-left:1.5px solid var(--gold-deep); border-bottom:1.5px solid var(--gold-deep); transform:rotate(-45deg); }

/* ---------- VIDEO BAND ---------- */
.video-band{
  position:relative;
  min-height:clamp(360px, 44vw, 560px);
  padding:0;
  margin:0;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:var(--navy-darker);
  isolation:isolate;
}
.video-band video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.88) contrast(1.06);
  z-index:-2;
}
.video-band__shade{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg, rgba(10,31,51,0.88) 0%, rgba(10,31,51,0.62) 42%, rgba(10,31,51,0.16) 100%),
    linear-gradient(180deg, rgba(10,31,51,0.18), rgba(10,31,51,0.38));
}
.video-band__content{
  max-width:620px;
  color:#fff;
  padding:70px 0;
}
.video-band .eyebrow{ color:var(--gold); }
.video-band .eyebrow::before{ border-color:var(--gold); }
.video-band h2{
  font-size:clamp(34px,4.4vw,58px);
  margin-top:18px;
  color:#fff;
  max-width:12ch;
}
.video-band p{
  margin-top:22px;
  max-width:48ch;
  font-size:17px;
  line-height:1.7;
  color:rgba(255,255,255,0.76);
}

/* ---------- NORMATIVA (certificate seals) ---------- */
#normativa .wrap > .eyebrow{ margin-bottom:20px; }
.norm-panel{
  position:relative; padding:36px 32px; border-radius:40px; overflow:hidden;
  background:linear-gradient(155deg, var(--navy-soft), #F2F5F4 55%, var(--card) 100%);
}
.norm-panel::before{
  content:''; position:absolute; width:320px; height:320px; border-radius:50%;
  background:var(--gold-soft); opacity:0.6; filter:blur(55px); bottom:-160px; left:-100px; pointer-events:none;
}
.norm-row{ display:grid; grid-template-columns:repeat(5, 1fr); gap:16px; position:relative; }
.norm-item{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden;
  padding:28px 22px 24px; transition:box-shadow .35s var(--ease), transform .35s var(--ease), border-color .35s; position:relative;
}
.norm-item::before{
  content:''; position:absolute; top:0; left:0; right:0; height:4px; transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease); background:var(--gold-deep);
}
.norm-item:nth-child(5n+2)::before{ background:var(--navy); }
.norm-item:nth-child(5n+3)::before{ background:var(--green); }
.norm-item:nth-child(5n+4)::before{ background:var(--terracotta); }
.norm-item:nth-child(5n+5)::before{ background:var(--teal); }
.norm-item:hover{ box-shadow:var(--shadow-soft); transform:translateY(-5px); border-color:transparent; }
.norm-item:hover::before{ transform:scaleX(1); }
.norm-item .tag{
  display:flex; align-items:center; gap:10px; font-family:'Poppins'; font-size:14.5px; font-weight:700; color:var(--ink);
  margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--line);
}
.norm-item .tag::before{
  content:'§'; color:var(--gold-deep); font-size:16px; font-weight:700; flex:none;
  width:32px; height:32px; border-radius:50%; border:1.5px solid var(--gold-deep);
  display:flex; align-items:center; justify-content:center;
}
.norm-item:nth-child(5n+2) .tag::before{ color:var(--navy); border-color:var(--navy); }
.norm-item:nth-child(5n+3) .tag::before{ color:var(--green); border-color:var(--green); }
.norm-item:nth-child(5n+4) .tag::before{ color:var(--terracotta); border-color:var(--terracotta); }
.norm-item:nth-child(5n+5) .tag::before{ color:var(--teal); border-color:var(--teal); }
.norm-item p{ font-size:14px; color:var(--ink-dim); line-height:1.55; }

/* ---------- CLIENTES ---------- */
.client-lead{ max-width:620px; margin-bottom:8px; }
.client-lead p{ color:var(--ink-dim); font-size:16px; line-height:1.7; margin-top:16px; }
.client-stats{ display:flex; gap:40px; flex-wrap:wrap; margin:30px 0 44px; }
.client-stats .stat b{
  font-family:'Poppins'; font-weight:800; font-size:36px; color:var(--gold-deep); display:block; line-height:1;
}
.client-stats .stat span{
  font-family:'Poppins'; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); font-weight:600;
  margin-top:4px; display:block;
}
.client-panel{
  position:relative; padding:10px; border-radius:40px; overflow:hidden;
  background:linear-gradient(155deg, var(--navy-soft), #EEF3EC 55%, var(--card) 100%);
}
.client-panel::before{
  content:''; position:absolute; width:340px; height:340px; border-radius:50%;
  background:var(--gold-soft); opacity:0.55; filter:blur(50px); top:-140px; right:-100px; pointer-events:none;
}
.client-grid{
  display:flex; flex-wrap:wrap; gap:1px; position:relative;
  background:var(--line); border-radius:32px; overflow:hidden;
}
.client-cell{
  flex:1 1 250px;
  background:var(--card);
  padding:26px 22px; display:flex; align-items:center; gap:16px; position:relative;
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.client-cell::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease); background:var(--gold-deep);
}
.client-cell:nth-child(5n+2)::before{ background:var(--navy); }
.client-cell:nth-child(5n+3)::before{ background:var(--green); }
.client-cell:nth-child(5n+4)::before{ background:var(--terracotta); }
.client-cell:nth-child(5n+5)::before{ background:var(--teal); }
.client-cell:hover{ background:var(--bg-soft); transform:translateY(-2px); z-index:2; }
.client-cell:hover::before{ transform:scaleX(1); }
.client-cell .avatar{
  width:50px; height:50px; flex:none; display:flex; align-items:center; justify-content:center;
  overflow:hidden; transition:filter .4s var(--ease), transform .4s var(--ease);
}
.client-cell .avatar img{
  width:100%; height:100%; object-fit:contain;
}
.client-cell:hover .avatar{ filter:saturate(1.08) contrast(1.03); transform:scale(1.08); }
.client-cell .avatar.logotype{
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  font-family:'Poppins'; font-weight:800; font-size:10px; letter-spacing:0.03em; color:var(--ink-faint);
  transition:color .35s var(--ease);
}
.client-cell:hover .avatar.logotype{ color:var(--gold-deep); }
.client-cell b{ font-size:14px; font-weight:600; display:block; line-height:1.3; }
.client-cell span{ font-size:11.5px; color:var(--ink-faint); margin-top:2px; display:block; }

/* ---------- CONTACTO ---------- */
.contact-box{
  border-radius:44px;
  background:linear-gradient(135deg, var(--navy-darker) 0%, var(--navy-dark) 54%, #173A3A 100%);
  color:var(--bg);
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  overflow:hidden;
  position:relative;
  box-shadow:0 32px 72px -44px rgba(16,45,70,0.6);
}
.contact-box::before{
  content:'';
  position:absolute;
  width:360px;
  height:360px;
  border-radius:50%;
  background:var(--gold);
  opacity:0.12;
  top:-150px;
  right:-100px;
  filter:blur(8px);
}
.contact-left{ padding:64px 58px; position:relative; }
.contact-left .eyebrow{ color:var(--gold); }
.contact-left h2{ font-size:clamp(30px,3.6vw,44px); margin-bottom:20px; color:var(--bg); }
.contact-left p{ color:rgba(251,247,237,0.72); font-size:16px; line-height:1.7; max-width:44ch; margin-bottom:30px; }
.contact-proof{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:-12px 0 28px;
}
.contact-proof span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(251,247,237,0.08);
  border:1px solid rgba(251,247,237,0.14);
  color:rgba(251,247,237,0.82);
  font-family:'Poppins';
  font-size:11px;
  font-weight:650;
  letter-spacing:0.02em;
}
.contact-proof span::before{
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(199,154,34,0.12);
}
.contact-links{ display:flex; flex-direction:column; gap:12px; }
.contact-links a{
  display:flex; align-items:center; justify-content:space-between; gap:18px; padding:17px 20px;
  background:rgba(251,247,237,0.07); border:1px solid rgba(251,247,237,0.16); border-radius:18px;
  font-size:16px; font-family:'Poppins'; font-weight:600;
  transition:background .3s, transform .3s var(--ease), color .3s;
}
.contact-links a:hover{ background:var(--gold); color:var(--ink); transform:translateX(4px); border-color:var(--gold); }
.contact-links a .mono{ font-size:11px; opacity:0.6; }
.contact-links a:hover .mono{ opacity:0.7; }
.contact-meta{ margin-top:30px; display:grid; gap:16px; }
.contact-meta .row{ display:flex; gap:14px; align-items:flex-start; }
.contact-meta .row .ic{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(251,247,237,0.24); display:flex; align-items:center; justify-content:center; flex:none; }
.contact-meta .row .ic svg{ width:16px; height:16px; stroke:var(--gold); fill:none; stroke-width:1.6; }
.contact-meta .row b{ font-family:'Poppins'; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; color:rgba(251,247,237,0.58); display:block; margin-bottom:5px; font-weight:650; }
.contact-meta .row span{ font-size:14.5px; color:var(--bg); line-height:1.5; }
.contact-right{
  background:rgba(251,247,237,0.06);
  padding:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.contact-form{
  width:100%;
  background:rgba(255,255,255,0.97);
  color:var(--ink);
  border:1px solid rgba(251,247,237,0.58);
  border-radius:28px;
  padding:30px;
  display:grid;
  gap:16px;
  box-shadow:0 26px 60px -38px rgba(10,31,51,0.75);
}
.form-head{ display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-bottom:2px; }
.form-head .mono{ color:var(--gold-deep); font-size:10.5px; letter-spacing:0.07em; }
.form-head h3{ font-family:'Poppins'; font-size:22px; font-weight:650; line-height:1.2; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form label{ display:grid; gap:7px; }
.contact-form label span{
  font-family:'Poppins', sans-serif;
  font-size:10.5px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--ink-faint);
  font-weight:650;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  border:1px solid rgba(36,31,23,0.14);
  border-radius:14px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:15px;
  padding:13px 14px;
  outline:none;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.contact-form textarea{ min-height:118px; resize:vertical; line-height:1.5; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(199,154,34,0.16);
  background:#fffdfa;
}
.contact-form .btn{ justify-content:center; width:100%; border-color:var(--gold); background:var(--gold); color:var(--ink); margin-top:4px; }
.contact-form .btn:hover{ background:var(--navy-dark); border-color:var(--navy-dark); color:#fff; }
.hp-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.form-status{
  display:none;
  border-radius:14px;
  padding:12px 14px;
  font-size:14px;
  line-height:1.45;
}
.contact-ok .form-status-ok{ display:block; background:var(--green-soft); color:var(--green); border:1px solid rgba(43,110,73,0.16); }
.contact-error .form-status-error{ display:block; background:var(--terracotta-soft); color:var(--terracotta); border:1px solid rgba(168,71,31,0.16); }

/* ---------- FOOTER ---------- */
.site-footer{
  position:relative;
  z-index:2;
  margin-top:34px;
  padding:64px 0 28px;
  overflow:hidden;
  color:var(--bg);
  background:linear-gradient(135deg, var(--navy-darker) 0%, var(--navy-dark) 54%, #173A3A 100%);
  border-top:1px solid rgba(251,247,237,0.08);
}
.site-footer::before{
  content:'';
  position:absolute;
  width:360px;
  height:360px;
  right:-130px;
  top:-180px;
  border-radius:50%;
  background:var(--gold);
  opacity:0.13;
  filter:blur(10px);
  pointer-events:none;
}
.site-footer::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  background:linear-gradient(90deg, var(--gold), var(--green), var(--teal));
  opacity:0.82;
}
.footer-main{
  position:relative;
  display:grid;
  grid-template-columns:minmax(280px,1.35fr) repeat(3, minmax(150px,0.65fr));
  gap:42px;
  align-items:start;
}
.fbrand{
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.fbrand img{
  height:52px;
  width:auto;
  border-radius:10px;
  background:rgba(255,255,255,0.94);
  padding:4px 6px;
  box-shadow:0 12px 26px -20px rgba(0,0,0,0.45);
}
.fbrand span{
  display:grid;
  gap:3px;
}
.fbrand b{
  font-family:'Poppins';
  font-size:18px;
  line-height:1;
  color:#fff;
}
.fbrand small{
  font-family:'Poppins';
  font-size:10px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(251,247,237,0.56);
  font-weight:650;
}
.footer-brand-block p{
  max-width:46ch;
  margin-top:22px;
  color:rgba(251,247,237,0.68);
  font-size:15px;
  line-height:1.7;
}
.footer-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
}
.footer-badges span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(251,247,237,0.07);
  border:1px solid rgba(251,247,237,0.13);
  color:rgba(251,247,237,0.78);
  font-family:'Poppins';
  font-size:10.5px;
  font-weight:650;
}
.footer-badges span::before{
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(199,154,34,0.13);
}
.footer-col{
  display:grid;
  gap:10px;
}
.footer-col h3{
  font-family:'Poppins';
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:7px;
  font-weight:750;
}
.footer-col a{
  color:rgba(251,247,237,0.68);
  font-size:14px;
  line-height:1.35;
  transition:color .25s var(--ease), transform .25s var(--ease);
}
.footer-col a:hover{
  color:#fff;
  transform:translateX(3px);
}
.footer-contact a{
  padding-bottom:10px;
  border-bottom:1px solid rgba(251,247,237,0.1);
}
.footer-contact a:last-child{ border-bottom:0; }
.footer-bottom{
  position:relative;
  margin-top:46px;
  padding-top:22px;
  border-top:1px solid rgba(251,247,237,0.1);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  color:rgba(251,247,237,0.5);
  font-family:'Poppins';
  font-size:11.5px;
  letter-spacing:0.02em;
  font-weight:600;
}
.hiwebs-credit{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:rgba(251,247,237,0.66);
  padding:8px 11px;
  border-radius:999px;
  border:1px solid rgba(251,247,237,0.12);
  background:rgba(251,247,237,0.05);
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.hiwebs-credit b{
  color:#fff;
}
.hiwebs-credit:hover{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--ink);
}
.hiwebs-credit:hover b{
  color:var(--ink);
}

/* ---------- WHATSAPP ---------- */
.btn-whatsapp{
  display:inline-flex; align-items:center; justify-content:center;
  width:42px; height:42px; border-radius:50%; background:#25D366; color:#fff; flex:none;
  box-shadow:0 6px 16px -6px rgba(37,211,102,0.6); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.btn-whatsapp:hover{ transform:translateY(-2px) scale(1.05); box-shadow:0 10px 22px -6px rgba(37,211,102,0.7); }
.btn-whatsapp svg{ width:21px; height:21px; }

.whatsapp-float{
  position:fixed; right:24px; bottom:24px; z-index:150;
  width:60px; height:60px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(37,211,102,0.65), 0 4px 12px rgba(36,31,23,0.2);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.whatsapp-float svg{ width:30px; height:30px; }
.whatsapp-float:hover{ transform:scale(1.08); box-shadow:0 18px 36px -8px rgba(37,211,102,0.75), 0 4px 12px rgba(36,31,23,0.25); }
.whatsapp-float::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:#25D366;
  animation:wa-pulse 2.4s ease-out infinite; z-index:-1;
}
@keyframes wa-pulse{
  0%{ opacity:0.55; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.9); }
}
@media (max-width:620px){
  .whatsapp-float{ width:44px; height:44px; right:12px; bottom:12px; box-shadow:0 10px 22px -10px rgba(37,211,102,0.68); }
  .whatsapp-float svg{ width:22px; height:22px; }
  .whatsapp-float::before{ display:none; }
}

/* ---------- EVACUATION SIMULATION (interactive floor plan) ---------- */
.evac-sim{
  position:relative; aspect-ratio:800/546; border-radius:32px; overflow:hidden;
  background:
    radial-gradient(circle at 50% 92%, rgba(43,110,73,0.08), transparent 28%),
    linear-gradient(180deg, #fff 0%, #fbfaf6 100%);
  box-shadow:0 28px 70px -42px rgba(16,45,70,0.42), 0 1px 0 rgba(255,255,255,0.8) inset;
  border:1px solid rgba(36,31,23,0.1);
}
.evac-plan{ position:absolute; inset:0; width:100%; height:100%; }
.evac-plan rect[x="40"]{ stroke:rgba(36,31,23,0.06); stroke-width:1; }
.evac-plan rect[x="40"][y="40"]{ fill:rgba(221,231,239,0.62); }
.evac-plan rect[x="40"][y="250"]{ fill:rgba(243,230,190,0.66); }
.evac-plan rect[x="460"][y="40"]{ fill:rgba(241,225,213,0.66); }
.evac-plan rect[x="460"][y="250"]{ fill:rgba(222,235,232,0.68); }
.evac-plan rect[x="300"]{ fill:url(#evacGrid); }
.evac-zone{
  transition:fill-opacity .32s var(--ease), filter .32s var(--ease);
}
.evac-sim:has(.h-office:hover) .zone-office,
.evac-sim:has(.h-office:focus-visible) .zone-office,
.evac-sim:has(.h-depot:hover) .zone-depot,
.evac-sim:has(.h-depot:focus-visible) .zone-depot,
.evac-sim:has(.h-plant:hover) .zone-plant,
.evac-sim:has(.h-plant:focus-visible) .zone-plant,
.evac-sim:has(.h-workshop:hover) .zone-workshop,
.evac-sim:has(.h-workshop:focus-visible) .zone-workshop{
  fill-opacity:0.86;
  filter:drop-shadow(0 0 16px rgba(199,154,34,0.18));
}
.evac-corridor-label{
  font-family:'Poppins';
  font-size:8px;
  font-weight:700;
  letter-spacing:0.14em;
  text-anchor:middle;
  fill:rgba(36,31,23,0.24);
}
.evac-grid-axis text{
  font-family:'Poppins';
  font-size:9px;
  font-weight:700;
  fill:rgba(36,31,23,0.28);
  text-anchor:middle;
}
.evac-walls line{ stroke:#29241d; stroke-width:6.5; stroke-linecap:round; }
.evac-doors path{ fill:none; stroke:rgba(36,31,23,0.34); stroke-width:2; stroke-dasharray:3 5; }
.evac-sector rect, .evac-sector path, .evac-sector circle, .evac-sector line{
  fill:none; stroke:rgba(36,31,23,0.62); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.evac-label{
  font-family:'Poppins'; font-size:15px; fill:var(--ink); font-weight:760; letter-spacing:0.03em;
}
.evac-route{
  fill:none;
  stroke-width:3.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:2 12;
  opacity:0.72;
  filter:drop-shadow(0 0 3px rgba(43,110,73,0.12));
  animation:evacRouteFlow 1.45s linear infinite;
}
.evac-route[data-c="navy"]{ stroke:var(--navy); }
.evac-route[data-c="gold"]{ stroke:var(--gold-deep); }
.evac-route[data-c="terracotta"]{ stroke:var(--terracotta); }
.evac-route[data-c="teal"]{ stroke:var(--teal); }
.evac-safety-points circle{
  fill:#fff;
  stroke:var(--green);
  stroke-width:1.6;
  filter:drop-shadow(0 3px 5px rgba(43,110,73,0.18));
}
.evac-safety-points text{
  font-family:'Poppins';
  font-size:8px;
  font-weight:800;
  fill:var(--green);
  text-anchor:middle;
}
.evac-route-arrows path{
  opacity:0.86;
  filter:drop-shadow(0 2px 3px rgba(16,45,70,0.18));
  animation:evacArrowBeat 1.45s ease-in-out infinite;
}
.evac-route-arrows path[data-c="navy"]{ fill:var(--navy); }
.evac-route-arrows path[data-c="gold"]{ fill:var(--gold-deep); }
.evac-route-arrows path[data-c="terracotta"]{ fill:var(--terracotta); }
.evac-route-arrows path[data-c="teal"]{ fill:var(--teal); }
.evac-route-arrows path[data-c="green"]{ fill:var(--green); }
.evac-junction{
  fill:var(--green);
  opacity:0.22;
  animation:evacJunctionPulse 1.7s ease-in-out infinite;
}
.evac-sim:hover .evac-route{ opacity:0.46; }
.evac-sim:hover .evac-route:hover{ opacity:0.95; stroke-width:5; }
.evac-sim:hover .evac-sector{ opacity:0.72; }
.evac-sim:hover .evac-sector:hover{ opacity:1; }

.evac-arrow{ fill:none; stroke:var(--green); stroke-width:6; stroke-linecap:round; stroke-linejoin:round; animation:evacPulseLine 1.6s ease-in-out infinite; filter:drop-shadow(0 5px 7px rgba(43,110,73,0.24)); }
.evac-exit-box{ fill:var(--green); filter:drop-shadow(0 8px 12px rgba(43,110,73,0.22)); }
.evac-run{ stroke:#fff; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.evac-exit-text{ font-family:'Poppins'; font-weight:800; font-size:16px; fill:#fff; text-anchor:middle; letter-spacing:0.06em; }
.evac-scale{ font-family:'Poppins'; font-size:14px; fill:var(--ink-faint); text-anchor:middle; font-weight:600; }
@keyframes evacPulseLine{ 0%,100%{opacity:1;} 50%{opacity:0.45;} }
@keyframes evacRouteFlow{ to{ stroke-dashoffset:-14; } }
@keyframes evacArrowBeat{ 50%{ opacity:0.44; } }
@keyframes evacJunctionPulse{
  0%,100%{ opacity:0.18; transform:scale(0.95); transform-origin:center; }
  50%{ opacity:0.38; transform:scale(1.35); transform-origin:center; }
}

.evac-person{
  position:absolute; width:16px; height:16px; border-radius:50%; margin:-8px 0 0 -8px; z-index:2;
  box-shadow:0 5px 12px rgba(16,45,70,0.28), 0 0 0 3px #fff, 0 0 0 7px rgba(43,110,73,0.08);
  animation-duration:7s; animation-timing-function:ease-in-out; animation-iteration-count:infinite;
}
.evac-person::after{
  content:'';
  position:absolute;
  inset:-7px;
  border-radius:50%;
  border:1px solid currentColor;
  opacity:0.18;
  animation:evacPersonPulse 1.6s ease-in-out infinite;
}
.evac-person.p1{ background:var(--navy); color:var(--navy); animation-name:evacP1; animation-delay:0s; }
.evac-person.p2{ background:var(--gold-deep); color:var(--gold-deep); animation-name:evacP2; animation-delay:1.6s; }
.evac-person.p3{ background:var(--terracotta); color:var(--terracotta); animation-name:evacP3; animation-delay:.8s; }
.evac-person.p4{ background:var(--teal); color:var(--teal); animation-name:evacP4; animation-delay:2.3s; }
@keyframes evacPersonPulse{ 50%{ transform:scale(1.22); opacity:0.06; } }

@keyframes evacP1{
  0%{ left:21.25%; top:27.9%; opacity:0; }
  6%{ opacity:1; }
  35%{ left:37.5%; top:25%; }
  70%{ left:47.5%; top:57.7%; }
  92%{ left:47.5%; top:88.5%; opacity:1; }
  100%{ left:47.5%; top:88.5%; opacity:0; }
}
@keyframes evacP2{
  0%{ left:21.25%; top:71.15%; opacity:0; }
  6%{ opacity:1; }
  35%{ left:37.5%; top:71.15%; }
  70%{ left:47.5%; top:80.8%; }
  92%{ left:47.5%; top:88.5%; opacity:1; }
  100%{ left:47.5%; top:88.5%; opacity:0; }
}
@keyframes evacP3{
  0%{ left:75%; top:27.9%; opacity:0; }
  6%{ opacity:1; }
  35%{ left:57.5%; top:25%; }
  70%{ left:47.5%; top:57.7%; }
  92%{ left:47.5%; top:88.5%; opacity:1; }
  100%{ left:47.5%; top:88.5%; opacity:0; }
}
@keyframes evacP4{
  0%{ left:75%; top:71.15%; opacity:0; }
  6%{ opacity:1; }
  35%{ left:57.5%; top:71.15%; }
  70%{ left:47.5%; top:80.8%; }
  92%{ left:47.5%; top:88.5%; opacity:1; }
  100%{ left:47.5%; top:88.5%; opacity:0; }
}

.evac-legend{
  position:absolute; right:16px; top:16px; display:flex; flex-direction:column; gap:7px;
  font-family:'Poppins'; font-size:11px; color:var(--ink-dim); background:rgba(255,255,255,0.92); font-weight:500;
  padding:12px 14px; border-radius:14px; border:1px solid rgba(36,31,23,0.1); box-shadow:0 16px 34px -24px rgba(16,45,70,0.45);
  backdrop-filter:blur(8px);
}
.evac-legend::before{
  content:'Sectores';
  display:block;
  font-size:10px;
  color:var(--ink);
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding-bottom:5px;
  border-bottom:1px solid var(--line);
  margin-bottom:1px;
}
.evac-legend span{ display:flex; align-items:center; gap:8px; white-space:nowrap; }
.evac-legend i{ width:9px; height:9px; border-radius:50%; flex:none; display:block; }
.evac-hotspot{
  position:absolute;
  border:0;
  background:transparent;
  cursor:pointer;
  z-index:4;
  border-radius:18px;
}
.evac-hotspot::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:18px;
  border:1px solid transparent;
  transition:border-color .24s var(--ease), background .24s var(--ease);
}
.evac-hotspot:hover::before,
.evac-hotspot:focus-visible::before{
  background:rgba(255,255,255,0.18);
  border-color:rgba(199,154,34,0.34);
}
.evac-hotspot span{
  position:absolute;
  left:50%;
  bottom:calc(100% + 10px);
  width:max-content;
  max-width:210px;
  transform:translate(-50%, 6px);
  opacity:0;
  pointer-events:none;
  background:var(--navy-dark);
  color:#fff;
  border-radius:13px;
  padding:9px 11px;
  box-shadow:0 16px 36px -22px rgba(16,45,70,0.64);
  font-family:'Poppins';
  font-size:10.5px;
  font-weight:600;
  line-height:1.35;
  transition:opacity .22s var(--ease), transform .22s var(--ease);
}
.evac-hotspot:hover span,
.evac-hotspot:focus-visible span{
  opacity:1;
  transform:translate(-50%, 0);
}
.h-office{ left:6%; top:7%; width:31%; height:36%; }
.h-depot{ left:6%; top:46%; width:31%; height:38%; }
.h-plant{ left:57%; top:7%; width:31%; height:36%; }
.h-workshop{ left:57%; top:46%; width:31%; height:38%; }
.evac-title-block{
  position:absolute;
  left:18px;
  top:16px;
  min-width:154px;
  padding:12px 14px;
  border-radius:16px;
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(36,31,23,0.1);
  box-shadow:0 16px 34px -26px rgba(16,45,70,0.42);
  backdrop-filter:blur(8px);
}
.evac-title-block span{
  display:block;
  font-family:'Poppins';
  font-size:9px;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:4px;
}
.evac-title-block b{
  display:block;
  font-family:'Poppins';
  font-size:14px;
  line-height:1.15;
}
.evac-status-strip{
  position:absolute;
  left:190px;
  top:18px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(255,255,255,0.88);
  border:1px solid rgba(36,31,23,0.1);
  color:var(--ink);
  box-shadow:0 14px 28px -24px rgba(16,45,70,0.4);
  backdrop-filter:blur(8px);
}
.evac-status-strip span{
  font-family:'Poppins';
  font-size:9px;
  font-weight:800;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:var(--green);
}
.evac-status-strip b{
  font-size:11px;
  font-weight:650;
}
.evac-north{
  position:absolute;
  right:130px;
  top:18px;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,0.86);
  border:1px solid rgba(36,31,23,0.12);
  box-shadow:0 14px 28px -24px rgba(16,45,70,0.4);
  display:grid;
  place-items:center;
  color:var(--ink);
}
.evac-north span{
  font-family:'Poppins';
  font-size:10px;
  font-weight:800;
  line-height:1;
}
.evac-north i{
  position:absolute;
  width:1.5px;
  height:20px;
  background:var(--green);
  bottom:5px;
  left:50%;
  transform:translateX(-50%);
}
.evac-north i::before{
  content:'';
  position:absolute;
  left:50%;
  top:-5px;
  width:0;
  height:0;
  border-left:5px solid transparent;
  border-right:5px solid transparent;
  border-bottom:8px solid var(--green);
  transform:translateX(-50%);
}
.evac-meeting-point{
  position:absolute;
  right:20px;
  bottom:18px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(225,238,226,0.94);
  border:1px solid rgba(43,110,73,0.16);
  color:var(--green);
  box-shadow:0 16px 34px -26px rgba(43,110,73,0.45);
}
.evac-meeting-point i{
  width:13px;
  height:13px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 5px rgba(43,110,73,0.12);
  flex:none;
}
.evac-meeting-point span{
  font-family:'Poppins';
  font-size:11px;
  font-weight:700;
  letter-spacing:0.03em;
  white-space:nowrap;
}
.evac-route-panel{
  position:absolute;
  left:20px;
  bottom:18px;
  width:min(260px, calc(100% - 40px));
  padding:13px 14px;
  border-radius:18px;
  background:rgba(255,255,255,0.92);
  border:1px solid rgba(36,31,23,0.1);
  box-shadow:0 18px 36px -28px rgba(16,45,70,0.48);
  backdrop-filter:blur(8px);
}
.evac-route-panel span{
  display:block;
  font-family:'Poppins';
  font-size:9px;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:4px;
}
.evac-route-panel b{
  display:block;
  font-family:'Poppins';
  font-size:13px;
  line-height:1.2;
}
.evac-route-panel small{
  display:block;
  margin-top:5px;
  color:var(--ink-dim);
  font-size:11.5px;
  line-height:1.35;
}
@media (max-width:620px){
  .evac-label{ font-size:19px; }
  .evac-exit-text{ font-size:20px; }
  .evac-scale{ font-size:19px; }
  .evac-title-block,
  .evac-north,
  .evac-meeting-point,
  .evac-status-strip,
  .evac-route-panel,
  .evac-hotspot{ display:none; }
  .evac-sim{ overflow:visible; margin-bottom:76px; border-radius:24px; }
  .evac-legend{
    left:0;
    right:0;
    top:calc(100% + 10px);
    bottom:auto;
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:center;
    font-size:9.5px;
    padding:9px 10px;
    border-radius:16px;
  }
}

/* ---------- DETAIL / SERVICE PAGES ---------- */
.breadcrumb{
  display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-faint); margin-bottom:22px;
  font-family:'Poppins'; letter-spacing:0.02em; font-weight:500;
  opacity:0; animation: fadeUp .7s var(--ease) forwards; animation-delay:.05s;
}
.breadcrumb a:hover{ color:var(--ink); }
.page-hero{
  position:relative; padding-top:140px; padding-bottom:64px; overflow:hidden;
}
.page-hero .ic-lg{
  width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin-bottom:26px; box-shadow:var(--shadow-card); background:var(--card); border:1.5px solid currentColor; position:relative;
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.12s;
}
.page-hero .ic-lg::after{
  content:''; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--gold);
  top:-2px; right:-2px; box-shadow:0 0 0 3px var(--bg);
}
.page-hero .ic-lg svg{ width:28px; height:28px; stroke-width:1.4; fill:none; stroke:currentColor; }
.page-hero h1{
  font-size:clamp(38px,4.4vw,58px); max-width:18ch;
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.2s;
}
.page-hero .lead{
  margin-top:22px; max-width:640px; font-size:17.5px; line-height:1.7; color:var(--ink-dim);
  opacity:0; animation: fadeUp .8s var(--ease) forwards; animation-delay:.32s;
}
.page-hero .hero-cta{ animation-delay:.44s; }
.page-hero .photo-strip{
  margin-top:54px; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:16/6.2; box-shadow:var(--shadow-soft);
  opacity:0; animation: fadeUp 1s var(--ease) forwards; animation-delay:.4s;
}
.page-hero .photo-strip img{ width:100%; height:100%; object-fit:cover; filter:sepia(0.12) saturate(0.96) contrast(1.03); }

.detail-grid{ display:grid; grid-template-columns:1fr 340px; gap:60px; align-items:start; }
.detail-block{ margin-bottom:56px; }
.detail-block:last-child{ margin-bottom:0; }
.detail-block .kicker{
  display:flex; align-items:baseline; gap:7px; font-family:'Poppins'; font-size:10.5px; letter-spacing:0.07em; color:var(--ink-faint); font-weight:650;
  text-transform:uppercase; margin-bottom:16px;
}
.detail-block .kicker::before{ content:''; width:16px; height:1px; background:var(--gold-deep); display:inline-block; }
.detail-block h2{ font-size:clamp(24px,2.8vw,32px); margin-bottom:14px; }
.detail-block > p{ font-size:15.5px; line-height:1.75; color:var(--ink-dim); margin-bottom:14px; max-width:66ch; }
.detail-list{ display:grid; gap:12px; margin-top:18px; }
.detail-list li{
  list-style:none; display:flex; gap:12px; align-items:flex-start;
  font-size:14.5px; line-height:1.6; color:var(--ink-dim);
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:16px 18px;
}
.detail-list li .tick{
  flex:none; width:18px; height:18px; position:relative; margin-top:2px; border:1.5px solid var(--green); border-radius:50%;
}
.detail-list li .tick::after{ content:''; position:absolute; left:4.5px; top:4px; width:7px; height:3.5px; border-left:1.5px solid var(--green); border-bottom:1.5px solid var(--green); transform:rotate(-45deg); }
.detail-list.compact li{ background:transparent; border:0; padding:0; }
.detail-list.compact li .tick{ border-color:var(--gold-deep); }
.detail-list.compact li .tick::after{ border-color:var(--gold-deep); }

.side-stack{ position:sticky; top:120px; display:flex; flex-direction:column; gap:18px; }
.side-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px 26px;
}
.side-card h3{ font-family:'Poppins'; font-size:19px; font-weight:600; margin-bottom:14px; }
.side-card ul{ display:flex; flex-direction:column; gap:2px; }
.side-card ul li{ list-style:none; }
.side-card ul li a{
  display:flex; align-items:center; justify-content:space-between; font-size:14px; font-weight:500;
  padding:11px 4px; color:var(--ink-dim); transition:color .25s, padding-left .25s; border-bottom:1px solid var(--line);
}
.side-card ul li:last-child a{ border-bottom:0; }
.side-card ul li a:hover, .side-card ul li a.active{ color:var(--ink); padding-left:8px; }
.side-card.dark{ background:var(--navy-dark); color:var(--bg); }
.side-card.dark h3{ color:var(--bg); }
.side-card.dark p{ color:rgba(251,247,237,0.68); font-size:14px; line-height:1.6; margin-bottom:18px; }
.side-card.dark .btn{ width:100%; justify-content:center; background:var(--gold); border-color:var(--gold); color:var(--ink); }
.side-card.dark .btn:hover{ background:#fff; border-color:#fff; }

.other-services{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.other-services a{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:22px;
  display:flex; flex-direction:column; gap:10px; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.other-services a:hover{ transform:translateY(-4px); box-shadow:var(--shadow-card); }
.other-services .ic{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--card); border:1.5px solid currentColor; }
.other-services .ic svg{ width:17px; height:17px; stroke-width:1.5; fill:none; stroke:currentColor; }
.other-services b{ font-family:'Poppins'; font-size:16px; font-weight:600; }
.other-services span{ font-size:13px; color:var(--ink-dim); }

/* responsive */
@media (max-width: 1100px){
  header{ padding:18px 0; }
  header.scrolled{ padding:12px 0; }
  nav{ gap:12px; }
  .brand img{ height:60px; }
  header.scrolled .brand img{ height:50px; }
  .nav-actions{ margin-left:auto; }
  .nav-actions .btn.ghost{ display:none !important; }
  body.menu-open{ overflow:hidden; }
  body.menu-open::before{
    content:'';
    position:fixed;
    inset:0;
    z-index:88;
    background:rgba(16,45,70,0.18);
    backdrop-filter:blur(5px);
  }
  .nav-links{
    display:flex;
    position:fixed;
    top:82px;
    left:20px;
    right:20px;
    background:rgba(255,255,255,0.96);
    border:1px solid rgba(16,45,70,0.1);
    border-radius:22px;
    box-shadow:0 28px 70px -34px rgba(16,45,70,0.55);
    flex-direction:column;
    padding:12px;
    gap:2px;
    z-index:99;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px) scale(0.98);
    transform-origin:top right;
    transition:opacity .24s var(--ease), transform .28s var(--ease), visibility .24s;
  }
  .nav-links.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }
  .nav-links a{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    text-align:left;
    padding:14px 16px;
    border-radius:14px;
    font-size:15px;
    color:var(--ink);
  }
  .nav-links a::after{ display:none; }
  .nav-links a:not(.mobile-only-link)::before{
    content:'';
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--gold);
    opacity:0;
    transform:scale(0.5);
    transition:opacity .2s var(--ease), transform .2s var(--ease);
    order:2;
  }
  .nav-links a:hover{ background:rgba(221,231,239,0.52); }
  .nav-links a:hover::before{ opacity:1; transform:scale(1); }
  .menu-btn{ display:flex; }
  header nav > a.btn.ghost{ display:none !important; }
  .brand-text span{ display:none; }
  .mobile-only-link{
    display:flex !important;
    justify-content:center !important;
    font-family:'Poppins';
    font-size:16px !important;
    font-weight:600;
    color:var(--ink) !important;
    margin-top:8px;
    padding:15px 16px !important;
    background:var(--gold-soft);
    border-radius:16px !important;
  }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ max-width:360px; margin:26px auto 0; }
  .serv-grid{ grid-template-columns:1fr 1fr; }
  #empresa{ border-radius:36px; }
  #empresa .wrap{ grid-template-columns:1fr; gap:56px; }
  .empresa-media{ max-width:360px; margin:0 auto; }
  .client-grid{ grid-template-columns:1fr 1fr; }
  .contact-box{ grid-template-columns:1fr; border-radius:32px; }
  .contact-left{ padding:46px 34px 28px; }
  .contact-right{ padding:18px 30px 34px; }
  .detail-grid{ grid-template-columns:1fr; }
  .side-stack{ position:static; }
  .other-services{ grid-template-columns:1fr 1fr; }
  .ghost-num{ display:none; }
  .norm-row{ grid-template-columns:1fr 1fr; }
  .footer-main{ grid-template-columns:1fr 1fr; gap:34px 26px; }
  .footer-brand-block{ grid-column:1 / -1; }
}
@media (max-width: 620px){
  .wrap{ padding:0 20px; }
  header{ background:rgba(247,245,239,0.96); box-shadow:0 1px 0 var(--line); }
  nav{ gap:8px; }
  .brand img{ height:44px; }
  header.scrolled .brand img{ height:40px; }
  .nav-actions{ gap:8px; }
  .btn-whatsapp{ width:40px; height:40px; }
  .nav-actions .btn.ghost{ display:none !important; }
  .menu-btn{ width:40px; height:40px; }
  .menu-btn span:first-child{ top:15px; }
  .menu-btn span:last-child{ top:23px; }
  .menu-btn[aria-expanded="true"] span{ top:19px; }
  .hero{ min-height:0; padding-top:104px; padding-bottom:24px !important; align-items:flex-start; }
  .hero-grid{ gap:26px; }
  .hero h1{ font-size:clamp(34px,10.8vw,46px); line-height:1.08; }
  .hero-sub{ margin-top:18px; font-size:15.5px; line-height:1.58; }
  .hero-cta{ margin-top:24px; }
  .hero-trust{ margin-top:32px; }
  .hero-media{ max-width:305px; margin-top:8px; }
  .hero-media .frame{ aspect-ratio:4/3.7; }
  mark.hl{ padding:8px 18px 10px; }
  section{ padding:72px 0; }
  .serv-grid{ grid-template-columns:1fr; }
  .serv-grid{ gap:28px; }
  .serv-grid-compact{ margin-top:28px; gap:12px; }
  .serv-card .body{ padding:36px 22px 24px; }
  .serv-grid:not(.serv-grid-compact) .serv-card .body{ padding:36px 22px 60px; }
  .serv-card.compact{ padding:22px 20px; }
  .section-head h2{ font-size:clamp(28px,9vw,38px); line-height:1.12; }
  .client-grid{ grid-template-columns:1fr; }
  .checklist{ grid-template-columns:1fr; }
  .norm-row{ grid-template-columns:1fr; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:16px; }
  .hero-tag{ left:0; bottom:-20px; max-width:190px; padding:13px 15px; }
  .hero-badge{ display:none; }
  .video-band{ min-height:430px; align-items:flex-end; }
  .video-band__shade{
    background:
      linear-gradient(180deg, rgba(10,31,51,0.12) 0%, rgba(10,31,51,0.58) 45%, rgba(10,31,51,0.92) 100%);
  }
  .video-band__content{ padding:120px 0 46px; }
  .video-band h2{ font-size:clamp(32px,10vw,42px); max-width:10ch; }
  .video-band p{ font-size:15.5px; line-height:1.62; }
  .other-services{ grid-template-columns:1fr; }
  .page-hero{ padding-top:116px; padding-bottom:52px; }
  .page-hero .photo-strip{ margin-top:34px; aspect-ratio:16/9; }
  #contacto{ padding-bottom:104px; }
  .contact-links a{ align-items:flex-start; flex-direction:column; gap:7px; padding:15px 16px; }
  .contact-left{ padding:32px 22px 18px; }
  .contact-left h2{ font-size:clamp(28px,9vw,36px); }
  .contact-left p{ font-size:15px; line-height:1.58; margin-bottom:24px; }
  .contact-proof{ gap:7px; margin:-8px 0 22px; }
  .contact-proof span{ font-size:10px; padding:7px 9px; }
  .contact-right{ padding:14px 14px 24px; }
  .contact-form{ padding:20px; border-radius:22px; gap:14px; }
  .form-head{ display:grid; gap:6px; }
  .form-grid{ grid-template-columns:1fr; gap:12px; }
  .contact-meta{ gap:14px; margin-top:24px; }
  .contact-box{ border-radius:28px; }
  .contact-form input,
  .contact-form select,
  .contact-form textarea{ font-size:14.5px; padding:12px 13px; border-radius:13px; }
  .whatsapp-float{ bottom:calc(12px + env(safe-area-inset-bottom)); }
  .site-footer{ margin-top:16px; padding:86px 0 22px; }
  .footer-main{ grid-template-columns:1fr; gap:28px; }
  .fbrand img{ height:46px; }
  .footer-brand-block p{ font-size:14.5px; line-height:1.62; margin-top:18px; }
  .footer-badges{ margin-top:18px; }
  .footer-badges span{ font-size:10px; padding:7px 9px; }
  .footer-col{ gap:8px; }
  .footer-col h3{ margin-bottom:5px; }
  .footer-col a{ font-size:13.5px; }
  .footer-bottom{ margin-top:32px; align-items:flex-start; flex-direction:column; gap:12px; }
  .hiwebs-credit{ width:100%; justify-content:center; }
}
