/* ============================================================
   360 TECH SOLUTIONS — sitio corporativo (Orbital 360)
   Brandbook: Negro dominante · Turquesa #11C3BD acento
             · Azul #0F5A79 · Blanco · Iconoir icons
   Type: Funnel Display (principal) · Unbounded (display)
   ============================================================ */

:root{
  --black:#000000; --ink:#05080e; --ink-2:#070c15;
  --panel:#0b1220; --panel-2:#0e1826;
  --line:rgba(159,236,233,.11); --line-2:rgba(159,236,233,.20);
  --turq:#11c3bd; --turq-bright:#43e7e1; --turq-soft:#9fece9;
  --azul:#0f5a79; --azul-2:#1b86ad; --white:#ffffff;
  --violet:#5b3fb0; --indigo:#241a4d;
  --mut:rgba(233,244,247,.62); --mut-2:rgba(233,244,247,.40); --mut-3:rgba(233,244,247,.24);
  /* Solutions (blanco 360) */
  --sol-bg:linear-gradient(155deg,#ffffff 0%, #eafaf9 48%, #c9f2ef 100%);
  --sol-ink:#061019; --sol-mut:rgba(9,20,32,.7); --sol-line:rgba(15,90,121,.16); --sol-turq:#0e8f88;

  --f-sans:'Funnel Display', system-ui, sans-serif;
  --f-display:'Unbounded', system-ui, sans-serif;

  --maxw:1280px; --pad-x:clamp(20px,5vw,72px);
  --nav-h:70px; --radius:18px; --radius-lg:26px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--black); color:var(--white);
  font-family:var(--f-sans); font-weight:300; font-size:17px; line-height:1.55;
  letter-spacing:.004em; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* ambient brand gradient */
body::before{
  content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(90% 60% at 86% -8%, rgba(67,231,225,.20), transparent 46%),
    radial-gradient(120% 80% at 78% 4%, rgba(17,195,189,.16), transparent 52%),
    radial-gradient(120% 90% at 30% 34%, rgba(27,134,173,.14), transparent 58%),
    radial-gradient(130% 100% at 8% 78%, rgba(91,63,176,.20), transparent 60%),
    radial-gradient(120% 90% at 60% 100%, rgba(36,26,77,.30), transparent 62%),
    linear-gradient(178deg,#000000 0%, #010207 60%, #05030d 100%);
}
/* subtle brand dot pattern for dark bands */
.section--dots{ position:relative; }
.section--dots::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(rgba(159,236,233,.10) 1px, transparent 1.4px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%, #000 8%, transparent 68%);
  mask-image:radial-gradient(120% 90% at 50% 0%, #000 8%, transparent 68%);
  opacity:.55;
}
.section--dots > .wrap{ position:relative; z-index:1; }
a{ color:var(--turq); text-decoration:none; }
a:hover{ color:var(--turq-bright); }
img,svg{ display:block; max-width:100%; }
h1,h2,h3,h4,p{ margin:0; }
::selection{ background:var(--turq); color:var(--black); }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad-x); }
.section{ position:relative; padding-block:clamp(72px,10vh,140px); }

/* ---- icon helper (Iconoir inline via <svg><use>) ---- */
.ico{ display:inline-flex; align-items:center; justify-content:center; }
.ico svg{ width:100%; height:100%; }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; gap:.6em; white-space:nowrap;
  font-family:var(--f-sans); font-weight:500; font-size:1rem;
  padding:.82em 1.4em; border-radius:100px; cursor:pointer;
  background:var(--turq); color:var(--black); border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s;
}
.btn .ico{ width:18px; height:18px; }
.btn:hover{ transform:translateY(-2px); box-shadow:0 16px 40px -14px rgba(17,195,189,.65); background:var(--turq-bright); color:var(--white); }
.btn .ar{ transition:transform .35s var(--ease); }
.btn:hover .ar{ transform:translateX(3px); }
.btn--ghost{ background:transparent; color:var(--white); border:1px solid var(--line-2); }
.btn--ghost:hover{ background:rgba(17,195,189,.07); border-color:var(--turq); box-shadow:none; }
.btn--sm{ font-size:.9rem; padding:.6em 1.1em; }

/* ---- type ---- */
.kicker{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--f-display); font-weight:300; font-size:.66rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--turq);
}
.kicker i{ width:6px; height:6px; border-radius:50%; background:var(--turq); display:inline-block; }
.h1{ font-family:var(--f-sans); font-weight:700; font-size:clamp(2.9rem,6.4vw,5.4rem); line-height:.98; letter-spacing:-.038em; text-wrap:balance; }
.h2{ font-family:var(--f-sans); font-weight:600; font-size:clamp(2rem,4vw,3.4rem); line-height:1.02; letter-spacing:-.03em; text-wrap:balance; }
.h3{ font-family:var(--f-sans); font-weight:600; font-size:clamp(1.5rem,2.6vw,2.2rem); line-height:1.06; letter-spacing:-.02em; }
.lead{ font-size:clamp(1.14rem,1.6vw,1.4rem); color:var(--mut); font-weight:300; line-height:1.5; text-wrap:pretty; }
.p{ color:var(--mut); font-weight:300; text-wrap:pretty; }
.p+.p{ margin-top:15px; }
.p b, .lead b{ color:var(--white); font-weight:500; }
.turq{ color:var(--turq); }

.sec-head{ max-width:720px; }
.sec-head--center{ text-align:center; margin-inline:auto; }
.sec-head--center .lead{ margin-inline:auto; }
.sec-head .h2{ margin-top:18px; }
.sec-head .lead{ margin-top:20px; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:90; height:var(--nav-h);
  display:flex; align-items:center;
  transition:background .5s var(--ease), border-color .5s, backdrop-filter .5s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(4,8,15,.72); backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%); border-bottom-color:var(--line);
}
.nav__in{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad-x); display:flex; align-items:center; gap:26px; }
.nav__logo img{ height:30px; width:auto; }
.nav__links{ display:flex; align-items:center; gap:4px; margin-left:14px; }
.nav__link{ position:relative; color:var(--mut); font-size:.95rem; font-weight:400; padding:9px 14px; border-radius:10px; transition:color .28s, background .28s; cursor:pointer; }
.nav__link:hover{ color:var(--white); background:rgba(159,236,233,.05); }
.nav__spacer{ flex:1; }
.nav__right{ display:flex; align-items:center; gap:14px; }
.lang{ display:inline-flex; align-items:center; gap:2px; border:1px solid var(--line-2); border-radius:100px; padding:3px; }
.lang button{ background:none; border:0; cursor:pointer; color:var(--mut-2); font-family:var(--f-display); font-weight:300; font-size:.62rem; letter-spacing:.1em; padding:5px 11px; border-radius:100px; transition:.3s; }
.lang button.on{ background:var(--turq); color:var(--black); }
.nav__burger{ display:none; width:44px; height:44px; border-radius:11px; border:1px solid var(--line-2); background:rgba(10,17,29,.6); color:var(--white); align-items:center; justify-content:center; cursor:pointer; }
.nav__burger .ico{ width:22px; height:22px; }

/* ---- products dropdown ---- */
.nav__drop{ position:relative; padding-bottom:14px; margin-bottom:-14px; }
.nav__menu{
  position:absolute; top:calc(100% + 2px); left:50%; transform:translateX(-50%) translateY(8px);
  width:340px; padding:10px; border-radius:16px;
  background:rgba(8,14,24,.94); backdrop-filter:blur(18px); border:1px solid var(--line-2);
  box-shadow:0 30px 70px -30px rgba(0,0,0,.8);
  opacity:0; visibility:hidden; transition:opacity .28s var(--ease), transform .28s var(--ease), visibility 0s linear .28s;
  display:flex; flex-direction:column; gap:2px;
}
/* invisible bridge so the cursor can cross into the menu without it closing */
.nav__menu::before{ content:""; position:absolute; top:-16px; left:0; right:0; height:16px; }
.nav__drop:hover .nav__menu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); transition:opacity .28s var(--ease), transform .28s var(--ease), visibility 0s; }
.nav__mi{ display:flex; align-items:center; gap:13px; padding:11px 12px; border-radius:11px; cursor:pointer; transition:background .25s; }
.nav__mi:hover{ background:rgba(17,195,189,.08); }
.nav__mi .ico{ width:22px; height:22px; color:var(--turq); flex:none; }
.nav__mi b{ display:block; font-weight:500; font-size:.94rem; color:var(--white); }
.nav__mi span{ display:block; font-size:.78rem; color:var(--mut-2); }
.nav__mi .n{ margin-left:auto; font-family:var(--f-display); font-size:.6rem; color:var(--mut-3); }

/* ============================================================
   HERO — orbital 360
   ============================================================ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; padding-top:calc(var(--nav-h) + 20px); padding-bottom:60px; }
.hero__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(30px,5vw,64px); align-items:center; width:100%; }
.hero__title{ margin-top:0; font-size:clamp(3.3rem,7.6vw,6.6rem); }
.hero__sub{ margin-top:26px; max-width:44ch; }
.hero__cta{ margin-top:38px; display:flex; gap:14px; flex-wrap:wrap; }
.hero__foot{ margin-top:46px; padding-top:26px; border-top:1px solid var(--line); display:flex; gap:32px; flex-wrap:wrap; }
.hero__fact .k{ font-family:var(--f-display); font-weight:300; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--mut-3); }
.hero__fact .v{ font-weight:500; font-size:1.02rem; margin-top:6px; }

/* orbital */
.orbit{ position:relative; width:100%; max-width:560px; aspect-ratio:1; margin-inline:auto; }
.orbit__svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.orbit__ring{ fill:none; stroke:rgba(159,236,233,.13); stroke-width:1; }
.orbit__ring--dash{ stroke:rgba(17,195,189,.34); stroke-width:1.4; stroke-dasharray:2 10; stroke-linecap:round; transform-origin:center; animation:orbitspin 60s linear infinite; }
.orbit__ring--dash2{ stroke:rgba(17,195,189,.18); stroke-width:1; stroke-dasharray:1 16; transform-origin:center; animation:orbitspin 90s linear infinite reverse; }
.orbit__spoke{ stroke:rgba(159,236,233,.1); stroke-width:1; }
@keyframes orbitspin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){ .orbit__ring--dash,.orbit__ring--dash2,.orbit__center-spin{ animation:none !important; } }

.orbit__center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:27%; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 40% 32%, rgba(17,195,189,.22), rgba(6,12,20,.92));
  border:1px solid var(--line-2); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 60px -10px rgba(17,195,189,.4), inset 0 0 30px rgba(17,195,189,.08);
}
.orbit__mark{ width:56%; height:56%; }
.orbit__center-spin{ transform-origin:256px 256px; animation:orbitspin 40s linear infinite; }

.orbit-node{
  position:absolute; transform:translate(-50%,-50%);
  display:flex; flex-direction:column; align-items:center; gap:9px;
  cursor:pointer; text-align:center; width:112px;
}
.orbit-node__disc{
  width:60px; height:60px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg, rgba(13,22,37,.92), rgba(8,14,24,.92));
  border:1px solid var(--line-2); color:var(--turq);
  transition:transform .4s var(--ease), border-color .35s, box-shadow .4s var(--ease), background .35s;
}
.orbit-node__disc .ico{ width:27px; height:27px; }
.orbit-node__label{ font-size:.78rem; font-weight:500; color:var(--mut); line-height:1.2; transition:color .3s; }
.orbit-node__n{ font-family:var(--f-display); font-size:.54rem; letter-spacing:.14em; color:var(--turq); opacity:.8; }
.orbit-node:hover .orbit-node__disc, .orbit-node.on .orbit-node__disc{
  transform:translateY(-3px) scale(1.06); border-color:var(--turq);
  box-shadow:0 16px 40px -14px rgba(17,195,189,.6); background:linear-gradient(180deg, rgba(17,195,189,.16), rgba(10,17,29,.9));
}
.orbit-node:hover .orbit-node__label, .orbit-node.on .orbit-node__label{ color:var(--white); }

/* ============================================================
   SOLUTIONS band (fondo blanco 360)
   ============================================================ */
.band--sol{ background:var(--sol-bg); color:var(--sol-ink); }
/* bandas claras consecutivas comparten un fondo plano continuo (sin costura) */
.band--sol:has(+ .band--sol),
.band--sol:has(+ .band--sol) + .band--sol{ background:#e9f7f5; }
/* a light CTA following another light band: drop its centred glow so there is no seam */
.band--sol + .cta.band--sol .cta__bg{ background:none; }
.band--sol .kicker{ color:var(--sol-turq); }
.band--sol .kicker i{ background:var(--sol-turq); }
.band--sol .p{ color:var(--sol-mut); }
.band--sol .p b{ color:var(--sol-ink); }
.band--sol .lead{ color:var(--sol-mut); }
.band--sol .h2{ color:var(--sol-ink); }
.cta.band--sol .cta__bg{ background:radial-gradient(60% 120% at 50% 60%, rgba(17,195,189,.16), transparent 72%); }
.band--sol .cta__meta{ color:var(--sol-mut); }
.band--sol .cta__meta a{ color:var(--sol-turq); }

.about__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(36px,6vw,80px); align-items:center; }
.about__title{ font-size:clamp(2.6rem,5vw,4.4rem); line-height:1.0; }
.about__facts{ margin-top:34px; display:grid; grid-template-columns:repeat(2,1fr); gap:26px 32px; }
.fct .k{ font-family:var(--f-display); font-weight:300; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(9,20,32,.5); }
.fct .v{ font-weight:600; font-size:1.06rem; margin-top:7px; color:var(--sol-ink); }
.lines2{ margin-top:34px; padding-top:26px; border-top:1px solid var(--sol-line); }
.lines2 .k{ font-family:var(--f-display); font-weight:300; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(9,20,32,.5); margin-bottom:14px; }
.lines2__list{ display:flex; flex-wrap:wrap; gap:9px; }
.lchip{ font-size:.88rem; color:var(--sol-mut); border:1px solid var(--sol-line); border-radius:100px; padding:7px 15px; background:rgba(255,255,255,.5); }
.lchip:first-child{ color:var(--sol-turq); border-color:rgba(15,90,121,.35); background:rgba(17,195,189,.14); }

/* ============================================================
   PRODUCT ROWS (estilo Lucanet — alternadas)
   ============================================================ */
.prow{ display:grid; grid-template-columns:1fr 1.08fr; gap:clamp(36px,6vw,84px); align-items:center; }
.prow+.prow{ margin-top:clamp(64px,9vh,120px); }
.prow--rev .prow__media{ order:-1; }
.prow__ic{ width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:rgba(17,195,189,.09); border:1px solid rgba(17,195,189,.22); color:var(--turq); margin-bottom:22px; }
.prow__ic .ico{ width:27px; height:27px; }
.prow__tag{ font-family:var(--f-display); font-weight:300; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--mut-3); }
.prow__name{ font-family:var(--f-sans); font-weight:600; font-size:clamp(1.8rem,3.2vw,2.7rem); letter-spacing:-.025em; margin:8px 0 16px; }
.prow__name .plus{ color:var(--turq); }
.prow__desc{ color:var(--mut); font-size:1.08rem; line-height:1.5; max-width:44ch; }
.prow__list{ list-style:none; margin:24px 0 26px; padding:0; display:flex; flex-direction:column; gap:12px; }
.prow__list li{ position:relative; padding-left:24px; color:var(--white); font-size:1rem; }
.prow__list li::before{ content:""; position:absolute; left:0; top:.62em; width:13px; height:1.6px; border-radius:2px; background:var(--turq); }
.prow__foot{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.prow__price{ font-family:var(--f-display); font-weight:400; font-size:.9rem; color:var(--turq); }
.prow__go{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:#fff; transition:gap .35s var(--ease), color .3s; }
.prow__go .ico{ width:18px; height:18px; }
.prow__go:hover{ gap:13px; color:var(--turq); }

/* ============================================================
   VALUES (cómo trabajamos)
   ============================================================ */
.values{ margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.value{ background:rgba(7,12,21,.6); padding:34px 30px; transition:background .4s; }
.value:hover{ background:rgba(13,22,37,.72); }
.value__ic{ width:34px; height:34px; color:var(--turq); margin-bottom:16px; display:flex; align-items:center; justify-content:center; }
.value__ic .ico{ width:34px; height:34px; }
.value h4{ font-family:var(--f-sans); font-weight:600; font-size:1.16rem; letter-spacing:-.01em; margin-bottom:9px; }
.value p{ color:var(--mut); font-size:.96rem; line-height:1.45; }

/* ============================================================
   SECTORS
   ============================================================ */
.sectors__grid{ margin-top:50px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.sector{ display:flex; align-items:flex-start; gap:16px; padding:24px 24px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(10,17,29,.4); transition:transform .4s var(--ease), border-color .35s; }
.sector:hover{ transform:translateY(-3px); border-color:var(--line-2); }
.sector__ic{ width:40px; height:40px; flex:none; border-radius:11px; display:flex; align-items:center; justify-content:center; background:rgba(17,195,189,.09); border:1px solid rgba(17,195,189,.2); color:var(--turq); }
.sector__ic .ico{ width:21px; height:21px; }
.sector b{ display:block; font-weight:600; font-size:1.04rem; margin-bottom:4px; }
.sector span{ color:var(--mut); font-size:.9rem; line-height:1.4; }

/* ============================================================
   CTA
   ============================================================ */
.cta{ position:relative; overflow:hidden; text-align:center; }
.cta__bg{ position:absolute; inset:0; z-index:0; background:radial-gradient(60% 120% at 50% 60%, rgba(17,195,189,.2), rgba(15,90,121,.06) 45%, transparent 72%); }
.cta__in{ position:relative; z-index:1; max-width:900px; margin-inline:auto; }
.cta .lead{ margin-top:22px; }
.cta__actions{ margin-top:40px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta__meta{ margin-top:34px; display:flex; gap:30px; justify-content:center; flex-wrap:wrap; color:var(--mut); font-size:.95rem; }
.cta__meta a{ color:var(--turq); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ position:relative; overflow:hidden; border-top:1px solid var(--line); background:#000; padding:70px var(--pad-x) 34px; }
.footer__in{ max-width:var(--maxw); margin-inline:auto; }
.footer__top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.footer__brand img{ height:34px; margin-bottom:20px; }
.footer__brand p{ color:var(--mut); max-width:30ch; font-size:.96rem; }
.footer__brand .cities{ margin-top:18px; font-family:var(--f-display); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--mut-2); }
.footer__col h5{ font-family:var(--f-display); font-weight:400; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--white); margin-bottom:20px; }
.footer__col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.footer__col a{ color:var(--mut); font-size:.94rem; transition:color .3s, padding-left .3s var(--ease); }
.footer__col a:hover{ color:var(--turq); padding-left:5px; }
.footer__base2{ position:relative; margin-top:50px; min-height:clamp(150px,20vw,280px); }
.footer__wm{ position:absolute; left:-.02em; bottom:-.12em; font-family:var(--f-display); font-weight:600; font-size:clamp(4.4rem,15.5vw,13.5rem); line-height:.78; letter-spacing:-.045em; color:transparent; -webkit-text-fill-color:rgba(233,244,247,.035); user-select:none; pointer-events:none; white-space:nowrap; }
.footer__copy{ position:absolute; right:0; bottom:14px; text-align:right; display:flex; flex-direction:column; gap:6px; color:var(--mut-3); font-size:.85rem; }
.footer__copy a{ color:var(--mut-2); }
.footer__copy a:hover{ color:var(--turq); }

/* ============================================================
   REVEAL
   ============================================================ */
[data-rev]{ opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-rev].in{ opacity:1; transform:none; }
[data-rev-d="1"]{ transition-delay:.08s; } [data-rev-d="2"]{ transition-delay:.16s; }
[data-rev-d="3"]{ transition-delay:.24s; } [data-rev-d="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion:reduce){ [data-rev]{ opacity:1 !important; transform:none !important; } }

/* ---- nav active (scroll-spy) ---- */
.nav__link.active{ color:var(--white); background:rgba(17,195,189,.1); }

/* ---- orbital hover popover + spoke highlight ---- */
.orbit-node__pop{ position:absolute; bottom:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(6px); width:186px; padding:12px 14px; border-radius:13px; background:rgba(6,11,20,.97); border:1px solid var(--line-2); box-shadow:0 22px 54px -20px rgba(0,0,0,.9); opacity:0; visibility:hidden; transition:opacity .28s var(--ease), transform .28s var(--ease); pointer-events:none; z-index:8; text-align:left; }
.orbit-node:hover .orbit-node__pop, .orbit-node.on .orbit-node__pop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.orbit-node__pop b{ display:block; font-weight:600; font-size:.92rem; color:#fff; letter-spacing:-.01em; }
.orbit-node__pop em{ display:block; font-style:normal; font-family:var(--f-display); font-weight:300; font-size:.62rem; letter-spacing:.06em; color:var(--turq); margin-top:8px; }
.orbit-node__pop span{ display:block; font-size:.78rem; color:var(--mut); margin-top:6px; line-height:1.4; }
.orbit__spoke{ transition:stroke .3s, stroke-width .3s; }
.orbit__spoke.on{ stroke:rgba(17,195,189,.7); stroke-width:2; }

/* ---- values en banda Solutions ---- */
.band--sol .values{ background:var(--sol-line); border-color:var(--sol-line); }
.band--sol .value{ background:rgba(255,255,255,.62); }
.band--sol .value:hover{ background:rgba(255,255,255,.86); }
.band--sol .value__ic{ color:var(--sol-turq); }
.band--sol .value h4{ color:var(--sol-ink); }
.band--sol .value p{ color:var(--sol-mut); }

/* ---- 6 líneas (qué hacemos) ---- */
.lines6__title{ font-size:clamp(2.5rem,5.2vw,4.4rem); line-height:1.0; }
.lines6{ margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.lcard{ position:relative; overflow:hidden; padding:34px 32px; border:1px solid var(--line); border-radius:20px; background:linear-gradient(180deg, rgba(13,22,36,.5), rgba(8,13,22,.34)); transition:transform .45s var(--ease), border-color .45s, background .45s; }
.lcard:hover{ transform:translateY(-6px); border-color:var(--line-2); background:linear-gradient(180deg, rgba(16,27,44,.82), rgba(9,15,25,.6)); }
.lcard__n{ position:absolute; top:16px; right:22px; font-family:var(--f-display); font-weight:600; font-size:4.4rem; line-height:1; color:rgba(159,236,233,.045); letter-spacing:-.04em; transition:color .45s; pointer-events:none; }
.lcard:hover .lcard__n{ color:rgba(17,195,189,.11); }
.lcard__ic{ width:50px; height:50px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:rgba(17,195,189,.09); border:1px solid rgba(17,195,189,.22); color:var(--turq); }
.lcard__ic .ico{ width:26px; height:26px; }
.lcard h4{ font-family:var(--f-sans); font-weight:600; font-size:1.48rem; letter-spacing:-.02em; margin:26px 0 10px; }
.lcard > p{ color:var(--mut); font-size:.98rem; line-height:1.5; }
.lcard ul{ list-style:none; margin:22px 0 0; padding:22px 0 0; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:11px; }
.lcard li{ position:relative; padding-left:22px; font-size:.94rem; color:var(--mut); }
.lcard li::before{ content:""; position:absolute; left:0; top:.62em; width:12px; height:1.6px; border-radius:2px; background:var(--turq); }
@media(max-width:960px){ .lines6{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .lines6{ grid-template-columns:1fr; } }

/* ============================================================
   MOBILE
   ============================================================ */
.mobmenu{ display:none; }
@media (max-width:900px){
  .hero__grid{ grid-template-columns:1fr; gap:20px; }
  .orbit{ max-width:440px; }
  .hero__grid > .hero__col:last-child{ order:-1; }
  .about__grid{ grid-template-columns:1fr; gap:30px; }
  .prow{ grid-template-columns:1fr; gap:30px; }
  .prow--rev .prow__media{ order:0; }
  .values{ grid-template-columns:1fr; }
  .sectors__grid{ grid-template-columns:1fr 1fr; }
  .footer__top{ grid-template-columns:1fr 1fr; gap:34px; }
  .footer__copy{ position:static; text-align:left; margin-top:24px; }
  .footer__wm{ position:static; font-size:22vw; margin-top:16px; }
  .footer__base2{ min-height:0; }
}
@media (max-width:720px){
  .nav__links, .nav__right .lang, .nav__right .btn{ display:none; }
  .nav__burger{ display:flex; }
  .sectors__grid{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; }
  .hero__foot{ gap:22px; }
  /* mobile slide menu */
  .mobmenu{ display:block; position:fixed; inset:0; z-index:120; visibility:hidden; }
  .mobmenu__scrim{ position:absolute; inset:0; background:rgba(2,4,9,.7); opacity:0; transition:opacity .4s; }
  .mobmenu__panel{ position:absolute; top:0; right:0; bottom:0; width:min(84vw,340px); background:#060c15; border-left:1px solid var(--line); transform:translateX(100%); transition:transform .4s var(--ease); display:flex; flex-direction:column; padding:20px; gap:6px; overflow-y:auto; }
  .mobmenu.open{ visibility:visible; }
  .mobmenu.open .mobmenu__scrim{ opacity:1; }
  .mobmenu.open .mobmenu__panel{ transform:none; }
  .mobmenu__close{ align-self:flex-end; width:42px; height:42px; border-radius:11px; border:1px solid var(--line-2); background:rgba(10,17,29,.6); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; margin-bottom:8px; }
  .mobmenu__close .ico{ width:22px; height:22px; }
  .mobmenu__link{ padding:14px 12px; border-radius:12px; color:var(--white); font-size:1.05rem; border:1px solid transparent; }
  .mobmenu__link:hover{ background:rgba(159,236,233,.06); }
  .mobmenu__foot{ margin-top:auto; display:flex; flex-direction:column; gap:14px; padding-top:16px; }
}
