:root{
  --ink:#1a2030; --navy:#27324a; --navy-deep:#1a2030;
  --paper:#FAF7F1; --paper-alt:#f0f0f0;
  --mute:#59667b; --mute-2:#bec4d2; --mute-3:#cfcdc9;
  --line:rgba(39,50,74,.14);
  --accent:#9a6a3a;
}
*{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
html,body{ background:var(--paper); color:var(--ink); font-family:'Geist',system-ui,sans-serif; overflow-x:hidden; }
::selection{ background:var(--navy); color:var(--paper); }
img{ display:block; max-width:100%; }

.t-display{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:clamp(2.6rem, 7.4vw, 7.4rem);
  line-height:.98;
  letter-spacing:-.025em;
  text-transform:uppercase;
}
.t-h2{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:clamp(2rem, 4.2vw, 4rem);
  line-height:1.04;
  letter-spacing:-.02em;
  text-transform:uppercase;
}
.t-h3{
  font-family:'Geist',sans-serif;
  font-weight:600;
  font-size:clamp(1.15rem, 1.5vw, 1.4rem);
  line-height:1.2;
  letter-spacing:.01em;
  text-transform:uppercase;
}
.t-num-xl{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(2.6rem, 4.8vw, 4.8rem);
  line-height:1;
  letter-spacing:-.03em;
  font-feature-settings:'tnum' 1, 'lnum' 1;
}

#fondo .t-num-xl{
  font-size:clamp(1.8rem, 3vw, 3rem);
  letter-spacing:-.025em;
}

#producto .t-num-xl{ font-weight:600; letter-spacing:-.035em; }
#producto .t-eyebrow.kpi-label{ font-weight:600; color:rgba(39,50,74,.85); font-size:.78rem; }
.t-num{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:clamp(1.4rem, 2vw, 2rem);
  line-height:1;
  letter-spacing:-.02em;
  font-feature-settings:'tnum' 1, 'lnum' 1;
}
.t-lead{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:clamp(1.05rem, 1.2vw, 1.2rem);
  line-height:1.6;
  letter-spacing:-.005em;
  max-width:42rem;
}
:where(.t-lead){ color:rgba(26,32,48,.78); }
.bg-navy .t-lead, .bg-ink .t-lead, .hero .t-lead, .text-paper .t-lead{ color:rgba(250,247,241,.85); }
.t-body{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:.95rem;
  line-height:1.65;
  color:rgba(26,32,48,.74);
  max-width:36rem;
}
.t-eyebrow{
  font-family:'Geist',sans-serif;
  font-weight:500;
  font-size:.7rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(39,50,74,.6);
}
.t-caption{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:.78rem;
  letter-spacing:.04em;
  color:var(--mute);
}

em{ font-style:normal; font-weight:inherit; color:inherit; }

section{ padding:clamp(5rem, 12vh, 9rem) 0; }
.container-x{
  max-width:1440px; margin:0 auto;
  padding-left:clamp(1.25rem, 4vw, 4rem);
  padding-right:clamp(1.25rem, 4vw, 4rem);
}
.hairline{ border-top:1px solid var(--line); }
.hairline-paper{ border-top:1px solid rgba(250,247,241,.18); }

.btn{
  display:inline-flex; align-items:center; gap:.65rem;
  padding:1rem 1.7rem;
  font-family:'Geist',sans-serif;
  font-weight:700;
  font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  border-radius:999px;
  transition:all .35s cubic-bezier(.2,.7,.2,1);
  border:1.5px solid currentColor;
  white-space:nowrap;
}
.btn svg{ flex-shrink:0; }
.btn span{ display:inline-block; }
.btn-navy{ background:var(--navy); color:var(--paper); border-color:var(--navy); }
.btn-navy:hover{ background:var(--navy-deep); border-color:var(--navy-deep); }
.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--navy); }
.btn-ghost:hover{ background:var(--navy); color:var(--paper); }
.btn-paper{ background:var(--paper); color:var(--navy); border-color:var(--paper); }
.btn-paper:hover{ background:transparent; color:var(--paper); border-color:var(--paper); }
.btn-ghost-paper{ background:transparent; color:var(--paper); border-color:rgba(250,247,241,.55); }
.btn-ghost-paper:hover{ background:var(--paper); color:var(--navy); border-color:var(--paper); }

.cursor{
  position:fixed; top:0; left:0;
  width:8px; height:8px; border-radius:50%;
  background:var(--navy);
  pointer-events:none; mix-blend-mode:difference;
  z-index:9999; transform:translate(-50%,-50%);
  transition:width .25s ease, height .25s ease, opacity .2s ease;
}
.cursor.is-hover{ width:48px; height:48px; }
@media(max-width:1024px){ .cursor{ display:none; } }

.reveal{ opacity:0; transform:translateY(28px); will-change:transform,opacity; }
.clip-img{ clip-path:inset(100% 0 0 0); transition:clip-path 1.2s cubic-bezier(.77,0,.18,1); }
.clip-img.is-on{ clip-path:inset(0 0 0 0); }
.line-mask{ display:block; overflow:hidden; padding-top:.12em; margin-top:-.12em; }
.line-mask > span{ display:inline-block; transform:translateY(110%); }

[data-i18n].lang-anim,
[data-i18n-ph].lang-anim{
  transition:opacity .22s cubic-bezier(.4,0,.2,1), filter .22s cubic-bezier(.4,0,.2,1);
}
[data-i18n].lang-anim.is-out,
[data-i18n-ph].lang-anim.is-out{
  opacity:0 !important;
  filter:blur(2px);
}

.scroll-progress{
  position:fixed; top:0; left:0; height:1px; width:100%;
  background:var(--navy); transform-origin:left center; transform:scaleX(0);
  z-index:60;
}

.topnav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  transition:background-color .4s ease, backdrop-filter .4s ease, color .35s ease, border-color .35s ease;
}
.nav-link{ font-family:'Geist',sans-serif; font-size:.78rem; font-weight:500; letter-spacing:.04em; transition:color .25s ease; }
.topnav .nav-link{ color:rgba(39,50,74,.85); }
.topnav .nav-link:hover{ color:var(--accent); }
.topnav .logo-dark-img{ display:block; }
.topnav .logo-white-img{ display:none; }
.topnav .nav-cta{ background:var(--navy); color:var(--paper); border-color:var(--navy); }
.topnav .nav-cta:hover{ background:var(--navy-deep); border-color:var(--navy-deep); }

.lang-switch{
  position:relative;
  display:inline-flex; align-items:stretch;
  padding:3px;
  border-radius:999px;
  border:1px solid rgba(39,50,74,.18);
  background:transparent;
  font-family:'Geist',sans-serif;
  transition:border-color .35s ease, background-color .35s ease;
  -webkit-tap-highlight-color:transparent;
}
.lang-switch:hover{ border-color:rgba(39,50,74,.32); }
.lang-opt{
  position:relative; z-index:2;
  padding:5px 11px;
  font-size:10px; letter-spacing:.22em; font-weight:500;
  text-transform:uppercase;
  color:rgba(39,50,74,.55);
  background:transparent; border:0; cursor:pointer;
  transition:color .35s ease;
  -webkit-tap-highlight-color:transparent;
}
.lang-opt:hover{ color:rgba(39,50,74,.95); }
.lang-opt:focus-visible{ outline:none; }
.lang-opt.is-active{ color:var(--paper); }
.lang-pill{
  position:absolute; top:3px; bottom:3px; left:0;
  width:0;
  border-radius:999px;
  background:var(--navy);
  pointer-events:none;
  z-index:1;
  transition:transform .55s cubic-bezier(.6,.05,.05,1),
             width     .55s cubic-bezier(.6,.05,.05,1),
             background-color .35s ease;
}

.lang-pill:not(.is-ready){ opacity:0; }
.lang-pill.is-ready{ opacity:1; transition-property:transform, width, background-color, opacity; }

/* Modo dark (sobre hero / sustentabilidad / fondo) */
.topnav.is-dark .lang-switch{ border-color:rgba(250,247,241,.28); }
.topnav.is-dark .lang-switch:hover{ border-color:rgba(250,247,241,.5); }
.topnav.is-dark .lang-opt{ color:rgba(250,247,241,.55); }
.topnav.is-dark .lang-opt:hover{ color:rgba(250,247,241,.95); }
.topnav.is-dark .lang-opt.is-active{ color:var(--navy); }
.topnav.is-dark .lang-pill{ background:var(--paper); }

/* nav social icons */
.nav-social{
  width:32px; height:32px;
  flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%;
  border:1px solid rgba(39,50,74,.18);
  color:rgba(39,50,74,.7);
  transition:color .25s ease, border-color .25s ease, background-color .25s ease;
}
.nav-social svg{ width:14px; height:14px; display:block; }
.nav-social:hover{ color:var(--paper); background:var(--navy); border-color:var(--navy); }
.topnav.is-dark .nav-social{ border-color:rgba(250,247,241,.28); color:rgba(250,247,241,.85); }
.topnav.is-dark .nav-social:hover{ color:var(--navy); background:var(--paper); border-color:var(--paper); }

/* mobile menu social icons — overrides agresivos para ganarle a `.mobile-menu a` y a sus media queries */
.mobile-menu a.mobile-social{
  box-sizing:border-box !important;
  width:44px !important;
  height:44px !important;
  flex-shrink:0;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 !important;
  font-size:0 !important;
  line-height:1 !important;
  border-radius:50% !important;
  border:1px solid rgba(250,247,241,.28) !important;
  background:transparent;
  color:rgba(250,247,241,.85);
  text-align:center;
  transition:color .25s ease, border-color .25s ease, background-color .25s ease;
  -webkit-tap-highlight-color:transparent;
}
.mobile-menu a.mobile-social:hover,
.mobile-menu a.mobile-social:active,
.mobile-menu a.mobile-social:focus{
  padding:0 !important;
  padding-left:0 !important;
  color:var(--navy);
  background:var(--paper);
  border-color:var(--paper) !important;
}
.mobile-menu a.mobile-social svg{
  width:20px !important;
  height:20px !important;
  display:block !important;
  flex-shrink:0;
  margin:0 auto !important;
}

.topnav.is-scrolled{
  background:rgba(250,247,241,.85);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.topnav.is-dark .nav-link{ color:rgba(250,247,241,.88); }
.topnav.is-dark .nav-link:hover{ color:var(--mute-2); }
.topnav.is-dark .logo-dark-img{ display:none; }
.topnav.is-dark .logo-white-img{ display:block; }
.topnav.is-dark .nav-cta{ background:var(--paper); color:var(--navy); border-color:var(--paper); }
.topnav.is-dark .nav-cta:hover{ background:transparent; color:var(--paper); border-color:var(--paper); }
.topnav.is-dark.is-scrolled{
  background:rgba(26,32,48,.7);
  border-bottom:1px solid rgba(250,247,241,.08);
}
body.menu-open .topnav{
  background:transparent !important; backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important; border-bottom:0 !important;
}

.hero{
  position:relative; min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden; isolation:isolate;
  background:var(--navy-deep);
  padding-top:clamp(6rem, 12vh, 9rem);
  padding-bottom:clamp(5rem, 10vh, 8rem);
}
.hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-bg img{ width:100%; height:115%; object-fit:cover; will-change:transform; }
.hero-grad{
  position:absolute; inset:0; z-index:1;
  background:

    linear-gradient(180deg, rgba(26,32,48,.4) 0%, rgba(26,32,48,.08) 32%, rgba(26,32,48,.35) 68%, rgba(26,32,48,.78) 100%),

    linear-gradient(90deg, rgba(26,32,48,.62) 0%, rgba(26,32,48,.28) 45%, rgba(26,32,48,0) 72%);
}

@media (max-width: 768px){
  .hero-grad{
    background:
      linear-gradient(180deg, rgba(26,32,48,.5) 0%, rgba(26,32,48,.2) 35%, rgba(26,32,48,.5) 70%, rgba(26,32,48,.82) 100%);
  }
}
.hero > .container-x, .hero > .absolute{ position:relative; z-index:2; }
.hero h1, .hero .t-lead, .hero .t-eyebrow, .hero .t-caption{
  text-shadow:0 1px 24px rgba(0,0,0,.32);
}

.img-hover{ overflow:hidden; }
.img-hover img{ transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.img-hover:hover img{ transform:scale(1.04); }

.marq-track{ display:flex; width:max-content; animation:marquee 60s linear infinite; }
.marq-track-rev{ animation:marquee-rev 70s linear infinite; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes marquee-rev{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }

.flip-card{
  perspective:1200px;
  height:340px;
}
.flip-inner{
  position:relative; width:100%; height:100%;
  transition:transform .8s cubic-bezier(.55,0,.22,1);
  transform-style:preserve-3d;
}
.flip-card:hover .flip-inner, .flip-card.is-flipped .flip-inner{ transform:rotateY(180deg); }
.flip-front, .flip-back{
  position:absolute; inset:0;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  display:flex; flex-direction:column;
  padding:2.25rem 1.75rem;
  background:var(--paper);
  border:1px solid var(--line);
}
.flip-front{ align-items:center; justify-content:space-between; }
.flip-back{
  background:var(--navy); color:var(--paper);
  transform:rotateY(180deg);
  justify-content:space-between;
}
.flip-back .t-eyebrow{ color:rgba(250,247,241,.55); }
.flip-back .t-h3{ color:var(--paper); }
.flip-back p{ color:rgba(250,247,241,.85); font-size:.92rem; line-height:1.6; }
.flip-card{ text-decoration:none; color:inherit; display:block; }
.visit-link{
  font-family:'Geist',sans-serif; font-weight:600;
  font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--paper); margin-top:auto; padding-top:.75rem;
  border-top:1px solid rgba(250,247,241,.18);
}

.kpi-row{ display:grid; grid-template-columns:repeat(4, 1fr); gap:2rem; padding-top:2rem; }
@media(max-width:768px){ .kpi-row{ grid-template-columns:repeat(2,1fr); gap:1.5rem; } }

.map-wrap{ position:relative; aspect-ratio:5/4; overflow:hidden; border:1px solid var(--line); }
.map-wrap iframe{ width:100%; height:100%; border:0; filter:saturate(.85) contrast(1.02); }

/* anti scroll-jack: el cover bloquea wheel/touch hasta que el user clickea */
.map-cover{
  position:absolute; inset:0; z-index:3;
  cursor:pointer;
  background:transparent;
  display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:1rem;
  transition:opacity .25s ease, background-color .25s ease;
}
.map-cover:hover{ background:rgba(26,32,48,.04); }
.map-cover-hint{
  font-family:'Geist',sans-serif;
  font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; font-weight:500;
  background:var(--navy); color:var(--paper);
  padding:.55rem .9rem; border-radius:999px;
  opacity:0; transform:translateY(8px);
  transition:opacity .3s ease, transform .3s ease;
  pointer-events:none;
}
.map-cover:hover .map-cover-hint{ opacity:1; transform:translateY(0); }
.map-cover.is-off{ pointer-events:none; opacity:0; }
/* Variante alta para layout side-by-side donde el mapa acompaña al título */
.map-tall{ aspect-ratio:auto; height:100%; min-height:560px; }
.map-pin{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%, -100%);
  pointer-events:none;
  display:flex; flex-direction:column; align-items:center;
}
.map-pin .pin-card{
  background:var(--navy); color:var(--paper);
  padding:.75rem 1rem; border-radius:6px;
  box-shadow:0 12px 32px rgba(26,32,48,.35);
  display:flex; align-items:center; gap:.6rem;
  white-space:nowrap;
}
.map-pin .pin-card img{ height:18px; width:auto; filter:brightness(0) invert(1); }
.map-pin .pin-needle{
  width:0; height:0;
  border-left:8px solid transparent; border-right:8px solid transparent;
  border-top:10px solid var(--navy);
}

.field{
  width:100%; background:transparent; border:none;
  border-bottom:1px solid rgba(250,247,241,.2);
  padding:.95rem 0;
  font-family:'Geist',sans-serif; font-size:1rem; color:var(--paper);
  outline:none; transition:border-color .3s ease;
}
.field::placeholder{ color:rgba(250,247,241,.4); }
.field:focus{ border-color:var(--paper); }
textarea.field{ resize:vertical; min-height:120px; }

.wa-float{
  position:fixed; right:1.25rem; bottom:1.25rem;
  width:54px; height:54px; border-radius:50%;
  background:#25D366; color:white;
  display:flex; align-items:center; justify-content:center;
  z-index:40; box-shadow:0 12px 32px rgba(0,0,0,.18);
  transition:transform .3s ease;
}
.wa-float:hover{ transform:scale(1.08); }

#loader{
  position:fixed; inset:0; background:var(--navy-deep); color:var(--paper);
  z-index:200; display:flex; align-items:center; justify-content:center;
  transition:transform .9s cubic-bezier(.77,0,.18,1);
}
#loader.is-out{ transform:translateY(-100%); }
#loader{ will-change:transform; }
#loader .word{ overflow:hidden; line-height:0; }
#loader .word span{
  display:inline-block; transform:translate3d(0,110%,0);
  will-change:transform;
  animation: loaderTextUp .9s .25s cubic-bezier(.22,.61,.36,1) forwards;
}
#loader .word img{
  display:block;
  width:clamp(150px, 22vw, 280px);
  height:auto;
}
@keyframes loaderTextUp{ to{ transform:translate3d(0,0,0); } }

.magnetic{ transition:transform .35s cubic-bezier(.2,.7,.2,1); will-change:transform; }

.cinematic{ position:relative; height:80vh; min-height:520px; overflow:hidden; }
.cinematic img{ width:100%; height:120%; object-fit:cover; will-change:transform; }
.cinematic .cap{
  position:absolute; bottom:1.5rem; left:1.5rem;
  color:var(--paper);
  font-size:.7rem; letter-spacing:.25em; text-transform:uppercase;
  mix-blend-mode:difference;
}

.video-section{
  position:relative;
  width:100%;
  height:100vh;
  min-height:560px;
  overflow:hidden;
  background:var(--navy-deep);
}
.video-section video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;

  object-position:center 78%;
  background:var(--navy-deep);
}
.video-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(26,32,48,.15) 0%, rgba(26,32,48,0) 30%, rgba(26,32,48,.55) 100%);
  pointer-events:none;
}
.video-cap{
  position:absolute; bottom:1.75rem; left:clamp(1.25rem, 4vw, 4rem);
  right:clamp(1.25rem, 4vw, 4rem);
  display:flex; align-items:center; justify-content:space-between;
  color:var(--paper);
  font-size:.7rem; letter-spacing:.25em; text-transform:uppercase;
}
.sound-toggle{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.55rem 1rem;
  border:1px solid rgba(250,247,241,.4);
  border-radius:999px;
  color:var(--paper); background:transparent;
  font-family:'Geist',sans-serif; font-weight:500;
  font-size:.65rem; letter-spacing:.18em;
  cursor:pointer; transition:all .3s ease;
  -webkit-tap-highlight-color:transparent;
}
.sound-toggle:hover{ background:var(--paper); color:var(--navy); border-color:var(--paper); }

/* tap-to-play overlay — solo aparece en mobile cuando el video no se autoplayea */
.video-section.video-tap-to-play{ cursor:pointer; }
.video-section.video-tap-to-play::before{
  content:'';
  position:absolute; top:50%; left:50%;
  width:64px; height:64px;
  margin:-32px 0 0 -32px;
  border-radius:50%;
  background:rgba(250,247,241,.92);
  z-index:3;
  pointer-events:none;
}
.video-section.video-tap-to-play::after{
  content:'';
  position:absolute; top:50%; left:50%;
  width:0; height:0;
  margin:-10px 0 0 -6px;
  border-left:16px solid var(--navy);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  z-index:4;
  pointer-events:none;
}

@media (max-width: 768px){
  .video-section{ height:70vh; min-height:420px; }
}

.cert-card{
  padding:2.25rem 2rem;
  border:1px solid rgba(250,247,241,.18);
  background:transparent;
  display:flex; flex-direction:column;
  transition:border-color .35s ease, background-color .35s ease;
}
.cert-card:hover{ border-color:rgba(250,247,241,.35); background:rgba(250,247,241,.03); }
.cert-card .cert-head{
  display:flex; align-items:center; gap:1rem;
  padding-bottom:1.5rem; margin-bottom:1.5rem;
  border-bottom:1px solid rgba(250,247,241,.15);
}
.cert-card .cert-seal{
  flex-shrink:0;
  width:72px; height:72px;
  display:flex; align-items:center; justify-content:center;
  color:rgba(250,247,241,.95);
}
.cert-card .cert-seal img{
  max-width:100%; max-height:100%;
  width:auto; height:auto;
  object-fit:contain;
  opacity:.95;

  filter:brightness(0) invert(1);
}

.cert-card .cert-seal--leed img{ filter:none; }
.cert-card .cert-meta{ flex:1; min-width:0; }

.menu-toggle{
  width:32px; height:32px; display:none;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  background:transparent; border:none; cursor:pointer;
  color:var(--navy);
  transition:color .35s ease;
  -webkit-tap-highlight-color:transparent;
}
.menu-toggle span{
  display:block; width:22px; height:1.5px; background:currentColor;
  transition:transform .3s ease, opacity .25s ease, background-color .35s ease;
}
.menu-toggle.is-open span:nth-child(1){ transform:translateY(3px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2){ transform:translateY(-3px) rotate(-45deg); }
.topnav.is-dark .menu-toggle{ color:var(--paper); }

.mobile-menu{
  position:fixed; inset:0;
  background:var(--navy-deep); color:var(--paper);
  z-index:45;
  transform:translateY(-100%);
  transition:transform .55s cubic-bezier(.77,0,.18,1);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:6rem 1.5rem 3rem;
  overflow-y:auto;
}
.mobile-menu.is-open{ transform:translateY(0); }
.mobile-menu a{
  display:block; padding:.85rem 0;
  font-family:'Geist',sans-serif;
  font-size:1.6rem; font-weight:400; letter-spacing:-.005em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(250,247,241,.08);
  transition:color .25s ease, padding .25s ease;
}
.mobile-menu a:hover{ color:var(--mute-2); padding-left:.5rem; }
.mobile-menu .meta{
  font-family:'Geist',sans-serif;
  font-size:.7rem; letter-spacing:.25em; text-transform:uppercase;
  color:rgba(250,247,241,.5);
}

@media (hover: none){
  .cursor{ display:none !important; }
  .magnetic{ transform:none !important; }
}

@media (max-width: 1023px){
  /* CRÍTICO: el nav inline (.lg:flex) desaparece <1024, hay que mostrar el toggle */
  .menu-toggle{ display:flex; }

  /* En tablet (768-1023) el CTA "Conversemos" sigue cabiendo, mantenelo */
  /* Section padding intermedio entre desktop y mobile */
  section{ padding:clamp(4rem, 10vh, 7rem) 0; }

  /* Type intermedia entre desktop y mobile */
  .t-display{ font-size:clamp(2.6rem, 8vw, 5.2rem); line-height:1; }
  .t-h2{ font-size:clamp(1.85rem, 5vw, 3rem); line-height:1.05; }
  .t-num-xl{ font-size:clamp(2.2rem, 6vw, 3.6rem); }

  /* Hero altura — usar dvh donde se pueda para evitar shift con la barra del navegador */
  .hero{ min-height:100vh; min-height:100dvh; }

  /* Cinematic + video, alturas tablet */
  .cinematic{ height:65vh; min-height:440px; }
  .video-section{ height:80vh; height:80dvh; min-height:480px; }

  /* Container padding intermedio */
  .container-x{ padding-left:clamp(1.5rem, 3.5vw, 3rem); padding-right:clamp(1.5rem, 3.5vw, 3rem); }
}

@media (max-width: 768px){
  /* Layout & spacing */
  section{ padding:clamp(3rem, 9vh, 5.5rem) 0; }
  .nav-cta{ display:none !important; }
  .topnav .container-x{ padding-top:1rem; padding-bottom:1rem; }

  /* Hero — usa dvh para evitar layout shift con la barra del navegador móvil */
  .hero{
    padding-top:5.5rem; padding-bottom:3.5rem;
    min-height:92vh; min-height:92dvh;
  }
  .hero-bg img{ height:108%; }
  .hero h1.t-display{ margin-top:1rem; }
  .btn{ padding:.85rem 1.25rem; font-size:.66rem; letter-spacing:.16em; }

  /* Type ladder mobile — pequeño bump (+1-3px) para mejorar legibilidad */
  .t-display{ font-size:clamp(2.4rem, 9.5vw, 3.6rem); line-height:1.02; }
  .t-h2{ font-size:clamp(1.7rem, 6.5vw, 2.6rem); line-height:1.08; }
  .t-h3{ font-size:1.08rem; }
  /* +105.000.000 (12 chars) tiene que entrar — clamp con max bajo y vw moderado */
  .t-num-xl{ font-size:clamp(1.85rem, 8vw, 2.8rem); letter-spacing:-.03em; }
  .t-num{ font-size:1.5rem; }
  .t-lead{ font-size:1.08rem; line-height:1.6; }
  .t-body{ font-size:1rem; line-height:1.65; }
  .t-eyebrow{ font-size:.72rem; }

  /* Lang switch — un poco más compacto en mobile */
  .lang-opt{ padding:5px 9px; font-size:9.5px; letter-spacing:.2em; }

  /* Mobile menu — más respiración, links un poco más chicos */
  .mobile-menu{ padding:5.5rem 1.5rem 2.5rem; }
  .mobile-menu a{ padding:.75rem 0; font-size:1.4rem; }

  /* Flip cards: tap-to-flip en mobile (no hover, pero sí click) */
  .flip-card{ height:280px; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .flip-front, .flip-back{ padding:1.75rem 1.5rem; }
  .flip-front::after{
    content:'↻';
    position:absolute; top:1.25rem; right:1.25rem;
    font-size:1rem; opacity:.35;
    transition:opacity .25s ease, transform .35s ease;
  }
  .flip-card.is-flipped .flip-front::after{ opacity:0; }
  .flip-card:active .flip-inner{ transform:scale(.985); transition:transform .15s ease; }

  /* Marquee — un poco más rápido */
  .marq-track{ animation-duration:50s; }

  /* Producto KPIs: dropdown del divider lateral */
  .product-kpi-divider{ border-left:0 !important; padding-left:0 !important; }

  /* Cinematic */
  .cinematic{ height:60vh; height:60dvh; min-height:380px; }

  /* Video section mobile */
  .video-section{ height:70vh; height:70dvh; min-height:420px; }
  .video-cap{
    flex-direction:column; align-items:flex-start; gap:.65rem;
    bottom:.85rem; left:1rem; right:1rem;
    font-size:.55rem;
  }
  .sound-toggle{ padding:.45rem .8rem; font-size:.55rem; align-self:flex-start; }

  /* Map: aspect ratio más cuadrado, pin más compacto */
  .map-wrap{ aspect-ratio:1/1; }
  .map-tall{ aspect-ratio:1/1; height:auto; min-height:0; }
  .map-pin .pin-card{ padding:.45rem .65rem; gap:.4rem; }
  .map-pin .pin-card img{ height:14px; }
  .map-pin .pin-card span{ font-size:.5rem !important; letter-spacing:.12em !important; }

  /* Cert cards: más compactas y stack vertical para que respire el seal */
  .cert-card{ padding:1.65rem 1.4rem; }
  .cert-card .cert-head{
    flex-direction:column; align-items:flex-start; gap:1rem;
    padding-bottom:1.25rem; margin-bottom:1.25rem;
  }
  .cert-card .cert-seal{ width:64px; height:64px; }

  /* Form: 16px mínimo en inputs para evitar el auto-zoom de iOS Safari */
  .field{ font-size:16px; padding:.95rem 0; }
  .form-radio-row label span{ font-size:11px !important; padding:.45rem .9rem !important; }
  .form-radio-row{ gap:.5rem; }

  /* Footer */
  footer .container-x{ padding-top:3rem; padding-bottom:3rem; }
  footer .grid{ gap:2.5rem 1.5rem; }

  /* Scroll progress más visible en mobile */
  .scroll-progress{ height:2px; }
}

@media (max-width: 480px){
  .hero{ min-height:88vh; min-height:88dvh; }
  .t-display{ font-size:clamp(2rem, 10vw, 2.6rem); line-height:1.04; }
  .t-h2{ font-size:1.65rem; line-height:1.1; }
  .t-num-xl{ font-size:clamp(1.65rem, 7.5vw, 2.3rem); letter-spacing:-.035em; }
  .t-h3{ font-size:1.02rem; }
  .t-eyebrow{ font-size:.68rem; letter-spacing:.22em; }
  .t-lead{ font-size:1.02rem; line-height:1.6; }
  .t-body{ font-size:.95rem; line-height:1.65; }

  .btn{ padding:.75rem 1.1rem; font-size:.6rem; letter-spacing:.14em; gap:.4rem; }
  .container-x{ padding-left:1.1rem; padding-right:1.1rem; }

  .cinematic{ height:50vh; height:50dvh; min-height:320px; }
  .video-section{ height:60vh; height:60dvh; min-height:360px; }

  /* Ocultar el scroll cue en pantallas chicas */
  .hero .absolute.bottom-7{ display:none !important; }

  /* Nav: gap más chico para que entren todos los elementos */
  .topnav .flex.items-center.gap-5{ gap:.75rem; }

  /* Cert seal aún más compacto */
  .cert-card .cert-seal{ width:56px; height:56px; }
  .cert-card{ padding:1.5rem 1.25rem; }

  /* Mobile menu: links un toque más bajos */
  .mobile-menu a{ font-size:1.25rem; padding:.65rem 0; }

  /* Sponsors flip cards */
  .flip-card{ height:260px; }
  .flip-front, .flip-back{ padding:1.5rem 1.25rem; }
  .flip-back p{ font-size:.85rem; }

  /* Footer: secciones explorar/contacto en col-12 cada una para que respiren */
  footer .grid{ gap:2rem 1rem; }

  /* WhatsApp float un poco más chico */
  .wa-float{ width:48px; height:48px; right:1rem; bottom:1rem; }
}

@media (max-width: 380px){
  .container-x{ padding-left:.95rem; padding-right:.95rem; }

  /* Lang switch súper compacto */
  .lang-opt{ padding:4px 7px; font-size:9px; letter-spacing:.16em; }
  .lang-switch{ padding:2px; }

  /* Logo un poco más chico para dejar respirar el resto del nav */
  .topnav img.logo-dark-img,
  .topnav img.logo-white-img{ height:2rem; }

  /* Type tiny — bumpeado un toque para legibilidad */
  .t-display{ font-size:1.85rem; line-height:1.05; }
  .t-h2{ font-size:1.45rem; line-height:1.12; }
  .t-num-xl{ font-size:1.8rem; }
  .t-lead{ font-size:.98rem; }
  .t-body{ font-size:.92rem; }

  /* Form: en tiny no usamos 2-col, todo en 1 col para respirar */
  #leadForm .grid.grid-cols-1.md\:grid-cols-2{ grid-template-columns:1fr; }

  /* Cert seal mínimo */
  .cert-card .cert-seal{ width:52px; height:52px; }
}

/* TODO: revisar cinematic en tablet vertical, cap se solapa con la imagen */

/* Autocomplete nativo del browser — fuerza fondo oscuro en campos del form */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #27324a inset !important;
  -webkit-text-fill-color: #FAF7F1 !important;
  caret-color: #FAF7F1;
  transition: background-color 5000s ease-in-out 0s;
}

/* Oculta el badge de reCAPTCHA — reemplazado por aviso legal en el form */
.grecaptcha-badge { visibility: hidden !important; }
