/* ============================================================
   Navégalo — site.css
   Public site styles only. Admin styles live in admin.css.
   ============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --navegalo-blue:       #0066A1;
  --navegalo-blue-dark:  #004f7c;
  --navegalo-blue-light: #0080c8;
  --navegalo-orange:     #E98300;
  --navegalo-orange-dark:#c96f00;
  --navegalo-gray-light: #E0E1DD;
  --navegalo-gray:       #616365;
  --navegalo-dark:       #1D2731;
  --navegalo-white:      #ffffff;
  --nvg-ink:             #071f42;
  --nvg-muted:           #5b6673;
  --nvg-soft:            #f4f8fb;
  --nvg-line:            #dce8f4;
  --nvg-glass:           rgba(255,255,255,.12);
  --nvg-shadow:          0 22px 60px rgba(0,0,0,.10);
  --container-width:     1480px;
  --header-height:       86px;
}

/* ── Reset & base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding-top: var(--header-height);
  font-family: Arial, Helvetica, sans-serif;
  color: var(--navegalo-dark);
  background: #f6f9fc;
}
body.menu-open { overflow: hidden; }
a { color: var(--navegalo-blue); }
img { max-width: 100%; }

/* ── Header ─────────────────────────────────────────────────── */
.site-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: var(--header-height);
  background: rgba(255,255,255,.98);
  border-bottom: 1px solid #e6edf2;
  backdrop-filter: blur(16px);
  z-index: 30000;
}
.site-header-inner {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}
.site-logo {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  max-width: 220px;
  position: relative;
  z-index: 30003;
}
.site-logo img {
  height: 46px;
  max-width: 220px;
  width: auto;
  display: block;
  object-fit: contain;
}
.site-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px,1.55vw,30px);
  flex: 1 1 auto;
  min-width: 0;
  white-space: nowrap;
}
.site-nav a,
.site-nav a.nav-button,
.site-nav a.nav-contact,
.site-nav a.nav-quote {
  position: relative;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  color: #111827 !important;
  font-size: clamp(11px,.72vw,14px);
  line-height: 1;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: -8px;
  width: 0; height: 2px;
  background: var(--navegalo-blue);
  transition: width .2s ease;
}
.site-nav a:hover { color: var(--navegalo-blue) !important; }
.site-nav a:hover::after { width: 100%; }
.site-nav a.nav-contact { color: var(--navegalo-orange) !important; }
.site-nav a.nav-contact::after { background: var(--navegalo-orange); }
.site-nav a.nav-quote { color: var(--navegalo-orange) !important; }
.site-nav a.nav-quote::after { background: var(--navegalo-orange); }
.header-right {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  position: relative;
  z-index: 30004;
}
.language-switcher {
  flex: 0 0 auto;
  display: flex;
  gap: 8px;
  align-items: center;
  color: #111827;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
  z-index: 30004;
}
.language-switcher a { color: #111827; text-decoration: none; }
.language-switcher a:hover { color: var(--navegalo-blue); }
.language-switcher span { color: #9ca3af; }
.mobile-menu-toggle {
  display: none;
  flex: 0 0 auto;
  width: 34px; height: 28px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  z-index: 30005;
}
.mobile-menu-toggle span {
  display: block;
  height: 2px; width: 100%;
  margin: 7px 0;
  background: #111827;
  transition: transform .25s ease, opacity .25s ease;
}
.mobile-menu-toggle.active span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.mobile-menu-toggle.active span:nth-child(2) { opacity: 0; }
.mobile-menu-toggle.active span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* ── Shared CTA buttons ─────────────────────────────────────── */
.hero-actions,
.dynamic-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.hero-actions a,
.dynamic-actions a,
.hero a,
.button,
.cta-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 50px !important;
  padding: 14px 24px !important;
  border-radius: 12px !important;
  background: var(--navegalo-orange) !important;
  color: #fff !important;
  border: 1px solid var(--navegalo-orange) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  line-height: 1.1 !important;
  box-shadow: 0 14px 30px rgba(233,131,0,.25) !important;
  cursor: pointer;
}
.hero-actions a:hover,
.dynamic-actions a:hover,
.hero a:hover,
.button:hover,
.cta-button:hover {
  background: var(--navegalo-orange-dark) !important;
  border-color: var(--navegalo-orange-dark) !important;
  color: #fff !important;
}
.hero-actions a.hero-secondary-button,
.dynamic-actions a.hero-secondary-button {
  background: rgba(255,255,255,.14) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  box-shadow: none !important;
  backdrop-filter: blur(8px) !important;
}
.hero-actions a.hero-secondary-button:hover,
.dynamic-actions a.hero-secondary-button:hover {
  background: rgba(255,255,255,.24) !important;
  color: #fff !important;
}

/* ── Eyebrow / kicker labels ────────────────────────────────── */
.nvg-eyebrow, .nvg-kicker,
.dynamic-eyebrow, .dynamic-kicker {
  display: inline-block;
  color: var(--navegalo-orange);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

/* ── Legacy layout (fallback) ───────────────────────────────── */
.hero {
  background: linear-gradient(135deg,var(--navegalo-blue-dark),var(--navegalo-blue),var(--navegalo-blue-light));
  color: #fff;
  padding: 110px max(40px,calc((100vw - var(--container-width))/2 + 22px));
}
.hero p  { max-width: 850px; font-size: 22px; line-height: 1.35; }
.hero h1 { max-width: 1100px; font-size: clamp(42px,6vw,76px); line-height: 1.08; margin: 24px 0; }
.hero h2 { max-width: 1000px; font-size: clamp(34px,4vw,56px); line-height: 1.12; }
.content { max-width: var(--container-width); margin: 60px auto; padding: 0 40px; font-size: 18px; line-height: 1.55; }
.content h2 { font-size: clamp(30px,3vw,44px); margin-top: 0; color: var(--navegalo-dark); }
.content p, .content ul { max-width: 980px; }
.grid { max-width: var(--container-width); margin: 60px auto; padding: 0 40px; display: grid; gap: 28px; }
.cards { grid-template-columns: repeat(auto-fit,minmax(300px,1fr)); }
.cards .full, .grid .full { grid-column: 1/-1; margin: 0 0 8px; }
.cards article {
  background: #fff;
  padding: 32px;
  border-radius: 18px;
  box-shadow: 0 12px 35px rgba(0,0,0,.06);
  border-top: 4px solid var(--navegalo-blue);
}
.cards article h2, .cards article h3 { color: var(--navegalo-dark); margin-top: 0; }
.cards article a {
  display: inline-block;
  margin-top: 16px;
  background: var(--navegalo-orange);
  color: #fff;
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 800;
  text-decoration: none;
}
.cards article a:hover { background: var(--navegalo-orange-dark); }
.cards article strong { display: inline-block; margin-top: 10px; color: var(--navegalo-blue); font-size: 17px; }

/* ── Homepage hero ──────────────────────────────────────────── */
.nvg-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(340px,430px);
  align-items: center;
  gap: clamp(40px,5vw,80px);
  min-height: calc(100vh - var(--header-height));
  padding: 100px max(34px,calc((100vw - var(--container-width))/2 + 24px));
  background:
    radial-gradient(circle at 18% 18%,rgba(0,147,208,.45),transparent 30%),
    radial-gradient(circle at 80% 20%,rgba(233,131,0,.22),transparent 32%),
    linear-gradient(135deg,#06131f 0%,#003b5c 46%,#0066A1 100%);
}
.nvg-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size: 46px 46px;
  opacity: .65;
}
.nvg-hero::after {
  content: "";
  position: absolute;
  right: -220px; top: 90px;
  width: 720px; height: 720px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 0 0 90px rgba(255,255,255,.035), 0 0 0 180px rgba(255,255,255,.02);
}
.nvg-hero-content {
  position: relative;
  z-index: 10;
  max-width: 980px;
  grid-column: 1;
}
.nvg-hero h1 {
  max-width: 1040px;
  margin: 0 0 24px;
  font-size: clamp(44px,7vw,94px);
  line-height: .96;
  letter-spacing: -.055em;
}
.nvg-hero p {
  max-width: 920px;
  margin: 0;
  font-size: clamp(20px,2.2vw,30px);
  line-height: 1.35;
  color: rgba(255,255,255,.9);
}
.nvg-hero-media {
  position: relative;
  z-index: 20;
  grid-column: 2;
  width: 100%; height: auto;
  min-height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.nvg-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.14);
}
.nvg-orbit-one  { right: 5%;  top: 18%; width: 420px; height: 420px; }
.nvg-orbit-two  { right: 16%; top: 32%; width: 260px; height: 260px; }
.nvg-server-stack {
  position: relative;
  width: 100%;
  max-width: 430px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  z-index: 30;
}
.nvg-server-stack article {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 22px 28px;
  border-radius: 24px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: inset 0 0 40px rgba(255,255,255,.08), 0 24px 60px rgba(0,0,0,.20);
  backdrop-filter: blur(14px);
}
.nvg-server-stack article strong {
  display: block;
  color: #fff;
  font-size: clamp(18px,1.35vw,24px);
  line-height: 1.18;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
  margin: 0;
}
.nvg-server-stack article span,
.nvg-trust-bar { display: none !important; }

/* ── Homepage sections ──────────────────────────────────────── */
.nvg-section { max-width: var(--container-width); margin: 90px auto; padding: 0 40px; }
.nvg-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.nvg-section h2,
.nvg-region h2, .nvg-why h2, .nvg-certifications h2,
.nvg-datacenter h2, .nvg-ai h2, .nvg-about-stats h2, .nvg-final-cta h2 {
  margin: 0 0 22px;
  color: var(--navegalo-dark);
  font-size: clamp(34px,4.5vw,64px);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.nvg-section p, .nvg-region p, .nvg-why p,
.nvg-certifications p, .nvg-ai p, .nvg-about-stats p, .nvg-final-cta p {
  font-size: 18px;
  line-height: 1.65;
  color: #4b5563;
}
.nvg-section-heading { max-width: 900px; margin-bottom: 34px; }
.nvg-region {
  max-width: none;
  background: #fff;
  padding: 90px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 56px;
  align-items: center;
}
.nvg-region-map {
  min-height: 520px;
  position: relative;
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at 22% 22%,rgba(0,102,161,.18),transparent 30%),
    radial-gradient(circle at 75% 60%,rgba(233,131,0,.16),transparent 28%),
    linear-gradient(135deg,#eef7fb,#fff);
  border: 1px solid #dce8ef;
}
.nvg-region-map::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg,rgba(0,102,161,.08) 1px,transparent 1px),
    linear-gradient(0deg,rgba(0,102,161,.07) 1px,transparent 1px);
  background-size: 40px 40px;
}
.nvg-map-card {
  position: absolute; left: 34px; top: 34px; z-index: 2;
  background: #fff; padding: 24px; border-radius: 22px;
  box-shadow: 0 20px 55px rgba(0,0,0,.12);
}
.nvg-map-card span  { color: var(--navegalo-orange); font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; }
.nvg-map-card strong { display: block; color: var(--navegalo-blue); font-size: 36px; margin-top: 4px; }
.nvg-map-card small  { color: #6b7280; font-weight: 800; }
.nvg-location-dot {
  position: relative; z-index: 2;
  display: inline-flex; margin: 8px; padding: 12px 15px;
  border-radius: 999px; background: #fff; color: var(--navegalo-dark);
  font-weight: 900; box-shadow: 0 12px 35px rgba(0,0,0,.09);
}
.nvg-region-map .nvg-location-dot:nth-child(2) { position: absolute; left: 38%; top: 34%; }
.nvg-region-map .nvg-location-dot:nth-child(3) { position: absolute; left: 52%; top: 44%; }
.nvg-region-map .nvg-location-dot:nth-child(4) { position: absolute; left: 26%; top: 58%; }
.nvg-region-map .nvg-location-dot:nth-child(5) { position: absolute; left: 14%; top: 42%; }
.nvg-region-map .nvg-location-dot:nth-child(6) { position: absolute; left: 42%; top: 68%; }
.nvg-region-map .nvg-location-dot:nth-child(7) { position: absolute; left: 65%; top: 62%; }
.nvg-region-map .nvg-location-dot:nth-child(8) { position: absolute; left: 70%; top: 25%; }
.nvg-services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.nvg-services-grid article {
  position: relative; min-height: 320px; padding: 30px;
  border-radius: 26px; background: #fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.075); border: 1px solid #edf2f7;
  overflow: hidden; transition: transform .2s ease, box-shadow .2s ease;
}
.nvg-services-grid article::after {
  content: ""; position: absolute; right: -70px; bottom: -70px;
  width: 180px; height: 180px; border-radius: 50%; background: rgba(0,102,161,.08);
}
.nvg-services-grid article:hover { transform: translateY(-6px); box-shadow: 0 28px 70px rgba(0,0,0,.12); }
.nvg-service-icon {
  width: 58px; height: 58px; border-radius: 18px;
  background: linear-gradient(135deg,var(--navegalo-blue),var(--navegalo-blue-light));
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 27px; margin-bottom: 24px;
}
.nvg-services-grid h3, .nvg-why-cards h3, .nvg-industries-grid h3 { margin: 0 0 12px; color: var(--navegalo-dark); font-size: 24px; }
.nvg-services-grid p, .nvg-why-cards p, .nvg-industries-grid p { color: #5b6673; line-height: 1.55; }
.nvg-services-grid a { position: relative; z-index: 2; display: inline-block; margin-top: 14px; color: var(--navegalo-orange); font-weight: 900; text-decoration: none; }
.nvg-why {
  max-width: none;
  background: #101a23; color: #fff;
  padding: 100px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px;
}
.nvg-why h2, .nvg-why p { color: #fff; }
.nvg-why p { color: rgba(255,255,255,.76); }
.nvg-why-cards { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.nvg-why-cards article { padding: 26px; border-radius: 22px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.nvg-why-cards h3 { color: #fff; }
.nvg-why-cards p  { color: rgba(255,255,255,.76); }
.nvg-certifications {
  max-width: var(--container-width); margin: 100px auto; padding: 0 40px;
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 54px; align-items: center;
}
.nvg-cert-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.nvg-cert-grid span, .nvg-feature-cloud span, .nvg-stats-grid span {
  background: #fff; border: 1px solid #e6edf2; border-radius: 16px;
  padding: 18px; font-weight: 900; color: var(--navegalo-blue);
  box-shadow: 0 10px 28px rgba(0,0,0,.055);
}
.nvg-datacenter {
  max-width: none;
  padding: 95px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  background: radial-gradient(circle at 80% 10%,rgba(0,102,161,.12),transparent 32%),#fff;
}
.nvg-feature-cloud { display: flex; gap: 14px; flex-wrap: wrap; }
.nvg-feature-cloud span { flex: 1 1 260px; }
.nvg-ai {
  padding: 110px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  background:
    radial-gradient(circle at 20% 20%,rgba(233,131,0,.22),transparent 30%),
    radial-gradient(circle at 80% 30%,rgba(0,128,200,.3),transparent 34%),
    linear-gradient(135deg,#0b1220,#122a45);
}
.nvg-ai-card {
  max-width: 940px; padding: 44px; border-radius: 30px;
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(14px);
}
.nvg-ai h2, .nvg-ai p { color: #fff; }
.nvg-ai p { color: rgba(255,255,255,.78); }
.nvg-industries-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.nvg-industries-grid article { padding: 28px; border-radius: 22px; background: #fff; box-shadow: 0 14px 38px rgba(0,0,0,.07); border-left: 5px solid var(--navegalo-orange); }
.nvg-about-stats {
  max-width: none; background: #fff;
  padding: 95px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start;
}
.nvg-stats-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.nvg-final-cta {
  color: #fff; text-align: center;
  padding: 105px max(34px,calc((100vw - var(--container-width))/2 + 24px));
  background:
    radial-gradient(circle at 15% 30%,rgba(233,131,0,.25),transparent 30%),
    linear-gradient(135deg,#003b5c,#0066A1,#101a23);
}
.nvg-final-cta h2 { color: #fff; }
.nvg-final-cta p  { max-width: 900px; margin: 0 auto 28px; color: rgba(255,255,255,.84); }
.nvg-final-cta .hero-actions { justify-content: center; }

/* ── Dynamic page system (categories, services, locations, certs) ── */
.dynamic-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  padding: 24px max(34px,calc((100vw - var(--container-width))/2 + 24px)) 80px;
  background:
    radial-gradient(circle at 16% 22%,rgba(0,147,208,.42),transparent 32%),
    radial-gradient(circle at 84% 18%,rgba(233,131,0,.24),transparent 34%),
    linear-gradient(135deg,#06131f 0%,#003b5c 48%,#0066A1 100%);
}
.dynamic-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size: 46px 46px;
  opacity: .65;
}
.dynamic-hero::after {
  content: "";
  position: absolute;
  right: -220px; top: 80px;
  width: 720px; height: 720px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 0 0 90px rgba(255,255,255,.035), 0 0 0 180px rgba(255,255,255,.02);
}
.dynamic-hero-inner {
  position: relative; z-index: 2;
  max-width: var(--container-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(340px,430px);
  gap: 56px;
  align-items: center;
}
.dynamic-hero-copy {
  position: relative; z-index: 3;
  max-width: 980px;
}
.dynamic-hero h1 {
  max-width: 1040px;
  margin: 0 0 24px;
  font-size: clamp(44px,7vw,88px);
  line-height: .98;
  letter-spacing: -.055em;
}
.dynamic-hero p {
  max-width: 920px; margin: 0;
  font-size: clamp(19px,2vw,28px);
  line-height: 1.38;
  color: rgba(255,255,255,.9);
}
.dynamic-hero-panel {
  position: relative; z-index: 4;
  display: grid; gap: 16px;
  align-self: center;
}
.dynamic-hero-panel article {
  min-height: 96px;
  border-radius: 24px; padding: 22px 24px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: inset 0 0 40px rgba(255,255,255,.08), 0 24px 60px rgba(0,0,0,.20);
  backdrop-filter: blur(14px);
}
.dynamic-hero-panel strong {
  display: block; color: #fff;
  font-size: 18px; line-height: 1.18;
  font-weight: 900; letter-spacing: .06em; text-transform: uppercase;
}
.dynamic-hero-panel span {
  display: block; margin-top: 7px;
  color: rgba(255,255,255,.78); font-size: 14px; line-height: 1.45;
}
.dynamic-section {
  max-width: var(--container-width); margin: 90px auto; padding: 0 40px;
}
.dynamic-section-header { max-width: 980px; margin-bottom: 34px; }
.dynamic-section h2, .dynamic-split h2, .dynamic-band h2, .dynamic-final-cta h2 {
  margin: 0 0 22px;
  color: var(--nvg-ink);
  font-size: clamp(34px,4.5vw,64px);
  line-height: 1.02; letter-spacing: -.035em;
}
.dynamic-section p, .dynamic-split p, .dynamic-band p, .dynamic-final-cta p {
  font-size: 18px; line-height: 1.65; color: var(--nvg-muted);
}
.dynamic-split {
  max-width: var(--container-width); margin: 90px auto; padding: 0 40px;
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start;
}
.dynamic-card-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 22px;
}
.dynamic-card {
  position: relative; min-height: 260px; padding: 30px;
  border-radius: 26px; background: #fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.075); border: 1px solid #edf2f7;
  overflow: hidden; transition: transform .2s ease, box-shadow .2s ease;
}
.dynamic-card::after {
  content: ""; position: absolute; right: -70px; bottom: -70px;
  width: 180px; height: 180px; border-radius: 50%; background: rgba(0,102,161,.08);
}
.dynamic-card:hover { transform: translateY(-6px); box-shadow: 0 28px 70px rgba(0,0,0,.12); }
.dynamic-card-icon {
  width: 58px; height: 58px; border-radius: 18px;
  background: linear-gradient(135deg,var(--navegalo-blue),var(--navegalo-blue-light));
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 27px; margin-bottom: 24px;
}
.dynamic-card h3 { margin: 0 0 12px; color: var(--nvg-ink); font-size: 24px; line-height: 1.15; }
.dynamic-card p  { color: #5b6673; line-height: 1.55; font-size: 16px; }
.dynamic-card a  {
  position: relative; z-index: 2;
  display: inline-flex; align-items: center; margin-top: 14px;
  color: var(--navegalo-orange); font-weight: 900; text-decoration: none;
}
.dynamic-band {
  max-width: none; background: #101a23; color: #fff;
  padding: 100px max(40px,calc((100vw - var(--container-width))/2 + 22px));
  display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start;
}
.dynamic-band h2, .dynamic-band p { color: #fff; }
.dynamic-band p { color: rgba(255,255,255,.76); }
.dynamic-band-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.dynamic-band-card {
  padding: 26px; border-radius: 22px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
}
.dynamic-band-card h3 { color: #fff; margin: 0 0 10px; font-size: 22px; }
.dynamic-band-card p  { color: rgba(255,255,255,.76); font-size: 16px; line-height: 1.55; }
.dynamic-feature-cloud {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.dynamic-feature-cloud span {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  background: #fff;
  border: 1px solid #e6edf2;
  border-radius: 16px;
  padding: 16px 20px;
  font-weight: 900;
  font-size: 15px;
  color: var(--navegalo-blue);
  box-shadow: 0 8px 22px rgba(0,0,0,.05);
}
.dynamic-feature-cloud span > span.nvg-icon {
  flex-shrink: 0;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg,#e8f4fc,#d4ecf7);
  border: 1px solid #c2dff0;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: var(--navegalo-blue);
}
.dynamic-feature-cloud span > span.nvg-icon svg {
  width: 20px !important;
  height: 20px !important;
  stroke: #0066A1 !important;
  fill: none !important;
}
/* Ensure all icon SVGs inside service/band icon boxes render correctly */
.nvg-service-icon svg,
.dynamic-card-icon svg,
.dynamic-band-card svg,
.nvg-dc-feature-icon svg {
  stroke: #fff !important;
  fill: none !important;
}
.nvg-icon svg {
  display: block;
  stroke: currentColor;
  fill: none;
}
.dynamic-price-card {
  max-width: 620px; padding: 34px; border-radius: 28px;
  background: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.08); border: 1px solid #edf2f7;
}
.dynamic-price-card strong { color: var(--navegalo-blue); font-size: 22px; }
.dynamic-price-card ul     { margin: 22px 0 0; padding-left: 20px; }
.dynamic-price-card li     { margin-bottom: 10px; color: #4b5563; line-height: 1.55; }
.dynamic-final-cta {
  color: #fff; text-align: center;
  padding: 105px max(34px,calc((100vw - var(--container-width))/2 + 24px));
  background:
    radial-gradient(circle at 15% 30%,rgba(233,131,0,.25),transparent 30%),
    linear-gradient(135deg,#003b5c,#0066A1,#101a23);
}
.dynamic-final-cta h2 { color: #fff; }
.dynamic-final-cta p  { max-width: 900px; margin: 0 auto 28px; color: rgba(255,255,255,.84); }
.dynamic-final-cta .dynamic-actions { justify-content: center; }

/* ── Contact page ───────────────────────────────────────────── */
.contact-hero {
  color: #fff;
  padding: 110px max(34px,calc((100vw - var(--container-width))/2 + 24px));
  background:
    radial-gradient(circle at 15% 25%,rgba(233,131,0,.22),transparent 30%),
    radial-gradient(circle at 85% 20%,rgba(0,128,200,.26),transparent 34%),
    linear-gradient(135deg,#06131f,#003b5c,#0066A1);
  position: relative; overflow: hidden;
}
.contact-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size: 46px 46px; opacity: .65;
}
.contact-hero-inner { position: relative; z-index: 2; max-width: 1100px; }
.contact-hero h1 { font-size: clamp(44px,7vw,88px); line-height: .98; letter-spacing: -.05em; margin: 0 0 24px; }
.contact-hero p  { max-width: 850px; font-size: clamp(20px,2vw,28px); line-height: 1.4; color: rgba(255,255,255,.86); }
.contact-hero-cards {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px; margin-top: 36px; max-width: 1050px;
}
.contact-hero-cards article {
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22);
  border-radius: 20px; padding: 22px; backdrop-filter: blur(12px);
}
.contact-hero-cards strong { display: block; color: #fff; font-size: 18px; margin-bottom: 8px; }
.contact-hero-cards span  { color: rgba(255,255,255,.78); line-height: 1.45; }
.contact-section  { max-width: var(--container-width); margin: 80px auto; padding: 0 40px; }
.contact-layout   { display: grid; grid-template-columns: minmax(0,1fr) 420px; gap: 34px; align-items: start; }
.contact-form-card,
.contact-info-card {
  background: #fff; border-radius: 28px; padding: 34px;
  box-shadow: 0 18px 55px rgba(0,0,0,.08); border: 1px solid #edf2f7;
}
.contact-info-card { position: sticky; top: calc(var(--header-height) + 24px); }
.contact-form-card h2, .contact-info-card h2 { margin: 0 0 14px; font-size: clamp(30px,3vw,48px); line-height: 1.05; }
.contact-form-card p, .contact-info-card p   { color: #5b6673; line-height: 1.6; }
.contact-form-card p, .contact-info-card p   { color: #5b6673; line-height: 1.6; }
.contact-success {
  background: #e8f7ef; border: 1px solid #a8e5ca;
  color: #006b4f; padding: 16px; border-radius: 14px; margin: 20px 0; font-weight: 800;
}
.contact-error {
  background: #fff0f0; border: 1px solid #ffc7c7;
  color: #9f1d1d; padding: 16px; border-radius: 14px; margin: 20px 0;
}
.contact-type-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 26px 0; }
.contact-type-option {
  display: flex !important; gap: 14px; align-items: flex-start;
  margin: 0 !important; padding: 18px; border: 1px solid #dfe8ee;
  border-radius: 18px; cursor: pointer; background: #f9fbfc;
}
.contact-type-option input  { width: auto !important; margin-top: 4px; }
.contact-type-option strong { display: block; color: var(--navegalo-dark); margin-bottom: 4px; }
.contact-type-option small  { display: block; color: #687684; font-weight: 700; }
.contact-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.contact-form label {
  display: block; margin-bottom: 18px; font-weight: 900; color: var(--navegalo-dark);
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%; margin-top: 8px; padding: 14px;
  border: 1px solid #d7ded9; border-radius: 12px;
  font-size: 15px; font-family: Arial, Helvetica, sans-serif;
  resize: vertical;
}
.contact-form button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 50px; padding: 14px 24px;
  background: var(--navegalo-orange); color: #fff;
  border: none; border-radius: 12px; font-weight: 900; cursor: pointer;
  box-shadow: 0 14px 30px rgba(233,131,0,.25);
}
.contact-form button:hover { background: var(--navegalo-orange-dark); }
.contact-info-list { display: grid; gap: 16px; margin-top: 24px; }
.contact-info-list div {
  padding: 18px; border-radius: 16px;
  background: #f7fafc; border-left: 4px solid var(--navegalo-blue);
}
.contact-info-list strong { display: block; color: #5b6673; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 5px; }
.contact-info-list span,
.contact-info-list a { color: var(--navegalo-dark); font-weight: 900; text-decoration: none; }
.contact-support-note {
  margin-top: 24px; padding: 22px; border-radius: 18px;
  background: linear-gradient(135deg,#003b5c,#0066A1); color: #fff;
}
.contact-support-note p { color: rgba(255,255,255,.82); margin-bottom: 0; }

/* ── Quote builder ──────────────────────────────────────────── */
.quote-builder-wrapper     { max-width: var(--container-width); margin: 80px auto; padding: 0 24px; }
.quote-builder-layout      { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 30px; align-items: start; }
.quote-builder-card,
.quote-summary-card        { background: #fff; border-radius: 28px; box-shadow: 0 18px 55px rgba(0,0,0,.08); border: 1px solid #edf2f7; }
.quote-builder-card        { padding: 50px; }
.quote-summary-card        { padding: 26px; position: sticky; top: 110px; }
.quote-builder-card h2,
.quote-summary-card h2     { margin-top: 0; color: var(--nvg-ink); letter-spacing: -.03em; }
.quote-builder-card label  { font-weight: 700; margin-bottom: 8px; }
.quote-builder-card input,
.quote-builder-card select,
.quote-builder-card textarea {
  width: 100%; padding: 14px; border: 1px solid #d7ded9; border-radius: 10px; font-size: 15px;
}
.alert-success { background: #e8f7ef; color: #006b4f; padding: 18px; border-radius: 10px; margin-bottom: 25px; }
.quote-hero .dynamic-hero-inner { display: block !important; }
.quote-hero .dynamic-hero-copy  { max-width: 980px !important; }
.quote-plan-group               { border-radius: 20px; }
.quote-plan-group h3            { color: var(--navegalo-blue); }
.quote-plan-option              { display: block !important; }
.quote-plan-option label        { display: flex !important; align-items: flex-start !important; gap: 14px !important; }
.quote-plan-option input[type="checkbox"] { width: auto !important; margin-top: 5px !important; flex: 0 0 auto !important; }
.quote-plan-option span         { display: block !important; }

/* ── NavAI chat widget ──────────────────────────────────────── */
#navegalo-ai-widget   { position: fixed; right: 24px; bottom: 24px; z-index: 25000; font-family: Arial,sans-serif; }
#navegalo-ai-toggle   { width: 70px; height: 70px; border-radius: 50%; border: none; background: #0066b3; color: #fff; font-weight: 900; font-size: 22px; cursor: pointer; box-shadow: 0 15px 35px rgba(0,0,0,.25); }
#navegalo-ai-panel    { width: 390px; max-width: calc(100vw - 32px); height: 620px; max-height: calc(100vh - 48px); background: #fff; border-radius: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.25); overflow: hidden; display: flex; flex-direction: column; }
#navegalo-ai-header   { background: var(--navegalo-blue); color: #fff; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; }
#navegalo-ai-close    { background: transparent; color: #fff; border: none; font-size: 28px; line-height: 1; cursor: pointer; }
#navegalo-ai-lead-form        { padding: 18px; background: #fff; display: flex; flex-direction: column; gap: 12px; }
#navegalo-ai-lead-form p      { margin: 0; font-size: 14px; line-height: 1.5; }
#navegalo-ai-lead-form input  { width: 100%; padding: 12px; border: 1px solid #d7ded9; border-radius: 10px; font-size: 14px; }
.navai-disclaimer { font-size: 12px !important; line-height: 1.45 !important; color: #5e6b66; background: #f4f8f6; border: 1px solid #dfe8e4; border-radius: 10px; padding: 10px; }
#navai-start-chat     { background: #0066b3; color: #fff; border: none; border-radius: 10px; padding: 12px; font-weight: 800; cursor: pointer; }
#navegalo-ai-chat-area { flex: 1; display: flex; flex-direction: column; min-height: 0; }
#navegalo-ai-messages  { flex: 1; padding: 14px; overflow-y: auto; background: #f6f8f9; }
.ai-message            { padding: 10px 12px; border-radius: 12px; margin-bottom: 10px; font-size: 14px; line-height: 1.45; }
.ai-message.assistant  { background: #fff; color: var(--navegalo-dark); }
.ai-message.user       { background: var(--navegalo-orange); color: #fff; margin-left: 30px; }
#navegalo-ai-form      { padding: 16px; background: #fff; display: flex; gap: 12px; align-items: flex-end; }
#navegalo-ai-input     { flex: 1; width: 100%; min-height: 90px; height: 90px; resize: none; padding: 14px 16px; font-size: 15px; line-height: 1.5; border: 1px solid #d7ded9; border-radius: 12px; }
#navegalo-ai-form button { min-width: 100px; height: 90px; border: none; border-radius: 12px; background: #0066b3; color: #fff; font-weight: 800; font-size: 16px; cursor: pointer; }
.ai-chat-link { display: inline-block; margin-top: 8px; background: var(--navegalo-orange); color: #fff !important; padding: 8px 12px; border-radius: 10px; font-weight: 800; text-decoration: none; }

/* ── Cookie consent ─────────────────────────────────────────── */
.cookie-consent {
  position: fixed; left: 24px; right: 24px; bottom: 24px; z-index: 40000;
  max-width: 980px; margin: 0 auto;
  background: #fff; color: var(--navegalo-dark); border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.22); padding: 22px;
  display: flex; gap: 22px; align-items: center; justify-content: space-between;
  border-top: 5px solid var(--navegalo-blue);
}
.cookie-consent p   { margin: 6px 0 0; font-size: 14px; line-height: 1.45; }
.cookie-actions     { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-actions button { border: none; border-radius: 999px; padding: 11px 16px; font-weight: 900; cursor: pointer; }
#cookie-essential   { background: #eef6fb; color: var(--navegalo-blue); }
#cookie-accept      { background: var(--navegalo-orange); color: #fff; }
.cf-turnstile       { margin: 18px 0; }

/* ── Footer ─────────────────────────────────────────────────── */
.site-footer { background: var(--navegalo-dark); color: #fff; padding: 48px 22px 24px; margin-top: 60px; }
.site-footer a       { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--navegalo-orange); }
.site-footer-inner {
  max-width: var(--container-width); margin: 0 auto;
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 28px;
}
.site-footer-logo img { height: 44px; width: auto; background: #fff; padding: 6px; border-radius: 8px; }
.site-footer h4   { margin: 0 0 12px; }
.site-footer ul   { list-style: none; padding: 0; margin: 0; }
.site-footer li   { margin-bottom: 9px; font-size: 14px; }
.footer-contact   { color: #d7e1dd; line-height: 1.6; font-size: 14px; }
.social-links     { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.social-links a   { background: rgba(255,255,255,.1); padding: 7px 10px; border-radius: 999px; font-size: 13px; }
.site-footer-bottom {
  max-width: var(--container-width); margin: 30px auto 0;
  padding-top: 20px; border-top: 1px solid rgba(255,255,255,.15);
  color: #b9c8c2; font-size: 13px;
  display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1500px) {
  .site-header-inner { padding-left: 24px; padding-right: 24px; gap: 18px; }
  .site-logo { max-width: 190px; }
  .site-logo img { height: 42px; max-width: 190px; }
  .site-nav { gap: 16px; }
  .site-nav a,
  .site-nav a.nav-button,
  .site-nav a.nav-contact,
  .site-nav a.nav-quote { font-size: 11px; letter-spacing: .065em; }
}

@media (max-width: 1180px) {
  :root { --header-height: 112px; }
  .site-header { height: var(--header-height); }
  .site-header-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 8px 18px;
    padding: 14px 24px 12px;
    align-items: center;
  }
  .site-logo { grid-column: 1/3; grid-row: 1; justify-self: center; max-width: 230px; }
  .site-logo img { height: 44px; max-width: 230px; }
  .header-right { grid-column: 2; grid-row: 2; justify-self: end; display: flex; align-items: center; gap: 18px; min-height: 30px; }
  .mobile-menu-toggle { display: block; order: 1; width: 30px; height: 26px; }
  .mobile-menu-toggle span { margin: 6px 0; }
  .language-switcher { order: 2; margin: 0; font-size: 14px; gap: 9px; }
  .site-nav {
    position: fixed; top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: #fff;
    display: none; flex-direction: column;
    align-items: flex-start; justify-content: flex-start;
    padding: 130px 30px 44px; gap: 0;
    z-index: 30002; overflow-y: auto;
    white-space: normal;
  }
  .site-nav.active { display: flex; }
  .site-nav a,
  .site-nav a.nav-button,
  .site-nav a.nav-contact,
  .site-nav a.nav-quote {
    width: 100%;
    padding: 20px 0 !important;
    border-bottom: 1px solid #e5e7eb !important;
    color: #111827 !important;
    font-size: 20px; letter-spacing: .12em; line-height: 1.2; white-space: normal;
  }
  .site-nav a.nav-quote { color: var(--navegalo-orange) !important; }
  .site-nav a::after { display: none; }
  .nvg-hero { min-height: auto; grid-template-columns: 1fr; gap: 34px; padding: 80px 24px 54px; }
  .nvg-hero-content, .nvg-hero-media { grid-column: 1; }
  .nvg-hero-media { position: relative; inset: auto; min-height: auto; }
  .nvg-server-stack { max-width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nvg-orbit { display: none; }
  .nvg-split, .nvg-region, .nvg-why, .nvg-certifications, .nvg-about-stats { grid-template-columns: 1fr; }
  .nvg-services-grid, .nvg-industries-grid { grid-template-columns: repeat(2,1fr); }
  .nvg-region-map { min-height: 430px; }
  .dynamic-hero { padding: 80px 24px 60px; }
  .dynamic-hero-inner { grid-template-columns: 1fr; gap: 34px; }
  .dynamic-hero-panel { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dynamic-split, .dynamic-band { grid-template-columns: 1fr; }
  .dynamic-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-layout, .contact-hero-cards { grid-template-columns: 1fr; }
  .contact-info-card { position: static; }
  .quote-builder-layout { grid-template-columns: 1fr; }
  .quote-summary-card { position: static; }
}

@media (max-width: 1180px) {
  .dynamic-feature-cloud { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .hero, .dynamic-hero { padding: 80px 26px; }
  .content, .grid, .nvg-section, .nvg-certifications { padding-left: 24px; padding-right: 24px; }
  .dynamic-section, .dynamic-split { padding-left: 24px; padding-right: 24px; }
  .dynamic-card-grid, .dynamic-band-grid { grid-template-columns: 1fr; }
  .dynamic-band { padding-left: 24px; padding-right: 24px; }
  .site-footer-inner { grid-template-columns: 1fr; }
  .cookie-consent { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 768px) {
  .nvg-server-stack { grid-template-columns: 1fr; }
  .nvg-server-stack article { min-height: 82px; }
  .nvg-hero h1 { font-size: clamp(42px,12vw,64px); }
  .nvg-region, .nvg-why, .nvg-datacenter, .nvg-ai, .nvg-about-stats, .nvg-final-cta { padding-left: 24px; padding-right: 24px; }
  .nvg-services-grid, .nvg-industries-grid, .nvg-why-cards, .nvg-cert-grid, .nvg-stats-grid { grid-template-columns: 1fr; }
  .nvg-region-map { min-height: auto; display: grid; gap: 10px; padding: 180px 18px 22px; }
  .nvg-region-map .nvg-location-dot { position: static !important; margin: 0; justify-content: center; }
  .nvg-ai-card { padding: 28px; }
  .dynamic-hero h1 { font-size: clamp(42px,12vw,64px); }
  .dynamic-actions { flex-direction: column; }
  .dynamic-actions a { width: 100%; text-align: center; }
  .form-grid { grid-template-columns: 1fr; }
  .quote-builder-card { padding: 25px; }
  #navegalo-ai-widget { right: 16px; bottom: 16px; }
  #navegalo-ai-panel  { width: calc(100vw - 32px); height: 600px; }
  #navegalo-ai-form   { flex-direction: column; align-items: stretch; }
  #navegalo-ai-form button { width: 100%; height: 48px; }
  #navegalo-ai-input  { height: 90px; }
  .contact-hero, .contact-section { padding-left: 24px; padding-right: 24px; }
  .contact-section { margin: 60px auto; }
  .contact-form-card, .contact-info-card { padding: 24px; border-radius: 22px; }
  .contact-form-grid, .contact-type-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  :root { --header-height: 124px; }
  .site-header-inner { padding: 16px 20px 12px; gap: 8px 16px; }
  .site-logo img { height: 42px; max-width: 210px; }
  .header-right { gap: 16px; }
  .language-switcher { font-size: 13px; gap: 8px; }
  .mobile-menu-toggle { width: 28px; height: 24px; }
  .site-nav { padding: 130px 26px 40px; }
  .site-nav a,
  .site-nav a.nav-button,
  .site-nav a.nav-contact,
  .site-nav a.nav-quote { font-size: 18px; }
  .hero-actions { flex-direction: column; }
  .hero-actions a { width: 100%; text-align: center; }
  .cookie-actions { width: 100%; flex-direction: column; }
  .cookie-actions button { width: 100%; }
}

/* ── Certification logo grid (home page) ─────────────────── */
.nvg-cert-logo-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.nvg-cert-logo-card {
  background: #fff;
  border: 1px solid #e6edf2;
  border-radius: 18px;
  padding: 22px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.055);
  transition: transform .18s ease, box-shadow .18s ease;
  min-height: 140px;
}
.nvg-cert-logo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,.1);
}
.nvg-cert-logo-card img {
  max-height: 72px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
}
.nvg-cert-logo-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
}
.nvg-cert-logo-fallback span {
  font-size: 48px;
  line-height: 1;
}
.nvg-cert-logo-name {
  font-size: 13px;
  font-weight: 900;
  color: #3a5448;
  text-align: center;
  letter-spacing: .03em;
}

/* ── DC features grid ────────────────────────────────────── */
.nvg-dc-features {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin-top: 32px;
}
.nvg-dc-feature-item {
  background: #fff;
  border: 1px solid #e6edf2;
  border-radius: 16px;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px;
  box-shadow: 0 8px 22px rgba(0,0,0,.05);
}
.nvg-dc-feature-icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  background: linear-gradient(135deg, #e8f4fc, #d4ecf7);
  border: 1px solid #c2dff0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--navegalo-blue);
}
.nvg-dc-feature-item span {
  font-size: 13px;
  font-weight: 800;
  color: #2d4a3e;
  line-height: 1.35;
}

/* ── SVG icon utility ────────────────────────────────────── */
.nvg-icon svg {
  width: 100%;
  height: 100%;
}
.nvg-service-icon .nvg-icon svg {
  stroke: #fff;
}

/* ── Responsive additions ────────────────────────────────── */
@media (max-width: 1180px) {
  .nvg-cert-logo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nvg-dc-features    { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .nvg-cert-logo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nvg-dc-features    { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .nvg-cert-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvg-dc-features    { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* ============================================================
   Typography & polish upgrade (appended v13)
   Adds a real type system, tames the blanket 900 weights,
   and fills the accessibility gaps (keyboard focus, reduced motion).
   Requires the Space Grotesk + Inter <link> in the page <head>.
   ============================================================ */

/* 1) Real typeface pairing (was Arial/Helvetica everywhere) */
body,
.contact-form input, .contact-form select, .contact-form textarea,
.quote-builder-card input, .quote-builder-card select, .quote-builder-card textarea,
#navegalo-ai-widget {
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}
h1, h2, h3, h4,
.nvg-hero h1, .dynamic-hero h1, .contact-hero h1,
.nvg-section h2, .nvg-region h2, .nvg-why h2, .nvg-certifications h2,
.nvg-datacenter h2, .nvg-ai h2, .nvg-about-stats h2, .nvg-final-cta h2,
.dynamic-section h2, .dynamic-split h2, .dynamic-band h2, .dynamic-final-cta h2,
.contact-form-card h2, .contact-info-card h2,
.nvg-map-card strong {
  font-family: "Space Grotesk", "Inter", system-ui, sans-serif;
}

/* 2) Turn the wall of weight-900 into a hierarchy */
.site-nav a, .site-nav a.nav-button, .site-nav a.nav-contact, .site-nav a.nav-quote {
  font-weight: 600 !important; letter-spacing: .045em;
}
.hero-actions a, .dynamic-actions a, .hero a, .button, .cta-button,
.contact-form button, #cookie-accept, #cookie-essential {
  font-weight: 700 !important;
}
.nvg-eyebrow, .nvg-kicker, .dynamic-eyebrow, .dynamic-kicker { font-weight: 700; letter-spacing: .14em; }
.nvg-server-stack article strong, .dynamic-hero-panel strong { font-weight: 700; }
.nvg-services-grid a, .dynamic-card a, .nvg-services-grid h3,
.nvg-why-cards h3, .nvg-industries-grid h3 { font-weight: 700; }
.contact-form label, .contact-info-list span, .contact-info-list a,
.nvg-location-dot, .nvg-cert-grid span, .nvg-feature-cloud span,
.nvg-stats-grid span, .dynamic-feature-cloud span { font-weight: 700 !important; }
.language-switcher, .language-switcher a { font-weight: 600; }

/* 3) Relax the extreme display tracking (Space Grotesk reads cleaner here) */
.nvg-hero h1, .dynamic-hero h1, .contact-hero h1 { letter-spacing: -.03em; }
.nvg-section h2, .nvg-region h2, .nvg-why h2, .nvg-certifications h2,
.nvg-datacenter h2, .nvg-ai h2, .nvg-about-stats h2, .nvg-final-cta h2,
.dynamic-section h2, .dynamic-split h2, .dynamic-band h2, .dynamic-final-cta h2 { letter-spacing: -.02em; }

/* 4) Accessibility — visible keyboard focus (there was none) */
a:focus-visible, button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--navegalo-orange);
  outline-offset: 2px;
  border-radius: 6px;
}

/* 5) Respect reduced-motion (there was none) */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
