:root{
    --navy: #23255E;
    --navy-deep: #171840;
    --cyan: #01CCFD;
    --ink: #14152B;
    --paper: #F5F7FB;
    --mist: #E7F7FE;
    --slate: #6E7191;
    --white: #FFFFFF;
    --ring-gap: 34deg;
    --maxw: 1180px;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
  }

  body{
    font-family:'Inter', sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }

  img{ max-width:100%; display:block; }

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }

  h1,h2,h3,h4{ font-family:'Fraunces', serif; font-weight:600; letter-spacing:-0.01em; }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--cyan);
  }
  .eyebrow.on-light{ color:#0091B5; }

  a{ color:inherit; }

  /* ---------- Focus ---------- */
  a:focus-visible, button:focus-visible{
    outline:2px solid var(--cyan);
    outline-offset:3px;
    border-radius:4px;
  }

  /* ---------- Ring motif (signature element) ---------- */
  .ring{
    --size: 520px;
    --stroke: 3px;
    position:relative;
    width:var(--size);
    height:var(--size);
    border-radius:50%;
  }
  .ring svg{ width:100%; height:100%; display:block; }
  .ring-arc{
    fill:none;
    stroke:var(--cyan);
    stroke-width:3.4;
    stroke-linecap:round;
    transition: stroke-dashoffset 1.4s cubic-bezier(.16,.84,.44,1);
  }

/* ================= HERO CAROUSEL ================= */
.hero-carousel {
  position: relative;
  width: 100%;
  height: 100svh;
  min-height: 620px;
  padding: 0 !important;
  margin: 0;
  overflow: hidden;
}

.hero-carousel .carousel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: grab;
  user-select: none;
  touch-action: pan-y;
}

.hero-carousel .carousel.is-dragging {
  cursor: grabbing;
}

.carousel-track {
  display: flex;
  width: 100%;
  height: 100%;
  will-change: transform;
  transition: transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.carousel-slide {
  position: relative;
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.carousel-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  -webkit-user-drag: none;
}

.carousel-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(6, 10, 28, 0.78) 0%,
    rgba(6, 10, 28, 0.42) 48%,
    rgba(6, 10, 28, 0.12) 100%
  );
  pointer-events: none;
}

.carousel-caption {
  position: absolute;
  z-index: 2;
  left: clamp(24px, 7vw, 110px);
  bottom: clamp(90px, 13vh, 150px);
  width: min(700px, calc(100% - 48px));
  color: #fff;
  pointer-events: none;
}

.carousel-caption .eyebrow {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.45);
}

.carousel-caption h1,
.carousel-caption h2 {
  margin: 18px 0 18px;
  color: #fff;
  font-size: clamp(38px, 6vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.035em;
}

.carousel-caption h1 em,
.carousel-caption h2 em {
  font-style: normal;
  color: #61d8f3;
}

.carousel-caption p {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: clamp(16px, 1.5vw, 21px);
  line-height: 1.55;
}

.carousel-dots {
  position: absolute;
  z-index: 5;
  left: clamp(24px, 7vw, 110px);
  bottom: 38px;
  display: flex;
  gap: 9px;
}

.carousel-dot {
  width: 38px;
  height: 4px;
  padding: 0;
  border: 0;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  transition: width 0.25s, background 0.25s;
}

.carousel-dot.is-active {
  width: 62px;
  background: #fff;
}

/* ================= HEADER AUDIENCE TOGGLE ================= */
.site {
  position: relative;
  z-index: 30;
}

/* ================= PROFILE SELECTOR ================= */
#profile-selector-wrapper{
  position:relative;
  z-index:60;
  height:0;
  pointer-events:none;
}
#profile-selector{
  position:absolute;
  top:12px;
  left:25px;
  right:auto;
  width:min(220px, calc(100vw - 32px));
  pointer-events:auto;
}
#profile-btn{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 16px 12px 18px;
  border:1px solid #E5E7EB;
  border-radius:999px;
  background:var(--white);
  color:var(--navy);
  font:600 14px/1 'Inter',sans-serif;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(23,24,64,.08);
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
#profile-btn:hover{ border-color:#B8C4E1; box-shadow:0 8px 18px rgba(23,24,64,.12); transform:translateY(-1px); }
#profile-btn:active{ transform:translateY(1px); }
#profile-arrow{
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .22s ease;
}
#profile-arrow.rotate{ transform:rotate(225deg) translate(-2px,-2px); }
#profile-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  width:100%;
  padding:6px;
  border:1px solid #E5E7EB;
  border-radius:16px;
  background:var(--white);
  box-shadow:0 14px 30px rgba(23,24,64,.14);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px) scale(.96);
  transform-origin:top center;
  transition:opacity .18s ease, transform .22s cubic-bezier(.16,.84,.44,1), visibility .22s;
}
#profile-menu.show{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scale(1); }
#profile-menu button{
  width:100%;
  padding:11px 12px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--navy);
  text-align:left;
  font:600 14px/1.2 'Inter',sans-serif;
  cursor:pointer;
  transition:background .18s ease, color .18s ease;
}
#profile-menu button:hover, #profile-menu button.is-selected{ background:#EEF8FC; color:#008CB2; }

/* Keep old hero audience switch hidden if CSS from the original page still references it. */
.hero-carousel + .marquee {
  display: none;
}

/* ================= RESPONSIVE ================= */
@media (max-width: 1100px) {
  .navlinks {
    display: none;
  }

  .navcta {
    display: none;
  }
}

@media (max-width: 700px) {
  .hero-carousel {
    min-height: 580px;
  }

  #profile-selector{ right:24px; left:auto; top:10px; width:min(220px, calc(100vw - 24px)); }

  .carousel-overlay {
    background: linear-gradient(
      90deg,
      rgba(6, 10, 28, 0.78),
      rgba(6, 10, 28, 0.3)
    );
  }

  .carousel-caption {
    bottom: 90px;
  }

  .carousel-caption h1,
  .carousel-caption h2 {
    font-size: clamp(34px, 11vw, 52px);
  }

  .carousel-dot {
    width: 24px;
  }

  .carousel-dot.is-active {
    width: 42px;
  }
}

  /* ---------- Nav ---------- */
  header.site{
    position:sticky; top:0; z-index:40;
    background:rgba(23,24,64,0.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px;
    max-width:var(--maxw); margin:0 auto;
  }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img{ width:32px; height:32px; }
  .brand span{ font-family:'Fraunces', serif; font-weight:600; font-size:19px; color:var(--white); letter-spacing:-0.01em; }
  .navlinks{ display:flex; gap:28px; list-style:none; }
  .navlinks a{
    color:rgba(255,255,255,0.75); text-decoration:none; font-size:14.5px; font-weight:500;
    transition:color .2s ease;
  }
  .navlinks a:hover{ color:var(--white); }
  .navcta{
    display:flex; gap:10px;
  }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:10px 20px;
    border-radius:100px;
    font-size:14px; font-weight:600;
    text-decoration:none;
    border:1.5px solid transparent;
    cursor:pointer;
    transition: transform .18s ease, background .2s ease, border-color .2s ease, color .2s ease;
    font-family:'Inter',sans-serif;
  }
  .btn:hover{ transform:translateY(-1px); }
  .btn-cyan{ background:var(--cyan); color:var(--navy-deep); }
  .btn-cyan:hover{ background:#20D6FF; }
  .btn-ghost{ background:transparent; color:var(--white); border-color:rgba(255,255,255,0.35); }
  .btn-ghost:hover{ border-color:var(--white); }
  .btn-navy{ background:var(--navy); color:var(--white); }
  .btn-navy:hover{ background:var(--navy-deep); }

  .navtoggle{ display:none; }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background: radial-gradient(120% 140% at 78% -10%, #2C2F73 0%, var(--navy) 45%, var(--navy-deep) 100%);
    color:var(--white);
    overflow:hidden;
    padding:88px 0 0;
  }
  .hero-grid{
    display:grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items:center;
    gap:40px;
    padding-bottom:70px;
  }
  .hero h1{
    font-size:clamp(34px, 4.6vw, 56px);
    line-height:1.06;
    margin:20px 0 22px;
    max-width:15ch;
  }
  .hero h1 em{ font-style:normal; color:var(--cyan); }
  .hero p.lede{
    font-size:18px;
    color:rgba(255,255,255,0.82);
    max-width:46ch;
    margin-bottom:34px;
  }
  .audience-toggle{
    display:inline-flex;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.16);
    border-radius:100px;
    padding:4px;
    margin-bottom:30px;
    gap:2px;
  }
  .audience-toggle button{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    font-weight:600;
    letter-spacing:0.04em;
    padding:9px 18px;
    border-radius:100px;
    border:none;
    background:transparent;
    color:rgba(255,255,255,0.65);
    cursor:pointer;
    transition:background .25s ease, color .25s ease;
  }
  .audience-toggle button.active{
    background:var(--cyan);
    color:var(--navy-deep);
  }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

  .hero-visual{
    position:relative;
    display:flex; align-items:center; justify-content:center;
    height:520px;
  }
  .hero-visual .ring{ position:absolute; }
  .hero-visual .ring.r1{ --size:460px; opacity:1; }
  .hero-visual .ring.r2{ --size:460px; }
  .hero-visual .core{
    position:relative; z-index:2;
    width:190px; height:190px;
    border-radius:50%;
    background:var(--navy);
    display:flex; align-items:center; justify-content:center;
    box-shadow: 0 0 0 1px rgba(255,255,255,0.08), 0 30px 60px -20px rgba(1,204,253,0.35);
  }
  .hero-visual .core img{ width:96px; height:96px; }
  .hero-node{
    position:absolute;
    font-family:'IBM Plex Mono', monospace;
    font-size:11.5px;
    font-weight:600;
    letter-spacing:0.06em;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.18);
    color:rgba(255,255,255,0.9);
    padding:9px 14px;
    border-radius:10px;
    backdrop-filter:blur(6px);
  }
  .hero-node.n1{ top:6%; left:2%; }
  .hero-node.n2{ bottom:8%; right:0%; }

  .marquee{
    border-top:1px solid rgba(255,255,255,0.1);
    background:rgba(0,0,0,0.15);
    padding:16px 0;
    overflow:hidden;
  }
  .marquee-track{
    display:flex; gap:56px; white-space:nowrap;
    animation: scrollmarq 32s linear infinite;
    width:max-content;
  }
  @media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }
  .marquee-track span{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    color:rgba(255,255,255,0.55);
    letter-spacing:0.05em;
  }
  @keyframes scrollmarq{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  /* ---------- Section basics ---------- */
  section{ padding:96px 0; }
  .section-head{ max-width:640px; margin-bottom:56px; }
  .section-head h2{ font-size:clamp(28px,3.4vw,42px); margin-top:14px; line-height:1.12; }
  .section-head p{ color:var(--slate); font-size:17px; margin-top:16px; }

  .on-mist{ background:var(--mist); }
  .on-paper{ background:var(--paper); }
  .on-navy{ background:var(--navy); color:var(--white); }
  .on-navy .slate-on-navy{ color:rgba(255,255,255,0.68); }

  /* ---------- Empresario: contenido independiente ---------- */
  .emp-intro{ background:radial-gradient(90% 120% at 100% 0%, #313681 0%, var(--navy) 54%, var(--navy-deep) 100%); color:var(--white); overflow:hidden; }
  .emp-intro-grid{ min-height:440px; display:grid; grid-template-columns:1.35fr .65fr; align-items:center; gap:56px; }
  .emp-intro h1{ font-size:clamp(38px,5.2vw,66px); line-height:1.02; max-width:13ch; margin:18px 0; }
  .emp-intro h1 em{ color:var(--cyan); font-style:normal; }
  .emp-intro-lede{ font-family:'Fraunces',serif; font-size:clamp(19px,2vw,25px); color:rgba(255,255,255,.78); }
  .emp-intro-note{ border:1px solid rgba(1,204,253,.55); border-radius:18px; padding:28px; background:rgba(255,255,255,.06); }
  .emp-note-mark{ color:var(--cyan); font:700 13px 'IBM Plex Mono',monospace; letter-spacing:.12em; }
  .emp-intro-note p{ margin-top:18px; color:rgba(255,255,255,.85); font-size:16px; }
  .emp-problem-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  .emp-problem-grid p{ font-size:17px; color:var(--slate); }
  .emp-problem-grid .emp-problem-close{ color:var(--navy); font-weight:700; }
  .emp-bridge{text-align:center;}
  .emp-bridge h2{ font-size:clamp(30px,4vw,46px); margin:16px auto 20px; }
  .emp-bridge p{ max-width:760px; margin:0 auto 16px; font-size:18px; color:rgba(255,255,255,.82); }
  .emp-door-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
  .emp-door-grid article{ background:#E8ECF8; border-radius:12px; padding:20px 22px; display:flex; flex-direction:column; gap:5px; }
  .emp-door-grid strong{ color:var(--navy); font-size:16px; }
  .emp-door-grid span{ color:var(--slate); font-size:14.5px; }
  .emp-territory{text-align:center;}
  .emp-territory h2{ font-size:clamp(30px,4vw,46px); margin:16px auto; }
  .emp-territory > .wrap > p{ max-width:650px; margin:0 auto; color:rgba(255,255,255,.8); font-size:18px; }
  .territory-path{ margin:42px auto 28px; display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; font:600 14px 'IBM Plex Mono',monospace; color:var(--cyan); }
  .territory-path span{ border:1px solid rgba(255,255,255,.25); border-radius:100px; padding:12px 17px; color:var(--white); }
  .territory-path i{ font-style:normal; color:var(--cyan); font-size:22px; }
  .emp-territory .territory-close{ font-family:'Fraunces',serif; color:var(--white); font-size:21px; }
  .state-partnership{ background:var(--mist); }
  .state-partnership-close{ max-width:760px; margin:30px 0 0; font:600 21px/1.35 'Fraunces',serif; color:var(--navy); }
  .territory-path-light{ justify-content:flex-start; margin:36px 0 0; color:#0091B5; }
  .territory-path-light span{ color:var(--navy); border-color:#B8C4E1; background:var(--white); }

  /* ---------- Reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,.84,.44,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- President message ---------- */
  .quote-block{
    display:grid; grid-template-columns: 0.9fr 1.1fr; gap:56px; align-items:start;
  }
  .quote-mark{
    font-family:'Fraunces', serif; font-size:120px; line-height:0.6; color:var(--cyan);
    font-weight:700;
  }
  .quote-block blockquote{
    font-family:'Fraunces', serif; font-weight:500; font-size:22px; line-height:1.5;
    color:var(--ink);
  }
  .quote-block blockquote + blockquote{ margin-top:22px; }
  .quote-sig{ margin-top:30px; display:flex; align-items:center; gap:14px; }
  .quote-sig .avatar{
    width:52px; height:52px; border-radius:50%;
    background:linear-gradient(135deg, var(--navy), var(--cyan));
    display:flex; align-items:center; justify-content:center;
    color:var(--white); font-family:'Fraunces',serif; font-weight:700; font-size:18px;
  }
  .quote-sig .name{ font-weight:700; font-size:15.5px; }
  .quote-sig .role{ font-size:13.5px; color:var(--slate); }
  .quote-side{ position:sticky; top:110px; }
  .quote-side .eyebrow{ margin-bottom:8px; display:block; }
  .quote-side h3{ font-size:26px; line-height:1.2; }

  /* ---------- Pillars (quienes somos) ---------- */
  .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .pillar{
    background:var(--white);
    border:1px solid #E4E6F1;
    border-radius:18px;
    padding:32px 28px;
  }
  .pillar .num{
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--cyan); font-weight:600;
    margin-bottom:18px; display:block;
  }
  .pillar h4{ font-size:19px; margin-bottom:10px; line-height:1.3; }
  .pillar p{ color:var(--slate); font-size:15px; }

  /* ---------- Problem section ---------- */
  .problem{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  }
  .problem-copy p{ font-size:17px; color:rgba(255,255,255,0.82); margin-bottom:18px; max-width:52ch; }
  .gap-visual{ position:relative; height:340px; display:flex; align-items:center; justify-content:center; }
  .gap-pole{
    position:absolute; top:0; bottom:0; width:2px;
    background:repeating-linear-gradient(to bottom, rgba(255,255,255,0.35) 0 6px, transparent 6px 14px);
  }
  .gap-pole.left{ left:18%; }
  .gap-pole.right{ right:18%; }
  .gap-endpoint{
    position:absolute;
    width:104px; height:104px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    font-family:'IBM Plex Mono', monospace; font-size:11.5px; font-weight:600; letter-spacing:0.03em;
    color:var(--white);
    padding:10px;
  }
  .gap-endpoint.state{ left:calc(18% - 52px); background:rgba(1,204,253,0.14); border:1.5px solid var(--cyan); top:24px; }
  .gap-endpoint.biz{ right:calc(18% - 52px); background:rgba(255,255,255,0.06); border:1.5px solid rgba(255,255,255,0.35); bottom:24px; }
  .gap-label{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase;
    color:rgba(255,255,255,0.5); text-align:center;
  }

  /* ---------- Response / bridge ---------- */
  .bridge-section{ text-align:center; }
  .bridge-section .section-head{ margin:0 auto 44px; text-align:center; }
  .bridge-visual{ display:flex; justify-content:center; margin-bottom:44px; }
  .bridge-copy{ max-width:660px; margin:0 auto; font-size:18px; color:var(--slate); }

  /* ---------- Three axes ---------- */
  .axes{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .axis{
    border-radius:20px;
    padding:34px 28px;
    color:var(--white);
    position:relative;
    overflow:hidden;
  }
  .axis.a1{ background:linear-gradient(160deg, #23255E, #171840); }
  .axis.a2{ background:linear-gradient(160deg, #1B7FA0, #0F5A75); }
  .axis.a3{ background:linear-gradient(160deg, #4B4E9C, #2E3070); }
  .axis .tag{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.08em; color:rgba(255,255,255,0.6); }
  .axis h4{ font-size:23px; margin:14px 0 12px; color:var(--white); }
  .axis p{ font-size:14.5px; color:rgba(255,255,255,0.78); }
  .axis-icon{ width:40px; height:40px; margin-bottom:18px; }

  .axes-note{
    margin-top:28px; padding:22px 26px; border-radius:14px; background:var(--mist);
    font-size:15px; color:#0B4B5E; max-width:820px;
  }

  /* ---------- State map table ---------- */
  .map-table{
    display:grid; grid-template-columns:repeat(3,1fr);
    border:1px solid #E4E6F1; border-radius:18px; overflow:hidden;
  }
  .map-col{ padding:30px 26px; border-left:1px solid #E4E6F1; }
  .map-col:first-child{ border-left:none; }
  .map-col .map-eyebrow{ font-family:'IBM Plex Mono', monospace; font-size:11.5px; color:#0091B5; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; }
  .map-col h4{ font-size:18px; margin:10px 0 16px; }
  .map-col ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
  .map-col li{ font-size:14.5px; color:var(--slate); padding-left:16px; position:relative; }
  .map-col li::before{ content:''; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--cyan); }

  /* ---------- How we work (real sequence -> numbered) ---------- */
  .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
  .step{ padding:0 24px 0 0; position:relative; }
  .step:not(:last-child)::after{
    content:''; position:absolute; top:20px; right:-2px; width:calc(100% - 40px); height:1px;
    background:repeating-linear-gradient(to right, #C7CBE6 0 6px, transparent 6px 12px);
  }
  .step .stepnum{ font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--cyan); font-weight:700; }
  .step h4{ font-size:18px; margin:14px 0 8px; }
  .step p{ font-size:14.5px; color:var(--slate); }

  /* ---------- Audience deep sections ---------- */
  .audience-panel{ display:none; }
  .audience-panel.active{ display:block; }

  .benefit-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .benefit{
    background:var(--white); border:1px solid #E4E6F1; border-radius:16px; padding:26px;
  }
  .benefit h4{ font-size:17px; margin-bottom:8px; }
  .benefit p{ font-size:14.5px; color:var(--slate); }

  .journey{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px; }
  .journey-step{ text-align:left; }
  .journey-step .circle{
    width:52px; height:52px; border-radius:50%; border:2px solid var(--cyan);
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-weight:700; color:var(--navy);
    margin-bottom:16px;
  }
  .journey-step h4{ font-size:17px; margin-bottom:8px; }
  .journey-step p{ font-size:14.5px; color:var(--slate); }

  .cost-banner{
    margin-top:56px;
    background:var(--navy);
    color:var(--white);
    border-radius:22px;
    padding:44px 48px;
    display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center;
  }
  .cost-banner h3{ font-size:26px; color:var(--white); margin-bottom:10px; }
  .cost-banner p{ color:rgba(255,255,255,0.78); font-size:15px; max-width:52ch; }
  .cost-price{ font-family:'Fraunces',serif; font-weight:700; font-size:44px; color:var(--cyan); white-space:nowrap; }
  .cost-price small{ display:block; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; color:rgba(255,255,255,0.6); letter-spacing:0.08em; margin-top:6px; }

  /* institutional: allies/offer */
  .offer-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .offer-card{
    background:var(--white); border:1px solid #E4E6F1; border-radius:18px; padding:30px;
  }
  .offer-card h4{ font-size:19px; margin-bottom:10px; }
  .offer-card p{ color:var(--slate); font-size:15px; }

  .allies-strip{
    margin-top:52px; padding-top:40px; border-top:1px solid #E4E6F1;
  }
  .allies-strip .eyebrow{ margin-bottom:8px; display:block; }
  .allies-strip h3{ font-size:24px; margin-bottom:14px; }
  .allies-strip p{ color:var(--slate); font-size:16px; max-width:640px; }

  /* ---------- Multiplier agents ---------- */
  .multi-flow{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .multi-card{
    text-align:center; padding:34px 22px; border-radius:18px; background:var(--mist);
  }
  .multi-card .circle{
    width:56px; height:56px; margin:0 auto 18px; border-radius:50%; background:var(--navy);
    color:var(--cyan); display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono',monospace; font-weight:700;
  }
  .multi-card h4{ font-size:17px; margin-bottom:8px; }
  .multi-card p{ font-size:14.5px; color:var(--slate); }

  /* ---------- Final CTA / footer ---------- */
  .final-cta{
    background: radial-gradient(120% 160% at 20% 0%, #2C2F73 0%, var(--navy) 50%, var(--navy-deep) 100%);
    color:var(--white); text-align:center; padding:110px 0 90px;
  }
  .final-cta h2{ font-size:clamp(30px,4.4vw,50px); max-width:16ch; margin:18px auto 20px; }
  .final-cta p{ color:rgba(255,255,255,0.78); font-size:18px; max-width:52ch; margin:0 auto 38px; }
  .final-ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

  /* ---------- Directiva ---------- */
  .directiva{
    position:relative; overflow:hidden; padding:96px 0 104px;
    background:radial-gradient(circle at 10% 10%, rgba(1,204,253,.12), transparent 28%), var(--paper);
  }
  .directiva::after{
    content:""; position:absolute; right:-110px; bottom:-150px; width:360px; height:360px;
    border:1px solid rgba(1,145,181,.17); border-radius:50%; pointer-events:none;
  }
  .directiva-heading{ max-width:650px; margin-bottom:44px; }
  .directiva-heading .eyebrow{ display:block; margin-bottom:10px; }
  .directiva-heading h2{ color:var(--navy); font-size:clamp(32px,4vw,48px); line-height:1.12; margin-bottom:14px; }
  .directiva-heading > p{ color:var(--slate); font-size:17px; max-width:58ch; }
  .directiva-grid{
    position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px;
  }
  .directiva-card{
    overflow:hidden; background:var(--white); border:1px solid rgba(35,37,94,.1); border-radius:20px;
    box-shadow:0 14px 40px rgba(23,24,64,.08); transition:transform .3s ease, box-shadow .3s ease;
  }
  .directiva-card:hover{ transform:translateY(-6px); box-shadow:0 20px 48px rgba(23,24,64,.14); }
  .directiva-photo{ aspect-ratio:1 / 1; overflow:hidden; background:var(--mist); }
  .directiva-photo img{ width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .5s ease; }
  .directiva-card:hover .directiva-photo img{ transform:scale(1.035); }
  .directiva-info{ padding:23px 22px 25px; border-top:3px solid var(--cyan); }
  .directiva-info h3{ color:var(--navy); font-size:21px; line-height:1.25; margin-bottom:5px; }
  .directiva-info p{
    color:#007f9f; font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600;
    letter-spacing:.07em; line-height:1.45; text-transform:uppercase;
  }

  footer{
    background:var(--navy-deep); color:rgba(255,255,255,0.6); padding:44px 0;
  }
  .footer-grid{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
  .footer-brand{ display:flex; align-items:center; gap:10px; }
  .footer-brand img{ width:26px; height:26px; }
  .footer-brand span{ font-family:'Fraunces',serif; color:var(--white); font-weight:600; font-size:16px; }
  .footer-contact{ font-size:13.5px; display:flex; gap:26px; flex-wrap:wrap; }
  .footer-contact a{ text-decoration:none; color:rgba(255,255,255,0.7); }
  .footer-contact a:hover{ color:var(--white); }

  /* ---------- Responsive ---------- */
  @media (max-width: 980px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-visual{ height:380px; order:-1; }
    .hero-visual .ring.r1, .hero-visual .ring.r2{ --size:320px; }
    .hero-visual .core{ width:140px; height:140px; }
    .hero-visual .core img{ width:70px; height:70px; }
    .quote-block{ grid-template-columns:1fr; }
    .quote-side{ position:static; }
    .pillars{ grid-template-columns:1fr; }
    .problem{ grid-template-columns:1fr; }
    .axes{ grid-template-columns:1fr; }
    .map-table{ grid-template-columns:1fr; }
    .map-col{ border-left:none; border-top:1px solid #E4E6F1; }
    .map-col:first-child{ border-top:none; }
    .steps{ grid-template-columns:1fr 1fr; row-gap:36px; }
    .step:nth-child(2)::after{ display:none; }
    .benefit-grid{ grid-template-columns:1fr; }
    .journey{ grid-template-columns:1fr; }
    .cost-banner{ grid-template-columns:1fr; text-align:left; }
    .offer-grid{ grid-template-columns:1fr; }
    .multi-flow{ grid-template-columns:1fr; }
    .directiva-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .emp-intro-grid{ grid-template-columns:1fr; min-height:0; }
    .emp-problem-grid{ grid-template-columns:1fr; }
    .navlinks{ display:none; }
  }
  @media (max-width: 600px){
    .wrap{ padding:0 20px; }
    section{ padding:64px 0; }
    .hero{ padding-top:76px; }
    .navcta .btn-ghost{ display:none; }
    .emp-door-grid{ grid-template-columns:1fr; }
    .emp-intro{ padding:72px 0; }
    .directiva{ padding:68px 0 72px; }
    .directiva-heading{ margin-bottom:32px; }
    .directiva-grid{ grid-template-columns:1fr; gap:18px; }
    .directiva-photo{ aspect-ratio:4 / 3; }
  }

  /* ================= GALERÍA ================= */

.galeria-section {
  padding: 100px 0;
  background: var(--mist);
}

.galeria-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 45px;
}

.galeria-card {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  aspect-ratio: 16 / 10;
  background: #ddd;
}

.galeria-card img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.galeria-card:hover img {
  transform: scale(1.05);
}

.galeria-button {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

/* ================= GALERÍA RESPONSIVE ================= */

@media (max-width: 900px) {
  .galeria-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .galeria-grid {
    grid-template-columns: 1fr;
  }

  .galeria-section {
    padding: 70px 0;
  }
}

/* Header: identidad y contraste sobre fondo blanco. */
header.site {
  background: rgba(255, 255, 255, 0.96);
  border-bottom-color: #D9DFEA;
}

header.site .nav { max-width: none; margin: 0; padding: 7px 32px 7px 30px; }
header.site .brand { display: flex; align-items: center; }
header.site .brand > img, header.site .brand > span { display: none; }
header.site .brand-home-link { display: block; line-height: 0; }
header.site .brand-logo { display: block; width: 190px; height: auto; }
header.site .navlinks a { color: var(--navy); font-weight: 600; }
header.site .navlinks a:hover { color: #008CB2; }
header.site .btn-ghost { color: var(--navy); border-color: rgba(35, 37, 94, 0.35); }
header.site .btn-ghost:hover { color: var(--navy); border-color: var(--navy); background: #F1F3F8; }

/* Artículos publicados automáticamente desde el panel administrativo. */
.home-blog{padding:80px 0;background:#f2f6f7}.home-blog h2{margin:8px 0 28px}.home-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:28px}.home-blog-card{overflow:hidden;background:#fff;border:1px solid rgba(11,48,68,.12);border-radius:14px;box-shadow:0 10px 30px rgba(11,48,68,.06)}.home-blog-card img{display:block;width:100%;height:210px;object-fit:cover}.home-blog-body{padding:22px}.home-blog-body h3{margin:0 0 10px}.home-blog-body p{margin:0 0 18px;color:#526875}@media(max-width:800px){.home-blog-grid{grid-template-columns:1fr}.home-blog{padding:55px 0}}
