/* =============================================================
   1. Tokens
   ============================================================= */
:root{
  --white:#ffffff;
  --cream:#f7f5f0;
  --navy:#0b1f3a;
  --navy-2:#122a4d;
  --navy-soft:#2b3f5e;
  --ink:#101623;
  --ink-mute:#5a6478;
  --gold:#c9a24a;
  --gold-light:#e8cf8a;
  --gold-deep:#9c7a2e;
  --line:rgba(11,31,58,0.12);
  --line-gold:rgba(201,162,74,0.5);

  --serif:"Fraunces", "Georgia", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-soft:cubic-bezier(0.25,0.46,0.45,0.94);

  --container:1200px;
}

/* =============================================================
   2. Reset & base
   ============================================================= */
*,*::before,*::after{box-sizing:border-box;margin:0;}
html{-webkit-text-size-adjust:100%;tab-size:2;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body{
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
  overscroll-behavior-y:none;
}
/* Subtle grain texture over the whole page — adds depth without hurting legibility */
body::before{
  content:"";
  position:fixed;inset:0;z-index:9000;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}
img,svg,video{display:block;max-width:100%;}
img{height:auto;}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;}
a{color:inherit;text-decoration:none;}
p{text-wrap:pretty;}
h1,h2,h3,h4{font-family:var(--serif);text-wrap:balance;line-height:1.08;color:var(--navy);font-weight:600;}
em{font-style:italic;color:var(--gold-deep);}
::selection{background:var(--gold-light);color:var(--navy);}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;}

/* =============================================================
   3. Utilities
   ============================================================= */
.container{max-width:var(--container);margin-inline:auto;padding-inline:1.25rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;top:-100px;left:1rem;padding:.6rem 1rem;background:var(--navy);color:var(--white);z-index:9999;border-radius:8px;font-weight:600;transition:top .2s var(--ease-out);}
.skip-link:focus{top:1rem;}
.kicker{
  font-family:var(--sans);
  font-size:.8rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
  font-weight:600;
  margin-bottom:.9rem;
}
.lead{font-size:1.1rem;color:var(--ink-mute);max-width:62ch;margin-block:1rem;}
.lead.emph{color:var(--navy);font-weight:500;font-style:italic;font-family:var(--serif);font-size:1.3rem;}

/* Reveal-on-scroll defensive rules */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);}
.reveal.is-visible{opacity:1;transform:none;}
.reveal[data-split]{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none;} }

/* =============================================================
   4. Buttons
   ============================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.9rem;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.01em;
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), background .35s var(--ease-out), color .35s var(--ease-out);
  white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(135deg, var(--gold-light), var(--gold) 55%, var(--gold-deep));
  color:var(--navy);
  box-shadow:0 10px 30px -10px rgba(201,162,74,.55);
}
.btn-gold:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 36px -10px rgba(201,162,74,.7);}
.btn-nav{
  background:var(--navy);
  color:var(--white);
  padding:.6rem 1.3rem;
  font-size:.85rem;
  border:1px solid var(--line-gold);
}
.btn-nav:hover{background:var(--gold);color:var(--navy);}
.btn-ghost-gold{
  background:transparent;
  border:1.5px solid var(--gold);
  color:var(--navy);
}
.btn-ghost-gold:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px);}
.btn-project{
  background:var(--navy);
  color:var(--white);
  width:100%;
  margin-top:1.25rem;
}
.btn-project:hover{background:var(--gold);color:var(--navy);}
.btn-block{width:100%;}

/* =============================================================
   5. Nav
   ============================================================= */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--line);
}
@supports not (backdrop-filter: blur(1px)){
  .nav{background:rgba(255,255,255,.98);}
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.85rem;}
.brand{display:flex;align-items:center;}
.brand-logo{height:42px;width:auto;}
.brand-name{font-family:var(--serif);font-weight:600;font-size:1.15rem;color:var(--navy);}
.brand-role{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);}
.nav-links{display:none;gap:1.8rem;font-size:.9rem;font-weight:500;color:var(--navy-soft);}
.nav-links a{position:relative;padding-bottom:2px;}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--gold);transition:right .3s var(--ease-out);}
.nav-links a:hover::after{right:0;}
@media (min-width:960px){ .nav-links{display:flex;} }

.nav-right{display:flex;align-items:center;gap:.75rem;}

/* Mobile burger */
.nav-burger{
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;padding:8px;border-radius:8px;
  transition:background .2s var(--ease-out);
}
.nav-burger:hover{background:rgba(11,31,58,.06);}
.nav-burger span{display:block;height:2px;width:100%;background:var(--navy);border-radius:2px;transition:transform .35s var(--ease-out), opacity .35s var(--ease-out);}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (min-width:960px){ .nav-burger{display:none;} }

.mobile-menu{
  display:flex;flex-direction:column;
  max-height:0;overflow:hidden;
  background:var(--white);
  border-bottom:1px solid var(--line);
  transition:max-height .4s var(--ease-out);
}
.mobile-menu.is-open{max-height:400px;}
.mobile-menu a{
  padding:1rem 1.25rem;
  border-top:1px solid var(--line);
  font-weight:500;color:var(--navy-soft);
}
.mobile-menu a:hover{color:var(--gold-deep);background:var(--cream);}
@media (min-width:960px){ .mobile-menu{display:none;} }

/* =============================================================
   6b. Marquee ticker
   ============================================================= */
.marquee{
  background:var(--navy);
  border-block:1px solid var(--line-gold);
  overflow:hidden;
  padding-block:.85rem;
}
.marquee-track{
  display:flex;gap:.75rem;white-space:nowrap;width:max-content;
  font-family:var(--serif);font-style:italic;font-size:1rem;
  color:var(--gold-light);
  animation:marqueeScroll 28s linear infinite;
}
.marquee-track span:nth-child(odd){color:rgba(232,207,138,.4);font-style:normal;font-family:var(--sans);font-size:.8rem;letter-spacing:.05em;}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion:reduce){ .marquee-track{animation-duration:70s;} }

/* =============================================================
   6. Hero
   ============================================================= */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:clip;}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* Video plays on tablet/desktop with motion allowed; mobile and
   reduced-motion users get the static poster image instead
   (data savings + gotcha A.2: autoplay video is an intrusive effect). */
.hero-bg-video{display:none;}
.hero-bg-img{display:block;}
@media (min-width:720px){
  .hero-bg-video{display:block;}
  .hero-bg-img{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .hero-bg-video{display:none;}
  .hero-bg-img{display:block;}
}
.hero-tint{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,31,58,.78) 0%, rgba(11,31,58,.55) 45%, rgba(11,31,58,.92) 100%);
}
.hero-mesh{
  position:absolute;inset:-10% -10% 40% -10%;
  background:radial-gradient(45% 45% at 25% 20%, rgba(201,162,74,.35), transparent 70%);
  filter:blur(90px);
  pointer-events:none;
}
.hero-inner{position:relative;z-index:2;color:var(--white);padding-block:8rem 4rem;}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;}
@media (min-width:960px){ .hero-grid{grid-template-columns:1.15fr .85fr;gap:3rem;} }
.hero .kicker{color:var(--gold-light);}
.hero-title{
  color:var(--white);
  font-size:clamp(2.1rem, 5.4vw, 4rem);
  max-width:18ch;
  margin-bottom:1.2rem;
}
.hero-title em{color:var(--gold-light);font-style:italic;}
.hero-sub{max-width:52ch;color:rgba(255,255,255,.85);font-size:1.1rem;margin-bottom:2rem;}
.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;margin-bottom:1.8rem;}
.hero-micro{font-size:.85rem;color:rgba(255,255,255,.65);}
.hero-flags{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;
  max-width:46ch;
  font-size:.85rem;color:rgba(255,255,255,.85);
  border-top:1px solid rgba(255,255,255,.2);
  padding-top:1rem;
}
.hero-flags span{font-size:1.1rem;}

/* Hero portrait */
.hero-portrait{position:relative;display:flex;flex-direction:column;align-items:center;justify-self:center;}
.hero-portrait-halo{
  position:absolute;inset:-15% -20%;
  background:radial-gradient(55% 55% at 50% 40%, rgba(201,162,74,.55), transparent 70%);
  filter:blur(70px);
  pointer-events:none;
}
.hero-portrait-frame{
  position:relative;width:min(320px,78vw);aspect-ratio:4/5;
  border-radius:20px;overflow:clip;
  border:1px solid rgba(201,162,74,.55);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.6);
}
.hero-portrait-frame img{width:100%;height:100%;object-fit:cover;}
.hero-portrait-cutout-img{
  position:relative;width:min(340px,80vw);height:auto;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.45));
}
.hero-portrait-tag{
  position:relative;margin-top:-1.5rem;
  background:var(--navy);border:1px solid var(--line-gold);
  border-radius:999px;padding:.6rem 1.4rem;
  display:flex;flex-direction:column;align-items:center;line-height:1.2;
  box-shadow:0 14px 30px -12px rgba(0,0,0,.5);
}
.hero-portrait-tag strong{font-family:var(--serif);font-size:.95rem;color:var(--white);}
.hero-portrait-tag span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light);}
@media (max-width:959px){ .hero-portrait{margin-top:1rem;} }

/* =============================================================
   6c. Trust bar (logos de autoridad)
   ============================================================= */
.trust-bar{background:var(--navy);padding-block:1.9rem;}
.trust-inner{display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center;}
.trust-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light);font-weight:600;}
.trust-logos{max-width:420px;width:100%;height:auto;opacity:.92;}

/* =============================================================
   7. Oportunidad
   ============================================================= */
.oportunidad{position:relative;padding-block:6rem;background:#efece2;overflow:clip;}
.oportunidad-bg{position:absolute;inset:0;opacity:.14;}
.oportunidad-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.85);}
.oportunidad-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,31,58,.5), rgba(11,31,58,.22) 45%, rgba(239,236,226,.85));
}
.oportunidad::before{
  content:"";position:absolute;top:-20%;right:-10%;width:55%;height:80%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(201,162,74,.16), transparent 72%);
  filter:blur(80px);pointer-events:none;
}
.oportunidad::after{
  content:"";position:absolute;bottom:-25%;left:-15%;width:50%;height:70%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(11,31,58,.20), transparent 72%);
  filter:blur(90px);pointer-events:none;
}
.oportunidad .container{position:relative;z-index:1;}
.oportunidad h2{font-size:clamp(1.7rem,3.6vw,2.6rem);max-width:22ch;margin-bottom:1.2rem;}

.pillars{display:grid;gap:1.5rem;margin-block:2.5rem;grid-template-columns:1fr;}
@media (min-width:720px){ .pillars{grid-template-columns:repeat(3,1fr);} }
.pillar{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.75rem;
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .35s var(--ease-out);
}
.pillar:hover{transform:translateY(-6px);box-shadow:0 20px 40px -20px rgba(11,31,58,.25);border-color:var(--line-gold);}
.pillar-icon{font-size:1.8rem;display:block;margin-bottom:.6rem;}
.pillar h3{font-size:1.15rem;margin-bottom:.4rem;}
.pillar p{color:var(--ink-mute);font-size:.95rem;}

/* =============================================================
   8. Autoridad (Sobre Andreina)
   ============================================================= */
.autoridad{padding-block:6rem;}
.autoridad-grid{display:grid;gap:2.5rem;grid-template-columns:1fr;align-items:start;}
@media (min-width:960px){ .autoridad-grid{grid-template-columns:0.85fr 1.15fr;gap:4rem;} }
.autoridad-media{position:sticky;top:6rem;border-radius:20px;overflow:clip;border:1px solid var(--line-gold);box-shadow:0 30px 60px -30px rgba(11,31,58,.35);}
.autoridad-media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.autoridad-media .ph-badge{position:absolute;top:1rem;right:1rem;}
.autoridad-copy h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin-bottom:1.3rem;max-width:20ch;}
.autoridad-copy p{margin-block:1rem;color:var(--ink-mute);max-width:58ch;}
.autoridad-copy p.emph{color:var(--navy);font-weight:600;font-family:var(--serif);font-size:1.25rem;font-style:italic;}
.pillars-inline{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin-block:1.6rem;padding:1.25rem 1.5rem;background:var(--cream);border-radius:14px;border-left:3px solid var(--gold);}
.pillars-inline li{font-weight:500;color:var(--navy);font-size:.95rem;}
.pull-quote{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.3rem;
  color:var(--navy);
  border-left:3px solid var(--gold);
  padding-left:1.25rem;
  margin-top:2rem;
}

/* =============================================================
   9. Portafolio
   ============================================================= */
.portafolio{position:relative;padding-block:6rem;background:var(--navy);color:var(--white);overflow:clip;}
.portafolio-bg{position:absolute;inset:0;}
.portafolio-bg img{width:100%;height:100%;object-fit:cover;opacity:.18;}
.portafolio .container{position:relative;z-index:1;}
.portafolio .kicker{color:var(--gold-light);}
.portafolio h2{color:var(--white);font-size:clamp(1.7rem,3.6vw,2.6rem);max-width:26ch;margin-bottom:1rem;}
.portafolio .lead{color:rgba(255,255,255,.75);}

.project-grid{display:grid;gap:1.75rem;margin-top:2.5rem;grid-template-columns:1fr;}
@media (min-width:720px){ .project-grid{grid-template-columns:repeat(2,1fr);} }
.project-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(201,162,74,.3);
  border-radius:18px;
  overflow:clip;
  padding-bottom:1.5rem;
  display:flex;flex-direction:column;
  height:100%;
  transform-style:preserve-3d;
  will-change:transform;
  transition:transform .4s var(--ease-out), border-color .4s var(--ease-out), background .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.project-card:hover{border-color:var(--gold);background:rgba(255,255,255,.07);box-shadow:0 30px 60px -25px rgba(0,0,0,.5);}
.project-media{position:relative;aspect-ratio:4/3;overflow:clip;flex-shrink:0;}
.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out), filter .6s var(--ease-out);}
.project-card:hover .project-media img{transform:scale(1.08);filter:saturate(1.15);}
.project-teaser{margin:.6rem 1.5rem 0;font-size:.88rem;color:rgba(255,255,255,.68);font-style:italic;}

/* Expandable project details — native <details>, no JS required */
.project-details{margin:.7rem 1.5rem 0;}
.detail-block{margin-bottom:.9rem;}
.detail-block:last-child{margin-bottom:0;}
.detail-label{
  display:block;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--gold);font-weight:700;margin-bottom:.25rem;
}
.detail-block p{color:rgba(255,255,255,.72);font-size:.88rem;padding:0;}
.project-details summary{
  cursor:pointer;list-style:none;
  display:flex;align-items:center;gap:.4rem;
  font-size:.82rem;font-weight:600;letter-spacing:.03em;
  color:var(--gold-light);
  padding-block:.3rem;
  transition:color .25s var(--ease-out);
}
.project-details summary::-webkit-details-marker{display:none;}
.project-details summary::after{
  content:"+";
  font-size:1rem;line-height:1;
  transition:transform .3s var(--ease-out);
}
.project-details[open] summary::after{transform:rotate(45deg);}
.project-details summary:hover{color:var(--white);}
.project-details p{
  padding-top:.6rem;color:rgba(255,255,255,.72);font-size:.92rem;
  animation:detailsFade .35s var(--ease-out);
}
@keyframes detailsFade{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* Placeholder-image treatment: duotone navy/gold so repeated stock shots
   read as an intentional editorial choice, not a broken asset. */
.ph-img{filter:grayscale(.35) sepia(.18) saturate(1.3) hue-rotate(175deg) brightness(.85);}
.ph-badge{
  position:absolute;top:.8rem;right:.8rem;z-index:2;
  background:rgba(11,31,58,.85);
  color:var(--gold-light);
  font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:.35rem .65rem;border-radius:999px;
  border:1px solid rgba(201,162,74,.5);
}
.project-tag{
  display:inline-block;margin:1.25rem 1.5rem 0;
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold-light);font-weight:700;
}
.project-card h3{color:var(--white);font-size:1.3rem;padding:.5rem 1.5rem 0;}
.project-card h3 small{display:block;font-family:var(--sans);font-size:.8rem;font-weight:400;color:rgba(255,255,255,.55);margin-top:.2rem;}
.project-card .btn{margin:auto 1.5rem 0;width:calc(100% - 3rem);}

/* =============================================================
   10. Testimonios
   ============================================================= */
.testimonios{padding-block:6rem;background:var(--cream);}
.testimonios h2{font-size:clamp(1.7rem,3.4vw,2.4rem);max-width:26ch;margin-bottom:2.5rem;}
.testi-video{max-width:420px;margin:0 auto 3rem;text-align:center;}
.testi-video-el{
  width:100%;aspect-ratio:4/5;object-fit:cover;
  border-radius:20px;border:1px solid var(--line-gold);
  box-shadow:0 30px 60px -30px rgba(11,31,58,.4);background:#000;
}
.testi-video-caption{margin-top:.9rem;font-size:.88rem;color:var(--ink-mute);font-style:italic;}
.testi-grid{display:grid;gap:1.5rem;grid-template-columns:1fr;}
@media (min-width:720px){ .testi-grid{grid-template-columns:repeat(3,1fr);} }
.testi-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.75rem;
  position:relative;
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}
.testi-card:hover{transform:translateY(-5px);box-shadow:0 20px 40px -22px rgba(11,31,58,.25);}
.testi-card::before{
  content:"“";
  font-family:var(--serif);
  font-size:3rem;color:var(--gold);
  line-height:1;display:block;margin-bottom:.25rem;
}
.testi-card p{font-size:.95rem;color:var(--ink);font-style:italic;}
.testi-card footer{margin-top:1rem;font-weight:600;color:var(--navy);font-size:.9rem;}
.testi-note{margin-top:1.5rem;font-size:.8rem;color:var(--ink-mute);font-style:italic;}

/* =============================================================
   11. CTA final / formulario
   ============================================================= */
.cta-final{position:relative;padding-block:6rem;overflow:clip;}
.cta-bg{position:absolute;inset:0;}
.cta-bg img{width:100%;height:100%;object-fit:cover;}
.cta-final::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(160deg, rgba(11,31,58,.95) 10%, rgba(11,31,58,.75) 55%, rgba(201,162,74,.35) 100%);
}
.cta-inner{position:relative;z-index:1;color:var(--white);max-width:640px;}
.cta-final .kicker{color:var(--gold-light);}
.cta-final h2{color:var(--white);font-size:clamp(1.8rem,3.8vw,2.7rem);max-width:20ch;}
.cta-final .lead{color:rgba(255,255,255,.82);}

.lead-form{
  margin-top:2rem;
  background:rgba(255,255,255,.96);
  border-radius:20px;
  padding:2rem;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.4);
  border:1px solid var(--line-gold);
}
.form-row{margin-bottom:1rem;}
.form-row-2{display:grid;gap:1rem;grid-template-columns:1fr;}
@media (min-width:540px){ .form-row-2{grid-template-columns:1fr 1fr;} }
.lead-form input,.lead-form select{
  width:100%;padding:.85rem 1rem;
  border:1px solid var(--line);
  border-radius:10px;
  font-family:var(--sans);font-size:.95rem;color:var(--ink);
  background:var(--white);
  transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);
}
.lead-form input:focus,.lead-form select:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,74,.2);outline:none;}
.form-micro{margin-top:.9rem;font-size:.8rem;color:var(--ink-mute);text-align:center;}
.form-success{margin-top:1rem;font-size:.9rem;font-weight:600;color:#1a7a3e;text-align:center;}

/* =============================================================
   12. Footer
   ============================================================= */
.footer{background:var(--navy);color:rgba(255,255,255,.75);padding-block:2.5rem;}
.footer-inner{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center;}
@media (min-width:720px){ .footer-inner{flex-direction:row;justify-content:space-between;text-align:left;} }
.footer .brand-name{color:var(--white);display:block;}
.footer .brand-role{color:var(--gold-light);}
.footer-logo{height:46px;width:auto;}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;font-size:.9rem;}
.footer-links a:hover{color:var(--gold-light);}
.footer-copy{font-size:.8rem;color:rgba(255,255,255,.5);}

/* =============================================================
   13. WhatsApp float button
   ============================================================= */
.wa-float{
  position:fixed;right:1.25rem;bottom:1.25rem;z-index:200;
  display:flex;align-items:center;gap:.6rem;
  background:#25D366;color:#fff;
  padding:.85rem 1.1rem;border-radius:999px;
  border:2px solid var(--gold);
  box-shadow:0 12px 30px -8px rgba(0,0,0,.4);
  font-weight:600;font-size:.9rem;
  transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
}
.wa-float:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 18px 36px -8px rgba(0,0,0,.5);}
.wa-float span{display:none;}
@media (min-width:540px){ .wa-float span{display:inline;} }

/* =============================================================
   14. Custom cursor (fine-pointer devices only)
   ============================================================= */
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;z-index:9999;
  pointer-events:none;
  opacity:0;
  transition:opacity .25s var(--ease-out);
  mix-blend-mode:difference;
}
.cursor-dot.is-ready,.cursor-ring.is-ready{opacity:1;}
.cursor-dot{
  width:6px;height:6px;margin:-3px 0 0 -3px;
  background:var(--gold-light);border-radius:50%;
}
.cursor-ring{
  width:32px;height:32px;margin:-16px 0 0 -16px;
  border:1px solid var(--gold-light);border-radius:50%;
  transition:opacity .25s var(--ease-out), transform .15s var(--ease-out), width .25s var(--ease-out), height .25s var(--ease-out), margin .25s var(--ease-out);
}
.cursor-ring.is-hover{
  width:52px;height:52px;margin:-26px 0 0 -26px;
  border-color:var(--gold);
}
@media (hover:none),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none;}
}

/* =============================================================
   15. Responsive fine-tuning
   ============================================================= */
@media (max-width:539px){
  .hero-inner{padding-block:7rem 3rem;}
  .autoridad-media{position:static;}
}
