/* ══════════════════════════════════════
   TOKENS
══════════════════════════════════════ */
:root {
  /* Blues — deep, professional, never electric */
  --n900: #0A1929;
  --n800: #0F2442;
  --n700: #1B3A6B;
  --n600: #2A4F88;
  --n400: #4A6FA5;
  --n200: #A8BDD8;
  --n100: #D6E2F0;
  --n050: #EDF2F8;

  /* Gold — champagne, warm, muted */
  --g700: #8C6D3F;
  --g500: #B8955A;
  --g400: #CCAA76;
  --g100: #F5EDD8;

  /* Neutrals */
  --wh:   #FFFFFF;
  --bg:   #F5F7FA;
  --t9:   #1A2332;
  --t6:   #3D5070;
  --t4:   #6B7E99;
  --t3:   #96A6BC;
  --bdr:  #DDE4EE;

  /* Shadows */
  --sh1: 0 2px 8px rgba(10,25,41,.06);
  --sh2: 0 6px 24px rgba(10,25,41,.09);
  --sh3: 0 14px 48px rgba(10,25,41,.13);
}

/* ══════════════════════════════════════
   RESET
══════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { font-family:'Inter',sans-serif; color:var(--t9); line-height:1.65; background:var(--wh); }
img  { max-width:100%; display:block; }

/* ══════════════════════════════════════
   SCROLL PROGRESS
══════════════════════════════════════ */
#prog {
  position:fixed; top:0; left:0; z-index:9999;
  height:3px; width:0%;
  background:linear-gradient(90deg,var(--g500),var(--n400));
  transition:width .12s linear;
}

/* ══════════════════════════════════════
   TOP BAR
══════════════════════════════════════ */
.topbar {
  background:var(--n900);
  font-size:.75rem; padding:.42rem 0; color:var(--n200);
}
.topbar .c { display:flex; justify-content:space-between; align-items:center; }
.tb-l, .tb-r { display:flex; gap:1.25rem; align-items:center; }
.topbar a { color:var(--n200); text-decoration:none; transition:color .2s; }
.topbar a:hover { color:var(--g400); }
.topbar i { margin-right:.3rem; font-size:.68rem; }

/* ══════════════════════════════════════
   LAYOUT
══════════════════════════════════════ */
.c { max-width:1200px; margin:0 auto; padding:0 1.5rem; }

/* ══════════════════════════════════════
   NAVBAR
══════════════════════════════════════ */
.nav {
  background:rgba(255,255,255,.96); backdrop-filter:blur(18px);
  border-bottom:1px solid var(--bdr);
  position:sticky; top:0; z-index:1000; transition:box-shadow .3s;
}
.nav.up { box-shadow:0 4px 28px rgba(10,25,41,.1); }
.nav > .c { max-width:1440px; }
.nav-in { display:flex; align-items:center; justify-content:space-between; padding:.85rem 0; }
.logo { display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.logo-img     { height:88px; width:auto; object-fit:contain; display:block; }
.logo-img-inv { filter:brightness(0) invert(1); opacity:.92; }
/* Icon inside norm card box */
.nc-ico i    { font-size:1.25rem; color:var(--nc-c); }
/* Icon inside hero glass card */
.hcard-ico i { font-size:1.35rem; color:var(--g400); }
/* Icon inside audit card box */
.aud-ico-box i { font-size:1.3rem; color:var(--ac-c,var(--n600)); }
.nav-links { display:flex; align-items:center; gap:.1rem; list-style:none; flex-shrink:0; }
.nav-links a {
  color:var(--n800); text-decoration:none; font-size:.875rem; font-weight:600;
  padding:.46rem .78rem; border-radius:7px; transition:all .2s; white-space:nowrap;
}
.nav-links a:hover { background:var(--n050); color:var(--n900); }
.nav-links a.active:not(.nav-cta) { background:var(--n050); color:var(--n900); font-weight:700; }
.nav-cta {
  margin-left:.4rem; position:relative; overflow:hidden; white-space:nowrap; flex-shrink:0;
  background:var(--n700) !important; color:#fff !important;
  font-weight:700 !important; padding:.52rem 1.15rem !important;
  border-radius:8px !important; box-shadow:0 4px 14px rgba(27,58,107,.28) !important;
}
.nav-cta:hover { background:var(--n800) !important; transform:translateY(-1px); box-shadow:0 6px 20px rgba(27,58,107,.38) !important; }
.nav-intranet {
  width:38px; height:38px; padding:0 !important; margin-left:.3rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--n050); color:var(--n700) !important; border:1px solid var(--n100);
  border-radius:50% !important; font-size:1rem; transition:all .2s;
}
.nav-intranet:hover { background:var(--g500); color:#fff !important; border-color:var(--g500); transform:translateY(-1px); }
.nav-intranet-label { display:none; }
.burger { display:none; flex-direction:column; gap:5px; cursor:pointer; border:none; background:none; padding:.4rem; }
.burger span { display:block; width:22px; height:2px; background:var(--t9); border-radius:2px; transition:all .3s; }

/* Services dropdown */
.has-dropdown { position:relative; }
.nav-drop-caret { font-size:.6rem; margin-left:.3rem; transition:transform .2s; }
.nav-dropdown { list-style:none; }
@media(min-width:769px){
  .nav-dropdown {
    position:absolute; top:100%; left:0; margin-top:.6rem;
    background:#fff; border:1px solid var(--bdr); border-radius:10px; box-shadow:var(--sh3);
    min-width:300px; padding:.6rem; display:flex; flex-direction:column; gap:.1rem;
    opacity:0; visibility:hidden; transform:translateY(6px);
    transition:opacity .2s, transform .2s, visibility .2s; z-index:1001;
  }
  .has-dropdown:hover .nav-dropdown,
  .has-dropdown:focus-within .nav-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
  .has-dropdown:hover .nav-drop-caret { transform:rotate(180deg); }
  .nav-dropdown a { display:flex; align-items:center; gap:.65rem; padding:.6rem .8rem; border-radius:7px; font-size:.85rem; }
  .nav-dropdown a i { color:var(--n600); width:16px; text-align:center; font-size:.85rem; flex-shrink:0; }
}
@media(max-width:768px){
  .nav-dropdown {
    display:flex; flex-direction:column; padding-left:.5rem; gap:0;
    border-left:2px solid var(--n100); margin-left:1rem;
    max-height:0; overflow:hidden; margin-top:0; margin-bottom:0;
    transition:max-height .3s ease;
  }
  .has-dropdown.open .nav-dropdown { max-height:400px; margin-top:.2rem; margin-bottom:.5rem; }
  .nav-dropdown a { display:flex; align-items:center; padding:.45rem .8rem; font-size:.83rem; gap:.6rem; }
  .nav-dropdown a i { color:var(--n600); width:14px; text-align:center; font-size:.8rem; flex-shrink:0; }
  .nav-drop-caret { transition:transform .2s; }
  .has-dropdown.open .nav-drop-caret { transform:rotate(180deg); }
}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero {
  background:var(--n800);
  padding:5.5rem 0 7rem; position:relative; overflow:hidden;
  min-height:90vh; display:flex; align-items:center;
}
.hero-bg-img {
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(135deg, var(--n800), var(--n700)) center center/cover no-repeat;
  animation:heroZoom 8s ease-in-out forwards;
  will-change:transform;
}
.hero-overlay {
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg, rgba(10,25,41,.72) 0%, rgba(10,25,41,.42) 45%, rgba(10,25,41,.55) 100%);
}
@keyframes heroZoom {
  0%   { transform:scale(1.24); }
  50%  { transform:scale(1); }
  100% { transform:scale(1.16); }
}
@media(prefers-reduced-motion:reduce){
  .hero-bg-img { animation:none; transform:scale(1.08); }
}
/* Blueprint grid */
.hero::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:48px 48px;
}
/* Soft glow */
.hero::after {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 70% at 20% 55%, rgba(42,79,136,.25) 0%, transparent 65%);
}
.hero > .c { position:relative; z-index:1; width:100%; }
.hero-grid  { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }

/* Left */
.hero h1 {
  font-size:clamp(1.9rem,3.8vw,3.1rem); font-weight:900;
  line-height:1.1; color:#fff; margin-bottom:1.25rem; letter-spacing:-.4px;
}
.hero h1 .accent {
  color:var(--g400);
}
.hero-sub { font-size:1.12rem; color:#F2F5FA; text-shadow:0 2px 10px rgba(0,0,0,.35); margin-bottom:2rem; max-width:490px; line-height:1.72; }
.hero-btns { display:flex; gap:.85rem; flex-wrap:wrap; }
.btn-wa {
  display:inline-flex; align-items:center; gap:.55rem; position:relative; overflow:hidden;
  background:#25a65d; color:#fff;
  padding:.82rem 1.75rem; border-radius:9px;
  font-weight:700; font-size:.9rem; text-decoration:none;
  box-shadow:0 5px 18px rgba(37,166,93,.3); transition:all .25s;
}
.btn-wa:hover { background:#1e9651; transform:translateY(-2px); box-shadow:0 8px 26px rgba(37,166,93,.4); }
.btn-out {
  display:inline-flex; align-items:center; gap:.5rem;
  background:transparent; color:#fff;
  padding:.82rem 1.75rem; border-radius:9px;
  font-weight:600; font-size:.9rem; text-decoration:none;
  border:1.5px solid rgba(255,255,255,.25); transition:all .25s;
}
.btn-out:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.4); }

/* Hero stats row */
.hero-stats { display:flex; gap:1.7rem 2.1rem; margin-top:2.3rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.14); flex-wrap:wrap; }
.hstat { display:flex; align-items:center; gap:.75rem; }
.hstat-ico {
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
  color:var(--g400); font-size:1.1rem;
}
.hstat strong { display:block; font-size:1.55rem; font-weight:900; color:#fff; line-height:1; }
.hstat-label  { font-size:.72rem; color:var(--n200); letter-spacing:.3px; margin-top:.2rem; display:block; }

/* Hero right — refined glass cards */
.hero-right { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.hcard {
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px; padding:1.15rem 1.1rem;
  display:flex; flex-direction:column; gap:.4rem;
  transition:all .3s; cursor:default;
}
.hcard:hover { background:rgba(255,255,255,.1); border-color:rgba(184,149,90,.3); transform:translateY(-3px); }
.hcard-ico  { font-size:1.55rem; }
.hcard-code { font-size:.66rem; font-weight:700; color:var(--g400); letter-spacing:.5px; }
.hcard-name { font-size:.94rem; font-weight:700; color:#e8eef8; line-height:1.32; }
.hcard-desc { font-size:.72rem; color:var(--n200); line-height:1.45; opacity:.85; }

/* Scroll cue */
.scroll-cue {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.4rem; z-index:1;
  color:rgba(255,255,255,.3); font-size:.7rem; letter-spacing:1px; text-transform:uppercase;
  animation:bob 2.6s ease-in-out infinite;
}
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0);} 50%{transform:translateX(-50%) translateY(7px);} }

/* Wave */
.wave { line-height:0; background:var(--n800); }
.wave svg { display:block; width:100%; }

/* ══════════════════════════════════════
   TRUST STRIP
══════════════════════════════════════ */
.trust-strip { background:var(--wh); padding:1.35rem 0; border-bottom:1px solid var(--bdr); }
.trust-grid { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.8rem 2rem; }
.trust-item { display:flex; align-items:center; gap:.6rem; font-size:.8rem; font-weight:700; color:var(--n700); white-space:nowrap; }
.trust-item i { color:var(--g500); font-size:1.05rem; flex-shrink:0; }

/* ══════════════════════════════════════
   SECTOR PHOTO CARDS (carousel)
══════════════════════════════════════ */
.sector-carousel { position:relative; }
.sector-track {
  display:flex; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:.25rem .25rem 1.25rem; margin:0 -.25rem;
  -webkit-overflow-scrolling:touch;
}
.sector-track::-webkit-scrollbar { height:6px; }
.sector-track::-webkit-scrollbar-track { background:transparent; }
.sector-track::-webkit-scrollbar-thumb { background:var(--n100); border-radius:3px; }
.sector-card {
  position:relative; border-radius:16px; overflow:hidden;
  height:220px; flex:0 0 270px; scroll-snap-align:start;
  display:flex; align-items:flex-end;
  box-shadow:var(--sh2); transition:transform .3s, box-shadow .3s;
}
.sector-arr {
  position:absolute; top:42%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:var(--wh); border:1.5px solid var(--bdr); box-shadow:var(--sh2);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; z-index:5; color:var(--n700); transition:all .2s;
}
.sector-arr:hover { background:var(--n050); border-color:var(--n200); }
.sector-arr.prev { left:-10px; }
.sector-arr.next { right:-10px; }
@media(max-width:640px){ .sector-arr { display:none; } }
.sector-card:hover { transform:translateY(-5px); box-shadow:var(--sh3); }
.sector-card img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.sector-card:hover img { transform:scale(1.07); }
.sector-card::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,25,41,.05) 35%, rgba(10,25,41,.9) 100%);
}
.sector-card-label {
  position:relative; z-index:1; padding:1.1rem 1.25rem;
  color:#fff; font-weight:700; font-size:.95rem;
  display:flex; align-items:center; gap:.6rem; line-height:1.25;
}
.sector-card-label i { color:var(--g400); font-size:1.05rem; flex-shrink:0; }

/* ══════════════════════════════════════
   SECTIONS
══════════════════════════════════════ */
.sec      { padding:5.5rem 0; }
.sec-alt  { background:var(--bg); }
.sec-dark { background:var(--n800); }

/* Wave dividers between sections */
.sec-wave {
  position:absolute; top:-1px; left:0; width:100%; height:64px;
  pointer-events:none; background-repeat:no-repeat; background-size:100% 100%; z-index:1;
}
.wave-from-navy {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C300,90 900,10 1200,70 L1200,0 L0,0 Z' fill='%230F2442'/%3E%3C/svg%3E");
}
.wave-from-graybg {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,0 C300,90 900,10 1200,70 L1200,0 L0,0 Z' fill='%23F5F7FA'/%3E%3C/svg%3E");
}
@media(max-width:768px){ .sec-wave { height:36px; } }

.sec-hd { text-align:center; margin-bottom:3.5rem; }
.pill {
  display:inline-block; background:var(--ac-bg,var(--n050)); color:var(--ac-c,var(--n600));
  border:1px solid var(--ac-bd,var(--n100));
  font-size:.7rem; font-weight:700; padding:.3rem .95rem;
  border-radius:999px; letter-spacing:1px; text-transform:uppercase; margin-bottom:.9rem;
}
.pill-d { background:rgba(255,255,255,.08); color:var(--g400); border-color:rgba(184,149,90,.25); }
.sec-t {
  font-size:clamp(1.6rem,3vw,2.35rem); font-weight:900;
  color:var(--n800); line-height:1.15; margin-bottom:.7rem; letter-spacing:-.3px;
}
.sec-t em     { font-style:normal; color:var(--ac-c,var(--n600)); }
.sec-t-d      { color:#fff; }
.sec-t-d em   { color:var(--g400); }
.sec-sub      { color:var(--t4); font-size:.96rem; max-width:580px; margin:0 auto; }
.sec-sub-d    { color:var(--n200); }

/* ══════════════════════════════════════
   SCROLL REVEAL
══════════════════════════════════════ */
.rv { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s ease; }
.rv.d1{transition-delay:.1s;} .rv.d2{transition-delay:.2s;} .rv.d3{transition-delay:.3s;} .rv.d4{transition-delay:.4s;}
.rv.on { opacity:1; transform:translateY(0); }

/* ══════════════════════════════════════
   ISO NORM CARDS
══════════════════════════════════════ */
.norms-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:1.1rem; }
.nc {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:14px;
  padding:1.5rem; transition:all .28s; position:relative; overflow:hidden;
}
.nc::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:var(--nc-c,var(--n600)); border-radius:4px 0 0 4px;
}
.nc:hover { transform:translateY(-4px); box-shadow:var(--sh3); border-color:var(--n100); }
.nc-top  { display:flex; align-items:flex-start; gap:.85rem; margin-bottom:.8rem; }
.nc-ico  {
  width:46px; height:46px; flex-shrink:0; border-radius:10px;
  background:var(--nc-bg,var(--n050));
  display:flex; align-items:center; justify-content:center; font-size:1.3rem;
}
.nc-code { font-size:.67rem; font-weight:700; color:var(--nc-c,var(--n600)); letter-spacing:.5px; margin-bottom:.1rem; }
.nc-name { font-size:.9rem; font-weight:700; color:var(--n800); line-height:1.25; }
.nc-desc { font-size:.81rem; color:var(--t4); line-height:1.56; }
.nc-tags { display:flex; gap:.38rem; margin-top:.8rem; flex-wrap:wrap; }
.tag  { font-size:.67rem; font-weight:600; padding:.2rem .6rem; border-radius:5px; }
.ti   { background:#E8EEF8; color:#2A4F88; }
.ta   { background:#F2EDE0; color:#7A5C25; }
.tc   { background:#E2EDE7; color:#2D6347; }

/* Muted professional colors */
.nb  { --nc-c:#2A4F88; --nc-bg:#EDF2F8; }
.ng  { --nc-c:#276749; --nc-bg:#E4EFE9; }
.no  { --nc-c:#8C4A24; --nc-bg:#F5EAE3; }
.np  { --nc-c:#553C9A; --nc-bg:#EDEAF6; }
.nam { --nc-c:#8C6D3F; --nc-bg:#F5EDD8; }
.nr  { --nc-c:#8B2C2C; --nc-bg:#F5E5E5; }
.nt  { --nc-c:#1F6B6E; --nc-bg:#E0EFEF; }
.ni  { --nc-c:#3C3981; --nc-bg:#EAEAF5; }
.nrs { --nc-c:#8B2D64; --nc-bg:#F5E5EF; }
.ny  { --nc-c:#7A5820; --nc-bg:#F5EDD8; }
.nc2 { --nc-c:#0E5F72; --nc-bg:#DFF0F4; }
.nl  { --nc-c:#3D5A1E; --nc-bg:#E8EFE0; }

/* ══════════════════════════════════════
   COMPACT SERVICE GRID (SST, Procesos, Capacitación, Homologaciones)
══════════════════════════════════════ */
.grid-narrow { max-width:760px; margin:0 auto; }
.svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.9rem; }
.svc-grid.center { display:flex; flex-wrap:wrap; justify-content:center; }
.svc-grid.center .svc-card { width:260px; }
.svc-card {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:12px;
  padding:1.05rem 1.15rem; display:flex; align-items:center; gap:.85rem;
  transition:all .25s;
}
.svc-card:hover { transform:translateY(-3px); box-shadow:var(--sh2); border-color:var(--n100); }
.svc-ico {
  width:40px; height:40px; flex-shrink:0; border-radius:10px;
  background:var(--ac-bg,var(--n050)); color:var(--ac-c,var(--n700));
  display:flex; align-items:center; justify-content:center; font-size:1.05rem;
}
.svc-card span { font-size:.85rem; font-weight:600; color:var(--n800); line-height:1.3; }

/* ══════════════════════════════════════
   NOSOTROS (Misión / Visión)
══════════════════════════════════════ */
.mv-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.75rem; margin-bottom:3rem; }
.mv-card { background:var(--wh); border:1.5px solid var(--bdr); border-radius:16px; padding:2rem 1.8rem; }
.mv-card h3 { display:flex; align-items:center; gap:.6rem; font-size:1.05rem; font-weight:800; color:var(--n800); margin-bottom:.9rem; }
.mv-card h3 i { color:var(--g500); font-size:1.2rem; }
.mv-card p { font-size:.88rem; color:var(--t6); line-height:1.7; }
@media(max-width:768px){ .mv-grid { grid-template-columns:1fr; } }

/* ══════════════════════════════════════
   BENEFITS
══════════════════════════════════════ */
.ben-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(225px,1fr)); gap:1.4rem; }
.ben-card {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:16px;
  padding:2rem 1.6rem; text-align:center; transition:all .28s;
}
.ben-card:hover { transform:translateY(-4px); box-shadow:var(--sh3); border-color:var(--n100); }
.ben-ico {
  width:66px; height:66px; border-radius:18px; margin:0 auto 1.3rem;
  background:var(--n700);
  display:flex; align-items:center; justify-content:center;
  color:var(--g400); font-size:1.6rem;
  box-shadow:0 6px 20px rgba(27,58,107,.22);
}
.ben-card h3 { font-size:.95rem; font-weight:700; color:var(--n800); margin-bottom:.5rem; }
.ben-card p  { font-size:.83rem; color:var(--t4); }

/* ══════════════════════════════════════
   STATS
══════════════════════════════════════ */
.stats-band {
  background:
    linear-gradient(90deg, rgba(10,25,41,.88) 0%, rgba(10,25,41,.62) 55%, rgba(10,25,41,.82) 100%),
    url('bg/stats-bg.jpg') center 35%/cover no-repeat,
    var(--n800);
  padding:4.5rem 0; position:relative; overflow:hidden;
}
.stats-band::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:44px 44px;
}
.stats-band > .c { position:relative; z-index:1; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:2rem; text-align:center; }
.st-item { display:flex; flex-direction:column; align-items:center; }
.st-ring {
  width:54px; height:54px; border-radius:50%; margin-bottom:.7rem;
  border:2px solid rgba(184,149,90,.35);
  display:flex; align-items:center; justify-content:center;
  color:var(--g400); font-size:1.15rem;
}
.st-num   { font-size:2.8rem; font-weight:900; color:var(--g400); line-height:1; }
.st-label { color:var(--n200); font-size:.8rem; font-weight:500; margin-top:.35rem; }

/* ══════════════════════════════════════
   PROCESS
══════════════════════════════════════ */
.proc-wrap { position:relative; }
.proc-line {
  position:absolute; top:26px; left:calc(100%/18); right:calc(100%/18);
  height:2px; background:linear-gradient(90deg,var(--n600),var(--n400),var(--n200));
  border-radius:2px; z-index:0;
}
.proc-grid {
  display:grid; grid-template-columns:repeat(9,1fr); gap:.75rem;
  position:relative; z-index:1;
}
.pstep { text-align:center; padding:.5rem .2rem; }
.pnum {
  width:52px; height:52px; border-radius:50%; margin:0 auto 1rem;
  background:var(--n700); color:var(--g400); position:relative;
  font-size:1.2rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  border:3px solid var(--wh); box-shadow:0 0 0 2px var(--n600);
}
.pstep-badge {
  position:absolute; top:-5px; right:-5px;
  width:20px; height:20px; border-radius:50%;
  background:var(--g500); color:#fff; font-size:.65rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  border:2px solid var(--wh);
}
.pstep h3 { font-size:.78rem; font-weight:700; color:var(--n800); margin-bottom:.25rem; line-height:1.3; }
.pstep p  { font-size:.7rem; color:var(--t4); line-height:1.45; }

/* ══════════════════════════════════════
   AUDITS
══════════════════════════════════════ */
.aud-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:1.15rem; }
.aud-card {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:16px;
  padding:1.8rem; transition:all .28s; overflow:hidden; position:relative;
}
.aud-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--n700),var(--n400));
  transform:scaleX(0); transform-origin:left; transition:transform .3s;
}
.aud-card:hover { transform:translateY(-4px); box-shadow:var(--sh3); border-color:var(--n100); }
.aud-card:hover::after { transform:scaleX(1); }
.aud-ico-box {
  width:50px; height:50px; border-radius:12px; margin-bottom:1.1rem;
  background:var(--ac-bg,var(--n050)); border:1.5px solid var(--ac-bd,var(--n100));
  display:flex; align-items:center; justify-content:center; font-size:1.4rem;
}
.aud-card h3 { font-size:.95rem; font-weight:700; color:var(--n800); margin-bottom:.4rem; }
.aud-card p  { font-size:.81rem; color:var(--t4); margin-bottom:.9rem; }
.aud-list { list-style:none; display:flex; flex-direction:column; gap:.35rem; }
.aud-list li { font-size:.79rem; color:var(--t6); display:flex; align-items:flex-start; gap:.45rem; }
.aud-list li i { color:var(--n600); margin-top:.18rem; font-size:.7rem; flex-shrink:0; }

/* ══════════════════════════════════════
   TESTIMONIALS CAROUSEL
══════════════════════════════════════ */
.testi-outer { max-width:900px; margin:0 auto; position:relative; }
.testi-slide { display:none; animation:fadeSlide .5s ease; }
.testi-slide.on { display:block; }
@keyframes fadeSlide { from{opacity:0;transform:translateY(12px);} to{opacity:1;transform:translateY(0);} }
.testi-card {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  border-radius:20px; padding:2.8rem 3rem;
  position:relative; overflow:hidden;
}
.testi-card::before {
  content:'\201C'; position:absolute; top:.5rem; left:1.5rem;
  font-size:7rem; line-height:1; color:rgba(255,255,255,.06);
  font-family:Georgia,serif;
}
.testi-stars { color:var(--g400); font-size:.9rem; letter-spacing:2px; margin-bottom:1.2rem; }
.testi-txt   { font-size:1rem; color:var(--n100); line-height:1.8; margin-bottom:1.8rem; font-style:italic; }
.testi-author { display:flex; align-items:center; gap:1rem; }
.testi-av {
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,var(--n600),var(--g500));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.95rem; font-weight:700;
}
.testi-name { font-size:.9rem; font-weight:700; color:#fff; }
.testi-role { font-size:.76rem; color:var(--n200); }

/* Controls */
.testi-controls {
  display:flex; align-items:center; justify-content:center;
  gap:1.5rem; margin-top:2rem;
}
.testi-arr {
  width:44px; height:44px; border-radius:50%; border:1.5px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.06); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem; transition:all .2s;
}
.testi-arr:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.35); }
.testi-dots { display:flex; gap:.55rem; }
.tdot {
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.25); border:none; cursor:pointer; transition:all .25s;
}
.tdot.on { background:var(--g400); transform:scale(1.2); }

/* ══════════════════════════════════════
   CTA BAND
══════════════════════════════════════ */
.cta-wrap { padding:5rem 0; }
.cta-inner {
  background:
    linear-gradient(90deg, rgba(27,58,107,.92) 0%, rgba(27,58,107,.72) 55%, rgba(27,58,107,.9) 100%),
    url('bg/cta-bg.jpg') center 25%/cover no-repeat,
    var(--n700);
  border-radius:20px; padding:3.5rem 3rem;
  display:flex; justify-content:space-between; align-items:center;
  gap:2rem; flex-wrap:wrap; position:relative; overflow:hidden;
}
.cta-inner::before {
  content:''; position:absolute; top:-80px; right:-80px;
  width:260px; height:260px; border-radius:50%;
  background:rgba(255,255,255,.04);
}
.cta-inner::after {
  content:''; position:absolute; bottom:-100px; left:80px;
  width:220px; height:220px; border-radius:50%;
  background:rgba(184,149,90,.08);
}
.cta-inner > * { position:relative; z-index:1; }
.cta-ttl { font-size:clamp(1.4rem,2.5vw,1.85rem); font-weight:900; color:#fff; line-height:1.2; }
.cta-ttl span { color:var(--g400); }
.cta-sub  { color:var(--n200); font-size:.9rem; margin-top:.5rem; }
.btn-cta {
  display:inline-flex; align-items:center; gap:.6rem; position:relative; overflow:hidden;
  background:var(--g500); color:#fff;
  padding:1rem 2.1rem; border-radius:10px;
  font-weight:700; font-size:.92rem; text-decoration:none; white-space:nowrap;
  box-shadow:0 5px 20px rgba(184,149,90,.35); transition:all .25s;
}
.btn-cta:hover { background:var(--g700); transform:translateY(-2px); box-shadow:0 8px 28px rgba(184,149,90,.45); }

/* ══════════════════════════════════════
   CONTACT
══════════════════════════════════════ */
.contact-grid { display:grid; grid-template-columns:1fr 1.65fr; gap:3.5rem; align-items:start; }
.ci-ttl { font-size:1.2rem; font-weight:800; color:var(--n800); margin-bottom:1.75rem; }
.ci-item { display:flex; gap:.9rem; margin-bottom:1.4rem; align-items:flex-start; }
.ci-ico {
  width:44px; height:44px; flex-shrink:0; border-radius:11px;
  background:var(--n050); border:1.5px solid var(--n100);
  display:flex; align-items:center; justify-content:center;
  color:var(--n700); font-size:.95rem;
}
.ci-lbl { font-size:.7rem; font-weight:700; color:var(--t4); text-transform:uppercase; letter-spacing:.6px; display:block; margin-bottom:.15rem; }
.ci-val { font-size:.91rem; font-weight:600; color:var(--t9); text-decoration:none; }
.ci-val:hover { color:var(--n600); }
.wa-box {
  background:linear-gradient(135deg,#f0fdf4,#dcfce7);
  border:1.5px solid #a7f3d0; border-radius:12px;
  padding:1.2rem 1.45rem; display:flex; align-items:center; gap:1rem; margin-top:1.8rem;
}
.wa-box i   { font-size:1.85rem; color:#15803d; flex-shrink:0; }
.wa-box b   { display:block; font-size:.88rem; color:var(--t9); }
.wa-box span { font-size:.78rem; color:var(--t4); }

.form-box {
  background:var(--wh); border-radius:18px; padding:2.4rem;
  box-shadow:var(--sh2); border:1.5px solid var(--bdr);
}
.form-box h3 { font-size:1.1rem; font-weight:800; color:var(--n800); margin-bottom:1.5rem; }
.form-row    { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.fg          { margin-bottom:.95rem; }
.fg label    { display:block; font-size:.77rem; font-weight:700; color:var(--t6); margin-bottom:.36rem; }
.fg input, .fg select, .fg textarea {
  width:100%; padding:.7rem 1rem;
  border:1.5px solid var(--bdr); border-radius:8px;
  font-family:inherit; font-size:.87rem; color:var(--t9);
  background:var(--wh); transition:all .2s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  outline:none; border-color:var(--n600); box-shadow:0 0 0 4px rgba(27,58,107,.08);
}
.fg textarea { resize:vertical; min-height:105px; }
.btn-sub {
  width:100%; background:var(--n700); color:#fff; position:relative; overflow:hidden;
  border:none; padding:.92rem; border-radius:9px;
  font-size:.92rem; font-weight:800; cursor:pointer; font-family:inherit;
  box-shadow:0 4px 18px rgba(27,58,107,.28); transition:all .25s;
}
.btn-sub:hover { background:var(--n800); transform:translateY(-2px); box-shadow:0 7px 26px rgba(27,58,107,.38); }

/* Shine sweep micro-interaction */
.btn-wa::before, .btn-cta::before, .nav-cta::before, .btn-sub::before {
  content:''; position:absolute; top:0; left:-75%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-20deg); transition:left .6s ease; pointer-events:none;
}
.btn-wa:hover::before, .btn-cta:hover::before, .nav-cta:hover::before, .btn-sub:hover::before { left:125%; }

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
footer { background:var(--n900); color:var(--n200); padding:4rem 0 0; }
.ft-grid {
  display:grid; grid-template-columns:2fr 1.4fr; gap:2.5rem;
  padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.06);
}
.ft-name { color:#fff; }
.ft-sub  { color:var(--t4); }
.ft-about { font-size:.82rem; line-height:1.68; margin-top:1rem; max-width:265px; }
.ft-address { display:flex; align-items:flex-start; gap:.5rem; font-size:.78rem; line-height:1.5; color:var(--n200); max-width:265px; margin-top:.7rem; }
.ft-address i { margin-top:.2rem; color:var(--g400); flex-shrink:0; }
.ft-soc { display:flex; gap:.6rem; margin-top:1.3rem; }

/* ══════════════════════════════════════
   LEGAL PAGES (Términos, Privacidad, Cambios, Reclamaciones)
══════════════════════════════════════ */
.legal-content { max-width:780px; margin:0 auto; }
.legal-updated { color:var(--t4); font-size:.85rem; margin-bottom:1.6rem; }
.legal-content h2 { font-size:1.1rem; font-weight:800; color:var(--n800); margin:2rem 0 .8rem; }
.legal-content h2:first-of-type { margin-top:0; }
.legal-content p { color:var(--t6); line-height:1.75; margin-bottom:1rem; font-size:.92rem; }
.legal-content ul { margin:0 0 1.1rem 1.2rem; color:var(--t6); line-height:1.75; font-size:.92rem; }
.legal-content li { margin-bottom:.4rem; }
.legal-content strong { color:var(--n800); }
.legal-business-card {
  background:var(--n050); border:1px solid var(--n100); border-radius:14px;
  padding:1.4rem 1.6rem; margin-bottom:2rem;
  display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.6rem;
}
.legal-business-card > div span { display:block; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--t4); margin-bottom:.15rem; }
.legal-business-card > div b { font-size:.88rem; color:var(--n800); font-weight:700; }
.legal-business-card a { color:var(--n700); text-decoration:none; }
.legal-business-card a:hover { text-decoration:underline; }
@media(max-width:560px){ .legal-business-card { grid-template-columns:1fr; } }
.alert-err-inline {
  background:#fde8e8; border:1px solid #f0b8b8; color:#a12f2f;
  border-radius:8px; padding:.7rem .9rem; font-size:.85rem; margin-bottom:1rem;
}
@media print {
  .topbar, .nav, .page-header, footer, .wa-float, .back-top, #reclamoFormBox, #prog { display:none !important; }
}

/* ── Libro de Reclamaciones: tipo de solicitud (choice cards) ── */
.reclamo-type-grid { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-top:.5rem; }
.reclamo-type-card {
  display:flex; align-items:flex-start; gap:.8rem; cursor:pointer;
  border:1.5px solid var(--bdr); border-radius:12px; padding:1rem 1.1rem;
  transition:all .2s; position:relative;
}
.reclamo-type-card input { position:absolute; opacity:0; width:0; height:0; }
.reclamo-type-card:hover { border-color:var(--n200); background:var(--n050); }
.reclamo-type-card:has(input:checked) { border-color:var(--n700); background:var(--n050); box-shadow:0 0 0 3px rgba(27,58,107,.1); }
.reclamo-type-ico {
  width:40px; height:40px; border-radius:10px; flex-shrink:0; margin-top:.1rem;
  background:var(--wh); border:1px solid var(--n100); color:var(--n700);
  display:flex; align-items:center; justify-content:center; font-size:1.05rem; transition:all .2s;
}
.reclamo-type-card:has(input:checked) .reclamo-type-ico { background:var(--n700); color:#fff; border-color:var(--n700); }
.reclamo-type-card b { display:block; font-size:.9rem; color:var(--n800); margin-bottom:.15rem; }
.reclamo-type-card span { font-size:.75rem; color:var(--t4); line-height:1.4; }
@media(max-width:560px){ .reclamo-type-grid { grid-template-columns:1fr; } }

.legal-notice {
  display:flex; gap:.9rem; align-items:flex-start;
  background:var(--n050); border:1px solid var(--n100); border-radius:12px;
  padding:1.1rem 1.3rem; margin-bottom:1.8rem;
}
.legal-notice i { color:var(--n600); font-size:1.1rem; margin-top:.15rem; flex-shrink:0; }
.legal-notice p { font-size:.83rem; color:var(--t6); line-height:1.65; margin:0; }
.soc {
  width:34px; height:34px; border-radius:8px;
  background:rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  color:var(--n200); text-decoration:none; font-size:.85rem; transition:all .2s;
}
.soc:hover { background:var(--n600); color:#fff; transform:translateY(-2px); }
.ft-col h4  { color:#fff; font-size:.87rem; font-weight:700; margin-bottom:1.1rem; }
.ft-lnks    { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.ft-lnks a  { color:var(--n200); text-decoration:none; font-size:.82rem; transition:color .2s; }
.ft-lnks a:hover { color:var(--g400); }
.nl-inp {
  width:100%; padding:.66rem 1rem;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  border-radius:7px; color:#fff; font-family:inherit; font-size:.82rem; margin-bottom:.55rem;
}
.nl-inp::placeholder { color:var(--t4); }
.nl-inp:focus { outline:none; border-color:var(--n400); }
.nl-btn {
  width:100%; padding:.66rem; background:var(--g500); color:#fff; border:none;
  border-radius:7px; font-weight:700; font-size:.82rem; cursor:pointer; font-family:inherit;
  transition:background .2s;
}
.nl-btn:hover { background:var(--g700); }
.ft-bot {
  padding:1.3rem 0; display:flex; justify-content:space-between;
  align-items:center; font-size:.76rem; flex-wrap:wrap; gap:.5rem;
}
.ft-bot a { color:var(--t4); text-decoration:none; transition:color .2s; }
.ft-bot a:hover { color:var(--g400); }
.ft-bot-r { display:flex; gap:1.25rem; }

/* ══════════════════════════════════════
   WHATSAPP FLOAT
══════════════════════════════════════ */
.wa-float {
  position:fixed; bottom:1.8rem; right:1.8rem; z-index:9998;
  width:60px; height:60px; border-radius:50%;
  background:#25a65d;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; box-shadow:0 5px 20px rgba(37,166,93,.4); transition:transform .3s;
}
.wa-float::before {
  content:''; position:absolute; inset:0; border-radius:50%;
  border:3px solid rgba(37,166,93,.45);
  animation:wapulse 2.4s ease-out infinite;
}
@keyframes wapulse { 0%{transform:scale(1);opacity:.9;} 100%{transform:scale(1.7);opacity:0;} }
.wa-float:hover { transform:scale(1.08); }
.wa-float i { font-size:1.85rem; color:#fff; position:relative; z-index:1; }
.wa-tip {
  position:absolute; right:68px;
  background:var(--n900); color:#fff; font-size:.73rem; font-weight:600;
  padding:.45rem .85rem; border-radius:7px; white-space:nowrap;
  opacity:0; transform:translateX(8px); transition:all .3s; pointer-events:none;
}
.wa-float:hover .wa-tip { opacity:1; transform:translateX(0); }

/* ══════════════════════════════════════
   CART (floating button + drawer)
══════════════════════════════════════ */
.cart-float {
  position:fixed; bottom:7rem; right:1.8rem; z-index:9998;
  width:54px; height:54px; border-radius:50%;
  background:var(--n700); border:none; cursor:pointer;
  display:none; align-items:center; justify-content:center;
  box-shadow:0 5px 20px rgba(15,36,66,.35); transition:transform .25s, background .2s;
}
.cart-float.show { display:flex; }
.cart-float:hover { transform:scale(1.08); background:var(--n800); }
.cart-float i { font-size:1.3rem; color:#fff; }
.cart-badge {
  position:absolute; top:-3px; right:-3px; min-width:22px; height:22px; padding:0 5px;
  background:var(--g500); color:var(--n900); font-size:.72rem; font-weight:800;
  border-radius:999px; display:flex; align-items:center; justify-content:center;
  border:2px solid var(--wh);
}

.cart-overlay {
  position:fixed; inset:0; z-index:9999;
  background:rgba(10,25,41,.72); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; padding:1.5rem;
  opacity:0; transition:opacity .25s;
}
.cart-overlay.open { display:flex; }
.cart-overlay.show { opacity:1; }
.cart-panel {
  background:var(--wh); border-radius:20px; max-width:440px; width:100%;
  max-height:88vh; overflow-y:auto; position:relative;
  transform:translateY(16px) scale(.98); transition:transform .25s;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.cart-overlay.show .cart-panel { transform:translateY(0) scale(1); }
.cart-panel-hd {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.4rem 1.6rem; border-bottom:1px solid var(--bdr);
}
.cart-panel-hd h3 { font-size:1.05rem; font-weight:800; color:var(--n800); display:flex; align-items:center; gap:.55rem; }
.cart-panel-hd h3 i { color:var(--n700); }
.cart-close {
  width:32px; height:32px; border-radius:50%; border:none; cursor:pointer;
  background:var(--n050); color:var(--n700); display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.cart-close:hover { background:var(--n100); }

.cart-items { padding:.6rem 1.6rem; display:flex; flex-direction:column; gap:.6rem; min-height:60px; }
.cart-empty { color:var(--t4); font-style:italic; font-size:.88rem; padding:1rem 0; text-align:center; }
.cart-item {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--bg); border-radius:10px; padding:.75rem .9rem;
}
.cart-item-name { font-weight:700; color:var(--n800); font-size:.88rem; }
.cart-item-meta { color:var(--t4); font-size:.76rem; margin-top:2px; }
.cart-item-remove {
  width:32px; height:32px; border-radius:8px; border:none; cursor:pointer; flex-shrink:0;
  background:#fde8e8; color:#a12f2f; display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.cart-item-remove:hover { background:#f8d0d0; }

.cart-total {
  display:flex; align-items:center; justify-content:space-between;
  margin:.6rem 1.6rem 0; padding-top:.9rem; border-top:1px dashed var(--bdr);
  font-size:.9rem; font-weight:700; color:var(--n800);
}
.cart-total b { font-size:1.1rem; color:var(--n700); }
.cart-total:empty { display:none; margin:0; }

.cart-checkout-fields { display:flex; flex-direction:column; gap:.6rem; margin:1rem 1.6rem 0; }
.cart-checkout-fields input {
  width:100%; padding:.7rem .9rem; border:1.5px solid var(--bdr); border-radius:8px;
  font-family:inherit; font-size:.85rem; color:var(--t9);
}
.cart-checkout-fields input:focus { outline:none; border-color:var(--n600); box-shadow:0 0 0 3px rgba(27,58,107,.1); }
.cart-dni-row { display:grid; grid-template-columns:100px 1fr; gap:.6rem; }
.cart-dni-row select {
  width:100%; padding:.7rem .6rem; border:1.5px solid var(--bdr); border-radius:8px;
  font-family:inherit; font-size:.83rem; color:var(--t9); background:var(--wh);
}
.cart-dni-row select:focus { outline:none; border-color:var(--n600); box-shadow:0 0 0 3px rgba(27,58,107,.1); }
.cart-dni-hint { font-size:.72rem; color:var(--t4); line-height:1.4; margin-top:-.2rem; }

.cart-note {
  display:none; margin:1rem 1.6rem 0; padding:.8rem 1rem; border-radius:10px;
  background:#fdf3e3; border:1px solid #f0d9a8; color:#7a5a12; font-size:.82rem; line-height:1.5;
}
.cart-note.show { display:block; }
.cart-note.ok { background:#e4f6ea; border-color:#b8e2c6; color:#1a7a3d; }
.cart-note.err { background:#fde8e8; border-color:#f0b8b8; color:#a12f2f; }

.cart-actions { display:flex; flex-direction:column; gap:.7rem; padding:1.4rem 1.6rem; }
.cart-pay-btn:disabled { opacity:.6; cursor:not-allowed; }
.cart-pay-btn, .cart-wa-btn {
  display:flex; align-items:center; justify-content:center; gap:.55rem;
  font-size:.9rem; font-weight:700; border-radius:9px; padding:.85rem 1.2rem;
  cursor:pointer; text-decoration:none; transition:all .25s; border:1.5px solid transparent;
}
.cart-pay-btn { background:var(--n700); color:#fff; }
.cart-pay-btn:hover { background:var(--n800); }
.cart-wa-btn { background:#25a65d; color:#fff; }
.cart-wa-btn:hover { background:#1f8f4f; }

/* ══════════════════════════════════════
   BACK TO TOP
══════════════════════════════════════ */
.back-top {
  position:fixed; bottom:1.8rem; left:1.8rem; z-index:9997;
  width:46px; height:46px; border-radius:50%;
  background:var(--n800); color:#fff; border:none; font-size:1.05rem;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 5px 18px rgba(10,25,41,.35);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s, transform .3s, visibility .3s, background .2s;
}
.back-top.show { opacity:1; visibility:visible; transform:translateY(0); }
.back-top:hover { background:var(--n700); transform:translateY(-3px); }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:1024px){
  .proc-grid { grid-template-columns:repeat(3,1fr); }
  .proc-line { display:none; }
  .ft-grid   { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; }
}
@media(max-width:1300px){
  .topbar       { display:none; }
  .burger       { display:flex; }
  .logo-img     { height:58px; }
  .nav-intranet {
    width:auto; height:auto; border-radius:8px !important;
    justify-content:flex-start; gap:.6rem; padding:.46rem .88rem !important;
  }
  .nav-intranet-label { display:inline; font-size:.875rem; font-weight:500; }
  .nav-links {
    display:none; position:absolute; top:calc(100% + 1px); left:0; right:0;
    background:#fff; padding:1rem 1.5rem 1.5rem;
    flex-direction:column; align-items:stretch; text-align:center; gap:.2rem;
    box-shadow:0 12px 40px rgba(10,25,41,.1);
    max-height:calc(100vh - 90px); overflow-y:auto;
  }
  .nav-links.open { display:flex; }
  .nav-cta {
    display:block; width:100%; text-align:center;
    margin:.5rem 0 0 !important; padding:.85rem 1rem !important;
    font-size:.9rem !important; box-sizing:border-box;
  }
  .hero        { min-height:auto; padding:4rem 0 5.5rem; }
  .hero-grid   { grid-template-columns:1fr; }
  .hero-right  { display:none; }
  .hero-stats  { gap:1.5rem; }
  .form-row    { grid-template-columns:1fr; }
  .ft-grid     { grid-template-columns:1fr; }
  .cta-inner   { text-align:center; justify-content:center; }
  .ft-bot      { flex-direction:column; text-align:center; }
  .ft-bot-r    { flex-wrap:wrap; justify-content:center; row-gap:.6rem; column-gap:1rem; }
  .testi-card  { padding:2rem 1.5rem; }
}
@media(max-width:480px){
  .sec         { padding:3.5rem 0; }
  .proc-grid   { grid-template-columns:repeat(2,1fr); }
  .norms-grid  { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════
   HERO ENTRANCE ANIMATION
══════════════════════════════════════ */
.hero-anim { opacity:0; transform:translateY(28px); animation:heroIn .8s ease forwards; }
.hero-anim.d1 { animation-delay:.12s; }
.hero-anim.d2 { animation-delay:.28s; }
.hero-anim.d3 { animation-delay:.44s; }
.hero-anim.d4 { animation-delay:.6s; }
@keyframes heroIn { to { opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce){
  .hero-anim { opacity:1; transform:none; animation:none; }
}

/* ══════════════════════════════════════
   PAGE HEADER (inner pages)
══════════════════════════════════════ */
.page-header {
  background:
    linear-gradient(180deg, rgba(10,25,41,.92), rgba(15,36,66,.88)),
    var(--n800);
  padding:3.75rem 0 3.25rem; position:relative; overflow:hidden;
}
.page-header::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:48px 48px;
}
.page-header .c { position:relative; z-index:1; }
.page-crumb { font-size:.8rem; color:var(--n200); margin-bottom:1rem; display:flex; align-items:center; gap:.5rem; }
.page-crumb a { color:var(--n200); text-decoration:none; transition:color .2s; }
.page-crumb a:hover { color:var(--g400); }
.page-crumb i { font-size:.65rem; color:var(--n400); }
.page-header h1 {
  font-size:clamp(1.7rem,3.3vw,2.5rem); font-weight:900; color:#fff;
  line-height:1.15; letter-spacing:-.3px; max-width:720px;
}
.page-header h1 em { font-style:normal; color:var(--g400); }
.page-header p { color:var(--n200); font-size:.95rem; max-width:600px; margin-top:.9rem; line-height:1.65; }

/* ══════════════════════════════════════
   SERVICE TEASER GRID (home page)
══════════════════════════════════════ */
.svc-teaser-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.svc-teaser-card {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:20px;
  padding:2.2rem 1.9rem; text-decoration:none; display:block;
  transition:all .3s; position:relative; overflow:hidden;
}
.svc-teaser-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--g500), var(--n600));
  transform:scaleX(0); transform-origin:left; transition:transform .3s;
}
.svc-teaser-card::after {
  content:''; position:absolute; right:-30px; bottom:-30px; width:130px; height:130px;
  border-radius:50%; background:linear-gradient(135deg,var(--n050),transparent 70%);
  opacity:0; transition:opacity .3s;
}
.svc-teaser-card:hover { transform:translateY(-6px); box-shadow:var(--sh3); border-color:var(--n100); }
.svc-teaser-card:hover::before { transform:scaleX(1); }
.svc-teaser-card:hover::after { opacity:1; }
.svc-teaser-ico {
  width:68px; height:68px; border-radius:18px; position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; font-size:1.8rem;
  margin-bottom:1.3rem; color:#fff;
  background:linear-gradient(135deg,var(--n700),var(--n900));
  box-shadow:0 8px 18px rgba(15,36,66,.28);
  transition:transform .3s;
}
.svc-teaser-card:hover .svc-teaser-ico { transform:scale(1.08) rotate(-4deg); }
.svc-teaser-card h3 { position:relative; z-index:1; font-size:1.05rem; font-weight:800; color:var(--n800); margin-bottom:.6rem; }
.svc-teaser-card p { position:relative; z-index:1; font-size:.85rem; color:var(--t4); line-height:1.6; margin-bottom:1.1rem; }
.svc-teaser-link { position:relative; z-index:1; font-size:.82rem; font-weight:700; color:var(--n600); display:inline-flex; align-items:center; gap:.4rem; transition:gap .2s; }
.svc-teaser-card:hover .svc-teaser-link { color:var(--g500); gap:.6rem; }

/* ══════════════════════════════════════
   COURSE CARDS + BROCHURE MODAL
══════════════════════════════════════ */
.course-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.6rem; }
.course-card {
  background:var(--wh); border:1.5px solid var(--bdr); border-radius:18px;
  cursor:pointer; transition:all .3s; position:relative; overflow:hidden;
  display:flex; flex-direction:column;
}
.course-card:hover { transform:translateY(-6px); box-shadow:var(--sh3); border-color:var(--n100); }
.course-card-top {
  height:190px; position:relative; overflow:hidden; flex-shrink:0;
  background:linear-gradient(135deg, var(--n700), var(--n800));
  display:flex; align-items:center; justify-content:center;
}
.course-card-top::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:20px 20px;
}
.course-ico {
  width:56px; height:56px; border-radius:14px; position:relative; z-index:1;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  color:var(--g400); display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; transition:transform .35s;
}
.course-card:hover .course-ico { transform:scale(1.1) rotate(-4deg); }
.course-price-badge {
  position:absolute; top:.8rem; right:.8rem; z-index:2;
  background:var(--g500); color:var(--n900); font-size:.78rem; font-weight:800;
  padding:.35rem .7rem; border-radius:999px; box-shadow:0 3px 10px rgba(0,0,0,.25);
}
.course-card-top.has-image { background:none; }
.course-card-top.has-image::before { display:none; }
.course-card-top img { width:100%; height:100%; object-fit:cover; position:relative; z-index:1; transition:transform .35s; }
.course-card:hover .course-card-top img { transform:scale(1.06); }
.course-card-body { padding:1.5rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.course-card h3 { font-size:1rem; font-weight:800; color:var(--n800); margin-bottom:.55rem; line-height:1.3; }
.course-card p { font-size:.83rem; color:var(--t4); line-height:1.6; margin-bottom:1.1rem; flex:1; }
.course-meta { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.3rem; }
.course-meta span {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.72rem; font-weight:600; color:var(--n700);
  background:var(--n050); padding:.32rem .65rem; border-radius:999px;
}
.course-meta span i { font-size:.68rem; color:var(--g500); }
.course-link {
  font-size:.82rem; font-weight:700; color:var(--n700);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  border:1.5px solid var(--n100); border-radius:9px; padding:.65rem 1rem;
  transition:all .25s; margin-top:auto;
}
.course-card:hover .course-link { background:var(--n700); color:#fff; border-color:var(--n700); gap:.7rem; }

.brochure-overlay {
  position:fixed; inset:0; z-index:9999;
  background:rgba(10,25,41,.72); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; padding:1.5rem;
  opacity:0; transition:opacity .25s;
}
.brochure-overlay.open { display:flex; }
.brochure-overlay.show { opacity:1; }
.brochure-modal {
  background:var(--wh); border-radius:20px; max-width:580px; width:100%;
  max-height:88vh; overflow-y:auto; position:relative; padding:0;
  transform:translateY(16px) scale(.98); transition:transform .25s;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.brochure-overlay.show .brochure-modal { transform:translateY(0) scale(1); }
.brochure-close {
  position:absolute; top:1.1rem; right:1.1rem; width:36px; height:36px; border-radius:50%;
  background:rgba(255,255,255,.14); border:none; color:#fff; cursor:pointer; font-size:1rem;
  display:flex; align-items:center; justify-content:center; transition:all .2s; z-index:2;
}
.brochure-close:hover { background:rgba(255,255,255,.28); }
.brochure-header {
  background:linear-gradient(135deg, var(--n700), var(--n800));
  padding:2.4rem 2.4rem 2rem; position:relative; overflow:hidden;
}
.brochure-header::before {
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:24px 24px;
}
.brochure-header.has-image {
  background-size:cover; background-position:center; background-repeat:no-repeat;
  min-height:220px; display:flex; flex-direction:column; justify-content:flex-end;
}
.brochure-header.has-image::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,25,41,.3) 0%, rgba(10,25,41,.85) 100%);
}
.brochure-ico {
  width:58px; height:58px; border-radius:14px; margin-bottom:1.2rem; position:relative; z-index:1;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  color:var(--g400); display:flex; align-items:center; justify-content:center; font-size:1.55rem;
}
.brochure-title { font-size:1.3rem; font-weight:900; color:#fff; margin-bottom:0; line-height:1.25; position:relative; z-index:1; }
.brochure-body { padding:2rem 2.4rem 2.4rem; }
.brochure-desc { font-size:.9rem; color:var(--t6); line-height:1.65; margin-bottom:1.4rem; }
.brochure-price {
  display:flex; align-items:baseline; gap:.5rem;
  font-size:1.5rem; font-weight:900; color:var(--n800); margin-bottom:1rem;
}
.brochure-price span { font-size:.78rem; font-weight:600; color:var(--t4); }
.brochure-inline-cta { width:100%; justify-content:center; margin-bottom:1.6rem; }
.brochure-meta { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-bottom:1.6rem; padding:1.1rem 1.2rem; background:var(--bg); border-radius:12px; }
.brochure-meta-item { display:flex; flex-direction:column; gap:.2rem; }
.brochure-meta-item span:first-child { font-size:.68rem; font-weight:700; color:var(--t4); text-transform:uppercase; letter-spacing:.4px; }
.brochure-meta-item span:last-child { font-size:.84rem; font-weight:600; color:var(--n800); }
.brochure-syllabus-ttl { font-size:.9rem; font-weight:800; color:var(--n800); margin-bottom:.7rem; }
.brochure-syllabus { list-style:none; display:flex; flex-direction:column; gap:.55rem; margin-bottom:1.8rem; }
.brochure-syllabus li { font-size:.85rem; color:var(--t6); display:flex; align-items:flex-start; gap:.55rem; line-height:1.5; }
.brochure-syllabus li i { color:var(--g500); margin-top:.2rem; font-size:.75rem; flex-shrink:0; }
.brochure-actions {
  display:flex; flex-wrap:wrap; gap:.7rem;
  position:sticky; bottom:0; margin:1.4rem -2.4rem -2.4rem; padding:1rem 2.4rem 1.4rem;
  background:var(--wh); border-top:1px solid var(--bdr, #e6e9ef); box-shadow:0 -6px 16px rgba(15,36,66,.06);
}
@media(max-width:480px){
  .brochure-actions { margin:1.4rem -1.6rem -1.6rem; padding:1rem 1.6rem 1.4rem; }
}
.brochure-pdf-btn {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.85rem; font-weight:700; color:var(--n700);
  border:1.5px solid var(--n100); border-radius:9px; padding:.72rem 1.3rem;
  text-decoration:none; transition:all .25s;
}
.brochure-pdf-btn:hover { background:var(--n700); color:#fff; border-color:var(--n700); }
.brochure-pdf-btn i { color:var(--g500); }
.cart-add-btn {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.85rem; font-weight:700; color:#fff; background:var(--n700);
  border:1.5px solid var(--n700); border-radius:9px; padding:.72rem 1.3rem;
  cursor:pointer; transition:all .25s;
}
.cart-add-btn:hover { background:var(--n800); border-color:var(--n800); }
.cart-add-btn.in-cart { background:var(--g500); border-color:var(--g500); color:var(--n900); }
.cart-add-btn.in-cart:hover { background:var(--g400); border-color:var(--g400); }
.brochure-pdf-btn:hover i { color:var(--g400); }
@media(max-width:480px){
  .brochure-header { padding:2rem 1.6rem 1.6rem; }
  .brochure-body { padding:1.6rem 1.6rem 2rem; }
  .brochure-meta { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════
   STAFF DE PROFESIONALES
══════════════════════════════════════ */
.staff-grid { display:flex; flex-direction:column; gap:3.4rem; }
.staff-row { display:flex; align-items:center; transition:transform .3s, filter .3s; }
.staff-row:hover { transform:translateY(-3px); }
.staff-row:nth-child(even) { flex-direction:row-reverse; }

.staff-photo-wrap { position:relative; flex-shrink:0; width:190px; z-index:2; padding-bottom:2.2rem; }
.staff-photo, .staff-photo-fallback {
  width:190px; height:190px; border-radius:50%; object-fit:cover;
  border:6px solid var(--wh); box-shadow:0 0 0 3px var(--g500), var(--sh3); display:block;
  transition:box-shadow .3s;
}
.staff-row:hover .staff-photo, .staff-row:hover .staff-photo-fallback { box-shadow:0 0 0 4px var(--g500), var(--sh3); }
.staff-photo-fallback {
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--n600),var(--g500));
  color:#fff; font-size:2.7rem; font-weight:800;
}
.staff-tag {
  position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:172px; border-radius:12px; padding:.6rem .8rem; text-align:center;
  box-shadow:0 10px 22px rgba(10,25,41,.3); border:1px solid rgba(255,255,255,.35);
}
.staff-tag strong { display:block; font-size:.8rem; font-weight:800; letter-spacing:.1px; line-height:1.25; }
.staff-tag span { display:block; font-size:.66rem; font-weight:700; margin-top:2px; opacity:.9; line-height:1.3; }

.staff-bio-card {
  flex:1; border-radius:22px; padding:2.2rem 2.6rem;
  font-size:.88rem; line-height:1.8; margin:0; position:relative; overflow:hidden;
  box-shadow:var(--sh2);
}
.staff-bio-card::before {
  content:''; position:absolute; top:0; bottom:0; width:5px;
}
.staff-bio-card::after {
  content:'\f10d'; font-family:'Font Awesome 6 Free'; font-weight:900;
  position:absolute; top:1rem; font-size:2.6rem; opacity:.09; line-height:1;
}
.staff-bio-card p { position:relative; z-index:1; }
.staff-row:nth-child(odd) .staff-bio-card {
  background:linear-gradient(135deg,var(--n700) 0%,var(--n900) 100%);
  color:rgba(255,255,255,.9);
  margin-left:-70px; padding-left:116px;
}
.staff-row:nth-child(odd) .staff-bio-card::before { left:0; background:var(--g500); }
.staff-row:nth-child(odd) .staff-bio-card::after { right:1.4rem; color:var(--g400); }
.staff-row:nth-child(odd) .staff-tag { background:var(--g500); color:var(--n900); }
.staff-row:nth-child(odd) .staff-tag span { color:var(--n800); }

.staff-row:nth-child(even) .staff-bio-card {
  background:linear-gradient(135deg,var(--g100) 0%,#fff 75%);
  color:var(--n700);
  margin-right:-70px; padding-right:116px;
}
.staff-row:nth-child(even) .staff-bio-card::before { right:0; background:var(--n700); }
.staff-row:nth-child(even) .staff-bio-card::after { left:1.4rem; color:var(--n600); }
.staff-row:nth-child(even) .staff-tag { background:var(--n800); color:#fff; }
.staff-row:nth-child(even) .staff-tag span { color:var(--g400); }
@media(max-width:768px){
  .staff-row, .staff-row:nth-child(even) { flex-direction:column; }
  .staff-photo-wrap { margin-bottom:1.4rem; }
  .staff-bio-card::after { display:none; }
  .staff-row:nth-child(odd) .staff-bio-card,
  .staff-row:nth-child(even) .staff-bio-card {
    margin:0; padding:2.4rem 1.6rem 1.8rem; text-align:center; border-radius:18px;
  }
}
