:root{
  --navy:#0f1b46;
  --navy-2:#17275c;
  --gold:#a88f18;
  --gold-soft:#efe6be;
  --text:#132247;
  --muted:#5f6f92;
  --line:#dde5f0;
  --white:#ffffff;
  --shadow:0 18px 48px rgba(15,27,70,.08);
  --shadow-soft:0 10px 24px rgba(15,27,70,.06);
  --max:1140px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}

body{
  font-family:'Inter',sans-serif;
  background:linear-gradient(180deg,#f8fbff 0%,#f6f8fc 100%);
  color:var(--text);
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,video{display:block;max-width:100%;height:auto}
img{content-visibility:auto}
a{text-decoration:none;color:inherit}

.container{
  width:min(var(--max),calc(100% - 28px));
  margin:auto;
}

.section{
  padding:84px 0;
  content-visibility:auto;
  contain-intrinsic-size:800px;
}

.section-white{
  background:rgba(255,255,255,.72);
  border-top:1px solid rgba(221,229,240,.8);
  border-bottom:1px solid rgba(221,229,240,.8);
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--gold-soft);
  color:#8a7413;
  padding:8px 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
}

.section-head{
  max-width:760px;
  text-align:center;
  margin:0 auto 40px;
}

.section-head h2{
  margin:14px 0 10px;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.05;
  letter-spacing:-1px;
  color:var(--navy);
}

.section-head p{
  margin:0;
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.7;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:14px 22px;
  border-radius:14px;
  font-weight:700;
  border:1px solid transparent;
  transition:.22s ease;
}

.btn:hover{transform:translateY(-2px)}

.btn-primary{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,var(--gold),#b69919);
  color:#fff;
  box-shadow:var(--shadow-soft);
}

.btn-primary::after{
  content:"";
  position:absolute;
  top:0;
  left:-120%;
  width:60%;
  height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.45), transparent);
  transform:skewX(-18deg);
  animation:buttonSweep 3.6s ease-in-out infinite;
}

.btn-primary:hover{
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 18px 40px rgba(168,143,24,.35);
}

.btn-secondary{
  background:rgba(255,255,255,.85);
  color:var(--navy);
  border-color:var(--line);
}

.underline-anim{
  position:relative;
  display:inline-block;
  white-space:nowrap;
}

.underline-anim::after{
  content:"";
  position:absolute;
  left:0;
  bottom:.08em;
  width:100%;
  height:.18em;
  background:rgba(168,143,24,.28);
  border-radius:999px;
  z-index:-1;
  transform-origin:left;
  animation:underlineGrow 2.2s ease-in-out infinite alternate;
}

/* header */
header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(12px);
  background:rgba(255,255,255,.85);
  border-bottom:1px solid rgba(221,229,240,.9);
}

.nav{
  min-height:78px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.logo{
  display:flex;
  align-items:center;
  gap:10px;
}

.logo img{
  width:34px;
  height:34px;
  object-fit:contain;
}

.logo strong{
  color:var(--navy);
  font-size:1rem;
  letter-spacing:1px;
}

.nav-links{
  display:flex;
  gap:22px;
  color:var(--muted);
  font-weight:600;
}

.nav-links a:hover{color:var(--navy)}

.nav .btn-primary::after{
  display:none !important;
  animation:none !important;
}

.nav .btn-primary:hover{
  transform:none !important;
  box-shadow:none !important;
}

.menu-toggle{
  display:none;
  width:48px;
  height:48px;
  border:none;
  border-radius:14px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(221,229,240,.95);
  box-shadow:var(--shadow-soft);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.menu-toggle span{
  width:18px;
  height:2px;
  border-radius:999px;
  background:var(--navy);
  transition:.25s ease;
}

.menu-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-active span:nth-child(2){opacity:0}
.menu-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-menu{
  max-height:0;
  overflow:hidden;
  transition:max-height .32s ease;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(221,229,240,.92);
}

.mobile-menu.is-open{max-height:360px}

.mobile-menu-inner{
  width:min(var(--max),calc(100% - 28px));
  margin:auto;
  padding:0 0 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.mobile-menu-inner a:not(.btn){
  padding:14px 12px;
  border-radius:14px;
  color:var(--navy);
  font-weight:700;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(221,229,240,.9);
}

/* hero */
.hero{
  position:relative;
  min-height:90vh;
  display:flex;
  align-items:center;
  padding:80px 0 48px;
  overflow:hidden;
  background:#ffffff;
  z-index:2;
}

.hero::before{
  content:"";
  position:absolute;
  inset:auto auto 10% -120px;
  width:320px;
  height:320px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(168,143,24,.05) 0%, rgba(168,143,24,0) 72%);
  filter:blur(10px);
  pointer-events:none;
}

.hero::after{
  content:"";
  position:absolute;
  top:0;
  left:-40%;
  width:60%;
  height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.25), transparent);
  transform:skewX(-18deg);
  animation:heroLight 9s linear infinite;
  pointer-events:none;
}

.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:84px;
  align-items:center;
}

.hero-copy{
  position:relative;
  z-index:2;
  max-width:640px;
  padding-right:12px;
  will-change:transform;
  transition:transform .15s linear;
}

.hero h1{
  margin:18px 0 16px;
  font-size:clamp(3rem,6vw,5.4rem);
  line-height:.92;
  letter-spacing:-2.4px;
}

.hero-title-animated{
  background:linear-gradient(135deg,#0f1b46,#243a86,#0f1b46);
  background-size:200% 200%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:titleFadeUp 1s ease both, gradientShift 10s ease infinite;
}

.hero p{
  margin:0 0 28px;
  color:var(--muted);
  font-size:1.1rem;
  line-height:1.75;
  max-width:560px;
}

.hero-text-animated{
  max-width:540px;
  font-size:1.12rem;
  animation:textFadeUp 1.2s ease both;
}

.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:24px;
  animation:textFadeUp 1.4s ease both;
}

.hero-pills{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  animation:textFadeUp 1.6s ease both;
}

.hero-pill{
  padding:11px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(221,229,240,.9);
  box-shadow:var(--shadow-soft);
  color:var(--navy);
  font-size:.92rem;
  font-weight:700;
}

.hero-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
}

.hero-glow{
  position:absolute;
  width:100%;
  max-width:520px;
  aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(168,143,24,.08) 0%,
    rgba(15,27,70,.02) 45%,
    transparent 70%
  );
  filter:blur(30px);

  will-change:transform;
  transition:transform .2s ease-out;
  pointer-events:none;
}

.hero-card{
  position:relative;
}

.hero-card::before{
  display:none;
}

.hero-video-wrap{
  will-change:transform;
  transition:transform .15s linear;
}

.hero-video{
  width:min(100%,820px);
  display:block;
  object-fit:cover;
  border-radius:0;
  box-shadow:none;
  will-change:transform;
  animation:heroBreath 6s ease-in-out infinite;

  /* funde los bordes con el fondo blanco */
  -webkit-mask-image: radial-gradient(
    ellipse at center,
    rgba(0,0,0,1) 72%,
    rgba(0,0,0,.92) 80%,
    rgba(0,0,0,.55) 90%,
    rgba(0,0,0,0) 100%
  );
  mask-image: radial-gradient(
    ellipse at center,
    rgba(0,0,0,1) 72%,
    rgba(0,0,0,.92) 80%,
    rgba(0,0,0,.55) 90%,
    rgba(0,0,0,0) 100%
  );
}

/* cards */
.grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.card{
  position:relative;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(221,229,240,.95);
  border-radius:24px;
  padding:26px 22px;
  box-shadow:var(--shadow-soft);
  text-align:center;
  transition:
    transform .35s cubic-bezier(.16,1,.3,1),
    box-shadow .35s cubic-bezier(.16,1,.3,1),
    border-color .35s ease;
  overflow:hidden;
}

.card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.5), transparent);
  opacity:0;
  transition:opacity .35s ease;
}

.card:hover::after{
  opacity:.6;
}

.card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 44px rgba(15,27,70,.10);
  border-color:rgba(168,143,24,.28);
}

.card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity:0;
  transition:opacity .25s ease;
}

.card:hover::before{opacity:1}

.card-media{
  min-height:146px;
  display:flex;
  justify-content:center;
  align-items:center;
  margin-bottom:10px;
}

.card video{
  width:min(100%,150px);
  border-radius:0;
  box-shadow:none;
}

.card h3{
  margin:0 0 8px;
  color:var(--navy);
  font-size:1.22rem;
}

.card p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

/* confianza */
.confianza-section,
.contact-executive-section{
  position:relative;
  overflow:hidden;
}

.confianza-section::before,
.confianza-section::after,
.contact-executive-section::before,
.contact-executive-section::after,
.footer-shell::before,
.footer-shell::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}

.confianza-section::before{
  top:40px;
  left:-120px;
  width:260px;
  height:260px;
  background:radial-gradient(circle, rgba(168,143,24,.10) 0%, rgba(168,143,24,0) 72%);
}

.confianza-section::after{
  right:-120px;
  bottom:30px;
  width:300px;
  height:300px;
  background:radial-gradient(circle, rgba(15,27,70,.08) 0%, rgba(15,27,70,0) 72%);
}

.confianza-head{
  max-width:760px;
  margin-bottom:42px;
  position:relative;
  z-index:1;
}

.premium-confianza-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(240px,1fr));
  gap:26px;
  max-width:1120px;
  margin:0 auto;
  position:relative;
  z-index:1;
}

.premium-confianza-card{
  position:relative;
  min-height:345px;
  padding:30px 24px 28px;
  border-radius:30px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  background:linear-gradient(180deg, rgba(255,255,255,.84) 0%, rgba(248,250,255,.74) 100%);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 20px 50px rgba(15,27,70,.08), inset 0 1px 0 rgba(255,255,255,.85);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.premium-confianza-card:hover{
  transform:translateY(-8px);
  box-shadow:0 28px 54px rgba(15,27,70,.12), inset 0 1px 0 rgba(255,255,255,.9);
  border-color:rgba(168,143,24,.22);
}

.premium-confianza-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}

.premium-confianza-card::after{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.35);
  pointer-events:none;
}

.confianza-card-feature{
  background:
    radial-gradient(circle at top, rgba(168,143,24,.12), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.90) 0%, rgba(248,250,255,.78) 100%);
}

.confianza-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:6px 12px;
  margin-bottom:16px;
  border-radius:999px;
  background:rgba(168,143,24,.10);
  color:#8a7413;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.3px;
}

.confianza-icon-line{
  width:86px;
  height:2px;
  margin:2px auto 16px;
  background:linear-gradient(90deg, transparent, rgba(168,143,24,.9), transparent);
  border-radius:999px;
}

.premium-icon-wrap{
  position:relative;
  width:82px;
  height:82px;
  margin:0 auto 18px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), rgba(243,246,251,.98));
  border:1px solid rgba(221,229,240,.95);
  box-shadow:0 12px 26px rgba(15,27,70,.08), inset 0 1px 0 rgba(255,255,255,.85);
}

.premium-icon-wrap::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(168,143,24,.10), rgba(168,143,24,0) 68%);
  z-index:-1;
}

.confianza-icon{
  width:38px;
  height:38px;
  object-fit:contain;
}

.premium-confianza-card h3{
  margin:0 0 8px;
  color:var(--gold);
  font-size:2.05rem;
  line-height:1.02;
  letter-spacing:-.6px;
}

.premium-confianza-card h4{
  margin:0 0 14px;
  color:var(--navy);
  font-size:1.08rem;
  font-weight:800;
  line-height:1.2;
}

.premium-confianza-card p{
  margin:0;
  max-width:250px;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.65;
}

.confianza-card-count h3{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
}

/* contacto */
.contact-executive-section::before{
  top:40px;
  left:-100px;
  width:240px;
  height:240px;
  background:radial-gradient(circle, rgba(168,143,24,.10) 0%, rgba(168,143,24,0) 72%);
}

.contact-executive-section::after{
  right:-120px;
  bottom:10px;
  width:280px;
  height:280px;
  background:radial-gradient(circle, rgba(15,27,70,.08) 0%, rgba(15,27,70,0) 72%);
}

.contact-executive-shell{position:relative;z-index:1}

.contact-executive-top{
  max-width:760px;
  text-align:center;
  margin:0 auto 34px;
}

.contact-executive-top h2{
  margin:16px 0 12px;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.03;
  letter-spacing:-1px;
  color:var(--navy);
}

.contact-executive-top p{
  margin:0;
  color:var(--muted);
  font-size:1.04rem;
  line-height:1.7;
}

.contact-executive-card{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  border-radius:32px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.90) 0%, rgba(248,250,255,.80) 100%);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 22px 54px rgba(15,27,70,.08), inset 0 1px 0 rgba(255,255,255,.85);
}

.contact-executive-main{
  padding:34px 30px;
  position:relative;
}

.contact-executive-main::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:4px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}

.contact-executive-brand-copy{
  margin-bottom:10px;
}

.contact-mini-label{
  display:inline-block;
  margin-bottom:6px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(168,143,24,.10);
  color:#8a7413;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.3px;
}

.contact-executive-brand-copy h3{
  margin:0 0 6px;
  color:var(--navy);
  font-size:1.55rem;
  letter-spacing:-.6px;
}

.contact-executive-brand-copy p{
  margin:0;
  color:var(--muted);
  line-height:1.5;
}

.contact-executive-divider{
  height:1px;
  margin:24px 0;
  background:linear-gradient(90deg, rgba(221,229,240,0), rgba(221,229,240,1), rgba(221,229,240,0));
}

.contact-executive-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.executive-contact-item{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:128px;
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(221,229,240,.95);
  box-shadow:var(--shadow-soft);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.executive-contact-item:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 34px rgba(15,27,70,.08);
  border-color:rgba(168,143,24,.24);
}

.executive-highlight{
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,252,247,.96) 100%);
}

.executive-full{grid-column:1 / -1}

.executive-label{
  display:block;
  margin-bottom:8px;
  color:#8a7413;
  font-size:.8rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
}

.executive-contact-item strong{
  color:var(--navy);
  font-size:1.14rem;
  line-height:1.3;
  word-break:break-word;
}

.executive-contact-item small{
  margin-top:8px;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.45;
}

.contact-executive-side{
  padding:34px 28px;
  background:linear-gradient(135deg, rgba(15,27,70,.96), rgba(23,39,92,.96));
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.contact-side-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  min-height:32px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.92);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.3px;
  margin-bottom:14px;
}

.contact-executive-side h4{
  margin:0 0 12px;
  font-size:1.55rem;
  line-height:1.1;
  letter-spacing:-.5px;
}

.contact-executive-side p{
  margin:0 0 18px;
  color:rgba(255,255,255,.82);
  line-height:1.7;
}

.contact-side-list{
  margin:0 0 22px;
  padding-left:18px;
  color:rgba(255,255,255,.88);
  line-height:1.8;
}

.contact-executive-side .btn{align-self:flex-start}

/* footer */
.site-footer{
  position:relative;
  padding:0 0 36px;
  color:#fff;
}

.footer-shell{
  position:relative;
  overflow:hidden;
  border-radius:32px;
  padding:34px 28px 22px;
  background:linear-gradient(135deg, rgba(15,27,70,.98), rgba(23,39,92,.98));
  box-shadow:0 22px 54px rgba(15,27,70,.14);
}

.footer-shell::before{
  top:-80px;
  right:-80px;
  width:220px;
  height:220px;
  background:radial-gradient(circle, rgba(168,143,24,.16) 0%, rgba(168,143,24,0) 72%);
}

.footer-shell::after{
  left:-100px;
  bottom:-100px;
  width:260px;
  height:260px;
  background:radial-gradient(circle, rgba(255,255,255,.06) 0%, rgba(255,255,255,0) 72%);
}

.footer-top{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:start;
}

.footer-brand{
  display:flex;
  align-items:flex-start;
  gap:14px;
  max-width:420px;
}

.footer-mini-label{
  display:inline-block;
  margin-bottom:8px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:rgba(255,255,255,.85);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.3px;
}

.footer-brand-copy h3{
  margin:0 0 8px;
  font-size:1.45rem;
  letter-spacing:-.5px;
  color:#fff;
}

.footer-brand-copy p{
  margin:0;
  color:rgba(255,255,255,.78);
  line-height:1.7;
}

.footer-nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(160px,1fr));
  gap:28px;
}

.footer-nav-simple{
  grid-template-columns:repeat(2,minmax(160px,1fr));
}

.footer-col h4{
  margin:0 0 12px;
  color:#fff;
  font-size:1rem;
}

.footer-col a,
.footer-col span{
  display:block;
  margin-bottom:10px;
  color:rgba(255,255,255,.78);
  font-size:.96rem;
  line-height:1.5;
}

.footer-divider{
  position:relative;
  z-index:1;
  height:1px;
  margin:26px 0 18px;
  background:linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.18), rgba(255,255,255,0));
}

.footer-bottom{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
}

.footer-bottom p,
.footer-bottom span{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:.92rem;
  line-height:1.5;
}

/* whatsapp */
.whatsapp{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:60;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 18px 36px rgba(0,0,0,.22);
  transition:transform .2s ease;
}

.whatsapp:hover{transform:translateY(-3px)}
.whatsapp svg{width:30px;height:30px;fill:#fff}

/* reveal */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s ease, transform .7s ease;
}

.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

/* animations */
@keyframes underlineGrow{
  0%{transform:scaleX(.15); opacity:.45}
  45%{transform:scaleX(1); opacity:.9}
  100%{transform:scaleX(1); opacity:.9}
}

@keyframes buttonSweep{
  0%,100%{left:-120%}
  50%{left:140%}
}

@keyframes glowPulse{
  0%{transform:scale(1);opacity:.8}
  50%{transform:scale(1.15);opacity:1}
  100%{transform:scale(1);opacity:.8}
}

@keyframes titleFadeUp{
  from{opacity:0; transform:translateY(18px)}
  to{opacity:1; transform:translateY(0)}
}

@keyframes textFadeUp{
  from{opacity:0; transform:translateY(20px)}
  to{opacity:1; transform:translateY(0)}
}

@keyframes gradientShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

@keyframes heroLight{
  0%{left:-40%}
  100%{left:140%}
}

/* responsive */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}

@media(max-width:980px){
  .hero{
    min-height:auto;
    padding:54px 0 24px;
  }

  .hero-grid,
  .grid,
  .premium-confianza-grid,
  .contact-executive-card{
    grid-template-columns:1fr;
  }

  .hero-grid{gap:42px}

  .hero-copy{
    text-align:center;
    padding-right:0;
  }

  .hero p{margin-inline:auto}
  .hero-actions,.hero-pills{justify-content:center}

  .hero-video{
    width:min(100%,560px);
  }

  .nav-links,.nav-cta{display:none}
  .menu-toggle{display:inline-flex}

  .premium-confianza-grid{max-width:470px}
  .premium-confianza-card{min-height:auto}
  .contact-executive-grid{grid-template-columns:1fr}
  .contact-executive-side .btn{align-self:stretch}

  .footer-top{grid-template-columns:1fr}
  .footer-nav,
  .footer-nav-simple{grid-template-columns:1fr 1fr}
}

@media(min-width:981px){
  .mobile-menu{display:none}
}

@media(max-width:640px){
  .container{width:min(var(--max), calc(100% - 22px))}
  .logo img{width:30px;height:30px}
  .logo strong{font-size:.94rem}
  .btn,.hero-actions .btn{width:100%}
  .hero-pill{width:100%;text-align:center}
  .section{padding:70px 0}
  .card{padding:22px 18px}
  .premium-confianza-card{padding:26px 20px 24px;border-radius:26px}
  .premium-confianza-card h3{font-size:1.9rem}
  .premium-confianza-card h4{font-size:1rem}
  .premium-confianza-card p{font-size:.96rem}
  .contact-executive-main,.contact-executive-side{padding:24px 18px}
  .executive-full{grid-column:auto}
  .contact-executive-card{border-radius:26px}
  .footer-shell{border-radius:24px;padding:26px 18px 18px}
  .footer-brand{flex-direction:column;gap:14px}
  .footer-nav,
  .footer-nav-simple{grid-template-columns:1fr;gap:16px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}