/* ==========================================================================
   FORS SRL — Sistema de diseño compartido
   ========================================================================== */
:root{
  --navy-950:#060B14;
  --navy-900:#0A1526;
  --navy-800:#0F1F35;
  --navy-700:#16304F;
  --teal-500:#0FB8AE;
  --cyan-400:#3FE8D4;
  --white:#F4FAFA;
  --slate-400:#8FA3B8;
  --slate-500:#6B8195;
  --line:rgba(255,255,255,0.09);
  --grad: linear-gradient(115deg, #0A7A78 0%, #14C4B4 45%, #3FE8D4 100%);
  --scrim-strong: rgba(6,11,20,0.98);
  --scrim-soft: rgba(6,11,20,0.86);
  --on-accent: #071019;
  color-scheme: dark;
}
:root[data-theme="light"]{
  --navy-950:#F4FAF9;
  --navy-900:#E9F2F1;
  --navy-800:#FFFFFF;
  --navy-700:#D6E5E3;
  --white:#0A1526;
  --slate-400:#4C6272;
  --slate-500:#63798A;
  --line:rgba(10,21,38,0.10);
  --scrim-strong: rgba(255,255,255,0.98);
  --scrim-soft: rgba(244,250,249,0.86);
  color-scheme: light;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--navy-950);
  color:var(--white);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
}
h1,h2,h3,.display{font-family:'Sora',sans-serif;}
.mono{font-family:'JetBrains Mono',monospace;}

body.lang-es .en{display:none;}
body.lang-en .es{display:none;}

a{color:inherit;text-decoration:none;}
ul{list-style:none;}
img,svg{display:block;max-width:100%;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
section{position:relative;}

::selection{background:var(--teal-500);color:var(--on-accent);}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--cyan-400);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:22px 0;
  transition:padding .35s ease, background .35s ease, border-color .35s ease, opacity .3s ease;
  border-bottom:1px solid transparent;
}
header.scrolled{
  padding:14px 0;
  background:var(--scrim-soft);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
nav{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:10px;}
.brand-logo{height:52px; width:auto; display:block; transition:height .3s ease, filter .3s ease;}
header.scrolled .brand-logo{height:40px;}
:root[data-theme="light"] .brand-logo{filter:invert(1) brightness(0.85);}
/* interior pages start with a transparent header over a dark photo hero,
   so its content must stay in "dark mode" colors until the header picks
   up its own (theme-aware) scrim background on scroll */
:root[data-theme="light"] body.page-has-photo-hero header:not(.scrolled){
  --white:#F4FAFA;
  --slate-400:#8FA3B8;
  --slate-500:#6B8195;
  --line:rgba(255,255,255,0.09);
}
:root[data-theme="light"] body.page-has-photo-hero header:not(.scrolled) .brand-logo{filter:none;}

.nav-links{display:flex;align-items:center;gap:28px;}
.nav-links a{
  font-size:14px; font-weight:500; color:var(--slate-400);
  position:relative; padding:4px 0;
  transition:color .25s ease;
  white-space:nowrap;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:-2px;width:0;height:1.5px;
  background:var(--grad); transition:width .3s ease;
}
.nav-links a:hover,.nav-links a.active{color:var(--white);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}

.nav-right{display:flex;align-items:center;gap:18px;}
.theme-toggle{
  width:36px; height:36px; border-radius:999px; border:1px solid var(--line);
  background:transparent; color:var(--slate-400); cursor:pointer;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:border-color .25s ease, color .25s ease;
}
.theme-toggle:hover{border-color:var(--cyan-400); color:var(--cyan-400);}
.theme-toggle svg{width:17px; height:17px;}
.theme-toggle .icon-moon{display:none;}
:root[data-theme="light"] .theme-toggle .icon-sun{display:none;}
:root[data-theme="light"] .theme-toggle .icon-moon{display:block;}
.lang-toggle{
  display:flex; border:1px solid var(--line); border-radius:999px; padding:3px;
  font-family:'JetBrains Mono',monospace; font-size:12px;
}
.lang-toggle button{
  background:none;border:none;color:var(--slate-400);cursor:pointer;
  padding:6px 12px;border-radius:999px;transition:all .25s ease;font-family:inherit;font-size:12px;letter-spacing:0.5px;
}
.lang-toggle button.active{background:var(--grad);color:var(--on-accent);font-weight:700;}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 22px;border-radius:8px;font-weight:600;font-size:14.5px;
  border:1px solid transparent; cursor:pointer; transition:all .25s ease;
  font-family:'Inter',sans-serif;
}
.btn-primary{background:var(--grad);color:var(--on-accent);box-shadow:0 0 0 rgba(63,232,212,0);}
.btn-primary:hover{box-shadow:0 6px 24px rgba(63,232,212,0.35); transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--cyan-400);color:var(--cyan-400);}
.btn-block{width:100%;justify-content:center;}

.nav-cta{display:none;}
@media(min-width:980px){.nav-cta{display:inline-flex;}}
@media(max-width:979px){.nav-links{display:none;}}

/* the theme toggle moves into the mobile menu below 979px so the header
   row (logo + language + burger) has room to breathe; it stays in the
   header for desktop, where there's no hamburger menu to hold it */
@media(max-width:979px){
  .nav-right > .theme-toggle{display:none;}
  .brand-logo{height:38px;}
}

/* mobile menu */
.burger{display:none; width:40px;height:40px;border-radius:8px;border:1px solid var(--line); background:transparent; cursor:pointer; align-items:center; justify-content:center;}
.burger svg{width:20px;height:20px;color:var(--white);}
@media(max-width:979px){.burger{display:flex;}}
/* the header sits above the mobile-menu overlay in stacking order; once the
   menu is open none of its own controls are needed (they're duplicated
   inside the menu), so just fade the whole header out instead of picking
   which parts of it should still swallow clicks */
body.menu-open header{opacity:0; pointer-events:none;}
.mobile-menu{
  position:fixed; inset:0; z-index:101; background:var(--scrim-strong); backdrop-filter:blur(10px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.mobile-menu.open{opacity:1; pointer-events:auto;}
.mobile-menu a{font-family:'Sora',sans-serif; font-size:24px; font-weight:700; color:var(--white);}
.mobile-menu a.active{color:var(--cyan-400);}
.mobile-menu-utility{display:flex; align-items:center; gap:14px; margin-bottom:6px;}
.mobile-close{position:absolute; top:26px; right:30px; width:40px;height:40px;border-radius:8px;border:1px solid var(--line); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.mobile-close svg{width:20px;height:20px;color:var(--white);}

/* ---------- HERO (home) ---------- */
.hero{
  min-height:100vh;
  display:flex;align-items:center;
  padding:150px 0 90px;
  background:
    radial-gradient(ellipse 80% 60% at 15% 20%, rgba(15,184,174,0.16), transparent 60%),
    radial-gradient(ellipse 70% 50% at 90% 80%, rgba(63,232,212,0.10), transparent 60%),
    var(--navy-950);
  position:relative;
  overflow:hidden;
}
.hero-cut{
  position:absolute; left:-10%; top:0; bottom:0; width:55%; z-index:0;
  background:var(--grad); opacity:0.10;
  clip-path:polygon(0 0, 62% 0, 38% 100%, 0% 100%);
}
.hero .wrap{width:100%;}
@media(min-width:961px){.hero .wrap{padding-left:12px;}}
.hero-inner{
  position:relative; z-index:2;
  max-width:560px;
}

.hero-map-bg{
  position:absolute; z-index:1; pointer-events:none;
  top:50%; right:2%; width:76%; max-width:980px;
  transform:translateY(-50%);
}
@media(max-width:1100px){.hero-map-bg{width:64%; right:0%;}}
@media(max-width:960px){
  .hero{flex-direction:column; align-items:stretch;}
  .hero-map-bg{
    position:relative; top:auto; right:auto; transform:none;
    width:100%; max-width:620px; margin:48px auto 0; z-index:1; order:2;
  }
  .hero-inner{max-width:none;}
}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--cyan-400); margin-bottom:22px;
}
.eyebrow::before{content:'';width:22px;height:1.5px;background:var(--cyan-400);}

.hero h1{
  font-size:clamp(34px, 4.6vw, 58px);
  font-weight:800; line-height:1.08; letter-spacing:-0.5px;
  margin-bottom:22px;
}
.hero h1 .accent, h1 .accent, h2 .accent{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero p.lead{
  font-size:17px; line-height:1.65; color:var(--slate-400); max-width:520px; margin-bottom:34px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;}
.badge{
  display:flex;align-items:center;gap:8px;
  border:1px solid var(--line); border-radius:999px; padding:8px 14px;
  font-size:12.5px; color:var(--slate-400);
}
.badge svg{width:14px;height:14px;color:var(--cyan-400);flex-shrink:0;}

.route-visual{position:relative; aspect-ratio:2/1; width:100%;}
.route-visual svg{width:100%;height:100%;overflow:visible;}
.wdot{fill:var(--slate-500); opacity:0.4;}
.route-path{
  fill:none; stroke:url(#routeGrad); stroke-width:1.4; stroke-linecap:round;
  stroke-dasharray:5 7; opacity:0.6;
  animation:dash 24s linear infinite;
}
.route-path.p2{animation-duration:30s; animation-direction:reverse; opacity:0.4;}
.route-path.p3{animation-duration:36s; opacity:0.35;}
@keyframes dash{to{stroke-dashoffset:-400;}}
.route-active{
  fill:none; stroke:url(#routeGrad); stroke-width:2; stroke-linecap:round;
  filter:drop-shadow(0 0 4px rgba(63,232,212,0.5));
}
.node{fill:var(--cyan-400);}
.node-origin{fill:var(--white);}
.node-pulse{
  fill:none; stroke:var(--cyan-400); stroke-width:1.2; opacity:0;
  animation:pulse 3s ease-out infinite;
  transform-origin:center;
}
.node-pulse.d1{animation-delay:0s;}
.node-pulse.d2{animation-delay:.8s;}
.node-pulse.d3{animation-delay:2s;}
.node-pulse.d4{animation-delay:1.6s;}
.node-pulse.d5{animation-delay:.4s;}
.node-pulse.d6{animation-delay:1.2s;}
@keyframes pulse{
  0%{opacity:0.7; transform:scale(0.3);}
  100%{opacity:0; transform:scale(2.6);}
}

.tracker{
  color:var(--white);
  filter:drop-shadow(0 0 4px rgba(63,232,212,0.9));
  offset-rotate:auto;
  animation:travel 50s linear infinite;
  opacity:0;
}
.tracker.t1{offset-path:path("M259.6,239.6 C420,110 540,230 670,130.7"); animation-delay:0s;}
.tracker.t2{offset-path:path("M259.6,239.6 C320,120 380,60 410,85"); animation-delay:-40s;}
.tracker.t3{offset-path:path("M259.6,239.6 C240,190 220,170 222,143"); animation-delay:-30s;}
.tracker.t4{offset-path:path("M259.6,239.6 C320,320 400,300 468.9,266.3"); animation-delay:-20s;}
.tracker.t5{offset-path:path("M259.6,239.6 C380,140 480,100 561.9,157.6"); animation-delay:-10s;}
@keyframes travel{
  0%{offset-distance:0%; opacity:0;}
  1%{opacity:1;}
  16%{offset-distance:100%; opacity:1;}
  18%{offset-distance:100%; opacity:0;}
  100%{offset-distance:100%; opacity:0;}
}
.map-caption{
  position:absolute; left:50%; bottom:-6px; transform:translateX(-50%);
  display:flex; align-items:center; gap:8px; justify-content:center;
  font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--slate-400);
  letter-spacing:0.5px; white-space:nowrap;
}
@media(max-width:480px){.map-caption{font-size:9.5px; white-space:normal; text-align:center; width:90%;}}
.map-caption .dot-live{
  width:6px;height:6px;border-radius:50%;background:var(--cyan-400);
  animation:blink 1.6s ease-in-out infinite;
}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0.25;}}

/* ---------- PAGE HEADER (interior pages) ---------- */
/* page-header sits on a photo/video background, so it intentionally stays
   dark and white-on-dark regardless of the site theme (a light-toned
   scrim + light body text over a photo reads poorly either way) */
.page-header{
  padding:168px 0 90px;
  position:relative;
  overflow:hidden;
  background:#060B14;
  color:#F4FAFA;
}
.page-header .ph-bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0.42; filter:saturate(0.9);
  transition:opacity .8s ease;
}
.page-header .ph-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; filter:saturate(0.9);
  transition:opacity .8s ease;
}
.page-header .ph-video.is-ready{opacity:0.5;}
.page-header .ph-bg.is-hidden{opacity:0;}
@media (prefers-reduced-motion: reduce){
  .page-header .ph-video{display:none;}
}
.page-header .ph-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(6,11,20,0.4) 0%, rgba(6,11,20,0.35) 40%, #060B14 88%),
    radial-gradient(ellipse 70% 60% at 85% 10%, rgba(15,184,174,0.22), transparent 60%);
}
.page-header .wrap{position:relative; z-index:2;}
.breadcrumb{
  display:flex; align-items:center; gap:8px; margin-bottom:18px;
  font-family:'JetBrains Mono',monospace; font-size:12px; color:#8FA3B8; letter-spacing:0.5px;
}
.breadcrumb .sep{color:#6B8195;}
.breadcrumb .current{color:var(--cyan-400);}
.page-header h1{font-size:clamp(32px,4.2vw,52px); font-weight:800; letter-spacing:-0.5px; line-height:1.1; margin-bottom:18px; max-width:760px;}
.page-header .lead{font-size:16.5px; line-height:1.7; color:#8FA3B8; max-width:600px;}

/* ---------- SECTION HEADS ---------- */
.section-pad{padding:120px 0;}
.section-pad.tight{padding:90px 0;}
.section-head{max-width:640px; margin-bottom:64px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{
  font-size:clamp(28px,3.2vw,40px); font-weight:800; letter-spacing:-0.4px; line-height:1.15; margin:14px 0 16px;
}
.section-head.center .eyebrow{justify-content:center;}
.section-head p{color:var(--slate-400); font-size:16px; line-height:1.65;}

.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- QUIENES SOMOS ---------- */
.about{background:var(--navy-950); border-top:1px solid var(--line);}
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:start;}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;}}
.about-copy p{color:var(--slate-400); font-size:16px; line-height:1.75; margin-bottom:18px;}
.about-copy p strong{color:var(--white); font-weight:600;}
.containers-art{width:100%; max-width:320px; height:auto; margin-bottom:28px;}

.pillars{display:flex; flex-direction:column; gap:2px;}
.pillar{
  display:grid; grid-template-columns:56px 1fr; gap:20px;
  padding:26px 4px; border-top:1px solid var(--line);
  transition:padding-left .3s ease;
}
.pillar:last-child{border-bottom:1px solid var(--line);}
.pillar:hover{padding-left:12px;}
.pillar-num{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--cyan-400); padding-top:3px;}
.pillar h3{font-size:18px; font-weight:700; margin-bottom:8px;}
.pillar p{color:var(--slate-400); font-size:14.5px; line-height:1.6;}

/* value cards (promesa de valor) */
.value-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:860px){.value-grid{grid-template-columns:1fr;}}
.value-card{
  background:var(--navy-800); border:1px solid var(--line); border-radius:16px; padding:30px 26px;
  transition:transform .3s ease, border-color .3s ease;
}
.value-card:hover{transform:translateY(-4px); border-color:rgba(63,232,212,0.3);}
.value-card .vnum{font-family:'JetBrains Mono',monospace; color:var(--cyan-400); font-size:13px; margin-bottom:14px; display:block;}
.value-card h3{font-size:18px; font-weight:700; margin-bottom:10px;}
.value-card p{color:var(--slate-400); font-size:14.5px; line-height:1.6;}

/* stats bar */
.stats-bar{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--navy-900);
  padding:52px 0;
}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center;}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
.stat-num{font-family:'Sora',sans-serif; font-weight:800; font-size:clamp(28px,3.4vw,40px); background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;}
.stat-label{margin-top:8px; font-size:12.5px; color:var(--slate-400); font-family:'JetBrains Mono',monospace; letter-spacing:0.4px; text-transform:uppercase;}

/* ---------- SERVICIOS ---------- */
.services{background:var(--navy-900); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:860px){.service-grid{grid-template-columns:1fr;}}
.service-card{
  background:var(--navy-800); border:1px solid var(--line); border-radius:16px;
  padding:32px 28px; transition:transform .35s ease, border-color .35s ease, background .35s ease;
  position:relative; overflow:hidden;
}
.service-card::before{
  content:''; position:absolute; inset:0; opacity:0;
  background:radial-gradient(circle at 30% 0%, rgba(63,232,212,0.14), transparent 60%);
  transition:opacity .35s ease;
}
.service-card:hover{transform:translateY(-6px); border-color:rgba(63,232,212,0.35);}
.service-card:hover::before{opacity:1;}
.service-icon{
  width:48px;height:48px;border-radius:12px;
  background:var(--grad);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:22px;
}
.service-icon svg{width:24px;height:24px;color:var(--on-accent);}
.service-card h3{font-size:19px; font-weight:700; margin-bottom:12px;}
.service-card p{color:var(--slate-400); font-size:14.5px; line-height:1.65; margin-bottom:14px;}
.service-list{display:flex; flex-direction:column; gap:9px; margin-top:16px;}
.service-list li{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; color:var(--slate-400); list-style:none;}
.service-list svg{width:15px;height:15px;color:var(--cyan-400); flex-shrink:0; margin-top:2px;}

/* process steps */
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media(max-width:860px){.process-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.process-grid{grid-template-columns:1fr;}}
.process-step{border-top:1px solid var(--line); padding-top:20px;}
.process-step .pnum{font-family:'JetBrains Mono',monospace; color:var(--cyan-400); font-size:13px;}
.process-step h4{font-size:16px; font-weight:700; margin:10px 0 8px;}
.process-step p{color:var(--slate-400); font-size:13.5px; line-height:1.6;}

/* ---------- PRODUCTOS (agro) ---------- */
.products{background:var(--navy-950);}
.product-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
@media(max-width:760px){.product-grid{grid-template-columns:1fr;}}
.product-card{
  display:grid; grid-template-columns:150px 1fr; gap:22px;
  background:var(--navy-800); border:1px solid var(--line); border-radius:18px;
  padding:22px; align-items:center;
  transition:transform .3s ease, border-color .3s ease;
}
.product-card:hover{transform:translateY(-4px); border-color:rgba(63,232,212,0.32);}
@media(max-width:480px){.product-card{grid-template-columns:1fr;}}
.product-photo{
  width:100%; aspect-ratio:1/1; border-radius:14px; overflow:hidden; border:1px solid var(--line);
  background:var(--navy-900);
}
.product-photo img{width:100%;height:100%;object-fit:cover; display:block;}
.product-info{position:relative;}
.product-info .ptag{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--cyan-400); letter-spacing:0.6px; text-transform:uppercase; margin-bottom:8px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.product-info h3{font-size:19px; font-weight:700; margin-bottom:2px;}
.product-info .scientific{display:block; font-style:italic; font-size:12.5px; color:var(--slate-500); margin-bottom:8px;}
.product-info p{color:var(--slate-400); font-size:14px; line-height:1.6;}
.organic-badge{
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(63,232,212,0.12); color:var(--cyan-400);
  border:1px solid rgba(63,232,212,0.35); border-radius:999px;
  padding:2px 9px; font-size:10px; letter-spacing:0.4px; text-transform:none;
}
.organic-badge svg{width:11px; height:11px;}

.product-category{margin-bottom:56px;}
.product-category:last-child{margin-bottom:0;}
.product-category-head{
  display:flex; align-items:baseline; gap:14px; margin-bottom:24px;
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.product-category-head h3{font-size:22px; font-weight:800; font-family:'Sora',sans-serif;}
.product-category-head span{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--slate-500); letter-spacing:0.4px;}

.cert-strip{display:flex; flex-wrap:wrap; gap:14px; margin-top:56px;}
.cert-chip{
  display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px;
  padding:14px 18px; font-size:13.5px; color:var(--slate-400); background:var(--navy-900);
}
.cert-chip svg{width:18px;height:18px;color:var(--cyan-400); flex-shrink:0;}

/* ---------- EQUIPO ---------- */
.team{background:var(--navy-950); border-bottom:1px solid var(--line);}
.team-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media(max-width:980px){.team-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.team-grid{grid-template-columns:1fr;}}
.team-card{
  border:1px solid var(--line); border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color .3s ease, transform .3s ease;
  background:var(--navy-800);
}
.team-card:hover{border-color:rgba(63,232,212,0.3); transform:translateY(-4px);}
.team-photo{width:100%; aspect-ratio:4/5; overflow:hidden; background:var(--navy-900); position:relative;}
.team-photo img{width:100%;height:100%;object-fit:cover; display:block; transition:transform .5s ease;}
.team-card:hover .team-photo img{transform:scale(1.05);}
.team-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 60%, rgba(6,11,20,0.5) 100%);}
.team-body{padding:20px 20px 24px;}
.team-body h3{font-size:16.5px; font-weight:700; margin-bottom:6px;}
.team-body .role{color:var(--cyan-400); font-size:11.5px; font-family:'JetBrains Mono',monospace; letter-spacing:0.3px; text-transform:uppercase; margin-bottom:10px; display:block;}
.team-body p{color:var(--slate-400); font-size:13.5px; line-height:1.55;}

.team-old-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:860px){.team-old-grid{grid-template-columns:1fr;}}

/* ---------- GALERIA ---------- */
.gallery{background:var(--navy-950);}
.gallery-filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px;}
.gfilter{
  border:1px solid var(--line); background:transparent; color:var(--slate-400); border-radius:999px;
  padding:9px 18px; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.4px; cursor:pointer;
  transition:all .25s ease;
}
.gfilter.active,.gfilter:hover{border-color:var(--cyan-400); color:var(--cyan-400);}
.gallery-grid{
  columns:3 280px; column-gap:18px;
}
@media(max-width:760px){.gallery-grid{columns:2 220px;}}
@media(max-width:480px){.gallery-grid{columns:1;}}
.gallery-item{
  break-inside:avoid; margin-bottom:18px; border-radius:14px; overflow:hidden; border:1px solid var(--line);
  position:relative; cursor:pointer; background:var(--navy-800);
}
.gallery-item img{width:100%; display:block; transition:transform .5s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-caption{
  position:absolute; left:0; right:0; bottom:0; padding:16px;
  background:linear-gradient(180deg, transparent, rgba(6,11,20,0.92));
  opacity:0; transition:opacity .3s ease;
}
.gallery-item:hover .gallery-caption{opacity:1;}
.gallery-caption .gtag{font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--cyan-400); letter-spacing:0.5px; text-transform:uppercase; margin-bottom:4px; display:block;}
.gallery-caption .gtitle{font-size:14px; font-weight:600; color:#F4FAFA;}

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:200; background:rgba(6,11,20,0.94); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:40px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox img{max-width:100%; max-height:80vh; border-radius:12px; border:1px solid var(--line);}
.lightbox-caption{text-align:center; margin-top:16px; color:#8FA3B8; font-size:14px;}
.lightbox-close{
  position:absolute; top:26px; right:30px; width:44px;height:44px;border-radius:10px;
  border:1px solid rgba(255,255,255,0.09); background:rgba(15,31,53,0.6); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-close svg{width:20px;height:20px;color:#F4FAFA;}

/* ---------- CTA banner ---------- */
.cta-banner{
  background:
    radial-gradient(ellipse 70% 60% at 20% 20%, rgba(15,184,174,0.18), transparent 60%),
    var(--navy-900);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:80px 0;
}
.cta-inner{display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;}
.cta-inner h2{font-size:clamp(24px,2.8vw,34px); font-weight:800; max-width:560px;}
.cta-inner .actions{display:flex; gap:14px; flex-wrap:wrap;}

/* ---------- CONTACTO ---------- */
.contact{
  background:
    radial-gradient(ellipse 70% 60% at 80% 20%, rgba(15,184,174,0.14), transparent 60%),
    var(--navy-900);
  padding:110px 0 120px;
}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact h2{font-size:clamp(28px,3.4vw,42px); font-weight:800; line-height:1.15; margin-bottom:20px;}
.contact-lead{color:var(--slate-400); font-size:16px; line-height:1.7; margin-bottom:36px; max-width:440px;}
.contact-item{display:flex; align-items:center; gap:14px; margin-bottom:20px;}
.contact-item .ic{
  width:38px;height:38px;border-radius:10px;background:var(--navy-800);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact-item .ic svg{width:17px;height:17px;color:var(--cyan-400);}
.contact-item .label{font-size:12px; color:var(--slate-500); font-family:'JetBrains Mono',monospace;}
.contact-item .value{font-size:15px; font-weight:600;}
.mini-map{
  width:100%; max-width:340px; margin-top:28px; border-radius:14px;
  background:var(--navy-800); border:1px solid var(--line); padding:10px;
}

.form-card{
  background:var(--navy-800); border:1px solid var(--line); border-radius:18px; padding:36px;
}
.field{margin-bottom:18px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:480px){.field-row{grid-template-columns:1fr;}}
.field label{display:block; font-size:12.5px; color:var(--slate-400); margin-bottom:8px; font-family:'JetBrains Mono',monospace;}
.field input, .field textarea, .field select{
  width:100%; background:var(--navy-900); border:1px solid var(--line); border-radius:9px;
  padding:12px 14px; color:var(--white); font-family:'Inter',sans-serif; font-size:14.5px;
  transition:border-color .25s ease;
}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--cyan-400); outline:none;}
.field textarea{resize:vertical; min-height:90px;}
.form-note{font-size:12.5px; color:var(--slate-500); margin-top:10px; line-height:1.5;}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-950); border-top:1px solid var(--line); padding:70px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:50px;}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.footer-col h4{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:0.6px; text-transform:uppercase; color:var(--slate-500); margin-bottom:18px;}
.footer-col ul{display:flex; flex-direction:column; gap:11px;}
.footer-col a{color:var(--slate-400); font-size:14px; transition:color .2s ease;}
.footer-col a:hover{color:var(--cyan-400);}
.footer-about p{color:var(--slate-400); font-size:14px; line-height:1.65; margin:16px 0 20px; max-width:280px;}
.footer-bottom{
  border-top:1px solid var(--line); padding-top:26px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
}
.footer-logo{height:22px;}
footer .fine{font-size:13px; color:var(--slate-500);}
.social-row{display:flex; gap:10px;}
.social-row a{
  width:36px;height:36px;border-radius:9px;border:1px solid var(--line); display:flex; align-items:center; justify-content:center;
  transition:border-color .2s ease, color .2s ease; color:var(--slate-400);
}
.social-row a:hover{border-color:var(--cyan-400); color:var(--cyan-400);}
.social-row svg{width:16px;height:16px;}

/* whatsapp float */
.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:90;
  width:54px;height:54px;border-radius:50%; background:var(--grad);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 28px rgba(15,184,174,0.4);
  transition:transform .25s ease;
}
.wa-float:hover{transform:scale(1.08);}
.wa-float svg{width:26px;height:26px;color:var(--on-accent);}
