*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}

:root{
  --navy:     #041D42;
  --navy-2:   #0B2E63;
  --gold:     #BC8319;
  --gold-lt:  #E0A83D;
  --ink:      #0C1526;
  --mist:     #5C6478;
  --mist-lt:  #8991A3;
  --bg:       #FFFFFF;
  --surface:  #F4F5F8;
  --surface-2:#ECEEF3;
  --border:   rgba(12,21,38,.09);
  --r-sm:12px; --r-md:18px; --r-lg:26px; --r-full:999px;
  --shadow-sm: 0 2px 8px rgba(12,21,38,.06);
  --shadow-md: 0 10px 30px rgba(12,21,38,.10);
  --shadow-lg: 0 24px 60px rgba(12,21,38,.16);
  --shadow-gold: 0 14px 34px -8px rgba(188,131,25,.45);
}

body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--ink);
  overflow-x:hidden;
  font-weight:400;
  font-size:16px;
  line-height:1.5;
}
::selection{ background:var(--gold); color:#fff; }
::-webkit-scrollbar{ width:8px; }
::-webkit-scrollbar-track{ background:var(--surface); }
::-webkit-scrollbar-thumb{ background:var(--mist-lt); border-radius:8px; }

.mono{ font-family:'IBM Plex Mono',monospace; font-variant-numeric:tabular-nums; }

.display{ font-family:'Inter',sans-serif; font-weight:800; line-height:1.05; letter-spacing:-.03em; color:var(--navy); }
.display--xl{ font-size:clamp(2.6rem,5.4vw,4.6rem); }
.display--lg{ font-size:clamp(2rem,3.6vw,3.1rem); }
.display--md{ font-size:clamp(1.5rem,2.4vw,2.05rem); }
.display .accent{ color:var(--gold); }
.display.on-dark{ color:#fff; }
.display.on-dark .accent{ color:var(--gold-lt); }

.badge{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.76rem; font-weight:600; color:var(--navy);
  background:var(--surface); border:1px solid var(--border);
  padding:.45rem 1rem; border-radius:var(--r-full);
}
.badge .dot{ width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.badge.on-dark{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14); color:#fff; }
.badge.on-dark .dot{ background:var(--gold-lt); }

.eyebrow2{ font-size:.82rem; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.06em; }

.body-md{ font-size:1rem; line-height:1.75; color:var(--mist); }
.body-lg{ font-size:1.1rem; line-height:1.75; color:var(--mist); }
.on-dark .body-md,.body-md.on-dark{ color:rgba(255,255,255,.68); }
.on-dark .body-lg,.body-lg.on-dark{ color:rgba(255,255,255,.68); }

/* ─── SCROLL PROGRESS ─────────────────────── */
.progress-bar{ position:fixed; top:0; left:0; height:3px; width:0%; background:linear-gradient(90deg,var(--gold),var(--gold-lt)); z-index:1000; transition:width .1s linear; }
@media(prefers-reduced-motion:reduce){ .progress-bar{ transition:none; } }

/* ─── NAV ─────────────────────────────────── */
.nav-wrap{ position:fixed; top:16px; left:0; right:0; z-index:900; display:flex; justify-content:center; padding:0 1.25rem; pointer-events:none; }
.nav{
  pointer-events:all;
  display:flex; align-items:center; gap:1.75rem;
  background:rgba(255,255,255,.75); backdrop-filter:blur(16px) saturate(160%);
  border:1px solid var(--border); border-radius:var(--r-full);
  padding:.55rem .6rem .55rem 1.1rem;
  box-shadow:var(--shadow-sm);
  max-width:920px; width:100%;
  transition:box-shadow .3s,background .3s;
}
.nav.scrolled{ box-shadow:var(--shadow-md); background:rgba(255,255,255,.92); }
.logo-wrap{ text-decoration:none; display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.logo-icon{ height:26px; width:auto; }
.logo-name{ font-size:1.05rem; font-weight:800; color:var(--navy); letter-spacing:-.02em; }
.logo-name .g{ color:var(--gold); }
.nav-menu{ display:flex; gap:1.5rem; list-style:none; align-items:center; flex:1; justify-content:center; }
.nav-menu a{ font-size:.86rem; font-weight:500; color:var(--mist); text-decoration:none; transition:color .2s; }
.nav-menu a:hover{ color:var(--navy); }
.nav-right{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.lang-toggle{ display:flex; align-items:center; background:var(--surface); border-radius:var(--r-full); padding:3px; }
.lang-btn{ background:none; border:none; cursor:pointer; padding:.35rem .6rem; font-size:.7rem; font-weight:700; color:var(--mist); border-radius:var(--r-full); transition:background .2s,color .2s; }
.lang-btn.active{ background:var(--navy); color:#fff; }
.nav-cta{ background:var(--navy); color:#fff; text-decoration:none; font-size:.82rem; font-weight:600; padding:.6rem 1.15rem; border-radius:var(--r-full); transition:background .2s,transform .2s; white-space:nowrap; }
.nav-cta:hover{ background:var(--gold); transform:translateY(-1px); }

.burger{ display:none; flex-direction:column; gap:4px; background:none; border:none; cursor:pointer; padding:.4rem; }
.burger span{ width:18px; height:2px; background:var(--navy); border-radius:2px; transition:.3s; }
.burger.on span:first-child{ transform:translateY(6px) rotate(45deg); }
.burger.on span:nth-child(2){ opacity:0; }
.burger.on span:last-child{ transform:translateY(-6px) rotate(-45deg); }
.m-nav{ display:none; position:fixed; inset:80px 1rem auto 1rem; z-index:899; background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); flex-direction:column; padding:1.25rem; gap:.25rem; border:1px solid var(--border); }
.m-nav.on{ display:flex; }
.m-nav a{ font-size:1.05rem; font-weight:600; color:var(--navy); text-decoration:none; padding:.85rem .5rem; border-radius:var(--r-sm); transition:background .2s; }
.m-nav a:hover{ background:var(--surface); }
.m-nav .lang-toggle{ margin-top:.5rem; align-self:flex-start; }

/* ─── LAYOUT HELPERS ──────────────────────── */
.wrap{ max-width:1240px; margin:0 auto; padding:0 1.5rem; }
.section{ padding:6.5rem 0; position:relative; }
.section-head{ max-width:640px; margin-bottom:3rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ─── BACKGROUND BLOBS (ambient motion) ────── */
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.35; pointer-events:none; z-index:0; }
.blob-gold{ background:radial-gradient(circle,var(--gold-lt),transparent 70%); }
.blob-navy{ background:radial-gradient(circle,var(--navy-2),transparent 70%); }
@keyframes drift{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(30px,-20px) scale(1.08); } }
.blob{ animation:drift 16s ease-in-out infinite; }
@media(prefers-reduced-motion:reduce){ .blob{ animation:none; } }

/* ─── BUTTONS ─────────────────────────────── */
.btn{ display:inline-flex; align-items:center; gap:.55rem; text-decoration:none; font-size:.9rem; font-weight:600; padding:.85rem 1.6rem; border:none; cursor:pointer; border-radius:var(--r-full); transition:all .25s cubic-bezier(.16,1,.3,1); }
.btn svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; transition:transform .25s; }
.btn:hover svg{ transform:translateX(3px); }
.btn-solid{ background:var(--navy); color:#fff; }
.btn-solid:hover{ background:var(--gold); color:var(--navy); transform:translateY(-2px); box-shadow:var(--shadow-gold); }
.btn-ghost{ background:var(--surface); color:var(--navy); }
.btn-ghost:hover{ background:var(--surface-2); transform:translateY(-2px); }
.btn-outline-dark{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.28); }
.btn-outline-dark:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.5); }
.link-arrow{ display:inline-flex; align-items:center; gap:.4rem; color:var(--navy); font-weight:600; font-size:.88rem; text-decoration:none; }
.link-arrow svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; transition:transform .2s; }
.link-arrow:hover svg{ transform:translateX(4px); }
.link-arrow::after{ content:''; display:block; }

/* ─── HERO ────────────────────────────────── */
.hero{ padding:9.5rem 0 5rem; position:relative; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:center; position:relative; z-index:2; }
.hero-left{ opacity:0; transform:translateY(24px); animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .15s forwards; }
.hero-badge{ margin-bottom:1.5rem; }
.hero-title{ margin-bottom:1.4rem; }
.hero-desc{ max-width:480px; margin-bottom:2.2rem; }
.hero-cta-row{ display:flex; gap:.9rem; flex-wrap:wrap; margin-bottom:2.75rem; }
.hero-trust{ display:flex; gap:2.25rem; flex-wrap:wrap; }
.trust-item{ display:flex; flex-direction:column; gap:.15rem; }
.trust-n{ font-family:'IBM Plex Mono',monospace; font-size:1.5rem; font-weight:600; color:var(--navy); }
.trust-l{ font-size:.76rem; color:var(--mist); max-width:130px; line-height:1.4; }
@keyframes fadeUp{ to{ opacity:1; transform:translateY(0); } }
@media(prefers-reduced-motion:reduce){ .hero-left{ animation:none; opacity:1; transform:none; } }

/* Product mockup panel */
.hero-right{ position:relative; opacity:0; transform:translateY(30px) scale(.97); animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .35s forwards; }
@media(prefers-reduced-motion:reduce){ .hero-right{ animation:none; opacity:1; transform:none; } }
.mockup{ position:relative; background:#fff; border-radius:var(--r-lg); box-shadow:var(--shadow-lg); border:1px solid var(--border); padding:1.5rem; z-index:2; }
.mockup-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.mockup-head-l{ display:flex; align-items:center; gap:.55rem; }
.mockup-head-l img{ height:18px; width:auto; }
.mockup-head-l span{ font-size:.78rem; font-weight:700; color:var(--navy); }
.live-dot{ display:flex; align-items:center; gap:.4rem; font-size:.68rem; font-weight:600; color:#1a9b5c; background:#e8f8ef; padding:.3rem .6rem; border-radius:var(--r-full); }
.live-dot::before{ content:''; width:6px; height:6px; border-radius:50%; background:#1a9b5c; animation:pulse2 1.6s ease-in-out infinite; }
@keyframes pulse2{ 0%,100%{opacity:1;} 50%{opacity:.3;} }
.mockup-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin-bottom:1.25rem; }
.mstat{ background:var(--surface); border-radius:var(--r-md); padding:.9rem .95rem; }
.mstat-l{ font-size:.66rem; color:var(--mist); font-weight:600; margin-bottom:.35rem; }
.mstat-v{ font-family:'IBM Plex Mono',monospace; font-size:1.15rem; font-weight:600; color:var(--navy); }
.mstat-v.up{ color:#1a9b5c; }
.mockup-chart{ background:var(--surface); border-radius:var(--r-md); padding:1.1rem 1rem .85rem; display:flex; align-items:flex-end; gap:.5rem; height:120px; }
.mbar{ flex:1; background:linear-gradient(180deg,var(--gold-lt),var(--gold)); border-radius:6px 6px 2px 2px; transform:scaleY(0); transform-origin:bottom; animation:growBar 1s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes growBar{ to{ transform:scaleY(1); } }
.mockup-chip{
  position:absolute; bottom:-18px; right:-14px; background:#fff; border-radius:var(--r-md);
  box-shadow:var(--shadow-md); padding:.75rem 1rem; display:flex; align-items:center; gap:.6rem;
  font-size:.78rem; font-weight:700; color:var(--navy); z-index:3;
  animation:floaty 4s ease-in-out infinite;
}
.mockup-chip svg{ width:18px; height:18px; stroke:#1a9b5c; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-7px); } }
@media(prefers-reduced-motion:reduce){ .mbar{ animation:none; transform:scaleY(1); } .mockup-chip{ animation:none; } .live-dot::before{ animation:none; } }
@media(max-width:1000px){ .hero-grid{ grid-template-columns:1fr; } .hero-right{ max-width:460px; margin:0 auto; } }

/* ─── SCROLL REVEAL ───────────────────────── */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.visible{ opacity:1; transform:translateY(0); }
.stagger .reveal:nth-child(1){ transition-delay:0s; } .stagger .reveal:nth-child(2){ transition-delay:.08s; }
.stagger .reveal:nth-child(3){ transition-delay:.16s; } .stagger .reveal:nth-child(4){ transition-delay:.24s; }
.stagger .reveal:nth-child(5){ transition-delay:.32s; } .stagger .reveal:nth-child(6){ transition-delay:.4s; }
.stagger .reveal:nth-child(7){ transition-delay:.48s; } .stagger .reveal:nth-child(8){ transition-delay:.56s; }
@media(prefers-reduced-motion:reduce){ .reveal{ opacity:1!important; transform:none!important; transition:none!important; } }

/* ─── BENTO: NEEDS ────────────────────────── */
.needs-bento{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
.need-card{ background:var(--surface); border-radius:var(--r-lg); padding:1.75rem 1.5rem; display:flex; flex-direction:column; gap:1rem; transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,background .3s; }
.need-card:hover{ background:#fff; box-shadow:var(--shadow-md); transform:translateY(-6px); }
.need-icon{ width:44px; height:44px; border-radius:var(--r-sm); background:var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.need-icon svg{ width:22px; height:22px; stroke:#fff; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.need-card:nth-child(2n) .need-icon{ background:var(--gold); }
.need-problem{ font-size:.86rem; color:var(--mist-lt); text-decoration:line-through; line-height:1.5; }
.need-solution{ font-size:.95rem; font-weight:600; color:var(--navy); line-height:1.45; }
@media(max-width:1000px){ .needs-bento{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .needs-bento{ grid-template-columns:1fr; } }

/* ─── ABOUT ───────────────────────────────── */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
.about-copy p{ font-size:1.02rem; line-height:1.8; color:var(--mist); margin-bottom:1.15rem; }
.about-pills{ display:flex; gap:1rem; margin-top:1.75rem; flex-wrap:wrap; }
.about-pill{ background:var(--surface); border-radius:var(--r-lg); padding:1.35rem 1.5rem; flex:1; min-width:190px; }
.about-pill-n{ font-family:'IBM Plex Mono',monospace; font-size:1.9rem; font-weight:600; color:var(--gold); line-height:1; margin-bottom:.5rem; }
.about-pill p{ font-size:.84rem; color:var(--mist); line-height:1.55; margin:0; }
.about-quote-card{ background:var(--navy); border-radius:var(--r-lg); padding:2.5rem; position:relative; overflow:hidden; }
.about-quote-card::before{ content:'"'; position:absolute; top:-1.5rem; left:1rem; font-size:9rem; font-weight:800; color:rgba(255,255,255,.06); font-family:Georgia,serif; line-height:1; }
.about-quote{ position:relative; z-index:1; font-size:1.3rem; font-weight:600; color:#fff; line-height:1.5; }
.about-quote .accent{ color:var(--gold-lt); }
@media(max-width:900px){ .about-grid{ grid-template-columns:1fr; } }

/* ─── PHILOSOPHY (belief chips) ───────────── */
.phil-section{ background:var(--navy); border-radius:var(--r-lg); padding:4.5rem 3rem; position:relative; overflow:hidden; }
.phil-content{ position:relative; z-index:2; text-align:center; max-width:760px; margin:0 auto; }
.phil-chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:.65rem; margin-top:2.25rem; }
.phil-chip{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#fff; font-size:.86rem; font-weight:500; padding:.6rem 1.15rem; border-radius:var(--r-full); transition:background .25s,border-color .25s; }
.phil-chip:hover{ background:rgba(255,255,255,.16); border-color:var(--gold-lt); }
@media(max-width:700px){ .phil-section{ padding:3.5rem 1.5rem; } }

/* ─── SERVICES BENTO ──────────────────────── */
.serv-bento{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
.serv-card{ background:var(--surface); border-radius:var(--r-lg); padding:1.75rem; display:flex; flex-direction:column; gap:.9rem; cursor:pointer; transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,background .3s; grid-column:span 2; }
.serv-card:nth-child(1),.serv-card:nth-child(4),.serv-card:nth-child(6),.serv-card:nth-child(7){ grid-column:span 2; }
.serv-card:hover{ background:#fff; box-shadow:var(--shadow-md); transform:translateY(-4px); }
.serv-card.open{ background:#fff; box-shadow:var(--shadow-lg); grid-column:1 / -1; }
.serv-icon{ width:46px; height:46px; border-radius:var(--r-sm); display:flex; align-items:center; justify-content:center; flex-shrink:0; background:var(--navy); }
.serv-card:nth-child(3n+2) .serv-icon{ background:var(--gold); }
.serv-icon svg{ width:23px; height:23px; stroke:#fff; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.serv-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.serv-name{ font-size:1.15rem; font-weight:700; color:var(--navy); line-height:1.25; }
.serv-teaser{ font-size:.88rem; color:var(--mist); line-height:1.55; }
.serv-toggle{ width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .3s,background .2s; }
.serv-card.open .serv-toggle{ transform:rotate(45deg); background:var(--surface); }
.serv-toggle svg{ width:15px; height:15px; stroke:var(--navy); fill:none; stroke-width:2; stroke-linecap:round; }
.serv-detail{ max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.16,1,.3,1); }
.serv-card.open .serv-detail{ max-height:900px; }
.serv-detail-in{ padding-top:1.1rem; margin-top:.3rem; border-top:1px solid var(--border); display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; }
.serv-steps{ display:flex; flex-direction:column; gap:.7rem; }
.serv-step{ display:flex; gap:.75rem; align-items:flex-start; font-size:.87rem; color:var(--mist); line-height:1.55; }
.serv-step b{ width:20px; height:20px; border-radius:50%; background:var(--surface); color:var(--navy); font-family:'IBM Plex Mono',monospace; font-size:.7rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:.05rem; font-weight:700; }
.serv-side{ display:flex; flex-direction:column; gap:1rem; }
.serv-chips2{ display:flex; flex-wrap:wrap; gap:.4rem; }
.chip2{ font-size:.72rem; background:var(--surface); color:var(--navy); padding:.35rem .7rem; border-radius:var(--r-full); font-weight:500; }
.serv-meta2{ display:flex; flex-direction:column; gap:.6rem; }
.serv-meta2 span{ font-size:.78rem; color:var(--mist); }
.serv-meta2 strong{ display:block; font-size:.68rem; color:var(--gold); font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:.15rem; }
.serv-nota2{ font-size:.78rem; color:var(--mist-lt); font-style:italic; }
@media(max-width:1000px){ .serv-bento{ grid-template-columns:1fr 1fr; } .serv-card,.serv-card:nth-child(1),.serv-card:nth-child(4),.serv-card:nth-child(6),.serv-card:nth-child(7){ grid-column:span 1; } .serv-card.open{ grid-column:1/-1; } .serv-detail-in{ grid-template-columns:1fr; } }
@media(max-width:640px){ .serv-bento{ grid-template-columns:1fr; } }

/* ─── PRICING (pólizas) ───────────────────── */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; align-items:start; }
.price-card{ background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:2.25rem; display:flex; flex-direction:column; gap:1.5rem; position:relative; transition:transform .3s,box-shadow .3s; }
.price-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.price-card.featured{ border-color:var(--gold); box-shadow:var(--shadow-md); transform:scale(1.02); }
.price-badge-pop{ position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--gold); color:var(--navy); font-size:.68rem; font-weight:700; padding:.35rem .9rem; border-radius:var(--r-full); text-transform:uppercase; letter-spacing:.04em; }
.price-name{ font-size:1.3rem; font-weight:700; color:var(--navy); }
.price-desc{ font-size:.85rem; color:var(--mist); line-height:1.65; }
.price-amt-row{ display:flex; align-items:baseline; gap:.4rem; padding-top:1rem; border-top:1px solid var(--border); }
.price-amt{ font-family:'IBM Plex Mono',monospace; font-size:2.1rem; font-weight:600; color:var(--navy); }
.price-per{ font-size:.78rem; color:var(--mist); }
.price-feats{ display:flex; flex-direction:column; gap:.65rem; }
.pf-row2{ display:flex; align-items:flex-start; gap:.6rem; font-size:.85rem; color:var(--mist); line-height:1.5; }
.pf-check{ width:18px; height:18px; border-radius:50%; background:var(--surface); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:.05rem; }
.pf-check svg{ width:10px; height:10px; stroke:var(--gold); fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.price-card .btn{ width:100%; justify-content:center; margin-top:auto; }
.pricing-note{ text-align:center; font-size:.85rem; color:var(--mist); margin-top:2.25rem; }
@media(max-width:1000px){ .pricing-grid{ grid-template-columns:1fr; } .price-card.featured{ transform:none; } }

/* ─── METHODOLOGY STEPPER ─────────────────── */
.stepper{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative; }
.stepper::before{ content:''; position:absolute; top:23px; left:10%; right:10%; height:2px; background:var(--border); z-index:0; }
.step-item{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:1rem; padding:0 .75rem; }
.step-circle{ width:48px; height:48px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:.95rem; }
.step-item:nth-child(2n) .step-circle{ background:var(--gold); color:var(--navy); }
.step-item h4{ font-size:1rem; font-weight:700; color:var(--navy); }
.step-item p{ font-size:.82rem; color:var(--mist); line-height:1.55; }
@media(max-width:900px){ .stepper{ grid-template-columns:1fr 1fr; row-gap:2.5rem; } .stepper::before{ display:none; } }
@media(max-width:560px){ .stepper{ grid-template-columns:1fr; } }

/* ─── PROMISE CARDS ───────────────────────── */
.promise-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.promise-card{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg); padding:2rem; display:flex; flex-direction:column; gap:1rem; }
.promise-num{ font-family:'IBM Plex Mono',monospace; font-size:.85rem; color:var(--gold-lt); font-weight:600; }
.promise-q{ font-size:1.15rem; font-weight:700; color:#fff; line-height:1.35; }
.promise-a{ font-size:.88rem; color:rgba(255,255,255,.65); line-height:1.7; }
@media(max-width:900px){ .promise-grid{ grid-template-columns:1fr; } }

/* ─── PROJECTS ────────────────────────────── */
.proj-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.proj-card{ background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:1.75rem; display:flex; flex-direction:column; gap:1.1rem; text-decoration:none; transition:transform .3s,box-shadow .3s; }
.proj-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.proj-sparkline{ height:52px; display:flex; align-items:flex-end; gap:3px; }
.spk{ flex:1; background:var(--gold-lt); border-radius:2px 2px 0 0; opacity:.85; }
.proj-tag{ font-size:.7rem; font-weight:700; color:var(--gold); text-transform:uppercase; letter-spacing:.04em; }
.proj-title{ font-size:1.08rem; font-weight:700; color:var(--navy); line-height:1.35; }
.proj-desc{ font-size:.85rem; color:var(--mist); line-height:1.65; }
@media(max-width:900px){ .proj-grid{ grid-template-columns:1fr; } }

/* ─── SECTORS ─────────────────────────────── */
.sect-cats{ display:flex; flex-direction:column; gap:1.5rem; }
.sect-cat{ display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; padding:1.15rem 0; border-bottom:1px solid var(--border); }
.sect-cat:last-child{ border-bottom:none; }
.sect-cat-label{ font-size:.95rem; font-weight:700; color:var(--navy); min-width:180px; }
.sect-tags{ display:flex; flex-wrap:wrap; gap:.5rem; flex:1; }
.sect-tag{ font-size:.8rem; color:var(--mist); background:var(--surface); padding:.4rem .85rem; border-radius:var(--r-full); transition:background .2s,color .2s; }
.sect-tag:hover{ background:var(--navy); color:#fff; }

/* ─── FAQ ─────────────────────────────────── */
.faq-wrap{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:.75rem; }
.faq-card{ background:var(--surface); border-radius:var(--r-md); overflow:hidden; }
.faq-q2{ width:100%; background:none; border:none; padding:1.25rem 1.5rem; display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap:1.5rem; text-align:left; }
.faq-q2-t{ font-size:1rem; font-weight:600; color:var(--navy); }
.faq-plus{ width:28px; height:28px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:transform .3s; }
.faq-plus svg{ width:13px; height:13px; stroke:var(--navy); fill:none; stroke-width:2.2; stroke-linecap:round; }
.faq-card.on .faq-plus{ transform:rotate(45deg); }
.faq-a2{ max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.16,1,.3,1); }
.faq-card.on .faq-a2{ max-height:300px; }
.faq-a2-in{ padding:0 1.5rem 1.4rem; font-size:.88rem; color:var(--mist); line-height:1.75; }

/* ─── CTA BANNER ──────────────────────────── */
.cta-banner{ background:linear-gradient(135deg,var(--navy),var(--navy-2)); border-radius:var(--r-lg); padding:4rem 3rem; position:relative; overflow:hidden; text-align:center; }
.cta-banner-in{ position:relative; z-index:2; max-width:640px; margin:0 auto; }
.cta-banner .btn{ margin-top:1.75rem; }
@media(max-width:700px){ .cta-banner{ padding:3rem 1.5rem; } }

/* ─── CONTACT ─────────────────────────────── */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.office-card{ background:var(--surface); border-radius:var(--r-lg); padding:1.9rem; display:flex; flex-direction:column; gap:.9rem; }
.office-card-icon{ width:38px; height:38px; border-radius:var(--r-sm); background:var(--navy); display:flex; align-items:center; justify-content:center; }
.office-card-icon svg{ width:19px; height:19px; stroke:#fff; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.office-card:nth-child(2n) .office-card-icon{ background:var(--gold); }
.office-card h4{ font-size:1.05rem; font-weight:700; color:var(--navy); }
.office-card p{ font-size:.85rem; color:var(--mist); line-height:1.65; }
.office-card-links{ display:flex; flex-direction:column; gap:.4rem; margin-top:.2rem; }
.office-card-links a{ font-size:.87rem; font-weight:600; color:var(--navy); text-decoration:none; }
.office-card-links a:hover{ color:var(--gold); }
@media(max-width:800px){ .contact-grid{ grid-template-columns:1fr; } }

/* ─── AVISO + FOOTER ──────────────────────── */
.aviso-wrap{ background:var(--surface); padding:1.75rem 1.5rem; }
.aviso-wrap p{ font-size:.74rem; color:var(--mist); line-height:1.7; max-width:1000px; margin:0 auto; text-align:center; }

footer{ background:var(--navy); padding:4rem 0 2rem; }
.foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,.12); }
.foot-brand{ display:flex; flex-direction:column; gap:1.1rem; }
.foot-logo{ display:flex; align-items:center; gap:.6rem; }
.foot-logo img{ height:24px; }
.foot-logo-type{ font-size:1.05rem; font-weight:800; color:#fff; }
.foot-logo-type .g{ color:var(--gold-lt); }
.foot-desc{ font-size:.85rem; color:rgba(255,255,255,.6); line-height:1.7; max-width:260px; }
.foot-col h5{ font-size:.72rem; font-weight:700; color:var(--gold-lt); text-transform:uppercase; letter-spacing:.05em; margin-bottom:1rem; }
.foot-col ul{ list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.foot-col a{ font-size:.86rem; color:rgba(255,255,255,.65); text-decoration:none; transition:color .2s; }
.foot-col a:hover{ color:var(--gold-lt); }
.foot-bottom{ margin-top:1.5rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.foot-bottom p{ font-size:.78rem; color:rgba(255,255,255,.55); }
.foot-bottom span{ color:var(--gold-lt); }
@media(max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .foot-grid{ grid-template-columns:1fr; } .foot-bottom{ flex-direction:column; text-align:center; } }

/* ─── RESPONSIVE GLOBAL ───────────────────── */
@media(max-width:900px){
  .nav-menu{ display:none; }
  .nav-right .lang-toggle{ display:none; }
  .burger{ display:flex; }
  .section{ padding:4.5rem 0; }
}
@media(prefers-reduced-motion:reduce){ *,*::before,*::after{ transition:none!important; animation:none!important; } }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
