/* ══════════════════════════════════════
   TOKENS & RESET
══════════════════════════════════════ */
/* ── BRAND (immutable) ── */
:root {
  --blue:        #1A6FBF;
  --blue-light:  #2589E0;
  --blue-dark:   #0D4A82;
  --orange:      #F5820A;
  --orange-dark: #C96800;
  --white:       #ffffff;
  --font-display:'Barlow Condensed', sans-serif;
  --font-body:   'Barlow', sans-serif;
  --nav-h:       64px;
  --r:           4px;
  --transition-theme: background .35s ease, color .35s ease, border-color .35s ease;
}
/* ── DARK THEME ── */
[data-theme="dark"] {
  --bg-page:     #111111;
  --bg-surf:     #1C1C1C;
  --bg-surf2:    #242424;
  --bg-nav:      rgba(12,12,12,.97);
  --bg-menu:     rgba(10,10,10,.98);
  --bg-hero:     #07090f;
  --bg-section:  #111111;
  --bg-card:     #242424;
  --bg-input:    rgba(255,255,255,.06);
  --bg-contact:  #0b1822;
  --text-1:      #ffffff;
  --text-2:      rgba(255,255,255,.65);
  --text-3:      rgba(255,255,255,.4);
  --text-4:      rgba(255,255,255,.25);
  --border:      rgba(255,255,255,.08);
  --border-2:    rgba(255,255,255,.12);
  --border-input:rgba(255,255,255,.12);
  --why-bg:      #F4F3F0;
  --why-text:    #1A1A1A;
  --why-feat-bg: #FFFFFF;
  --why-feat-text:#1A1A1A;
  --why-feat-sub: #7A7A7A;
  --testi-bg:    #1C1C1C;
  --testi-text:  rgba(255,255,255,.65);
  --ticker-bg:   #1C1C1C;
  --sector-bg:   #1C1C1C;
  --sector-hover:rgba(245,130,10,.04);
  --footer-bg:   #070707;
  --canvas-snow: rgba(100,200,255,1);
  --canvas-spark:#ffe040;
  --canvas-ember-a:#F5820A;
  --canvas-ember-b:#ff4020;
  --canvas-gear: rgba(255,255,255,1);
  --hero-grad: radial-gradient(ellipse 80% 60% at 20% 50%,rgba(26,111,191,.18) 0%,transparent 60%),radial-gradient(ellipse 60% 60% at 80% 60%,rgba(245,130,10,.12) 0%,transparent 60%);
  --hero-grid: rgba(255,255,255,.03);
  --hero-title-shadow: rgba(26,111,191,.3);
  --stat-bg:   rgba(255,255,255,.03);
  --stat-border:rgba(255,255,255,.07);
  --ai-bg: linear-gradient(135deg,#0a0f1a 0%,#0d1e35 50%,#111111 100%);
}
/* ── LIGHT THEME (default) ── */
:root, [data-theme="light"] {
  --bg-page:    #EFF0EC;
  --bg-surf:    #FFFFFF;
  --bg-surf2:   #F6F5F2;
  --bg-nav:     rgba(255,255,255,.97);
  --bg-menu:    rgba(248,247,244,.99);
  --bg-hero:    #E2E8F4;
  --bg-section: #EFF0EC;
  --bg-card:    #FFFFFF;
  --bg-input:   rgba(0,0,0,.04);
  --bg-contact: #0b1822;
  --text-1:     #1A1A1A;
  --text-2:     #3A3A3A;
  --text-3:     #777777;
  --text-4:     #AAAAAA;
  --border:     rgba(0,0,0,.08);
  --border-2:   rgba(0,0,0,.12);
  --border-input:rgba(0,0,0,.15);
  --why-bg:     #FFFFFF;
  --why-text:   #1A1A1A;
  --why-feat-bg:#F8F7F4;
  --why-feat-text:#1A1A1A;
  --why-feat-sub:#777777;
  --testi-bg:   #FFFFFF;
  --testi-text: #3A3A3A;
  --ticker-bg:  #E2E1DE;
  --sector-bg:  #FFFFFF;
  --sector-hover:rgba(245,130,10,.06);
  --footer-bg:  #111111;
  --canvas-snow: rgba(13,74,130,1);
  --canvas-spark:#B86A00;
  --canvas-ember-a:#C96800;
  --canvas-ember-b:#A03010;
  --canvas-gear: rgba(20,20,20,1);
  --hero-grad: radial-gradient(ellipse 80% 60% at 20% 50%,rgba(26,111,191,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 60% at 80% 60%,rgba(245,130,10,.08) 0%,transparent 60%);
  --hero-grid: rgba(0,0,0,.04);
  --hero-title-shadow: rgba(26,111,191,.15);
  --stat-bg:   rgba(0,0,0,.03);
  --stat-border:rgba(0,0,0,.08);
  --ai-bg: linear-gradient(135deg,#0a0f1a 0%,#0d1e35 50%,#111111 100%);
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:var(--font-body);
  background:var(--bg-page);
  color:var(--text-1);
  overflow-x:hidden;
  transition:var(--transition-theme);
}
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }

/* ══════════════════════════════════════
   UTILITY
══════════════════════════════════════ */
.container { width:100%; max-width:1180px; margin:0 auto; padding:0 1.25rem; }
.tag {
  display:inline-block; color:var(--orange);
  font-family:var(--font-display); font-weight:700;
  font-size:.78rem; letter-spacing:3px; text-transform:uppercase;
  margin-bottom:.5rem;
}
.section-title {
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(2rem,6vw,3.2rem); line-height:1;
  letter-spacing:1px;
}
.accent { color:var(--orange); }
.accent-blue { color:var(--blue-light); }
.divider {
  width:48px; height:3px;
  background:linear-gradient(90deg,var(--orange),var(--blue));
  margin:.9rem 0 1.2rem; border-radius:2px;
}
.divider--center { margin:.9rem auto 1.2rem; }
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-display); font-weight:700;
  font-size:1rem; letter-spacing:1.5px; text-transform:uppercase;
  padding:.85rem 2rem; border-radius:var(--r);
  border:none; cursor:pointer; transition:all .2s;
}
.btn--primary {
  background:var(--orange); color:var(--white);
  box-shadow:0 4px 24px rgba(245,130,10,.3);
}
.btn--primary:hover { background:var(--orange-dark); transform:translateY(-2px); box-shadow:0 8px 32px rgba(245,130,10,.45); }
.btn--outline {
  background:transparent; color:var(--text-1);
  border:1.5px solid var(--border-2);
}
.btn--outline:hover { border-color:var(--blue-light); color:var(--blue-light); transform:translateY(-2px); }
.btn--blue { background:var(--blue); color:var(--white); }
.btn--blue:hover { background:var(--blue-dark); transform:translateY(-2px); }

/* SCROLL REVEAL */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* ══════════════════════════════════════
   NAVBAR
══════════════════════════════════════ */
.nav {
  position:fixed; inset:0 0 auto 0; z-index:200;
  height:var(--nav-h);
  background:var(--bg-nav);
  backdrop-filter:blur(12px);
  border-bottom:2px solid var(--orange);
  display:flex; align-items:center;
  transition:var(--transition-theme);
}
.nav__inner {
  width:100%; display:flex;
  align-items:center; justify-content:space-between;
  padding:0 1.25rem;
}
.nav__logo {
  display:flex; align-items:center;
}
.nav__logo img {
  height:52px; width:auto;
  transition:opacity .2s, transform .2s;
}
.nav__logo img:hover { transform: scale(1.04); }
[data-theme="light"] .nav__logo img {
  filter:drop-shadow(0 1px 6px rgba(26,111,191,.2));
}
.nav__logo span { color:var(--orange); }
.nav__links {
  display:none; gap:2rem;
}
.nav__links a {
  font-family:var(--font-display); font-weight:600;
  font-size:.95rem; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--text-3); transition:color .2s;
}
.nav__links a:hover,
.nav__links a.active { color:var(--orange); }
.nav__right { display:flex; align-items:center; gap:.7rem; }
.nav__cta { display:none; }
/* THEME TOGGLE */
.theme-toggle {
  width:38px; height:38px; border-radius:50%;
  background:var(--border); border:1px solid var(--border-2);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:1.1rem; transition:all .2s;
  flex-shrink:0;
}
.theme-toggle:hover { background:var(--border-2); transform:rotate(20deg); }
.nav__hamburger {
  width:40px; height:40px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:6px;
  background:none; border:none; cursor:pointer; padding:4px;
}
.nav__hamburger span {
  display:block; width:24px; height:2px;
  background:var(--text-1); border-radius:2px;
  transition:all .3s;
}
.nav__hamburger.open span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
.nav__hamburger.open span:nth-child(2) { opacity:0; }
.nav__hamburger.open span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }

/* MOBILE MENU */
.mobile-menu {
  position:fixed; inset:var(--nav-h) 0 0 0; z-index:190;
  background:var(--bg-menu);
  backdrop-filter:blur(20px);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2rem;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.mobile-menu.open { transform:translateX(0); }
.mobile-menu a {
  font-family:var(--font-display); font-weight:800;
  font-size:2.2rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--text-2); transition:color .2s;
}
.mobile-menu a:hover { color:var(--orange); }
.mobile-menu .btn { margin-top:1rem; }

@media(min-width:768px) {
  .nav__links { display:flex; }
  .nav__cta { display:inline-flex; }
  .nav__hamburger { display:none; }
}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero {
  min-height:100svh;
  padding-top:var(--nav-h);
  position:relative; overflow:hidden;
  display:flex; align-items:center;
  background:var(--bg-hero);
  transition:var(--transition-theme);
}
.hero__bg {
  position:absolute; inset:0;
  background:var(--hero-grad);
}
.hero__grid {
  position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(var(--hero-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--hero-grid) 1px, transparent 1px);
  background-size:80px 80px;
}
.hero__bar {
  position:absolute; top:0; right:10%; bottom:0; width:3px;
  background:linear-gradient(to bottom, transparent, var(--orange), transparent);
  opacity:.4;
}
.hero__content {
  position:relative; z-index:2;
  width:100%; padding:3rem 1.25rem 4rem;
  text-align:center;
  animation:heroIn .9s cubic-bezier(.16,1,.3,1) both;
}
@keyframes heroIn {
  from { opacity:0; transform:translateY(40px); }
  to   { opacity:1; transform:translateY(0); }
}
.hero__badge {
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(245,130,10,.12);
  border:1px solid rgba(245,130,10,.35);
  color:var(--orange);
  padding:.3rem 1rem; border-radius:50px;
  font-family:var(--font-display); font-size:.8rem;
  font-weight:700; letter-spacing:2.5px; text-transform:uppercase;
  margin-bottom:1.5rem;
  animation:heroIn 1s .1s both;
}
.hero__badge::before { content:'●'; font-size:.5rem; animation:blink 1.5s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.3} }
.hero__title {
  animation:heroIn 1s .15s both;
}
.hero__logo-img {
  height:clamp(120px, 20vw, 220px);
  width:auto;
  filter:drop-shadow(0 0 40px rgba(26,111,191,.5)) drop-shadow(0 0 80px rgba(245,130,10,.25));
  animation:heroIn 1s .15s both;
}
[data-theme="light"] .hero__logo-img {
  filter:drop-shadow(0 2px 24px rgba(26,111,191,.25)) drop-shadow(0 1px 8px rgba(245,130,10,.15));
}
.hero__title .accent { color:var(--orange); }
.hero__sub {
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(.85rem,2.5vw,1.2rem);
  color:var(--text-3); letter-spacing:6px;
  text-transform:uppercase; margin:.6rem 0 1.8rem;
  animation:heroIn 1s .2s both;
}
.hero__desc {
  color:var(--text-2); font-size:1rem;
  max-width:480px; margin:0 auto 2.5rem;
  line-height:1.75; animation:heroIn 1s .25s both;
}
.hero__btns {
  display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap;
  animation:heroIn 1s .3s both;
}
.hero__stats {
  display:flex; gap:0; justify-content:center;
  margin-top:3.5rem; flex-wrap:wrap;
  border:1px solid var(--stat-border);
  border-radius:var(--r);
  overflow:hidden;
  animation:heroIn 1s .4s both;
  max-width:560px; margin-left:auto; margin-right:auto;
}
.hero__stat {
  flex:1; min-width:140px;
  padding:1.2rem 1rem; text-align:center;
  border-right:1px solid var(--stat-border);
  background:var(--stat-bg);
}
.hero__stat:last-child { border-right:none; }
.hero__stat-num {
  font-family:var(--font-display); font-weight:900;
  font-size:2.2rem; color:var(--orange); line-height:1;
}
.hero__stat-label {
  font-size:.72rem; color:var(--text-3);
  letter-spacing:2px; text-transform:uppercase; margin-top:.3rem;
}
.hero__scroll {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
  color:var(--text-3); font-size:.7rem;
  letter-spacing:2px; text-transform:uppercase;
  font-family:var(--font-display); animation:heroIn 1s .6s both;
}
.hero__scroll::after {
  content:''; width:1px; height:40px;
  background:linear-gradient(var(--orange), transparent);
  animation:scrollPulse 1.8s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity:.4; transform:scaleY(1); }
  50% { opacity:1; transform:scaleY(1.3); }
}

@media(min-width:768px) {
  .hero__content { text-align:left; padding:3rem 2rem 5rem; }
  .hero__btns { justify-content:flex-start; }
  .hero__stats { margin-left:0; justify-content:flex-start; }
  .hero__desc { margin-left:0; }
  .hero__badge { margin-bottom:2rem; }
}
[data-theme="light"] .hero .btn--outline {
  color:var(--text-2);
  border-color:rgba(0,0,0,.2);
}
[data-theme="light"] .hero .btn--outline:hover {
  color:var(--blue-light);
  border-color:var(--blue-light);
}

/* ══════════════════════════════════════
   CLIENTS TICKER
══════════════════════════════════════ */
.ticker {
  background:var(--ticker-bg);
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:.9rem 0; overflow:hidden;
  transition:var(--transition-theme);
}
.ticker__track {
  display:flex; gap:3rem; width:max-content;
  animation:ticker 25s linear infinite;
}
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker__item {
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--font-display); font-weight:600;
  font-size:.85rem; letter-spacing:2px; text-transform:uppercase;
  color:var(--text-3); white-space:nowrap;
}
.ticker__item .dot { width:5px; height:5px; border-radius:50%; background:var(--orange); }

/* ══════════════════════════════════════
   SERVICIOS — BENTO GRID
══════════════════════════════════════ */
.servicios { background:var(--bg-surf); padding:3.5rem 0; transition:var(--transition-theme); }
.servicios__header { text-align:center; margin-bottom:2.5rem; }

.bento {
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto;
  gap:10px;
}
.bento__item {
  position:relative; overflow:hidden;
  border-radius:6px; cursor:pointer;
  min-height:280px;
  display:flex; flex-direction:column; justify-content:flex-end;
  transition:transform .3s;
}
.bento__item:hover { transform:scale(1.01); z-index:2; }
.bento__bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:brightness(.55) saturate(.75);
  transition:filter .4s, transform .5s;
}
.bento__item:hover .bento__bg { filter:brightness(.7) saturate(1); transform:scale(1.04); }
.bento__overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
}
.bento__content {
  position:relative; z-index:2;
  padding:1.6rem;
}
.bento__icon {
  font-size:1.6rem; margin-bottom:.6rem;
  display:inline-block;
}
.bento__title {
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(1.5rem,3vw,2rem); letter-spacing:1px;
  color:#fff; line-height:1.1; margin-bottom:.5rem;
}
.bento__desc {
  color:rgba(255,255,255,.7); font-size:.88rem;
  line-height:1.6; max-width:420px; margin-bottom:1rem;
}
.bento__tags {
  display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:1rem;
}
.bento__tag {
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  color:rgba(255,255,255,.8); padding:.2rem .65rem;
  border-radius:50px; font-size:.75rem;
  font-family:var(--font-display); font-weight:600; letter-spacing:.5px;
}
.bento__link {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--orange); color:#fff;
  font-family:var(--font-display); font-weight:700;
  font-size:.85rem; letter-spacing:1.5px; text-transform:uppercase;
  padding:.55rem 1.2rem; border-radius:4px;
  transition:background .2s, transform .15s;
}
.bento__link:hover { background:var(--orange-dark); transform:translateY(-1px); }
.bento__stripe {
  position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--orange), var(--blue));
}

@media(min-width:768px) {
  .bento {
    grid-template-columns:2fr 1fr;
    grid-template-rows:320px 260px;
  }
  .bento__item--large {
    grid-row:span 2;
  }
  .bento__item--large .bento__title { font-size:2.4rem; }
  .bento__item--large .bento__desc { font-size:.95rem; }
  .bento__item--large .bento__content { padding:2.2rem; }
}
@media(min-width:1024px) {
  .bento {
    grid-template-columns:5fr 3fr 4fr;
    grid-template-rows:340px 280px;
  }
}

/* ══════════════════════════════════════
   SECTORES — PILLS COMPACTOS
══════════════════════════════════════ */
.sectores { background:var(--bg-surf); padding:2rem 0 3rem; transition:var(--transition-theme); border-top:1px solid var(--border); }
.sectores__label {
  font-family:var(--font-display); font-weight:700;
  font-size:.75rem; letter-spacing:3px; text-transform:uppercase;
  color:var(--text-3); margin-bottom:1rem;
}
.sectores__pills {
  display:flex; flex-wrap:wrap; gap:.6rem;
}
.sector-pill {
  display:inline-flex; align-items:center; gap:.45rem;
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:50px; padding:.45rem 1rem;
  font-family:var(--font-display); font-weight:600;
  font-size:.88rem; letter-spacing:.5px; color:var(--text-2);
  transition:border-color .2s, color .2s, background .2s;
  cursor:default;
}
.sector-pill:hover { border-color:rgba(245,130,10,.4); color:var(--orange); background:rgba(245,130,10,.06); }
.sector-pill .icon { font-size:1rem; }

/* ══════════════════════════════════════
   WHY US
══════════════════════════════════════ */
.why { background:var(--bg-section); padding:3.5rem 0; transition:var(--transition-theme); }
.why__grid {
  display:grid; grid-template-columns:1fr;
  gap:3rem; align-items:center;
}
.why .section-title { color:var(--text-1); }
.why .tag { color:var(--orange); }
.why__img-wrap { position:relative; border-radius:6px; overflow:hidden; }
.why__img {
  width:100%; height:360px; object-fit:cover;
  filter:saturate(.85);
}
.why__overlay {
  position:absolute; bottom:1.2rem; left:1.2rem;
  background:var(--orange); color:var(--white);
  padding:.9rem 1.3rem; border-radius:var(--r);
  font-family:var(--font-display);
}
.why__overlay .big { font-size:2.5rem; font-weight:900; line-height:1; }
.why__overlay .small { font-size:.85rem; font-weight:600; letter-spacing:1px; }
.why__features { display:flex; flex-direction:column; gap:1rem; margin-top:2rem; }
.why__feat {
  display:flex; gap:1rem;
  background:var(--bg-card); padding:1.1rem 1.3rem;
  border-radius:var(--r); border-left:3px solid var(--blue);
  transition:border-color .2s, box-shadow .2s, background .35s;
}
.why__feat:hover { border-color:var(--orange); }
.why__feat-icon { font-size:1.5rem; flex-shrink:0; margin-top:.05rem; }
.why__feat-title {
  font-family:var(--font-display); font-weight:700;
  font-size:1.1rem; color:var(--text-1); margin-bottom:.2rem;
}
.why__feat-desc { font-size:.88rem; color:var(--text-3); line-height:1.6; }
@media(min-width:768px) {
  .why__grid { grid-template-columns:1fr 1fr; gap:4rem; }
  .why__img { height:460px; }
}


/* ══════════════════════════════════════
   GALLERY — MASONRY
══════════════════════════════════════ */
.gallery { background:var(--bg-surf); padding:3.5rem 0 0; transition:var(--transition-theme); }
.gallery__header {
  display:flex; align-items:flex-end;
  justify-content:space-between;
  margin-bottom:2rem; flex-wrap:wrap; gap:1rem;
}
.gallery__grid {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:6px; border-radius:6px; overflow:hidden;
}
.gitem { position:relative; overflow:hidden; cursor:pointer; height:180px; }
.gitem:first-child { grid-column:span 2; height:240px; }
.gitem img {
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.75) brightness(.85);
  transition:transform .5s, filter .4s;
}
.gitem:hover img { transform:scale(1.06); filter:saturate(1) brightness(.9); }
[data-theme="light"] .gitem img { filter:saturate(.9) brightness(.95); }
[data-theme="light"] .gitem:hover img { filter:saturate(1) brightness(1); }
.gitem__overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 55%);
  opacity:0; transition:opacity .3s;
  display:flex; flex-direction:column;
  align-items:flex-start; justify-content:flex-end;
  padding:1rem;
}
.gitem:hover .gitem__overlay { opacity:1; }
.gitem__label {
  font-family:var(--font-display); font-weight:700;
  font-size:1rem; letter-spacing:1px; color:var(--white);
}
.gitem__sub { font-size:.75rem; color:rgba(255,255,255,.6); margin-top:.2rem; }
@media(min-width:640px) {
  .gallery__grid { grid-template-columns:repeat(3,1fr); }
  .gitem { height:200px; }
  .gitem:first-child { grid-column:span 1; grid-row:span 2; height:auto; }
}

/* ══════════════════════════════════════
   TESTIMONIOS
══════════════════════════════════════ */
.testimonios { background:var(--bg-surf); padding:2.5rem 0 3.5rem; transition:var(--transition-theme); border-top:1px solid var(--border); }
.testi-grid {
  display:grid; grid-template-columns:1fr;
  gap:1.2rem; margin-top:3rem;
}
.testi {
  background:var(--testi-bg);
  border:1px solid var(--border);
  border-radius:6px; padding:1.6rem;
  position:relative; transition:border-color .2s, background .35s;
}
.testi::before {
  content:'"'; position:absolute; top:.8rem; right:1.2rem;
  font-size:5rem; color:rgba(245,130,10,.1);
  font-family:var(--font-display); font-weight:900;
  line-height:1; pointer-events:none;
}
.testi:hover { border-color:rgba(245,130,10,.25); }
.testi__stars { color:var(--orange); font-size:.9rem; margin-bottom:.8rem; letter-spacing:2px; }
.testi__text { color:var(--testi-text); font-size:.92rem; line-height:1.7; margin-bottom:1.2rem; }
.testi__author { display:flex; align-items:center; gap:.8rem; }
.testi__avatar {
  width:40px; height:40px; border-radius:50%;
  background:var(--blue-dark); display:flex;
  align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700;
  font-size:.9rem; color:#fff; flex-shrink:0;
}
.testi__name { font-family:var(--font-display); font-weight:700; color:var(--text-1); font-size:1rem; }
.testi__biz { font-size:.8rem; color:var(--text-3); }
@media(min-width:640px) { .testi-grid { grid-template-columns:1fr 1fr; } }
@media(min-width:1024px) { .testi-grid { grid-template-columns:repeat(3,1fr); } }

/* ══════════════════════════════════════
   CTA BAND
══════════════════════════════════════ */
.cta-band {
  background:var(--orange);
  padding:3rem 1.25rem; text-align:center;
}
.cta-band__title {
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(1.8rem,5vw,3rem); color:var(--white);
  letter-spacing:1px; margin-bottom:.8rem;
}
.cta-band__sub { color:rgba(255,255,255,.8); font-size:1rem; margin-bottom:1.8rem; }
.cta-band .btn--outline { border-color:rgba(255,255,255,.6); color:var(--white); }
.cta-band .btn--outline:hover { border-color:white; color:white; }

/* ══════════════════════════════════════
   CONTACTO
══════════════════════════════════════ */
.contacto {
  background:linear-gradient(160deg, #0b1822 0%, #0d2540 100%);
  padding:5rem 0; position:relative; overflow:hidden;
}
.contacto::before {
  content:''; position:absolute; top:-200px; right:-200px;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle, rgba(245,130,10,.08) 0%, transparent 70%);
}
.contacto__grid {
  display:grid; grid-template-columns:1fr;
  gap:3rem; position:relative; z-index:1;
}
.contacto__info .section-title { color:var(--white); }
.contacto__desc { color:rgba(255,255,255,.45); font-size:.95rem; line-height:1.75; margin-top:.8rem; }
.contact-items { margin-top:2rem; display:flex; flex-direction:column; gap:1rem; }
.citem { display:flex; align-items:center; gap:.9rem; }
.citem__icon {
  width:42px; height:42px; border-radius:var(--r);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.09);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; flex-shrink:0;
}
.citem__label { font-size:.72rem; color:rgba(255,255,255,.3); text-transform:uppercase; letter-spacing:1.5px; }
.citem__value { color:var(--white); font-size:.97rem; font-weight:500; }
.contact-form {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  padding:1.8rem; border-radius:6px;
}
.fg { margin-bottom:1.1rem; }
.fg label {
  display:block; color:rgba(255,255,255,.4);
  font-size:.72rem; letter-spacing:2px; text-transform:uppercase;
  margin-bottom:.45rem;
  font-family:var(--font-display); font-weight:600;
}
.fg input, .fg select, .fg textarea {
  width:100%; background:var(--bg-input);
  border:1px solid var(--border-input); border-radius:var(--r);
  padding:.75rem 1rem; color:#ffffff;
  font-family:var(--font-body); font-size:.93rem;
  transition:border-color .2s; outline:none;
}
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color:var(--blue-light); }
.fg select option { background:#1a2a3a; }
.fg textarea { resize:vertical; min-height:95px; }
.fg input.is-invalid, .fg select.is-invalid, .fg textarea.is-invalid {
  border-color:#ff7b7b;
  box-shadow:0 0 0 3px rgba(255,123,123,.14);
}
.fg input.is-valid, .fg select.is-valid, .fg textarea.is-valid {
  border-color:rgba(37,211,102,.7);
}
.field-error {
  min-height:1rem;
  margin-top:.38rem;
  color:#ffb3b3;
  font-size:.8rem;
  line-height:1.35;
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.urgency-check {
  display:flex; align-items:center; gap:.7rem;
  background:rgba(245,130,10,.08);
  border:1px solid rgba(245,130,10,.2);
  border-radius:var(--r); padding:.8rem 1rem;
  margin-bottom:1.1rem; cursor:pointer;
}
.urgency-check input[type=checkbox] { accent-color:var(--orange); width:16px; height:16px; }
.urgency-check label { color:rgba(255,255,255,.75); font-size:.88rem; cursor:pointer; }
.form-btn {
  width:100%; background:var(--orange);
  color:var(--white); border:none; cursor:pointer;
  padding:1rem; border-radius:var(--r);
  font-family:var(--font-display);
  font-weight:700; font-size:1.1rem; letter-spacing:2px;
  text-transform:uppercase; transition:background .2s, transform .15s;
}
.form-btn:hover { background:var(--orange-dark); transform:translateY(-1px); }
.form-btn[disabled] {
  cursor:wait;
  opacity:.75;
  transform:none;
}
.form-status {
  min-height:1.1rem;
  margin-top:.8rem;
  color:rgba(255,255,255,.72);
  font-size:.88rem;
}
.form-status.is-error { color:#ffd0d0; }
.form-confirm {
  display:none; text-align:center; padding:2rem;
  color:rgba(255,255,255,.8);
}
.form-confirm .big-check { font-size:3rem; margin-bottom:.5rem; }
@media(min-width:768px) {
  .contacto__grid { grid-template-columns:1fr 1fr; gap:4rem; }
}

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
footer {
  background:#070707;
  border-top:2px solid var(--orange);
  padding:3rem 1.25rem 1.5rem;
}
.footer__top {
  display:grid; grid-template-columns:1fr;
  gap:2.5rem; margin-bottom:2rem;
}
.footer__brand {
  font-family:var(--font-display); font-weight:900;
  font-size:2rem; letter-spacing:4px; color:var(--white);
}
.footer__brand span { color:var(--orange); }
.footer__tagline { color:rgba(255,255,255,.3); font-size:.82rem; margin-top:.4rem; letter-spacing:1px; }
.footer__services li {
  color:rgba(255,255,255,.45); font-size:.88rem;
  padding:.3rem 0; display:flex; align-items:center; gap:.5rem;
}
.footer__services li::before { content:'▸'; color:var(--orange); font-size:.65rem; }
.footer__col-title {
  font-family:var(--font-display); font-weight:700;
  font-size:.8rem; letter-spacing:2px; text-transform:uppercase;
  color:rgba(255,255,255,.35); margin-bottom:.9rem;
}
.footer__bottom {
  border-top:1px solid rgba(255,255,255,.07);
  padding-top:1.2rem;
  display:flex; flex-wrap:wrap; gap:.8rem;
  align-items:center; justify-content:space-between;
}
.footer__copy { color:rgba(255,255,255,.25); font-size:.78rem; }
@media(min-width:640px) { .footer__top { grid-template-columns:2fr 1fr 1fr; } }

/* ══════════════════════════════════════
   WA FLOAT
══════════════════════════════════════ */
.wa {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:500;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 20px rgba(37,211,102,.4);
  transition:transform .2s, box-shadow .2s;
  animation:waPulse 2.5s ease-in-out infinite;
}
.wa:hover { transform:scale(1.1); box-shadow:0 6px 32px rgba(37,211,102,.6); }
@keyframes waPulse {
  0%,100% { box-shadow:0 4px 20px rgba(37,211,102,.4); }
  50% { box-shadow:0 4px 36px rgba(37,211,102,.65); }
}
