/*
 * B2EI Premium Website 2026
 * Architecture visuelle responsive, accessible et sans dépendance externe.
 */

:root {
  --brand-primary: #299751;
  --brand-secondary: #66b55a;
  --brand-accent: #b93e39;
  --brand-dark: #123d2c;
  --brand-sky: #13bbee;
  --brand-gold: #fdc300;
  --brand-violet: #9d75b2;
  --ink: #11231a;
  --ink-soft: #44544b;
  --muted: #6f7f76;
  --line: rgba(20, 63, 45, 0.13);
  --line-light: rgba(255, 255, 255, 0.16);
  --surface: #ffffff;
  --surface-soft: #f3f8f5;
  --surface-tint: #e9f5ee;
  --surface-dark: #0b2c20;
  --surface-deep: #061e16;
  --success: #198754;
  --warning: #b77900;
  --danger: #b42318;
  --shadow-sm: 0 10px 30px rgba(9, 43, 30, 0.08);
  --shadow-md: 0 24px 70px rgba(9, 43, 30, 0.14);
  --shadow-lg: 0 34px 100px rgba(4, 27, 19, 0.24);
  --radius-sm: 12px;
  --radius: 22px;
  --radius-lg: 36px;
  --radius-xl: 52px;
  --container: 1240px;
  --header-height: 92px;
  --topbar-height: 38px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: "Aptos Display", "Segoe UI", var(--font-sans);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.menu-open, body.overlay-open, body.lightbox-open { overflow: hidden; }
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
figure, blockquote { margin: 0; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; text-decoration: none; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { border: 0; background: none; color: inherit; }
ul, ol { margin: 0; padding: 0; }
address { font-style: normal; }
[hidden] { display: none !important; }
::selection { color: #fff; background: var(--brand-primary); }

h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 {
  font-family: var(--font-display);
  letter-spacing: -0.035em;
  line-height: 1.08;
  text-wrap: balance;
}
h1 { font-size: clamp(2.75rem, 6.2vw, 6.5rem); }
h2 { font-size: clamp(2.05rem, 4vw, 4.4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
p { color: var(--ink-soft); }
strong { font-weight: 750; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.container.narrow, .narrow { max-width: 850px; }
.section { position: relative; padding: clamp(76px, 9vw, 132px) 0; }
.section-soft { background: var(--surface-soft); }
.section-dark {
  color: #fff;
  background:
    radial-gradient(circle at 10% 10%, rgba(102, 181, 90, .18), transparent 30%),
    radial-gradient(circle at 90% 85%, rgba(19, 187, 238, .10), transparent 34%),
    linear-gradient(145deg, var(--surface-deep), var(--surface-dark));
}
.section-dark p, .section-dark .lead { color: rgba(255,255,255,.72); }
.anchor-offset { position: relative; top: calc(-1 * var(--header-height)); }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 1.08em; height: 1.08em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 9999;
  padding: 11px 18px;
  color: #fff;
  background: var(--surface-dark);
  border-radius: 10px;
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

/* Buttons & links */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 22px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 760;
  letter-spacing: -.01em;
  line-height: 1.2;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s ease, color .3s ease, border-color .3s ease;
}
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.24) 45%, transparent 65%);
  transform: translateX(-120%);
  transition: transform .7s var(--ease);
}
.btn:hover::before { transform: translateX(120%); }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn-lg { min-height: 57px; padding: 16px 27px; }
.btn-block { width: 100%; }
.btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--brand-primary), #1f7c42);
  box-shadow: 0 12px 30px rgba(41,151,81,.26);
}
.btn-primary:hover { box-shadow: 0 17px 42px rgba(41,151,81,.34); }
.btn-light { color: var(--surface-dark); background: #fff; box-shadow: 0 15px 35px rgba(0,0,0,.13); }
.btn-light:hover { background: #f4fff7; }
.btn-outline { color: var(--brand-dark); border-color: rgba(18,61,44,.28); background: transparent; }
.btn-outline:hover { color: #fff; border-color: var(--brand-primary); background: var(--brand-primary); }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.btn-ghost:hover, .btn-ghost-light:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.7); }
.btn-ghost-light { color: #fff; border-color: rgba(255,255,255,.35); background: transparent; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brand-primary);
  font-weight: 760;
  line-height: 1.2;
}
.text-link .icon { transition: transform .3s var(--ease); }
.text-link:hover .icon { transform: translateX(5px); }
.text-link.strong { font-size: 1.05rem; }
.round-link {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  transition: .3s var(--ease);
}
.round-link:hover { color: var(--surface-dark); background: #fff; transform: rotate(-12deg); }

/* Typography helpers */
.eyebrow, .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--brand-primary);
  font-size: .76rem;
  font-weight: 840;
  letter-spacing: .16em;
  line-height: 1.3;
  text-transform: uppercase;
}
.section-dark .eyebrow, .cta-panel .eyebrow { color: #9be09b; }
.lead { font-size: clamp(1.08rem, 1.7vw, 1.28rem); line-height: 1.65; color: #405248; }
.section-heading { max-width: 820px; margin-bottom: clamp(36px, 5vw, 64px); }
.section-heading.align-center { margin-inline: auto; text-align: center; }
.section-heading.align-right { margin-left: auto; text-align: right; }
.section-heading h2 { margin-bottom: 20px; }
.section-heading p { max-width: 700px; margin-bottom: 0; font-size: 1.08rem; }
.section-heading.align-center p { margin-inline: auto; }
.section-action { display: flex; justify-content: center; margin-top: 44px; }
.section-action.left { justify-content: flex-start; }
.prose { font-size: 1.05rem; }
.prose h2, .prose h3 { margin: 1.8em 0 .7em; }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose p, .prose ul, .prose ol { margin-bottom: 1.25em; }
.prose ul, .prose ol { padding-left: 1.4em; color: var(--ink-soft); }
.prose li + li { margin-top: .45em; }
.prose a { color: var(--brand-primary); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* Header */
.site-topbar {
  position: relative;
  z-index: 120;
  height: var(--topbar-height);
  color: rgba(255,255,255,.78);
  background: var(--surface-deep);
  font-size: .76rem;
}
.topbar-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar-presence, .topbar-links, .topbar-links a { display: flex; align-items: center; gap: 9px; }
.topbar-presence strong { color: #fff; font-weight: 650; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #71df8d; box-shadow: 0 0 0 5px rgba(113,223,141,.12); }
.topbar-links { gap: 24px; }
.topbar-links a:hover { color: #fff; }
.topbar-emergency { color: #ffd48c; }
.site-header {
  position: sticky;
  top: 0;
  z-index: 110;
  height: var(--header-height);
  background: rgba(255,255,255,.92);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(18px) saturate(150%);
  transition: height .3s var(--ease), box-shadow .3s ease, border-color .3s ease, background .3s ease;
}
.site-header.is-scrolled { height: 78px; border-color: var(--line); box-shadow: 0 14px 45px rgba(9,43,30,.10); background: rgba(255,255,255,.96); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 160px; max-height: 74px; object-fit: contain; object-position: left center; }
.desktop-nav { display: flex; align-items: stretch; align-self: stretch; gap: 24px; }
.desktop-nav > a, .nav-dropdown > button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 100%;
  padding: 0;
  color: #33483d;
  font-size: .9rem;
  font-weight: 710;
  white-space: nowrap;
}
.desktop-nav > a::after, .nav-dropdown > button::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 17px;
  width: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--brand-primary);
  transform: translateX(-50%);
  transition: width .3s var(--ease);
}
.desktop-nav > a:hover, .desktop-nav > a.active, .nav-dropdown:hover > button, .nav-dropdown.active > button, .nav-dropdown.is-open > button { color: var(--brand-primary); }
.desktop-nav > a:hover::after, .desktop-nav > a.active::after, .nav-dropdown:hover > button::after, .nav-dropdown.active > button::after, .nav-dropdown.is-open > button::after { width: 28px; }
.nav-dropdown { position: relative; display: flex; align-items: stretch; }
.nav-dropdown > button .icon { width: 13px; height: 13px; transition: transform .25s ease; }
.nav-dropdown.is-open > button .icon, .nav-dropdown:hover > button .icon { transform: rotate(180deg); }
.mega-menu, .nav-popover {
  position: absolute;
  top: calc(100% - 8px);
  left: 50%;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 14px) scale(.985);
  transform-origin: top center;
  transition: opacity .25s ease, transform .35s var(--ease), visibility .25s ease;
}
.nav-dropdown:hover .mega-menu, .nav-dropdown:hover .nav-popover, .nav-dropdown.is-open .mega-menu, .nav-dropdown.is-open .nav-popover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
}
.mega-menu {
  display: grid;
  grid-template-columns: .85fr 1.45fr;
  width: min(940px, calc(100vw - 40px));
  padding: 14px;
  color: var(--ink);
  background: rgba(255,255,255,.98);
  border: 1px solid var(--line);
  border-radius: 26px;
  box-shadow: var(--shadow-lg);
}
.mega-intro {
  position: relative;
  padding: 30px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(145deg, var(--surface-deep), var(--surface-dark));
  border-radius: 18px;
}
.mega-intro::after { content:""; position:absolute; width:190px; height:190px; right:-80px; bottom:-100px; border:35px solid rgba(102,181,90,.15); border-radius:50%; }
.mega-intro h2 { margin-bottom: 14px; font-size: 1.75rem; }
.mega-intro p { margin-bottom: 24px; color: rgba(255,255,255,.70); }
.mega-intro .text-link { color: #a9efaa; }
.mega-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; padding: 8px 8px 8px 14px; }
.mega-links > a, .nav-popover > a {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 14px;
  border-radius: 15px;
  transition: background .25s ease, transform .3s var(--ease);
}
.mega-links > a:hover, .nav-popover > a:hover { background: var(--surface-soft); transform: translateX(3px); }
.mega-links strong, .nav-popover strong { display: block; font-size: .92rem; color: var(--ink); }
.mega-links small, .nav-popover small { display: block; color: var(--muted); font-size: .75rem; }
.mega-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; }
.mega-icon.green { color: #217f45; background: #e2f4e7; }
.mega-icon.sky { color: #077a9f; background: #def5fc; }
.mega-icon.violet { color: #77538b; background: #f0e8f4; }
.mega-icon.red { color: #a9322d; background: #fae8e6; }
.mega-icon.gold { color: #916d00; background: #fff4c8; }
.mega-icon.dark { color: #fff; background: var(--surface-dark); }
.nav-popover { width: 350px; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-lg); }
.nav-popover > a .icon { width: 26px; height: 26px; color: var(--brand-primary); }
.header-actions { display: flex; align-items: center; gap: 9px; }
.header-search, .menu-toggle {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  color: var(--brand-dark);
  background: var(--surface-soft);
  border: 1px solid var(--line);
  transition: .25s ease;
}
.header-search:hover, .menu-toggle:hover { color: #fff; background: var(--brand-primary); }
.btn-header { min-height: 46px; padding: 11px 18px; font-size: .85rem; }
.menu-toggle { display: none; width: auto; min-width: 48px; padding: 0 13px; border-radius: 999px; gap: 7px; }
.menu-toggle span { display: none; font-size: .82rem; font-weight: 750; }

/* Mobile menu */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 500;
  visibility: hidden;
  opacity: 0;
  background: rgba(4, 25, 18, .62);
  backdrop-filter: blur(8px);
  transition: opacity .3s ease, visibility .3s ease;
}
.mobile-menu.is-open { visibility: visible; opacity: 1; }
.mobile-menu-panel {
  position: absolute;
  top: 10px;
  right: 10px;
  bottom: 10px;
  width: min(520px, calc(100% - 20px));
  padding: 20px;
  overflow-y: auto;
  background: #fff;
  border-radius: 28px;
  box-shadow: var(--shadow-lg);
  transform: translateX(105%);
  transition: transform .45s var(--ease);
}
.mobile-menu.is-open .mobile-menu-panel { transform: translateX(0); }
.mobile-menu-head { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 18px; border-bottom: 1px solid var(--line); }
.mobile-menu-head .brand img { width: 145px; }
.mobile-menu-head button { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--surface-soft); }
.mobile-menu nav { display: flex; flex-direction: column; padding: 18px 0; }
.mobile-menu nav > a, .mobile-menu summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 52px;
  padding: 10px 8px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-weight: 760;
  list-style: none;
}
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary .icon { transition: transform .25s ease; }
.mobile-menu details[open] summary .icon { transform: rotate(180deg); }
.mobile-menu details > div { display: grid; gap: 4px; padding: 8px 0 12px 16px; }
.mobile-menu details > div a { padding: 9px 12px; color: var(--ink-soft); border-radius: 10px; }
.mobile-menu details > div a:hover { color: var(--brand-primary); background: var(--surface-soft); }
.mobile-menu-cta { display: grid; gap: 12px; padding-top: 10px; }
.mobile-whatsapp { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; color: #167c46; font-weight: 760; border: 1px solid rgba(22,124,70,.24); border-radius: 999px; }

/* Search */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 600;
  display: grid;
  place-items: start center;
  padding: 10vh 20px 20px;
  visibility: hidden;
  opacity: 0;
  background: rgba(3,23,16,.78);
  backdrop-filter: blur(16px);
  transition: opacity .3s ease, visibility .3s ease;
}
.search-overlay.is-open { visibility: visible; opacity: 1; }
.search-dialog {
  position: relative;
  width: min(760px, 100%);
  padding: clamp(28px, 5vw, 56px);
  background: #fff;
  border-radius: 32px;
  box-shadow: var(--shadow-lg);
  transform: translateY(-18px) scale(.98);
  transition: transform .35s var(--ease);
}
.search-overlay.is-open .search-dialog { transform: translateY(0) scale(1); }
.search-dialog > button { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--surface-soft); }
.search-dialog h2 { margin-bottom: 28px; font-size: clamp(2rem, 5vw, 3.4rem); }
.search-field { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface-soft); }
.search-field input { width: 100%; min-width: 0; padding: 10px 0; color: var(--ink); border: 0; outline: 0; background: transparent; }
.search-field button { flex: 0 0 auto; min-height: 46px; padding: 10px 18px; color: #fff; background: var(--brand-primary); border-radius: 13px; font-weight: 750; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; color: var(--muted); font-size: .84rem; }
.search-suggestions a { padding: 5px 10px; color: var(--brand-dark); background: var(--surface-soft); border-radius: 999px; }

/* Hero */
.hero-slider {
  position: relative;
  min-height: calc(100svh - var(--topbar-height) - var(--header-height));
  overflow: hidden;
  color: #fff;
  background: var(--surface-dark);
  isolation: isolate;
}
.hero-inner { min-height: min(770px, calc(100svh - var(--header-height))); }
.hero-slides, .hero-slide, .hero-slide picture, .hero-slide img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-slide { opacity: 0; transform: scale(1.07); transition: opacity 1.6s ease, transform 8s linear; }
.hero-slide.is-active { opacity: 1; transform: scale(1); }
.hero-slide img { object-fit: cover; object-position: center; }
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(4,25,18,.88) 0%, rgba(4,25,18,.66) 42%, rgba(4,25,18,.18) 74%, rgba(4,25,18,.30) 100%),
    linear-gradient(0deg, rgba(4,25,18,.72) 0%, transparent 35%);
}
.hero-grid {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
  background-size: 90px 90px;
  mask-image: linear-gradient(90deg, #000, transparent 70%);
}
.hero-orb { position: absolute; z-index: 2; width: 350px; height: 350px; border-radius: 50%; filter: blur(3px); pointer-events: none; }
.hero-orb-one { right: 8%; top: 15%; border: 70px solid rgba(102,181,90,.14); animation: float-orb 10s ease-in-out infinite; }
.hero-orb-two { left: 36%; bottom: -230px; background: rgba(19,187,238,.11); filter: blur(40px); }
@keyframes float-orb { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(24px) rotate(8deg); } }
.hero-content {
  position: relative;
  z-index: 4;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: inherit;
  padding-top: clamp(80px, 12vh, 145px);
  padding-bottom: clamp(95px, 12vh, 140px);
}
.hero-content > h1 { max-width: 950px; margin-bottom: 24px; color: #fff; }
.hero-home .hero-content > h1 { max-width: 1080px; }
.hero-content > p { max-width: 760px; margin-bottom: 34px; color: rgba(255,255,255,.78); font-size: clamp(1.06rem, 1.7vw, 1.35rem); }
.hero-eyebrow { color: #c4f0c4; }
.hero-eyebrow i { width: 26px; height: 2px; background: var(--brand-secondary); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 32px; }
.hero-trust span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; color: rgba(255,255,255,.78); background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; backdrop-filter: blur(12px); font-size: .78rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 24px; color: rgba(255,255,255,.58); font-size: .78rem; }
.breadcrumbs a:hover { color: #fff; }
.breadcrumbs strong { color: rgba(255,255,255,.92); }
.hero-controls {
  position: absolute;
  z-index: 5;
  right: max(20px, calc((100vw - var(--container))/2));
  bottom: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero-controls button { display: grid; place-items: center; width: 46px; height: 46px; color: #fff; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; backdrop-filter: blur(12px); transition: .25s ease; }
.hero-controls button:hover { color: var(--surface-dark); background: #fff; }
.hero-pagination { display: flex; align-items: center; gap: 7px; margin: 0 5px; }
.hero-pagination button { width: 7px; height: 7px; min-width: 7px; padding: 0; border: 0; background: rgba(255,255,255,.45); }
.hero-pagination button.is-active { width: 25px; border-radius: 10px; background: #fff; }
.scroll-cue { position: absolute; z-index: 5; left: max(20px, calc((100vw - var(--container))/2)); bottom: 34px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.65); font-size: .73rem; text-transform: uppercase; letter-spacing: .14em; }
.scroll-cue::before { content:""; width: 1px; height: 38px; background: linear-gradient(#fff, transparent); animation: cue 1.9s ease-in-out infinite; }
@keyframes cue { 0%,100%{transform:scaleY(.45);transform-origin:top}50%{transform:scaleY(1);transform-origin:top} }

/* Reveal */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .75s ease, transform .9s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Layouts and media */
.split-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(44px, 7vw, 96px); }
.split-layout.reverse > :first-child { order: 2; }
.split-copy h2 { margin-bottom: 22px; }
.split-copy > p:not(.lead) { margin-bottom: 22px; }
.split-visual { min-width: 0; }
.framed-image {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--surface-soft);
  box-shadow: var(--shadow-md);
}
.framed-image::before { content:""; position:absolute; inset:14px; z-index:2; border:1px solid rgba(255,255,255,.32); border-radius: calc(var(--radius-lg) - 10px); pointer-events:none; }
.framed-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 1.1s var(--ease); }
.framed-image:hover img { transform: scale(1.035); }
.framed-image figcaption { position: absolute; z-index: 3; left: 20px; right: 20px; bottom: 20px; display: grid; gap: 2px; padding: 16px 18px; color: #fff; background: rgba(4,25,18,.72); border: 1px solid rgba(255,255,255,.16); border-radius: 16px; backdrop-filter: blur(14px); }
.framed-image figcaption span { color: rgba(255,255,255,.72); font-size: .84rem; }
.dark-frame { background: var(--surface-deep); }
.dual-images { position: relative; min-height: 570px; }
.dual-images img { position: absolute; object-fit: cover; border-radius: 30px; box-shadow: var(--shadow-md); }
.dual-images img:first-child { inset: 0 12% 17% 0; width: 74%; height: 73%; }
.dual-images img:last-child { right: 0; bottom: 0; width: 57%; height: 49%; border: 8px solid #fff; }
.image-stack { position: relative; min-height: 610px; }
.image-main, .image-float { position: absolute; overflow: hidden; border-radius: 34px; box-shadow: var(--shadow-md); }
.image-main { inset: 0 16% 10% 0; }
.image-float { right: 0; bottom: 0; width: 49%; height: 48%; border: 7px solid #fff; }
.image-main img, .image-float img { width: 100%; height: 100%; object-fit: cover; }
.image-badge { position: absolute; z-index: 3; right: 3%; top: 8%; display: grid; place-items: center; width: 128px; height: 128px; color: #fff; text-align: center; background: var(--brand-primary); border: 7px solid #fff; border-radius: 50%; box-shadow: var(--shadow-md); }
.image-badge strong { display: block; font-size: 2rem; line-height: 1; }
.image-badge span { font-size: .72rem; line-height: 1.3; }
.signature-list { display: grid; gap: 15px; margin-top: 30px; }
.signature-list > span { display: grid; grid-template-columns: 44px 1fr; column-gap: 13px; align-items: center; }
.signature-list > span > .icon { grid-row: 1 / span 2; display: grid; width: 44px; height: 44px; padding: 11px; color: var(--brand-primary); background: var(--surface-tint); border-radius: 13px; }
.signature-list strong { display: block; line-height: 1.25; }
.signature-list small { display: block; color: var(--muted); line-height: 1.45; }
.section-dark .signature-list small { color: rgba(255,255,255,.62); }
.section-dark .signature-list > span > .icon { color: #a9efaa; background: rgba(255,255,255,.08); }

/* Home intro & metrics */
.intro-premium { overflow: hidden; }
.intro-premium::before { content:""; position:absolute; top:-180px; right:-220px; width:500px; height:500px; border:90px solid var(--surface-tint); border-radius:50%; opacity:.65; }
.metrics-ribbon { padding: 0 0 clamp(65px, 7vw, 96px); }
.metrics-grid {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: -52px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 26px;
  box-shadow: var(--shadow-md);
}
.metric { position: relative; padding: 30px; }
.metric + .metric { border-left: 1px solid var(--line); }
.metric strong { display: block; color: var(--brand-primary); font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.05em; }
.metric span { display: block; margin-top: 10px; color: var(--muted); font-size: .84rem; }

/* Cards */
.expertise-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 14px; }
.expertise-card {
  position: relative;
  min-height: 345px;
  padding: 26px;
  overflow: hidden;
  color: #fff;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 24px;
  transition: transform .4s var(--ease), background .3s ease, border-color .3s ease;
}
.expertise-card::after { content:""; position:absolute; right:-70px; bottom:-80px; width:190px; height:190px; border:35px solid rgba(255,255,255,.07); border-radius:50%; transition:transform .5s var(--ease); }
.expertise-card:hover { transform: translateY(-10px); background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.28); }
.expertise-card:hover::after { transform: scale(1.12) rotate(20deg); }
.expertise-card.green { --card-color:#71d98a; }
.expertise-card.sky { --card-color:#66d9f6; }
.expertise-card.violet { --card-color:#d1afe1; }
.expertise-card.red { --card-color:#ff9d96; }
.expertise-card.gold { --card-color:#ffdd65; }
.expertise-number { display: block; margin-bottom: 45px; color: rgba(255,255,255,.42); font-weight: 800; font-size: .77rem; letter-spacing: .15em; }
.expertise-icon { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 24px; color: var(--surface-deep); background: var(--card-color, #fff); border-radius: 18px; }
.expertise-icon .icon { width: 28px; height: 28px; }
.expertise-card h3 { margin-bottom: 12px; font-size: 1.35rem; }
.expertise-card p { margin-bottom: 22px; color: rgba(255,255,255,.64); font-size: .9rem; }
.card-link { position: absolute; left: 26px; bottom: 25px; display: inline-flex; align-items: center; gap: 7px; color: var(--card-color, #fff); font-size: .82rem; font-weight: 760; }

.service-feature-grid, .value-grid, .domain-grid, .need-grid, .focus-grid, .benefit-grid, .prep-grid, .career-profile-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.value-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.service-feature, .value-card, .domain-card, .focus-card, .sector-card, .feature-card, .benefit-grid > div, .prep-grid > article, .career-profile-grid > article {
  position: relative;
  padding: 28px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s ease;
}
.service-feature:hover, .value-card:hover, .domain-card:hover, .focus-card:hover, .sector-card:hover, .feature-card:hover, .prep-grid > article:hover, .career-profile-grid > article:hover { transform: translateY(-7px); box-shadow: var(--shadow-md); border-color: rgba(41,151,81,.26); }
.section-dark .value-card { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.13); box-shadow: none; }
.section-dark .value-card:hover { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.26); }
.value-card > span, .sector-card > span, .feature-icon, .service-feature-icon, .career-profile-grid > article > span, .prep-grid > article > span {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 24px;
  color: var(--brand-primary);
  background: var(--surface-tint);
  border-radius: 17px;
}
.value-card > span .icon, .sector-card > span .icon, .feature-icon .icon, .service-feature-icon .icon { width: 27px; height: 27px; }
.section-dark .value-card > span { color: #b5efb5; background: rgba(255,255,255,.08); }
.value-card h3, .service-feature h3, .domain-card h3, .focus-card h3, .sector-card h3, .feature-card h3 { margin-bottom: 12px; }
.value-card p, .service-feature p, .domain-card p, .focus-card p, .sector-card p, .feature-card p { margin-bottom: 0; }
.service-feature-icon.sky { color: #087b9e; background: #dff6fc; }
.service-feature-icon.violet { color: #77538b; background: #f1e9f5; }
.service-feature-icon.red { color: #a4342f; background: #fae7e5; }
.service-feature-icon.gold { color: #8d6900; background: #fff3c4; }
.service-feature-icon.green { color: #247d45; background: #e2f4e7; }

.sector-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sector-card { box-shadow: none; background: transparent; }
.sector-card::before { content:""; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg,var(--brand-primary),var(--brand-sky)); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.sector-card:hover::before { transform: scaleX(1); }

/* Project / Article / Solution cards */
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.featured-projects { grid-template-columns: repeat(2, minmax(0,1fr)); }
.project-card, .article-card, .solution-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 26px;
  box-shadow: var(--shadow-sm);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.project-card:hover, .article-card:hover, .solution-card:hover { transform: translateY(-7px); box-shadow: var(--shadow-md); }
.project-wide { grid-column: span 2; display: grid; grid-template-columns: 1.3fr 1fr; }
.project-image, .article-image, .solution-image { position: relative; display: block; overflow: hidden; background: #dbe8df; }
.project-image { min-height: 330px; }
.project-wide .project-image { min-height: 460px; }
.project-image img, .article-image img, .solution-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.project-card:hover .project-image img, .article-card:hover .article-image img, .solution-card:hover .solution-image img { transform: scale(1.045); }
.project-image > span, .article-image > span, .solution-image > span { position: absolute; left: 16px; top: 16px; padding: 7px 11px; color: #fff; background: rgba(4,25,18,.72); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; backdrop-filter: blur(10px); font-size: .72rem; font-weight: 750; }
.project-body, .article-body, .solution-body { padding: 26px; }
.project-body h2, .project-body h3, .article-body h2, .article-body h3, .solution-body h2, .solution-body h3 { margin-bottom: 13px; font-size: clamp(1.35rem,2.1vw,1.8rem); }
.project-body p, .article-body p, .solution-body p { margin-bottom: 20px; }
.project-meta, .article-meta { display: flex; flex-wrap: wrap; gap: 13px; margin-bottom: 13px; color: var(--muted); font-size: .78rem; }
.project-meta span { display: inline-flex; align-items: center; gap: 5px; }
.article-grid, .solution-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.article-image, .solution-image { aspect-ratio: 16/10; }
.article-library .article-card, .project-library .project-card, .solution-grid .solution-card { height: 100%; }
.article-library .article-body, .project-library .project-body, .solution-grid .solution-body { display: flex; flex-direction: column; height: calc(100% - 240px); }
.article-library .text-link, .project-library .text-link, .solution-grid .text-link { margin-top: auto; }

/* Diagnostic feature */
.diagnostic-feature { overflow: hidden; background: linear-gradient(135deg, #edf8f1, #fff); }
.diagnostic-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 570px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(140deg, var(--surface-deep), #114b36);
  border-radius: 38px;
  box-shadow: var(--shadow-lg);
}
.diagnostic-copy { align-self: center; padding: clamp(36px,6vw,76px); }
.diagnostic-copy h2 { margin-bottom: 20px; }
.diagnostic-copy > p { color: rgba(255,255,255,.7); }
.diagnostic-points { display: grid; gap: 10px; margin: 27px 0 30px; }
.diagnostic-points span { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.82); }
.diagnostic-points .icon { color: #a6eaa8; }
.diagnostic-media { position: relative; overflow: hidden; min-height: 460px; }
.diagnostic-media img { width: 100%; height: 100%; object-fit: cover; }
.diagnostic-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#114b36 0%,transparent 32%); }
.scan-line { position:absolute; z-index:2; left:10%; right:10%; height:2px; top:15%; background:linear-gradient(90deg,transparent,#fff,transparent); box-shadow:0 0 20px #fff; animation:scan 4.5s ease-in-out infinite; }
@keyframes scan { 0%,100%{top:14%;opacity:.2}50%{top:82%;opacity:1} }
.thermal-tag { position:absolute; z-index:3; right:25px; bottom:25px; padding:12px 16px; color:#fff; background:rgba(4,25,18,.72); border:1px solid rgba(255,255,255,.18); border-radius:14px; backdrop-filter:blur(12px); }

/* Equipment */
.equipment-scroll { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.equipment-card { overflow: hidden; background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:24px; transition:.4s var(--ease); }
.equipment-card:hover { transform: translateY(-7px); background:rgba(255,255,255,.09); }
.equipment-image { height: 250px; padding: 22px; background: #fff; }
.equipment-image img { width:100%; height:100%; object-fit:contain; }
.equipment-card > div:last-child { padding:22px; }
.equipment-card span { color:#a9efaa; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; font-weight:750; }
.equipment-card h3 { margin:8px 0 0; font-size:1.35rem; }
.equipment-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.equipment-catalog-card { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow-sm); }
.equipment-catalog-image { height:270px; padding:24px; background:linear-gradient(145deg,#f4f8f5,#fff); border-bottom:1px solid var(--line); }
.equipment-catalog-image img { width:100%; height:100%; object-fit:contain; }
.equipment-catalog-body { padding:26px; }
.equipment-catalog-body > span { color:var(--brand-primary); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.13em; }
.equipment-catalog-body h2 { margin:9px 0 13px; font-size:1.65rem; }
.application-grid { display:flex; flex-wrap:wrap; gap:7px; margin-top:18px; }
.application-grid span { padding:6px 9px; color:var(--ink-soft); background:var(--surface-soft); border-radius:999px; font-size:.72rem; }

/* Regional map / presence */
.regional-map { display:grid; place-items:center; min-height:520px; }
.map-shape { position:relative; width:min(520px,100%); }
.map-shape > svg { width:100%; color:var(--brand-primary); filter:drop-shadow(0 30px 45px rgba(41,151,81,.19)); }
.map-shape > svg path { fill:#dcefe3; stroke:rgba(41,151,81,.28); stroke-width:2; }
.map-pin { position:absolute; display:flex; align-items:center; gap:7px; padding:7px 10px; color:#fff; background:var(--surface-dark); border-radius:999px; box-shadow:0 12px 25px rgba(4,25,18,.22); font-size:.72rem; font-weight:730; transition:.25s var(--ease); }
.map-pin:hover { transform:translateY(-4px); background:var(--brand-primary); }
.map-pin i { width:8px; height:8px; border-radius:50%; background:#79e394; box-shadow:0 0 0 5px rgba(121,227,148,.19); }
.pin-sn { left:10%; top:30%; }
.pin-ml { left:38%; top:23%; }
.pin-bf { left:39%; top:48%; }
.pin-gn { left:18%; top:52%; }
.country-list { display:grid; margin-top:28px; border-top:1px solid var(--line); }
.country-list a { display:grid; grid-template-columns:1fr auto 24px; align-items:center; gap:12px; padding:16px 3px; border-bottom:1px solid var(--line); transition:padding .25s ease,color .25s ease; }
.country-list a:hover { padding-left:10px; color:var(--brand-primary); }
.country-list span { color:var(--muted); font-size:.84rem; }
.office-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.office-card { display:grid; grid-template-columns:.85fr 1.15fr; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow-sm); }
.office-image { min-height:310px; }
.office-image img { width:100%; height:100%; object-fit:cover; }
.office-body { padding:28px; }
.office-body > span { color:var(--brand-primary); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.13em; }
.office-focus { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0; }
.office-focus span { padding:6px 9px; color:var(--ink-soft); background:var(--surface-soft); border-radius:999px; font-size:.72rem; }
.office-contact-card { display:grid; gap:13px; padding:25px; color:#fff; background:var(--surface-dark); border-radius:22px; }
.office-contact-card a { display:flex; align-items:center; gap:9px; }
.presence-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:42px; }
.presence-cards a { display:grid; grid-template-columns:1fr auto; gap:4px 10px; align-items:center; padding:22px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:19px; transition:.3s var(--ease); }
.presence-cards a:hover { transform:translateY(-5px); background:rgba(255,255,255,.10); }
.presence-cards span { color:rgba(255,255,255,.58); font-size:.8rem; }
.presence-cards .icon { grid-row:1/span 2; grid-column:2; }
.presence-head { max-width:850px; }

/* Logos */
.logo-cloud { padding: 42px 0; overflow: hidden; background: #fff; border-block:1px solid var(--line); }
.logo-cloud-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.logo-cloud-head h2 { margin:0; font-size:1rem; letter-spacing:0; color:var(--ink-soft); }
.logo-marquee { overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.logo-track { display:flex; width:max-content; gap:12px; animation:logo-scroll 48s linear infinite; }
.logo-marquee:hover .logo-track { animation-play-state:paused; }
@keyframes logo-scroll { to { transform:translateX(-50%); } }
.client-logo { display:grid; place-items:center; width:170px; height:90px; padding:18px; background:var(--surface-soft); border:1px solid var(--line); border-radius:16px; }
.client-logo img { max-width:100%; max-height:100%; object-fit:contain; filter:grayscale(1); opacity:.72; transition:.3s ease; }
.client-logo:hover img { filter:none; opacity:1; }
.partner-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.partner-logo { display:grid; place-items:center; min-height:140px; padding:22px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-sm); }
.partner-logo img { max-height:90px; object-fit:contain; }

/* Gallery & lightbox */
.photo-gallery { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:12px; }
.gallery-item { position:relative; overflow:hidden; border-radius:20px; background:#dbe8df; cursor:zoom-in; }
.photo-gallery .gallery-item:nth-child(7n+1), .photo-gallery .gallery-item:nth-child(7n+4) { grid-row:span 2; }
.photo-gallery .gallery-item:nth-child(7n+2) { grid-column:span 2; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .4s ease; }
.gallery-item::after { content:"+"; position:absolute; right:13px; bottom:13px; display:grid; place-items:center; width:38px; height:38px; color:#fff; background:rgba(4,25,18,.7); border:1px solid rgba(255,255,255,.18); border-radius:50%; opacity:0; transform:scale(.8); transition:.3s var(--ease); }
.gallery-item:hover img { transform:scale(1.05); filter:saturate(1.08); }
.gallery-item:hover::after { opacity:1; transform:scale(1); }
.lightbox { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:30px; opacity:0; visibility:hidden; background:rgba(1,13,9,.92); backdrop-filter:blur(16px); transition:.3s ease; }
.lightbox.is-open { opacity:1; visibility:visible; }
.lightbox img { max-width:min(1200px,92vw); max-height:86vh; object-fit:contain; border-radius:18px; box-shadow:var(--shadow-lg); }
.lightbox button { position:absolute; display:grid; place-items:center; width:48px; height:48px; color:#fff; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:50%; }
.lightbox-close { top:20px; right:20px; }
.lightbox-prev { left:20px; top:50%; }
.lightbox-next { right:20px; top:50%; }
.lightbox-caption { position:absolute; left:50%; bottom:18px; transform:translateX(-50%); color:rgba(255,255,255,.8); font-size:.85rem; text-align:center; }

/* History / quote / process */
.quote-card { position:relative; margin-top:30px; padding:24px 24px 24px 68px; color:var(--brand-dark); background:var(--surface-soft); border-left:4px solid var(--brand-primary); border-radius:0 18px 18px 0; }
.quote-card > span { position:absolute; left:22px; top:22px; display:grid; place-items:center; width:32px; height:32px; color:var(--brand-primary); }
.quote-card blockquote { font-family:var(--font-display); font-size:1.35rem; line-height:1.35; font-weight:700; }
.process-timeline { list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
.process-timeline li { position:relative; padding:25px 20px; border-top:1px solid var(--line); }
.process-timeline li::before { content:""; position:absolute; top:-4px; left:20px; width:8px; height:8px; border-radius:50%; background:var(--brand-primary); }
.process-timeline li > span { display:block; margin-bottom:25px; color:var(--brand-primary); font-weight:850; font-size:.75rem; letter-spacing:.14em; }
.process-timeline h3 { margin-bottom:10px; }
.process-timeline p { margin:0; font-size:.9rem; }
.history-collage { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:220px 220px; gap:12px; }
.history-collage img { width:100%; height:100%; object-fit:cover; border-radius:22px; }
.history-collage img:first-child { grid-row:span 2; }
.history-points { display:grid; gap:12px; margin-top:28px; }
.history-points > div { display:grid; grid-template-columns:90px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
.history-points strong { color:var(--brand-primary); font-size:1.1rem; }
.history-points span { color:var(--ink-soft); }

/* Expertise list */
.expertise-list { display:grid; gap:12px; }
.expertise-row { display:grid; grid-template-columns:70px 70px 1fr auto; align-items:center; gap:20px; padding:22px; color:#fff; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.13); border-radius:21px; transition:.35s var(--ease); }
.expertise-row:hover { transform:translateX(7px); background:rgba(255,255,255,.09); }
.expertise-row-index { color:rgba(255,255,255,.35); font-weight:800; }
.expertise-row-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:16px; background:rgba(255,255,255,.1); }
.expertise-row-icon.green { color:#85e69d; }.expertise-row-icon.sky{color:#74dff7}.expertise-row-icon.violet{color:#d1afe1}.expertise-row-icon.red{color:#ff9d96}.expertise-row-icon.gold{color:#ffde69}
.expertise-row-copy h3 { margin:0 0 5px; }
.expertise-row-copy p { margin:0; color:rgba(255,255,255,.63); }
.need-grid { grid-template-columns:repeat(3,1fr); }
.need-grid article { padding:25px; border:1px solid var(--line); border-radius:20px; }
.need-grid span { display:block; margin-bottom:15px; color:var(--brand-primary); font-weight:800; }

.process-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; }
.process-card { padding:26px; color:#fff; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:21px; }
.process-card > span { display:block; margin-bottom:32px; color:#a9efaa; font-weight:850; font-size:.75rem; letter-spacing:.14em; }
.process-card p { margin:0; color:rgba(255,255,255,.65); }
.outcome-chips, .deliverable-list, .detail-list { display:flex; flex-wrap:wrap; gap:9px; margin-top:26px; }
.outcome-chips span, .deliverable-list li, .detail-list li { padding:9px 13px; color:var(--brand-dark); background:var(--surface-soft); border:1px solid var(--line); border-radius:999px; list-style:none; font-size:.82rem; }
.section-dark .deliverable-list li { color:#fff; background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.14); }

/* Diagnostic page */
.risk-strip { position:relative; z-index:5; margin-top:-1px; color:#fff; background:var(--surface-dark); }
.risk-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.risk-grid article { display:flex; align-items:center; gap:13px; padding:24px 18px; border-right:1px solid rgba(255,255,255,.1); }
.risk-grid article:last-child { border-right:0; }
.risk-grid h2 { margin:0 0 4px; font-size:1rem; letter-spacing:-.01em; }
.risk-grid p { margin:0; color:rgba(255,255,255,.59); font-size:.77rem; line-height:1.45; }
.risk-icon { display:grid; place-items:center; width:45px; height:45px; flex:0 0 45px; border-radius:14px; }
.risk-icon.red { color:#ffb0aa; background:rgba(185,62,57,.19); }.risk-icon.gold{color:#ffe07a;background:rgba(253,195,0,.14)}.risk-icon.violet{color:#d7b8e6;background:rgba(157,117,178,.18)}.risk-icon.sky{color:#8ce4f8;background:rgba(19,187,238,.15)}
.diagnostic-visual { position:relative; min-height:570px; overflow:hidden; border-radius:34px; box-shadow:var(--shadow-md); }
.diagnostic-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.diagnostic-reading { position:absolute; z-index:2; display:grid; padding:15px 17px; color:#fff; background:rgba(4,25,18,.74); border:1px solid rgba(255,255,255,.18); border-radius:15px; backdrop-filter:blur(12px); }
.diagnostic-reading span { color:rgba(255,255,255,.6); font-size:.72rem; }
.reading-one { left:22px; bottom:22px; }.reading-two{right:22px;top:22px}
.diagnostic-steps { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; }
.diagnostic-steps article { position:relative; padding:22px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:20px; }
.diagnostic-steps article > span { display:block; margin-bottom:24px; color:#a9efaa; font-size:.72rem; font-weight:850; letter-spacing:.14em; }
.diagnostic-steps article .icon { width:30px; height:30px; color:#fff; margin-bottom:18px; }
.diagnostic-steps p { margin:0; color:rgba(255,255,255,.62); font-size:.87rem; }
.domain-card { padding:0; overflow:hidden; }
.domain-media { height:210px; overflow:hidden; }
.domain-media img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.domain-card:hover .domain-media img { transform:scale(1.05); }
.domain-card > div:last-child { padding:25px; }
.equipment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.equipment-detail-card { display:grid; grid-template-columns:145px 1fr; gap:20px; align-items:center; padding:18px; background:#fff; border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow-sm); }
.equipment-detail-card img { width:145px; height:125px; object-fit:contain; background:var(--surface-soft); border-radius:15px; }
.equipment-detail-card h3 { margin-bottom:8px; }
.equipment-detail-card p { margin:0; font-size:.88rem; }
.report-section { overflow:hidden; }
.report-visual { position:relative; min-height:590px; }
.report-mockup { position:absolute; inset:0 10% 0 4%; transform:rotate(-3deg); }
.report-page { position:absolute; inset:0; padding:36px; background:#fff; border-radius:18px; box-shadow:var(--shadow-lg); }
.report-cover { height:125px; padding:25px; color:#fff; background:linear-gradient(135deg,var(--surface-dark),var(--brand-primary)); border-radius:12px; }
.report-cover strong { display:block; font-size:1.25rem; }
.report-cover span { color:rgba(255,255,255,.68); font-size:.75rem; }
.report-lines { display:grid; gap:9px; margin:28px 0; }
.report-lines i { height:9px; background:#edf2ef; border-radius:8px; }
.report-lines i:nth-child(2){width:77%}.report-lines i:nth-child(3){width:88%}.report-lines i:nth-child(4){width:62%}
.report-chart { display:flex; align-items:end; gap:10px; height:120px; padding:18px; background:var(--surface-soft); border-radius:12px; }
.report-chart i { flex:1; height:var(--h,50%); background:linear-gradient(var(--brand-secondary),var(--brand-primary)); border-radius:7px 7px 2px 2px; }
.report-chart i:nth-child(1){height:40%}.report-chart i:nth-child(2){height:65%}.report-chart i:nth-child(3){height:83%}.report-chart i:nth-child(4){height:55%}.report-chart i:nth-child(5){height:92%}
.report-priorities { position:absolute; right:0; bottom:35px; width:230px; padding:20px; color:#fff; background:var(--surface-dark); border-radius:18px; box-shadow:var(--shadow-md); }
.report-priorities strong { display:block; margin-bottom:12px; }
.report-priorities span { display:flex; align-items:center; gap:8px; margin-top:9px; font-size:.78rem; color:rgba(255,255,255,.75); }
.report-priorities i { width:9px; height:9px; border-radius:50%; }.report-priorities .critical i{background:#e95f57}.report-priorities .major i{background:#f5b942}.report-priorities .watch i{background:#43c8e7}

/* Catalog toolbar */
.catalog-toolbar { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:38px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.catalog-toolbar h2 { margin:0; font-size:clamp(1.8rem,3vw,2.8rem); }
.filter-buttons { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.filter-buttons button { padding:9px 14px; color:var(--ink-soft); background:var(--surface-soft); border:1px solid transparent; border-radius:999px; font-size:.78rem; font-weight:720; transition:.25s ease; }
.filter-buttons button:hover, .filter-buttons button.is-active { color:#fff; background:var(--brand-primary); }
.select-filters { display:flex; flex-wrap:wrap; gap:9px; }
.select-filters label { display:flex; align-items:center; gap:8px; padding:0 12px; background:var(--surface-soft); border:1px solid var(--line); border-radius:13px; }
.select-filters select { min-height:45px; border:0; outline:0; color:var(--ink); background:transparent; font-size:.84rem; }
.empty-filter, .empty-state { padding:45px; text-align:center; color:var(--muted); background:var(--surface-soft); border-radius:20px; }

/* Forms */
.form-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(35px,6vw,80px); align-items:start; }
.form-intro { position:sticky; top:110px; }
.form-intro h2 { margin-bottom:20px; }
.form-reassurance { display:grid; gap:12px; margin-top:28px; }
.form-reassurance span { display:flex; align-items:center; gap:10px; color:var(--ink-soft); }
.section-dark .form-reassurance span { color:rgba(255,255,255,.75); }
.form-reassurance .icon { color:var(--brand-primary); }
.form-card { padding:clamp(26px,4vw,48px); background:#fff; border:1px solid var(--line); border-radius:30px; box-shadow:var(--shadow-md); }
.section-dark .form-card { color:var(--ink); }
.b2ei-form { position:relative; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.field { display:grid; gap:7px; }
.field-full { grid-column:1 / -1; }
.field label { color:var(--ink); font-size:.82rem; font-weight:730; }
.field label > span { color:var(--brand-accent); }
.field input:not([type=checkbox]), .field select, .field textarea, .newsletter-form input, .search-page-form input {
  width:100%;
  min-height:50px;
  padding:12px 14px;
  color:var(--ink);
  background:#f7faf8;
  border:1px solid rgba(18,61,44,.16);
  border-radius:13px;
  outline:0;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.field textarea { min-height:140px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .newsletter-form input:focus, .search-page-form input:focus { background:#fff; border-color:var(--brand-primary); box-shadow:0 0 0 4px rgba(41,151,81,.12); }
.field input[type=file] { padding:9px; }
.consent label { display:flex; align-items:flex-start; gap:10px; font-weight:500; line-height:1.45; color:var(--ink-soft); }
.consent input { width:18px; height:18px; margin-top:2px; accent-color:var(--brand-primary); }
.consent a { color:var(--brand-primary); text-decoration:underline; }
.form-submit { margin-top:22px; }
.form-note { display:flex; align-items:center; gap:8px; margin:15px 0 0; color:var(--muted); font-size:.74rem; }
.form-status { margin-top:14px; font-size:.86rem; font-weight:650; }
.form-status.is-success { color:var(--success); }.form-status.is-error{color:var(--danger)}
.form-submit.is-loading { pointer-events:none; opacity:.72; }
.form-submit.is-loading .icon { animation:spin .9s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }
.contact-methods { display:grid; gap:10px; margin-top:28px; }
.contact-methods a { display:flex; align-items:center; gap:12px; padding:14px; background:var(--surface-soft); border-radius:14px; }
.contact-methods a .icon { color:var(--brand-primary); }
.contact-map-card { min-height:380px; overflow:hidden; color:#fff; background:var(--surface-dark); border-radius:30px; }
.map-pattern { position:relative; height:100%; min-height:380px; display:flex; flex-direction:column; justify-content:end; padding:32px; background:radial-gradient(circle at 65% 35%,rgba(102,181,90,.35),transparent 22%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:auto,46px 46px,46px 46px; }
.country-contact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.country-contact-grid > div { padding:22px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:18px; }
.country-contact-grid h3 { margin-bottom:12px; }
.country-contact-grid a { display:block; color:rgba(255,255,255,.7); font-size:.84rem; }

/* Newsletter */
.newsletter-section { padding-top:0; }
.newsletter-panel { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; padding:clamp(32px,5vw,60px); color:#fff; background:linear-gradient(135deg,var(--surface-deep),var(--brand-primary)); border-radius:34px; box-shadow:var(--shadow-lg); }
.newsletter-panel h2 { margin-bottom:14px; }
.newsletter-panel p { margin:0; color:rgba(255,255,255,.7); }
.newsletter-form { display:grid; grid-template-columns:1fr auto; gap:9px; position:relative; }
.newsletter-form input { background:rgba(255,255,255,.96); }
.newsletter-form .form-status { grid-column:1/-1; color:#fff; }

/* Detail pages */
.detail-layout, .article-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:clamp(35px,6vw,80px); align-items:start; }
.detail-main, .article-content { min-width:0; }
.detail-sidebar, .article-sidebar { position:sticky; top:110px; display:grid; gap:15px; }
.sidebar-card { padding:25px; background:#fff; border:1px solid var(--line); border-radius:21px; box-shadow:var(--shadow-sm); }
.sidebar-dark { color:#fff; background:var(--surface-dark); border-color:transparent; }
.sidebar-dark p { color:rgba(255,255,255,.66); }
.sidebar-card h3 { margin-bottom:16px; }
.sidebar-link { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); color:var(--ink-soft); }
.sidebar-dark .sidebar-link { color:rgba(255,255,255,.75); border-color:rgba(255,255,255,.12); }
.project-facts { padding:34px 0; background:var(--surface-alt); border-bottom:1px solid var(--line); }
.project-facts > .container { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.project-facts > .container > div { display:grid; gap:7px; min-height:110px; padding:23px; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-xs); }
.project-facts span { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }
.detail-gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:34px; }
.detail-gallery .gallery-item { min-height:300px; }
.case-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:32px 0; }
.case-grid > div { padding:22px; background:var(--surface-soft); border-radius:18px; }
.case-note { padding:22px; color:var(--brand-dark); background:#e3f4e8; border-left:4px solid var(--brand-primary); border-radius:0 16px 16px 0; }
.article-byline { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:30px; padding-bottom:18px; border-bottom:1px solid var(--line); color:var(--muted); font-size:.82rem; }
.article-prose > p:first-child { font-size:1.2rem; color:#33483d; }
.article-share { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:35px; padding-top:22px; border-top:1px solid var(--line); }
.article-share button, .article-share a { padding:8px 12px; background:var(--surface-soft); border-radius:999px; font-size:.78rem; }
.article-disclaimer { margin-top:28px; padding:18px; color:var(--muted); background:var(--surface-soft); border-radius:15px; font-size:.82rem; }

/* Emergency */
.severity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.severity { padding:25px; border-radius:21px; border:1px solid var(--line); }
.severity > span { display:grid; place-items:center; width:50px; height:50px; margin-bottom:20px; border-radius:15px; }
.severity.critical { background:#fff3f2; border-color:#f3c0bc; }.severity.critical>span{color:#a92822;background:#f8d4d1}
.severity.major { background:#fff9e9; border-color:#f0dda8; }.severity.major>span{color:#8f6700;background:#f7e5aa}
.severity.watch { background:#eefafe; border-color:#bce5f0; }.severity.watch>span{color:#087b9e;background:#cff0f8}
.emergency-warning { padding:22px; color:#7a2b25; background:#fff1ef; border:1px solid #f0c0bc; border-radius:18px; }
.emergency-guidance { display:grid; gap:10px; margin-top:25px; }
.emergency-guidance span { display:flex; align-items:flex-start; gap:10px; color:rgba(255,255,255,.74); }

/* CTA */
.final-cta { padding-top:40px; }
.cta-panel {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:clamp(36px,6vw,68px);
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 90% 20%,rgba(102,181,90,.28),transparent 25%),
    linear-gradient(135deg,var(--surface-deep),#155139);
  border-radius:36px;
  box-shadow:var(--shadow-lg);
}
.cta-panel::before { content:""; position:absolute; width:290px; height:290px; right:-160px; bottom:-190px; border:55px solid rgba(255,255,255,.08); border-radius:50%; }
.cta-panel > * { position:relative; z-index:1; }
.cta-panel h2 { max-width:760px; margin-bottom:14px; }
.cta-panel p { margin:0; color:rgba(255,255,255,.68); }
.cta-actions { display:flex; flex-wrap:wrap; gap:10px; flex:0 0 auto; }

/* Custom CMS blocks */
.custom-block { padding-block:70px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.custom-block .cta-panel { margin-top:0; }

/* Search / 404 / legal */
.search-page-form { display:flex; gap:10px; margin:20px 0 35px; }
.search-page-form input { flex:1; }
.search-results { display:grid; gap:12px; }
.search-count { margin-bottom:18px; color:var(--muted); }
.search-result { display:grid; grid-template-columns:90px 1fr auto; align-items:center; gap:20px; padding:22px; border:1px solid var(--line); border-radius:18px; }
.search-result > span { display:inline-flex; justify-content:center; padding:7px 10px; color:var(--brand-primary); background:var(--surface-tint); border-radius:999px; font-size:.72rem; font-weight:750; }
.search-result h2 { margin:0 0 7px; font-size:1.25rem; }
.search-result p { margin:0; font-size:.88rem; }
.not-found { position:relative; min-height:80vh; display:grid; place-items:center; overflow:hidden; color:#fff; background:var(--surface-deep); }
.not-found-bg, .not-found-overlay { position:absolute; inset:0; }
.not-found-bg { background-size:cover; background-position:center; opacity:.35; }
.not-found-overlay { background:radial-gradient(circle at center,transparent,var(--surface-deep)); }
.not-found-content { position:relative; z-index:2; max-width:760px; text-align:center; }
.not-found-content strong { display:block; color:#a9efaa; font-size:clamp(5rem,15vw,11rem); line-height:.9; }
.not-found-content p { color:rgba(255,255,255,.7); font-size:1.1rem; }
.legal-prose h2 { font-size:1.75rem; }

/* Footer */
.site-footer { position:relative; overflow:hidden; padding-top:80px; color:#fff; background:var(--surface-deep); }
.footer-glow { position:absolute; width:500px; height:500px; left:-260px; top:-250px; border-radius:50%; background:rgba(102,181,90,.12); filter:blur(30px); }
.footer-main { position:relative; display:grid; grid-template-columns:1.45fr .8fr .7fr 1.2fr; gap:55px; padding-bottom:55px; }
.footer-logo img { width:190px; filter:brightness(0) invert(1); }
.footer-brand > p { max-width:330px; color:rgba(255,255,255,.63); }
.footer-badges { display:flex; flex-wrap:wrap; gap:8px; }
.footer-badges span { display:flex; align-items:center; gap:7px; padding:7px 10px; color:rgba(255,255,255,.74); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:999px; font-size:.72rem; }
.footer-column h2, .footer-contact h2 { margin-bottom:20px; font-size:1rem; letter-spacing:0; }
.footer-column, .footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer-column > a, .footer-contact > a:not(.btn) { color:rgba(255,255,255,.62); font-size:.86rem; transition:.2s ease; }
.footer-column > a:hover, .footer-contact > a:not(.btn):hover { color:#fff; transform:translateX(3px); }
.footer-contact > a:not(.btn) { display:flex; align-items:flex-start; gap:8px; }
.footer-contact .btn { margin-top:10px; }
.footer-countries { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid rgba(255,255,255,.1); }
.footer-countries > div { display:grid; gap:3px; padding:18px; border-right:1px solid rgba(255,255,255,.1); }
.footer-countries > div:last-child { border-right:0; }
.footer-countries strong { font-size:.78rem; }
.footer-countries span { color:rgba(255,255,255,.53); font-size:.72rem; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:20px; }
.footer-bottom p { margin:0; color:rgba(255,255,255,.45); font-size:.72rem; }
.footer-bottom > div { display:flex; gap:18px; }
.footer-bottom a { color:rgba(255,255,255,.55); font-size:.72rem; }
.footer-bottom a:hover { color:#fff; }

/* Floating UI */
.whatsapp-float {
  position:fixed;
  z-index:90;
  right:20px;
  bottom:20px;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:50px;
  padding:10px 16px;
  color:#fff;
  background:#138c4d;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  box-shadow:0 16px 38px rgba(19,140,77,.32);
  font-size:.8rem;
  font-weight:760;
  transition:.3s var(--ease);
}
.whatsapp-float:hover { transform:translateY(-4px); box-shadow:0 21px 44px rgba(19,140,77,.4); }
.back-to-top { position:fixed; z-index:88; right:25px; bottom:84px; display:grid; place-items:center; width:43px; height:43px; color:#fff; background:var(--surface-dark); border-radius:50%; opacity:0; visibility:hidden; transform:translateY(10px); box-shadow:var(--shadow-sm); transition:.3s ease; }
.back-to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.toast-region { position:fixed; z-index:1200; right:18px; top:18px; display:grid; gap:10px; width:min(390px,calc(100% - 36px)); }
.toast { padding:15px 17px; color:#fff; background:var(--surface-dark); border-radius:14px; box-shadow:var(--shadow-lg); animation:toast-in .35s var(--ease); }
.toast.success { background:#176f40; }.toast.error{background:#9e312c}
@keyframes toast-in { from{opacity:0;transform:translateY(-12px)} }

/* Responsive */
@media (max-width: 1160px) {
  :root { --container: 1060px; }
  .desktop-nav { gap:17px; }
  .desktop-nav > a, .nav-dropdown > button { font-size:.84rem; }
  .btn-header span { display:none; }
  .btn-header { width:46px; padding:0; }
  .expertise-grid { grid-template-columns:repeat(3,1fr); }
  .expertise-card:nth-child(4), .expertise-card:nth-child(5) { min-height:300px; }
  .footer-main { grid-template-columns:1.25fr .8fr .8fr 1.1fr; gap:35px; }
}

@media (max-width: 980px) {
  :root { --header-height: 80px; }
  .site-topbar { display:none; }
  .desktop-nav { display:none; }
  .menu-toggle { display:inline-flex; }
  .menu-toggle span { display:inline; }
  .header-actions .btn-header { display:none; }
  .brand img { width:150px; }
  .hero-slider, .hero-inner { min-height:calc(100svh - var(--header-height)); }
  .split-layout, .diagnostic-panel, .form-layout, .newsletter-panel, .detail-layout, .article-layout { grid-template-columns:1fr; }
  .split-layout.reverse > :first-child { order:0; }
  .split-layout.reverse > .regional-map { order:2; }
  .form-intro, .detail-sidebar, .article-sidebar { position:static; }
  .metrics-grid { grid-template-columns:repeat(2,1fr); }
  .metric:nth-child(3) { border-left:0; border-top:1px solid var(--line); }
  .metric:nth-child(4) { border-top:1px solid var(--line); }
  .expertise-grid { grid-template-columns:repeat(2,1fr); }
  .value-grid, .sector-grid, .presence-cards, .country-contact-grid { grid-template-columns:repeat(2,1fr); }
  .service-feature-grid, .domain-grid, .need-grid, .focus-grid, .benefit-grid, .prep-grid, .career-profile-grid, .equipment-grid, .equipment-catalog { grid-template-columns:repeat(2,1fr); }
  .article-grid, .solution-grid { grid-template-columns:repeat(2,1fr); }
  .process-timeline { grid-template-columns:repeat(3,1fr); }
  .process-cards { grid-template-columns:repeat(2,1fr); }
  .diagnostic-steps { grid-template-columns:repeat(3,1fr); }
  .risk-grid { grid-template-columns:repeat(2,1fr); }
  .risk-grid article:nth-child(2) { border-right:0; }
  .risk-grid article:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.1); }
  .photo-gallery { grid-template-columns:repeat(3,1fr); }
  .office-grid { grid-template-columns:1fr; }
  .footer-main { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-contact { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,1fr); }
  .footer-contact h2, .footer-contact .btn { grid-column:1/-1; }
  .footer-countries { grid-template-columns:repeat(2,1fr); }
  .footer-countries > div:nth-child(2) { border-right:0; }
  .footer-countries > div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.1); }
  .detail-sidebar { display:grid; grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 720px) {
  .container { width:min(calc(100% - 28px),var(--container)); }
  .section { padding:68px 0; }
  h1 { font-size:clamp(2.65rem,12vw,4.2rem); }
  h2 { font-size:clamp(2rem,9vw,3.2rem); }
  .site-header { height:74px; }
  .brand img { width:138px; }
  .header-search { width:42px; height:42px; }
  .menu-toggle { width:44px; min-width:44px; padding:0; }
  .menu-toggle span { display:none; }
  .hero-slider, .hero-inner { min-height:calc(100svh - 74px); }
  .hero-content { padding-top:95px; padding-bottom:115px; }
  .hero-content > p { font-size:1rem; }
  .hero-actions { flex-direction:column; align-items:stretch; max-width:390px; }
  .hero-actions .btn { width:100%; }
  .hero-trust { display:none; }
  .hero-controls { right:14px; bottom:23px; }
  .scroll-cue { left:14px; bottom:20px; }
  .hero-grid { background-size:55px 55px; }
  .metrics-grid { margin-top:-28px; }
  .metric { padding:22px; }
  .metric strong { font-size:2.3rem; }
  .split-layout { gap:38px; }
  .image-stack, .dual-images, .diagnostic-visual, .report-visual { min-height:470px; }
  .expertise-grid, .value-grid, .service-feature-grid, .domain-grid, .need-grid, .focus-grid, .benefit-grid, .prep-grid, .career-profile-grid, .article-grid, .solution-grid, .equipment-grid, .equipment-catalog, .process-cards, .sector-grid, .presence-cards, .country-contact-grid { grid-template-columns:1fr; }
  .expertise-card { min-height:290px; }
  .project-grid, .featured-projects { grid-template-columns:1fr; }
  .project-wide { grid-column:auto; display:block; }
  .project-wide .project-image, .project-image { min-height:270px; }
  .diagnostic-panel { border-radius:26px; }
  .diagnostic-copy { padding:34px 25px; }
  .diagnostic-media { min-height:380px; }
  .equipment-scroll { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; }
  .equipment-card { flex:0 0 82%; scroll-snap-align:start; }
  .regional-map { min-height:420px; }
  .map-pin span { display:none; }
  .process-timeline, .diagnostic-steps { grid-template-columns:1fr; }
  .process-timeline li { display:grid; grid-template-columns:52px 1fr; gap:10px; }
  .process-timeline li > span { margin:0; }
  .risk-grid { grid-template-columns:1fr; }
  .risk-grid article { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .photo-gallery { grid-template-columns:repeat(2,1fr); grid-auto-rows:155px; }
  .photo-gallery .gallery-item:nth-child(n) { grid-column:auto; }
  .photo-gallery .gallery-item:nth-child(5n+1) { grid-row:span 2; }
  .partner-grid { grid-template-columns:repeat(2,1fr); }
  .catalog-toolbar { align-items:flex-start; flex-direction:column; }
  .filter-buttons, .select-filters { justify-content:flex-start; width:100%; }
  .select-filters label { flex:1; }
  .select-filters select { width:100%; }
  .form-grid { grid-template-columns:1fr; }
  .field-full { grid-column:auto; }
  .newsletter-form { grid-template-columns:1fr; }
  .newsletter-form .btn { width:100%; }
  .cta-panel { flex-direction:column; align-items:flex-start; border-radius:26px; }
  .cta-actions { width:100%; flex-direction:column; }
  .cta-actions .btn, .cta-panel > .btn { width:100%; }
  .detail-sidebar { grid-template-columns:1fr; }
  .detail-gallery { grid-template-columns:1fr; }
  .case-grid { grid-template-columns:1fr; }
  .office-card { grid-template-columns:1fr; }
  .office-image { min-height:260px; }
  .expertise-row { grid-template-columns:42px 50px 1fr; gap:12px; padding:17px; }
  .expertise-row .round-link { grid-column:3; width:42px; height:42px; }
  .equipment-detail-card { grid-template-columns:100px 1fr; }
  .equipment-detail-card img { width:100px; height:100px; }
  .country-list a { grid-template-columns:1fr 24px; }
  .country-list a span { grid-column:1; }
  .footer-main { grid-template-columns:1fr 1fr; gap:32px 20px; }
  .footer-brand { grid-column:1/-1; }
  .footer-contact { grid-template-columns:1fr; }
  .footer-contact h2, .footer-contact .btn { grid-column:auto; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .whatsapp-float span { display:none; }
  .whatsapp-float { width:54px; height:54px; padding:0; justify-content:center; border-radius:50%; }
  .back-to-top { right:25px; bottom:83px; }
  .search-page-form { flex-direction:column; }
  .search-result { grid-template-columns:1fr; gap:10px; }
  .search-result > span { justify-self:start; }
}

@media (max-width: 430px) {
  .mobile-menu-panel { top:6px; right:6px; bottom:6px; width:calc(100% - 12px); border-radius:22px; }
  .metrics-grid { grid-template-columns:1fr 1fr; }
  .metric { padding:18px 15px; }
  .metric strong { font-size:2rem; }
  .metric span { font-size:.72rem; }
  .photo-gallery { grid-template-columns:1fr 1fr; gap:7px; grid-auto-rows:135px; }
  .partner-logo { min-height:110px; padding:15px; }
  .footer-main { grid-template-columns:1fr; }
  .footer-brand, .footer-contact { grid-column:auto; }
  .footer-countries { grid-template-columns:1fr; }
  .footer-countries > div { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .footer-countries > div:last-child { border-bottom:0; }
}

@media (hover: none) {
  .nav-dropdown:hover .mega-menu, .nav-dropdown:hover .nav-popover { opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,14px) scale(.985); }
  .nav-dropdown.is-open .mega-menu, .nav-dropdown.is-open .nav-popover { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .js .reveal { opacity:1; transform:none; }
}

@media print {
  .site-topbar, .site-header, .mobile-menu, .search-overlay, .hero-controls, .scroll-cue, .site-footer, .whatsapp-float, .back-to-top, .btn { display:none!important; }
  .hero-slider { min-height:0; color:#000; background:#fff; }
  .hero-slides, .hero-overlay, .hero-grid, .hero-orb { display:none; }
  .hero-content { min-height:0; padding:40px 0; }
  .hero-content h1, .hero-content p { color:#000; }
  .section { padding:35px 0; }
  .reveal { opacity:1!important; transform:none!important; }
}

@media (max-width:780px){.project-facts>.container{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.project-facts>.container{grid-template-columns:1fr}.project-facts>.container>div{min-height:0}}
