/* =========================================================================
   NODIUS — main.css
   Diseño mobile-first. Las variables de marca se definen aquí mismo para que
   siempre se carguen en el sitio público.
   ========================================================================= */

:root{
  /* Paleta de marca Nodius */
  --nd-petrol:        #0f282f; /* base profunda */
  --nd-petrol-2:      #0c5164; /* petróleo medio */
  --nd-ink:           #222224; /* casi negro */
  --nd-periwinkle:    #bfcaf8; /* lavanda */
  --nd-mint-soft:     #cfffdf; /* menta clara */
  --nd-mint:          #8affb1; /* menta viva (acento principal) */
  --nd-bone:          #ebebeb; /* hueso / fondo claro */
  --nd-white:         #ffffff;

  /* Roles semánticos */
  --nd-bg:            var(--nd-petrol);
  --nd-bg-deep:       #081a1f;
  --nd-surface:       #12343c;
  --nd-text:          #eaf3f1;
  --nd-text-dim:      #9fc0bd;
  --nd-accent:        var(--nd-mint);
  --nd-accent-2:      var(--nd-periwinkle);

  /* Tipografía — una sola familia. Títulos ExtraBold 800, cuerpos ExtraLight 200.
     Para cambiar la fuente del sitio entero, edita SOLO esta línea. */
  --nd-font:          'Montserrat', system-ui, -apple-system, sans-serif;
  --nd-font-display:  var(--nd-font);
  --nd-font-body:     var(--nd-font);

  /* Ritmo */
  --nd-radius:        22px;
  --nd-radius-lg:     34px;
  --nd-maxw:          1320px;
  --nd-gutter:        clamp(20px, 5vw, 80px);
  --nd-section:       clamp(80px, 12vh, 160px);
  --nd-ease:          cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--nd-bg);
  color:var(--nd-text);
  font-family:var(--nd-font-body);
  font-weight:200;
  line-height:1.65;
  font-size:clamp(15px,1.6vw,17px);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

h1,h2,h3,h4{
  font-family:var(--nd-font-display);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.02em;
  margin:0;
}

/* Selección de texto */
::selection{ background:var(--nd-mint); color:var(--nd-petrol); }

/* ---------------------------------------------------------------- Layout */
.nd-container{ width:100%; max-width:var(--nd-maxw); margin-inline:auto; padding-inline:var(--nd-gutter); }
.nd-h2{ font-size:clamp(2rem,5.5vw,3.6rem); }
.nd-h2--light{ color:var(--nd-bone); }

.nd-skip{ position:absolute; left:-9999px; }
.nd-skip:focus{ left:16px; top:16px; z-index:9999; background:var(--nd-mint); color:var(--nd-petrol); padding:10px 16px; border-radius:8px; }

/* ----------------------------------------------------------------- Tags */
.nd-tag{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--nd-font-display); font-weight:600;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--nd-mint);
}
.nd-tag::before{ content:""; width:26px; height:1px; background:var(--nd-mint); opacity:.7; }
.nd-tag--light{ color:var(--nd-periwinkle); }
.nd-tag--light::before{ background:var(--nd-periwinkle); }

/* -------------------------------------------------------------- Buttons */
.nd-btn{
  --bg:var(--nd-mint); --fg:var(--nd-petrol);
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 26px; border-radius:100px; border:1px solid transparent;
  font-family:var(--nd-font-display); font-weight:700; font-size:.92rem; letter-spacing:.01em;
  background:var(--bg); color:var(--fg);
  transition:transform .4s var(--nd-ease), background .3s ease, color .3s ease, box-shadow .4s ease;
  will-change:transform;
}
.nd-btn:hover{ transform:translateY(-3px); box-shadow:0 14px 40px -12px rgba(138,255,177,.5); }
.nd-btn--mint{ --bg:var(--nd-mint); --fg:#08231a; }
.nd-btn--ghost{ background:transparent; color:var(--nd-text); border-color:rgba(191,202,248,.35); }
.nd-btn--ghost:hover{ border-color:var(--nd-periwinkle); box-shadow:none; }
.nd-btn--block{ width:100%; }

/* -------------------------------------------------------------- Header */
.nd-header{
  position:fixed; inset:0 0 auto 0; z-index:1000;
  padding:14px 0;
  transition:background .45s ease, padding .45s ease, backdrop-filter .45s ease, box-shadow .45s ease;
}
.nd-header.is-stuck{
  background:rgba(8,26,31,.72);
  backdrop-filter:blur(16px);
  padding:8px 0;
  box-shadow:0 1px 0 rgba(191,202,248,.08);
}
.nd-header__inner{
  width:100%; max-width:var(--nd-maxw); margin-inline:auto; padding-inline:var(--nd-gutter);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.nd-logo{ display:inline-flex; align-items:center; flex-shrink:0; }
.nd-logo img{ height:34px; width:auto; }
/* El logo es negro: lo invertimos a blanco sobre los fondos petróleo. */
.nd-logo--invert img{ filter:invert(1) brightness(2.4); }

.nd-nav{ display:none; }
.nd-nav__list{ list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.nd-nav__list a{
  font-family:var(--nd-font-display); font-weight:500; font-size:.92rem; color:var(--nd-text);
  position:relative; padding:4px 0; opacity:.85; transition:opacity .3s ease;
}
.nd-nav__list a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--nd-mint);
  transition:width .35s var(--nd-ease);
}
.nd-nav__list a:hover{ opacity:1; }
.nd-nav__list a:hover::after{ width:100%; }
.nd-header__cta{ display:none; }

/* Burger */
.nd-burger{ width:46px; height:46px; border:1px solid rgba(191,202,248,.3); border-radius:50%; background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.nd-burger span{ width:18px; height:2px; background:var(--nd-text); border-radius:2px; transition:transform .35s var(--nd-ease), opacity .25s ease; }
.nd-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nd-burger.is-open span:nth-child(2){ opacity:0; }
.nd-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.nd-mobile-menu{
  position:fixed; inset:0; z-index:999;
  background:linear-gradient(160deg,var(--nd-bg-deep),var(--nd-petrol));
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity .45s var(--nd-ease), transform .45s var(--nd-ease), visibility .45s;
}
.nd-mobile-menu.is-open{ opacity:1; visibility:visible; transform:none; }
.nd-mobile-menu nav{ display:flex; flex-direction:column; gap:22px; text-align:center; }
.nd-mobile-menu nav a{ font-family:var(--nd-font-display); font-weight:800; font-size:2rem; color:var(--nd-text); }
.nd-mobile-menu nav a.nd-btn{ font-size:1rem; margin-top:14px; }

/* ----------------------------------------------------------------- Hero */
.nd-hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding:140px 0 90px; overflow:hidden;
  background:radial-gradient(120% 90% at 80% 0%, #12343c 0%, var(--nd-petrol) 45%, var(--nd-bg-deep) 100%);
}
.nd-hero__orbs{ position:absolute; inset:0; z-index:0; }
.nd-orb{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; }
.nd-orb--1{ width:50vw; height:50vw; background:var(--nd-petrol-2); top:-10%; right:-12%; }
.nd-orb--2{ width:42vw; height:42vw; background:rgba(138,255,177,.32); bottom:-18%; left:-10%; }
.nd-orb--3{ width:30vw; height:30vw; background:rgba(191,202,248,.28); top:30%; left:42%; }

.nd-hero__inner{ position:relative; z-index:2; }
.nd-hero__eyebrow{ color:var(--nd-periwinkle); font-weight:500; letter-spacing:.06em; margin:0 0 18px; }
.nd-hero__title{
  font-size:clamp(2.6rem,11vw,7rem); line-height:.98; max-width:16ch;
}
.nd-hero__title .nd-rotator{ color:var(--nd-mint); }
.nd-hero__sub{ max-width:54ch; margin:26px 0 34px; color:var(--nd-text-dim); font-size:clamp(1rem,2.4vw,1.2rem); }
.nd-hero__actions{ display:flex; flex-wrap:wrap; gap:14px; }

/* Rotador de palabras */
.nd-rotator{ position:relative; display:inline-grid; }
.nd-rotator__word{
  grid-area:1/1; opacity:0; transform:translateY(.4em) scaleY(.6) skewX(-8deg);
  transition:opacity .5s var(--nd-ease), transform .5s var(--nd-ease);
}
.nd-rotator__word.is-active{ opacity:1; transform:none; }

/* Sello circular giratorio */
.nd-badge{ position:absolute; right:0; top:8%; width:140px; height:140px; display:none; }
.nd-badge svg{ width:100%; height:100%; animation:nd-spin 16s linear infinite; }
.nd-badge text{ font-family:var(--nd-font-display); font-weight:600; font-size:13px; letter-spacing:2px; fill:var(--nd-periwinkle); text-transform:uppercase; }
.nd-badge__core{ position:absolute; inset:0; margin:auto; width:54px; height:54px; border-radius:50%; background:var(--nd-mint); color:var(--nd-petrol); display:flex; align-items:center; justify-content:center; font-family:var(--nd-font-display); font-weight:800; font-size:1.6rem; }
@keyframes nd-spin{ to{ transform:rotate(360deg); } }

/* Scroll cue */
.nd-hero__scroll{ position:absolute; left:var(--nd-gutter); bottom:28px; z-index:3; display:flex; align-items:center; gap:12px; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--nd-text-dim); }
.nd-hero__scroll i{ width:22px; height:22px; border-right:1.5px solid var(--nd-mint); border-bottom:1.5px solid var(--nd-mint); transform:rotate(45deg); animation:nd-bounce 1.8s var(--nd-ease) infinite; }
@keyframes nd-bounce{ 0%,100%{ transform:rotate(45deg) translate(0,0); } 50%{ transform:rotate(45deg) translate(4px,4px); } }

/* --------------------------------------------------------------- About */
.nd-about{ padding:var(--nd-section) 0; position:relative; background:var(--nd-petrol); }
.nd-marquee{ overflow:hidden; border-block:1px solid rgba(191,202,248,.12); padding:18px 0; margin-bottom:clamp(48px,8vh,96px); }
.nd-marquee__track{ display:flex; gap:34px; white-space:nowrap; width:max-content; animation:nd-marquee 26s linear infinite; }
.nd-marquee__track span{ font-family:var(--nd-font-display); font-weight:800; font-size:clamp(1.4rem,4vw,2.4rem); color:transparent; -webkit-text-stroke:1px rgba(207,255,223,.5); text-transform:uppercase; }
.nd-marquee__dot{ -webkit-text-stroke:0 !important; color:var(--nd-mint) !important; }
@keyframes nd-marquee{ to{ transform:translateX(-50%); } }

.nd-about__inner{ display:grid; gap:24px; }
.nd-about__title{ font-size:clamp(1.9rem,6vw,3.8rem); max-width:18ch; }
.nd-about__body{ max-width:62ch; color:var(--nd-text-dim); font-size:clamp(1.02rem,2.4vw,1.22rem); }

/* ------------------------------------------------------- Services (HS) */
.nd-services{ padding:var(--nd-section) 0; background:linear-gradient(180deg,var(--nd-petrol),#0a2128); }
.nd-services__head{ display:grid; gap:18px; margin-bottom:48px; }
.nd-services__head .nd-h2{ max-width:20ch; }

.nd-hscroll{ position:relative; }
.nd-hscroll__track{
  display:flex; gap:22px; padding-inline:var(--nd-gutter);
  overflow-x:auto; scroll-snap-type:x mandatory;
  -ms-overflow-style:none; scrollbar-width:none;
  padding-bottom:8px;
}
.nd-hscroll__track::-webkit-scrollbar{ display:none; }
.nd-scard{
  scroll-snap-align:start; flex:0 0 78vw; max-width:340px;
  background:linear-gradient(160deg,rgba(18,52,60,.9),rgba(12,38,45,.9));
  border:1px solid rgba(191,202,248,.14); border-radius:var(--nd-radius-lg);
  padding:30px; display:flex; flex-direction:column; min-height:300px;
  position:relative; overflow:hidden;
  transition:transform .5s var(--nd-ease), border-color .4s ease, background .4s ease;
}
.nd-scard::after{ content:""; position:absolute; inset:auto -40% -50% auto; width:70%; height:70%; background:radial-gradient(circle,rgba(138,255,177,.18),transparent 70%); opacity:0; transition:opacity .5s ease; }
.nd-scard:hover{ transform:translateY(-6px); border-color:rgba(138,255,177,.45); }
.nd-scard:hover::after{ opacity:1; }
.nd-scard__num{ font-family:var(--nd-font-display); font-weight:800; font-size:1rem; color:var(--nd-mint); opacity:.7; }
.nd-scard__title{ font-size:1.5rem; margin:16px 0 12px; color:var(--nd-bone); }
.nd-scard__desc{ color:var(--nd-text-dim); flex:1; }
.nd-scard__arrow{ margin-top:18px; font-size:1.4rem; color:var(--nd-mint); transform:translateX(-6px); opacity:0; transition:transform .4s var(--nd-ease), opacity .4s ease; }
.nd-scard:hover .nd-scard__arrow{ transform:none; opacity:1; }
.nd-scard--cta{ background:linear-gradient(160deg,var(--nd-mint),#5fe39a); justify-content:center; align-items:flex-start; }
.nd-scard--cta .nd-scard__title,.nd-scard--cta .nd-scard__desc{ color:#08231a; }
.nd-scard--cta .nd-btn{ margin-top:18px; background:var(--nd-petrol); color:var(--nd-mint); }

.nd-hscroll__progress{ display:none; height:2px; background:rgba(191,202,248,.18); margin:26px var(--nd-gutter) 0; border-radius:2px; overflow:hidden; }
.nd-hscroll__progress span{ display:block; height:100%; width:0; background:var(--nd-mint); transform-origin:left; }
.nd-hscroll__hint{ margin:18px var(--nd-gutter) 0; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--nd-text-dim); }

/* ------------------------------------------------------------ Benefits */
.nd-benefits{ padding:var(--nd-section) 0; background:#0a2128; }
.nd-benefits__inner{ display:grid; gap:48px; }
.nd-benefits__text{ display:grid; gap:22px; align-content:start; }
.nd-benefits__lead{ font-size:clamp(1.3rem,4vw,2.1rem); font-weight:300; color:var(--nd-bone); max-width:24ch; font-family:var(--nd-font-body); line-height:1.3; }
.nd-benefits__text .nd-btn{ justify-self:start; }
.nd-benefits__cards{ display:grid; gap:16px; }
.nd-benefit{
  border:1px solid rgba(191,202,248,.16); border-radius:var(--nd-radius);
  padding:28px; background:linear-gradient(160deg,rgba(18,52,60,.6),transparent);
  display:flex; flex-direction:column; gap:6px;
}
.nd-benefit__value{ font-family:var(--nd-font-display); font-weight:800; font-size:clamp(2.4rem,8vw,3.6rem); color:var(--nd-mint); line-height:1; }
.nd-benefit__label{ color:var(--nd-text-dim); }

/* ----------------------------------------------------- Method (slider) */
.nd-method{ position:relative; padding:var(--nd-section) 0; overflow:hidden; min-height:80vh; display:flex; align-items:center; }
.nd-method__bg{ position:absolute; inset:0; z-index:0; }
.nd-method__layer{ position:absolute; inset:0; opacity:0; transform:scale(1.08); transition:opacity 1s var(--nd-ease), transform 1.2s var(--nd-ease); }
.nd-method__layer.is-active{ opacity:1; transform:scale(1); }
.nd-method::after{ content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(120% 80% at 100% 0,transparent,rgba(8,26,31,.5)); }
.nd-method__inner{ position:relative; z-index:2; display:grid; gap:40px; }

.nd-method__aside .nd-method__title{ font-size:clamp(3rem,14vw,7rem); color:var(--nd-bone); margin:14px 0 26px; -webkit-text-stroke:1px rgba(207,255,223,.35); color:transparent; }
.nd-method__dots{ display:flex; flex-wrap:wrap; gap:12px; }
.nd-method__dot{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(191,202,248,.3); background:transparent; color:var(--nd-text-dim); font-family:var(--nd-font-display); font-weight:700; transition:all .4s var(--nd-ease); display:flex; align-items:center; justify-content:center; }
.nd-method__dot.is-active{ background:var(--nd-mint); color:var(--nd-petrol); border-color:var(--nd-mint); transform:scale(1.12); }

.nd-method__stage{ position:relative; min-height:240px; }
.nd-step{ position:absolute; inset:0; opacity:0; transform:translateY(30px); transition:opacity .6s var(--nd-ease), transform .6s var(--nd-ease); pointer-events:none; }
.nd-step.is-active{ opacity:1; transform:none; position:relative; pointer-events:auto; }
.nd-step__num{ font-family:var(--nd-font-display); font-weight:800; font-size:clamp(3rem,10vw,5rem); color:var(--nd-mint); display:block; line-height:1; }
.nd-step__title{ font-size:clamp(1.6rem,5vw,2.6rem); margin:14px 0 14px; color:var(--nd-bone); max-width:16ch; }
.nd-step__desc{ color:var(--nd-mint-soft); max-width:46ch; font-size:clamp(1rem,2.4vw,1.15rem); }

/* ---------------------------------------------------------------- Team */
.nd-team{ padding:var(--nd-section) 0; background:var(--nd-bone); color:var(--nd-ink); }
.nd-team .nd-tag{ color:var(--nd-petrol-2); }
.nd-team .nd-tag::before{ background:var(--nd-petrol-2); }
.nd-team__intro{ max-width:60ch; margin-bottom:clamp(40px,7vh,80px); display:grid; gap:20px; }
.nd-team__lead{ font-size:clamp(1.15rem,3vw,1.7rem); font-weight:300; line-height:1.4; color:#2a3a3c; }
.nd-team__grid{ display:grid; gap:26px; }
.nd-member{
  background:#fff; border-radius:var(--nd-radius-lg); overflow:hidden;
  border:1px solid rgba(15,40,47,.08); box-shadow:0 30px 60px -40px rgba(15,40,47,.4);
  transition:transform .5s var(--nd-ease), box-shadow .5s ease;
}
.nd-member:hover{ transform:translateY(-6px); box-shadow:0 40px 70px -36px rgba(15,40,47,.45); }
.nd-member__photo{ aspect-ratio:4/5; background:linear-gradient(160deg,var(--nd-petrol),var(--nd-petrol-2)); position:relative; overflow:hidden; }
.nd-member__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--nd-ease); }
.nd-member:hover .nd-member__photo img{ transform:scale(1.05); }
.nd-member__mono{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--nd-font-display); font-weight:800; font-size:4rem; color:var(--nd-mint); opacity:.85; }
.nd-member__body{ padding:26px 26px 30px; }
.nd-member__name{ font-size:1.5rem; color:var(--nd-petrol); }
.nd-member__role{ color:var(--nd-petrol-2); font-weight:500; margin:6px 0 14px; font-size:.95rem; }
.nd-member__bio{ color:#41555a; font-size:.98rem; }
.nd-member__li{ display:inline-block; margin-top:16px; font-weight:600; color:var(--nd-petrol); border-bottom:1px solid currentColor; padding-bottom:2px; }

/* ------------------------------------------------------------- Clients */
.nd-clients{ padding:clamp(60px,10vh,120px) 0; background:var(--nd-bone); color:var(--nd-ink); }
.nd-clients .nd-tag{ color:var(--nd-petrol-2); }
.nd-clients .nd-tag::before{ background:var(--nd-petrol-2); }
.nd-clients__grid{ margin-top:34px; display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.nd-client{
  display:flex; align-items:center; justify-content:center; min-height:110px;
  border:1px solid rgba(15,40,47,.12); border-radius:var(--nd-radius);
  padding:24px; background:#fff; transition:transform .4s var(--nd-ease), border-color .3s ease;
}
.nd-client:hover{ transform:translateY(-4px); border-color:var(--nd-petrol-2); }
.nd-client__logo{ max-height:54px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .4s ease, opacity .4s ease; }
.nd-client:hover .nd-client__logo{ filter:none; opacity:1; }
.nd-client__name{ font-family:var(--nd-font-display); font-weight:800; font-size:1.15rem; color:var(--nd-petrol); text-align:center; }

/* --------------------------------------------------------- Cases stack */
.nd-cases{ padding:var(--nd-section) 0; background:linear-gradient(180deg,#0a2128,var(--nd-petrol)); }
.nd-cases__head{ display:grid; gap:16px; margin-bottom:40px; }
.nd-cases__head .nd-h2{ max-width:16ch; }
.nd-stack__inner{ display:flex; flex-direction:column; gap:20px; }
.nd-case{
  background:linear-gradient(160deg,rgba(18,52,60,.96),rgba(12,38,45,.96));
  border:1px solid rgba(191,202,248,.16); border-radius:var(--nd-radius-lg);
  padding:28px; box-shadow:0 30px 70px -40px rgba(0,0,0,.7);
}
.nd-case__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:20px; margin-bottom:20px; border-bottom:1px solid rgba(191,202,248,.14); }
.nd-case__brand{ display:flex; align-items:center; gap:14px; }
.nd-case__logo{ max-height:46px; width:auto; object-fit:contain; }
.nd-case__mono{ width:54px; height:54px; border-radius:14px; background:var(--nd-petrol-2); color:var(--nd-mint); display:flex; align-items:center; justify-content:center; font-family:var(--nd-font-display); font-weight:800; font-size:1.2rem; flex-shrink:0; }
.nd-case__name{ font-size:1.4rem; color:var(--nd-bone); }
.nd-case__tag{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--nd-periwinkle); }
.nd-case__index{ font-family:var(--nd-font-display); font-weight:800; font-size:1.4rem; color:rgba(191,202,248,.4); }
.nd-case__grid{ display:grid; gap:20px; }
.nd-case__label{ display:block; font-family:var(--nd-font-display); font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--nd-mint); margin-bottom:8px; }
.nd-case__col p{ margin:0; color:var(--nd-text-dim); }
.nd-case__col--result p{ color:var(--nd-mint-soft); }

/* ---------------------------------------------------------- Testimonios */
.nd-testi{ padding:var(--nd-section) 0; background:var(--nd-petrol); }
.nd-testi__viewport{ overflow:hidden; margin-top:34px; }
.nd-testi__track{ display:flex; transition:transform .7s var(--nd-ease); }
.nd-quote{ flex:0 0 100%; margin:0; padding-right:24px; }
.nd-quote blockquote{
  margin:0; font-family:var(--nd-font-display); font-weight:200;
  font-size:clamp(1.4rem,5vw,2.6rem); line-height:1.28; color:var(--nd-bone); letter-spacing:-.01em;
}
.nd-quote blockquote::before{ content:"“"; color:var(--nd-mint); font-size:1.4em; line-height:0; vertical-align:-.3em; margin-right:.08em; }
.nd-quote figcaption{ margin-top:26px; display:flex; flex-direction:column; gap:2px; }
.nd-quote figcaption strong{ font-family:var(--nd-font-display); font-weight:700; color:var(--nd-mint); }
.nd-quote figcaption span{ color:var(--nd-text-dim); font-size:.92rem; }
.nd-testi__nav{ display:flex; gap:12px; margin-top:30px; }
.nd-testi__nav button{ width:52px; height:52px; border-radius:50%; border:1px solid rgba(191,202,248,.3); background:transparent; color:var(--nd-text); font-size:1.1rem; transition:all .35s var(--nd-ease); }
.nd-testi__nav button:hover{ background:var(--nd-mint); color:var(--nd-petrol); border-color:var(--nd-mint); }

/* -------------------------------------------------------------- Footer */
.nd-footer{ position:relative; padding:var(--nd-section) 0 40px; background:linear-gradient(180deg,var(--nd-petrol),var(--nd-bg-deep)); overflow:hidden; }
.nd-footer__glow{ position:absolute; top:-20%; left:50%; transform:translateX(-50%); width:80vw; height:60vw; background:radial-gradient(circle,rgba(138,255,177,.16),transparent 65%); filter:blur(40px); z-index:0; }
.nd-footer .nd-container{ position:relative; z-index:1; }
.nd-footer__grid{ display:grid; gap:48px; }
.nd-footer__title{ font-size:clamp(2rem,7vw,4rem); max-width:14ch; color:var(--nd-bone); }
.nd-footer__contact{ display:flex; flex-direction:column; gap:10px; margin:28px 0; }
.nd-footer__link{ font-size:1.05rem; color:var(--nd-text-dim); display:flex; align-items:baseline; gap:10px; }
.nd-footer__link span{ font-family:var(--nd-font-display); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--nd-mint); }
.nd-footer__link:hover{ color:var(--nd-bone); }
.nd-footer .nd-logo img{ height:30px; margin-top:10px; }

/* Form */
.nd-form{ display:grid; gap:16px; }
.nd-form__row{ display:grid; gap:16px; }
.nd-field{ display:grid; gap:8px; }
.nd-field span{ font-family:var(--nd-font-display); font-weight:600; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--nd-periwinkle); }
.nd-field input,.nd-field textarea{
  width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(191,202,248,.2);
  border-radius:14px; padding:14px 16px; color:var(--nd-text); font-family:inherit; font-size:1rem;
  transition:border-color .3s ease, background .3s ease;
}
.nd-field input::placeholder,.nd-field textarea::placeholder{ color:rgba(159,192,189,.5); }
.nd-field input:focus,.nd-field textarea:focus{ outline:none; border-color:var(--nd-mint); background:rgba(138,255,177,.06); }
.nd-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }
.nd-form__status{ margin:0; font-size:.95rem; min-height:1.2em; }
.nd-form__status.is-ok{ color:var(--nd-mint); }
.nd-form__status.is-err{ color:#ff9a9a; }

.nd-footer__bottom{ margin-top:64px; padding-top:24px; border-top:1px solid rgba(191,202,248,.12); display:grid; gap:18px; align-items:center; }
.nd-footer__bottom p{ margin:0; color:var(--nd-text-dim); font-size:.88rem; }
.nd-footer__meta{ display:flex; flex-wrap:wrap; gap:18px; }
.nd-footer__meta a{ color:var(--nd-text-dim); font-size:.88rem; }
.nd-footer__meta a:hover{ color:var(--nd-mint); }
.nd-social{ display:flex; gap:10px; }
.nd-social a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(191,202,248,.25); display:flex; align-items:center; justify-content:center; font-family:var(--nd-font-display); font-weight:700; font-size:.78rem; color:var(--nd-text-dim); text-transform:lowercase; transition:all .35s var(--nd-ease); }
.nd-social a:hover{ background:var(--nd-mint); color:var(--nd-petrol); border-color:var(--nd-mint); }

/* ------------------------------------------------------- Pages basic */
.nd-page{ padding:160px 0 120px; }
.nd-page__narrow{ max-width:780px; }
.nd-page__title{ font-size:clamp(2rem,6vw,3.4rem); margin-bottom:24px; color:var(--nd-bone); }
.nd-page__content{ color:var(--nd-text-dim); }
.nd-page__content a{ color:var(--nd-mint); }
.nd-article{ padding:24px 0; border-bottom:1px solid rgba(191,202,248,.12); }
.nd-article__title a{ color:var(--nd-bone); }

/* ----------------------------------------------------- Reveal on scroll */
.nd-reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--nd-ease), transform .8s var(--nd-ease); }
.nd-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .nd-reveal{ opacity:1; transform:none; transition:none; }
  .nd-badge svg,.nd-marquee__track,.nd-hero__scroll i{ animation:none !important; }
}

/* =========================================================================
   RESPONSIVE — breakpoints (mobile-first sube hacia arriba)
   ========================================================================= */

/* ≥ 600px */
@media (min-width:600px){
  .nd-form__row{ grid-template-columns:1fr 1fr; }
  .nd-clients__grid{ grid-template-columns:repeat(3,1fr); }
  .nd-scard{ flex-basis:52vw; }
  .nd-case__grid{ grid-template-columns:repeat(3,1fr); }
  .nd-footer__bottom{ grid-template-columns:1fr auto auto; }
}

/* ≥ 860px (tablet / desktop) */
@media (min-width:860px){
  .nd-nav{ display:block; }
  .nd-burger{ display:none; }
  .nd-header__cta{ display:inline-flex; }
  .nd-badge{ display:block; }

  .nd-about__inner{ grid-template-columns:1.1fr 1fr; align-items:end; }
  .nd-about__head{ grid-column:1/-1; }
  .nd-about__title{ grid-row:2; }
  .nd-about__body{ grid-row:2; padding-bottom:6px; }

  .nd-benefits__inner{ grid-template-columns:1fr 1fr; align-items:center; }
  .nd-benefits__cards{ grid-template-columns:1fr 1fr; }
  .nd-benefits__cards .nd-benefit:first-child{ grid-column:1/-1; }

  .nd-method__inner{ grid-template-columns:.8fr 1.4fr; align-items:center; gap:60px; }

  .nd-team__grid{ grid-template-columns:repeat(2,1fr); gap:30px; }
  .nd-clients__grid{ grid-template-columns:repeat(4,1fr); }

  .nd-quote{ flex-basis:60%; }

  .nd-footer__grid{ grid-template-columns:1fr 1.1fr; gap:64px; align-items:start; }

  /* Scroll horizontal real: la pista se "fija" y se mueve en X con el scroll. */
  .nd-hscroll.is-hs{ height:auto; }
  .nd-hscroll.is-hs .nd-hscroll__track{
    overflow:visible; flex-wrap:nowrap; padding-inline:var(--nd-gutter);
    scroll-snap-type:none; will-change:transform;
  }
  .nd-hscroll.is-hs .nd-hscroll__progress{ display:block; }
  .nd-hscroll.is-hs .nd-hscroll__hint{ display:none; }
  .nd-scard{ flex-basis:380px; min-height:360px; }
}

/* ≥ 1100px */
@media (min-width:1100px){
  .nd-team__grid{ grid-template-columns:repeat(2,1fr); max-width:1000px; }
  .nd-hero__title{ font-size:clamp(4rem,8vw,7rem); }
  .nd-badge{ width:160px; height:160px; right:4%; top:14%; }
}
