/* ══ MATRIX THEME PRO — BASE STYLES ══ */
/* Compiled from Vue CSS files for WP theme */

/* — RESET & VARIABLES — */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  /* Both fall back to the design's values when no option is set. */
  font-family: var(--body, 'DM Sans', sans-serif);
  font-size: var(--base-size, 16px);
  background-color: #fff;
  background-image: linear-gradient(rgba(122, 184, 42, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122, 184, 42, 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  color: #1a1a1a;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

::-webkit-scrollbar {
  width: 3px;
}
::-webkit-scrollbar-track {
  background: #f0f0f0;
}
::-webkit-scrollbar-thumb {
  background: var(--g);
  border-radius: 2px;
}

:root {
  --g: #7ab82a;
  --g-dark: #5c8c1e;
  --g-light: #a2d44e;
  --g-pale: #eaf4d3;
  --g-bg: #f4fae8;
  --black: #1a1a1a;
  --dark: #2c2c2c;
  --gray1: #4a4a4a;
  --gray2: #787878;
  --gray3: #aaaaaa;
  --gray4: #d0d0d0;
  --gray5: #f0f0f0;
  --white: #fff;
  --off: #fafafa;
  --border: rgba(0, 0, 0, 0.07);
  --shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 8px 48px rgba(0, 0, 0, 0.1);
  --title: 'Nexa Bold', 'DM Sans', sans-serif;
  --body: 'DM Sans', sans-serif;
  --r: 8px;
  --r-lg: 14px;
}

h1,
h2,
h3,
h4 {
  font-family: var(--title);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

img {
  display: block;
  max-width: 100%;
}

/* — BASE LAYOUT — */
.wrap {
  max-width: var(--wrap, 1220px);
  margin: 0 auto;
  padding: 0 5%;
}

.section {
  padding: 96px 0;
  position: relative;
}
.section::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(122, 184, 42, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122, 184, 42, 0.1) 1px, transparent 1px);
  background-size: 56px 56px;
}
.section .wrap {
  position: relative;
  z-index: 1;
}
.section-sm {
  padding: 64px 0;
}
.section-off {
  background: var(--off);
  position: relative;
}
.section-off::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(122, 184, 42, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122, 184, 42, 0.1) 1px, transparent 1px);
  background-size: 56px 56px;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(122, 184, 42, 0.13);
  border: 1.5px solid rgba(122, 184, 42, 0.35);
  border-radius: 100px;
  padding: 6px 18px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--g-dark);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 20px;
  font-family: var(--body);
  width: fit-content;
}
.eyebrow::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--g);
  flex-shrink: 0;
  animation: blink 2.2s ease-in-out infinite;
}

.stitle {
  font-size: clamp(26px, 3.6vw, 46px);
  margin-bottom: 14px;
  color: var(--black);
}
/*
 * Several widgets tell the editor that <span class="hl"> colours a fragment,
 * but only .hero-premium-title had a rule — in a section title the span
 * rendered as plain text. No glow here: the hero's text-shadow exists for its
 * dark background and would smear on a light one.
 */
.stitle .hl {
  color: var(--g);
}

.ssub {
  font-size: 16px;
  font-weight: 400;
  color: var(--gray1);
  line-height: 1.8;
  max-width: 560px;
}

/* — BUTTONS — */
.btn-g {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--g);
  color: var(--white);
  padding: 13px 26px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.03em;
  border: none;
  cursor: pointer;
  font-family: var(--body);
  transition: background 0.18s, transform 0.14s;
  white-space: nowrap;
}
.btn-g:hover {
  background: var(--g-dark);
  transform: translateY(-1px);
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: transparent;
  color: var(--black);
  padding: 13px 26px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 13.5px;
  border: 1.5px solid var(--gray4);
  cursor: pointer;
  font-family: var(--body);
  transition: all 0.18s;
  white-space: nowrap;
}
.btn-outline:hover {
  border-color: var(--g);
  color: var(--g);
}

/* — TAGS — */
.tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 11px;
  border-radius: 100px;
  background: var(--g-pale);
  color: var(--g);
  letter-spacing: 0.04em;
  font-family: var(--body);
}

/* — NAV — */
nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  height: 68px;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 5%;
  justify-content: space-between;
}
.nav-logo img,
.nav-logo .custom-logo {
  height: 48px;
  width: auto;
}
.nav-mid {
  display: flex;
  align-items: center;
  gap: 2px;
}
.ni {
  position: relative;
}
.ni > a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 15px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--gray1);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.18s;
  white-space: nowrap;
}
.ni > a:hover,
.ni > a.on,
/* A parent stays lit while one of its pages is open. The walker already put
   .current on the wrapper for that; nothing had ever styled it. */
.ni.current > a {
  color: var(--g);
  background: var(--g-pale);
}
.chev {
  font-size: 9px;
  color: var(--gray3);
  transition: transform 0.2s;
}
.ni:hover > a .chev {
  transform: rotate(180deg);
  color: var(--g);
}
.ndrop {
  position: absolute;
  top: calc(100% + 6px);
  left: -12px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  min-width: 240px;
  padding: 7px;
  box-shadow: var(--shadow-lg);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.18s, visibility 0s 0.3s;
}
.ni:hover .ndrop {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.18s, visibility 0s 0s;
}
.ndrop::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  height: 12px;
  background: transparent;
}
.di {
  display: flex;
  align-items: center;
  padding: 9px 13px;
  border-radius: 7px;
  cursor: pointer;
  transition: background 0.14s;
  text-decoration: none;
  color: inherit;
}
.di:hover {
  background: var(--g-pale);
}
.dlbl {
  font-size: 13px;
  font-weight: 600;
  color: var(--black);
  transition: color 0.2s;
}
.di:hover .dlbl {
  color: var(--g);
}
.dsub {
  font-size: 11px;
  color: var(--gray2);
  margin-top: 1px;
  line-height: 1.4;
  transition: color 0.2s;
}
.di:hover .dsub {
  color: var(--g-dark);
}
.di.active {
  background: var(--g-pale);
  border-left: 3px solid var(--g);
  border-radius: 0 7px 7px 0;
}
.di.active .dlbl {
  color: var(--g);
  font-weight: 700;
}
.di.active .dsub {
  color: var(--g-dark);
}
.nav-r {
  display: flex;
  align-items: center;
  gap: 10px;
}
.nav-tel {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12.5px;
  color: var(--gray1);
  padding: 7px 14px;
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.18s;
  font-weight: 500;
}
.nav-tel:hover {
  border-color: var(--g);
  color: var(--g);
}
.nav-cta {
  background: var(--g);
  color: var(--white);
  padding: 9px 22px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.03em;
  cursor: pointer;
  border: none;
  font-family: var(--body);
  transition: background 0.18s, transform 0.14s;
  text-decoration: none;
}
.nav-cta:hover {
  background: var(--g-dark);
  transform: translateY(-1px);
}

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  padding: 6px;
  background: none;
  border: none;
  /* The design declares z-index:1001 to hold the button above the overlay, but
     leaves the button static, where z-index does nothing. Positioning it makes
     that intent take effect, so the icon stays visible and tappable to close. */
  position: relative;
  z-index: 1001;
}
.hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--gray1);
  border-radius: 2px;
  transition: all 0.28s;
}
.hamburger.open span:nth-child(1) {
  transform: rotate(45deg) translate(4px, 4px);
}
.hamburger.open span:nth-child(2) {
  opacity: 0;
}
.hamburger.open span:nth-child(3) {
  transform: rotate(-45deg) translate(4px, -4px);
}
.nav-overlay {
  display: none;
  /* Absolute for the same reason as .nav-mid — fixed would clamp it to the
     nav's own 68px, laying a dark strip across the header. */
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100vh;
  background: rgba(0, 0, 0, 0.4);
  z-index: 888;
  opacity: 0;
  transition: opacity 0.3s;
}
.nav-overlay.show {
  display: block;
  opacity: 1;
}

/* Mobile nav */
@media (max-width: 868px) {
  .hamburger {
    display: flex;
  }
  .nav-mid {
    /*
     * Absolute, not fixed. nav carries a backdrop-filter, which makes it the
     * containing block for fixed descendants — so top/bottom would resolve
     * inside its 68px box and collapse the panel to a strip under the header.
     * Absolute against nav gives the design's full-height panel.
     */
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: calc(100vh - 68px);
    z-index: 9999;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(16px);
    flex-direction: column;
    align-items: stretch;
    padding: 20px 5% 40px;
    transform: translateX(100%);
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
    overflow-y: auto;
    border-top: 1px solid var(--border);
  }
  .nav-mid.open {
    transform: translateX(0);
  }
  .ni > a {
    font-size: 15px;
    padding: 12px 16px;
    border-radius: 8px;
    justify-content: space-between;
    /* The design widens the row gap from the desktop 5px. */
    gap: 8px;
  }
  .ndrop {
    position: static;
    display: none;
    box-shadow: none;
    border: none;
    padding: 0 0 0 16px;
    min-width: auto;
    background: transparent;
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
  }
  .ni.open .ndrop {
    display: block;
  }
  .ni.open > a {
    color: var(--g);
    background: var(--g-pale);
  }
  .ni.open .chev {
    transform: rotate(180deg);
    color: var(--g);
  }
  .chev {
    font-size: 13px;
    color: var(--gray3);
    margin-left: auto;
    flex-shrink: 0;
  }
  .nav-r {
    gap: 6px;
  }
  .nav-tel {
    display: none;
  }
  .nav-cta {
    font-size: 12px;
    padding: 8px 16px;
  }
}

/* — FOOTER — */
footer {
  background: #1a1a1a;
  color: #fff;
  padding: 72px 5% 32px;
  width: 100%;
  position: relative;
}
footer::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 56px 56px;
}
footer .ft-top,
footer .ft-bot {
  position: relative;
  z-index: 1;
}
.ft-top {
  max-width: 1220px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2.2fr 1fr 1fr 1fr 1fr;
  gap: 52px;
  padding-bottom: 52px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.ft-logo-link {
  margin-bottom: 8px;
  display: inline-block;
}
.ft-logo,
.ft-logo-link img.custom-logo {
  /* Matches the header logo, which sits at 48px. */
  height: 48px;
  width: auto;
  display: block;
  /* Knocked out to solid white for the dark footer, as the design does — this
     also keeps a client's own logo legible there whatever its colours. */
  filter: brightness(0) invert(1);
}
.ft-brand p {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.75;
  max-width: 230px;
  margin-top: 16px;
}
.ft-social {
  display: flex;
  gap: 9px;
  margin-top: 20px;
}
.soc {
  width: 33px;
  height: 33px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  cursor: pointer;
  transition: border-color 0.18s, background 0.18s;
  text-decoration: none;
  color: rgba(255, 255, 255, 0.65);
}
.soc:hover {
  border-color: var(--g, #7ab82a);
  background: rgba(122, 184, 42, 0.12);
}
.ft-col h4 {
  font-family: 'Nexa Bold', 'DM Sans', sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 16px;
}
.ft-col a,
.ft-info {
  display: block;
  color: rgba(255, 255, 255, 0.65);
  font-size: 13.5px;
  padding: 4px 0;
  transition: color 0.16s;
  cursor: pointer;
  text-decoration: none;
}
.ft-col a:hover {
  color: var(--g, #7ab82a);
}
.ft-bot {
  max-width: 1220px;
  margin: 0 auto;
  padding-top: 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.3);
}
@media (max-width: 868px) {
  .ft-top {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
  .ft-brand {
    grid-column: span 2;
    text-align: center;
  }
  .ft-brand p {
    margin-inline: auto;
    max-width: 100%;
  }
  .ft-social {
    justify-content: center;
  }
  .ft-col {
    text-align: center;
    min-width: auto;
  }
  .ft-bot {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }
}
@media (max-width: 540px) {
  .ft-top {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ft-brand {
    grid-column: span 1;
  }
  .ft-col {
    text-align: left;
  }
}

/* — FOOTER WIDGETS — */
.ft-widget ul.menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ft-widget ul.menu a {
  display: block;
  color: rgba(255, 255, 255, 0.65);
  font-size: 13.5px;
  padding: 4px 0;
  transition: color 0.16s;
  cursor: pointer;
  text-decoration: none;
}
.ft-widget ul.menu a:hover {
  color: var(--g, #7ab82a);
}
.ft-widget ul.sub-menu {
  display: none;
}
.ft-widget .ft-info {
  display: block;
  color: rgba(255, 255, 255, 0.65);
  font-size: 13.5px;
  padding: 4px 0;
}

/* — KEYFRAMES — */
@keyframes blink {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.35;
    transform: scale(1.6);
  }
}

/* — SCROLL REVEAL — */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.elementor-editor-active .reveal,
.elementor-editor-active .tline-item {
  opacity: 1;
  transform: none;
}
.reveal-d1 {
  transition-delay: 0s;
}
.reveal-d2 {
  transition-delay: 0.12s;
}
.reveal-d3 {
  transition-delay: 0.24s;
}
.reveal-d4 {
  transition-delay: 0.36s;
}

/* — MARQUEE — */
.mq-wrap{overflow:hidden;background:var(--g);padding:16px 0}
.mq-track{display:flex;width:max-content}
.mq-track{animation:scrollX 32s linear infinite}
@keyframes scrollX{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.mq-item{display:flex;align-items:center;gap:18px;padding:0 32px;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.85);white-space:nowrap;font-family:var(--body)}
.mq-dot{color:var(--g-light);font-size:7px}
/* Lets a pointer or keyboard user stop the band to read it (WCAG 2.2.2).
   :focus-within covers tabbing into any link the band may contain. */
.mq-pausable:hover .mq-track,
.mq-pausable:focus-within .mq-track{animation-play-state:paused}
@media (prefers-reduced-motion: reduce){
  /* Continuous motion is exactly what this setting asks us to drop. The band
     becomes a static, manually scrollable strip so no content is lost. */
  .mq-track{animation:none;transform:none}
  .mq-wrap{overflow-x:auto}
}

/* — CONTENT — */
.page-content {
  padding-top: 68px;
}
.page-content a {
  color: var(--g);
}
.page-content a:hover {
  color: var(--g-dark);
}

/* — ELEMENTOR CONTAINER RESET — */
/* Elementor containers ship with 10px padding. Every mt_ widget is a
   full-bleed section that carries its own internal spacing, so that padding
   only shows as a thin band of page background between sections.
   Zeroed through the same custom properties Elementor uses: a padding set on a
   specific container in the editor is written at higher specificity and still
   wins, so per-section spacing remains available. */
.e-con:has(> [class*="elementor-widget-mt_"]) {
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;
  --padding-block-start:0px;--padding-block-end:0px;
  --padding-inline-start:0px;--padding-inline-end:0px;
}
/* Elementor's newer "atomic" containers (.e-atomic-element) do not read those
   variables — they carry a direct padding declaration at (0,2,0). Zeroing the
   custom properties therefore has no effect on them, so they need the longhand.
   Kept at (0,3,0) so it wins regardless of stylesheet order. */
.e-con.e-atomic-element:has(> [class*="elementor-widget-mt_"]) {
  padding: 0;
}
.hero-slider {
  position: relative; width: 100%; height: calc(100vh - 68px); overflow: hidden;
  background: var(--black); margin-top: 68px;
}
.slides-wrapper { position: relative; width: 100%; height: 100%; }
.slide {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transform: scale(1.05);
  transition: opacity .6s cubic-bezier(.25,.46,.45,.94),visibility .6s,transform .6s cubic-bezier(.25,.46,.45,.94);
  will-change: transform,opacity;
}
.slide.active { opacity: 1; visibility: visible; transform: scale(1); }
.slide-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.slide-bg-inner { position: absolute; inset: -10% 0; will-change: transform; }
.slide-bg-img { position: absolute; inset: 0; will-change: transform; background-repeat: no-repeat; }
/* Slide backgrounds come from the widget's per-slide controls. The light
   variant inverts the palette for slides sitting on a pale background. */
.slide.is-light .slide-badge{background:rgba(122,184,42,0.1);border-color:rgba(122,184,42,0.25);color:var(--g)}
.slide.is-light .slide-badge .bdot-c{background:var(--g)}
.slide.is-light .slide-title{color:var(--black)}
.slide.is-light .slide-desc{color:var(--gray2)}
.slide.is-light .s-btn-s{color:var(--black);border-color:rgba(0,0,0,0.15)}
.slide.is-light .s-btn-s:hover{border-color:var(--g);color:var(--g)}
.slide.is-light .slide-grid{background-image:linear-gradient(rgba(122,184,42,0.18) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.18) 1px,transparent 1px)}
/* The network card stays dark on the light slide, for contrast. */
.slide.is-light .nv-card{background:#0d1a0d;border-color:rgba(122,184,42,0.15);box-shadow:0 20px 60px rgba(0,0,0,0.2)}
.slide.is-light .nv-hdr-t{color:rgba(255,255,255,0.9)}
.slide.is-light .nv-node{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06)}
.slide.is-light .nv-node.ok{background:rgba(122,184,42,0.12);border-color:rgba(122,184,42,0.25)}
.slide.is-light .nv-n{color:rgba(255,255,255,0.9)}
.slide.is-light .nv-sp{color:rgba(255,255,255,0.4)}
.slide.is-light .nv-st-item{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06)}
.slide.is-light .nv-st-l{color:rgba(255,255,255,0.4)}
.slide-grid {
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:linear-gradient(rgba(122,184,42,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.06) 1px,transparent 1px);
  background-size:56px 56px;
}
.slide-orb {
  position:absolute;border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(122,184,42,0.08) 0%,transparent 70%);
}
.slide-orb.t{width:500px;height:500px;top:-150px;right:-100px}
.slide-orb.b{width:400px;height:400px;bottom:-100px;left:-80px}
.slide-inner {
  position:relative;z-index:2;max-width:1220px;margin:0 auto;padding:40px 5%;
  display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;
  width:100%;height:100%;
}
.slide-left{opacity:0;transform:translateY(50px)}
.slide.active .slide-left{opacity:1;transform:translateY(0);transition:opacity .55s ease,transform .55s ease}
.slide-badge{transition-delay:.12s!important}.slide-title{transition-delay:.22s!important}
.slide-desc{transition-delay:.32s!important}.slide-btns{transition-delay:.42s!important}
.slide.active .slide-right{opacity:1;transform:translateX(0) scale(1)}
.slide-badge {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(122,184,42,0.12);border:1px solid rgba(122,184,42,0.3);
  border-radius:100px;padding:6px 18px;font-size:11px;font-weight:700;
  color:var(--g-light);letter-spacing:.06em;text-transform:uppercase;margin-bottom:22px;
  font-family:var(--body);backdrop-filter:blur(4px);
}
.slide-badge .bdot-c{width:6px;height:6px;border-radius:50%;background:var(--g-light);animation:blink 2.2s ease-in-out infinite}
.slide-title {
  font-family:var(--title);font-size:clamp(34px,4.8vw,58px);line-height:1.08;
  color:var(--white);margin-bottom:18px;letter-spacing:-.02em;
}
.slide-title span{color:var(--g);text-shadow:0 0 40px rgba(122,184,42,0.3)}
.slide-desc{font-size:16px;color:rgba(255,255,255,0.65);line-height:1.8;max-width:500px;margin-bottom:34px}
.slide-btns{display:flex;gap:14px;flex-wrap:wrap}
.s-btn-p {
  display:inline-flex;align-items:center;gap:9px;
  background:var(--g);color:var(--white);padding:14px 28px;border-radius:8px;
  font-weight:700;font-size:14px;letter-spacing:.03em;border:none;cursor:pointer;
  font-family:var(--body);transition:background .2s,transform .15s,box-shadow .2s;white-space:nowrap;
  text-decoration:none;
}
.s-btn-p:hover{background:var(--g-dark);transform:translateY(-2px);box-shadow:0 8px 30px rgba(122,184,42,0.25)}
.s-btn-s {
  display:inline-flex;align-items:center;gap:9px;background:transparent;color:var(--white);
  padding:13px 28px;border-radius:8px;font-weight:600;font-size:14px;
  border:1.5px solid rgba(255,255,255,0.2);cursor:pointer;font-family:var(--body);
  transition:all .2s;white-space:nowrap;text-decoration:none;
}
.s-btn-s:hover{border-color:var(--g);color:var(--g);background:rgba(122,184,42,0.08)}
.slide-right{opacity:0;transform:translateX(30px) scale(.95);transition:opacity .65s ease,transform .65s ease;transition-delay:.48s}
.nv-card {
  width:100%;max-width:520px;
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;padding:26px;backdrop-filter:blur(20px);box-shadow:0 20px 60px rgba(0,0,0,0.3);
}
.nv-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.nv-hdr-t{font-family:var(--title);font-size:12.5px;font-weight:700;color:rgba(255,255,255,0.9)}
.nv-hdr-s{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;color:var(--g-light);letter-spacing:.08em;text-transform:uppercase;font-family:var(--body)}
.nv-hdr-s .dot-p{width:6px;height:6px;border-radius:50%;background:var(--g);animation:pulse-dot 1.5s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(122,184,42,.5)}50%{opacity:.8;box-shadow:0 0 0 6px rgba(122,184,42,0)}}
.nv-g{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.nv-node{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:11px 13px;min-width:0}
.nv-node.ok{background:rgba(122,184,42,0.08);border-color:rgba(122,184,42,0.2)}
.nv-ico{width:30px;height:30px;border-radius:7px;background:rgba(122,184,42,0.1);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}
/* The text column is a flex item, so it defaults to min-width:auto and refuses
   to shrink below its content. Long names then spill past the node border
   instead of wrapping, and any text-overflow rule never gets a chance to run. */
.nv-node > div{min-width:0}
.nv-n{font-size:11.5px;font-weight:600;color:rgba(255,255,255,0.9);line-height:1.3;overflow-wrap:anywhere}
.nv-sp{font-size:9.5px;color:rgba(255,255,255,0.4);margin-top:1px;line-height:1.35;overflow-wrap:anywhere}
.nv-mid{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px;position:relative;height:36px}
.nv-mid-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(122,184,42,0.3),rgba(122,184,42,0.5),rgba(122,184,42,0.3),transparent)}
.nv-mid-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--g);font-size:13px;background:rgba(0,0,0,.5);padding:2px 10px;border-radius:5px;white-space:nowrap}
/* Page hero right panel — replaces the inline styles the prototype used, so the
   blocks can be built from widget controls instead of pasted markup. */
.htc-icon{font-size:64px;margin-bottom:16px;line-height:1}
.htc-title{font-family:var(--title);font-size:20px;color:var(--g-light);margin-bottom:8px}
.htc-sub{font-size:14px;color:rgba(255,255,255,0.5)}
.htc-tags{display:flex;justify-content:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.htc-rows{display:flex;flex-direction:column;gap:9px}
.htc-title + .htc-rows,.htc-sub + .htc-rows{margin-top:20px}

.nv-st{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.nv-st.cols-2{grid-template-columns:repeat(2,1fr)}
.nv-st.cols-4{grid-template-columns:repeat(4,1fr)}
/* A node marked "large" spans the full card width. */
.nv-node.is-wide{grid-column:span 2}
.nv-st-item{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);border-radius:8px;padding:11px 8px;text-align:center}
.nv-st-v{font-family:var(--title);font-size:17px;color:var(--g);display:block;line-height:1.1}
.nv-st-l{font-size:9px;color:rgba(255,255,255,0.4);text-transform:uppercase;letter-spacing:.08em;margin-top:3px;display:block}
.slider-nav{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;z-index:10}
.slider-nav button{cursor:pointer;border:none;padding:0}
.slider-arrow{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:rgba(255,255,255,0.5);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:14px;font-family:var(--body)}
.slider-arrow:hover{background:var(--g);border-color:var(--g);color:var(--white)}
.slider-dots{display:flex;gap:7px}
.slider-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.2);cursor:pointer;transition:all .35s;border:none;padding:0}
.slider-dot.active{background:var(--g);width:28px;border-radius:4px}
.slider-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:rgba(255,255,255,0.04);z-index:10}
.slider-progress-bar{height:100%;background:var(--g);width:0%;transition:width .1s linear}
/* Applied by theme JS while a light slide is showing, so the controls stay
   legible against a pale background. */
.hero-slider.light-nav .slider-arrow{background:rgba(0,0,0,0.05);border-color:rgba(0,0,0,0.12);color:rgba(0,0,0,0.5)}
.hero-slider.light-nav .slider-arrow:hover{background:var(--g);border-color:var(--g);color:var(--white)}
.hero-slider.light-nav .slider-dot{background:rgba(0,0,0,0.2)}
.hero-slider.light-nav .slider-dot.active{background:var(--g)}
.hero-slider.light-nav .slider-progress{background:rgba(0,0,0,0.05)}
.hero-slider.light-nav .slider-progress-bar{background:var(--g)}
/* Scoped to .slide so it outranks Elementor's `.elementor img{height:auto;
   max-width:100%}` (0,1,1). A bare .slide-person (0,1,0) loses that cascade and
   the portrait renders at full natural size — 1684px tall against a 652px
   slider. max-width is reset too: the figure is meant to overhang the edge. */
.slide .slide-person {
  position:absolute;right:-20%;bottom:0;z-index:2;
  height:90%;width:auto;max-width:none;pointer-events:none;
  opacity:.45;mix-blend-mode:luminosity;
  -webkit-mask-image:linear-gradient(to left,transparent 0%,#000 25%,#000 80%,transparent 100%);
  mask-image:linear-gradient(to left,transparent 0%,#000 25%,#000 80%,transparent 100%);
  object-fit:contain;object-position:bottom right;
}
.slide.active .slide-person{transition:opacity .8s ease;opacity:.55}
.floating-hud {
  position:absolute;
  background:rgba(10,10,10,0.75);
  backdrop-filter:blur(12px) saturate(180%);
  -webkit-backdrop-filter:blur(12px) saturate(180%);
  border:1px solid rgba(122,184,42,0.25);
  border-radius:var(--r);
  padding:10px 14px;
  color:var(--white);
  box-shadow:0 8px 32px rgba(0,0,0,0.4),inset 0 0 10px rgba(122,184,42,0.05);
  z-index:10;
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--body);
  transition:all .3s ease;
  pointer-events:none;
}
.floating-hud:hover {
  border-color:var(--g);
  transform:translateY(-2px);
  box-shadow:0 12px 40px rgba(122,184,42,0.15);
}
.hud-pulse-dot {
  width:8px;height:8px;border-radius:50%;
  background:var(--g);position:relative;flex-shrink:0;
}
.hud-pulse-dot::after {
  content:'';position:absolute;inset:-4px;
  border-radius:50%;border:1px solid currentColor;
  animation:hudPulse 2s infinite ease-out;
  color:inherit;
}
@keyframes hudPulse {
  0% { transform:scale(0.8); opacity:1; }
  100% { transform:scale(2.4); opacity:0; }
}
.hud-title {
  font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--g-light,#a3d44f);
  line-height:1;
}
.hud-val {
  font-size:10px;color:rgba(255,255,255,0.55);
  margin-top:2px;line-height:1;
}
/* Descending max-width order matters: this block used to sit below the 968px
   one, so on phones it won and reinstated the tablet size and offset. */
@media(max-width:1200px){
  .slide .slide-person{right:-30%;height:80%}
}
@media(max-width:968px){
  .slide-inner{grid-template-columns:1fr;gap:24px;padding:50px 5% 70px;text-align:center}
  .slide-desc{margin:0 auto 28px}
  .slide-btns{justify-content:center}
  .slide-right{display:none}
  .slide-title{font-size:clamp(28px,7vw,38px)}
  .slider-nav{bottom:16px}
  .hero-slider{height:calc(100vh - 68px);min-height:460px}
  .slide .slide-person{opacity:.2;right:-40%;height:70%}
}
@media(max-width:480px){
  .slide-title{font-size:24px}
  .slide-desc{font-size:14px}
  .s-btn-p,.s-btn-s{width:100%;justify-content:center;font-size:13px}
  .slide-badge{font-size:10px}
  .slide .slide-person{display:none}
}

/* — BASE ATOMS — */
.badge{display:inline-flex;align-items:center;gap:10px;background:rgba(122,184,42,0.13);border:1.5px solid rgba(122,184,42,0.35);border-radius:100px;padding:6px 18px;font-size:12.5px;font-weight:700;color:var(--g-dark);letter-spacing:.08em;text-transform:uppercase;margin-bottom:20px;font-family:var(--body)}
.bdot{width:8px;height:8px;border-radius:50%;background:var(--g);flex-shrink:0;animation:blink 2.2s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.6)}}

/* — ABOUT SPLIT — */
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.about-visual{position:relative;min-height:420px}
.about-it-icon{position:absolute;top:-10px;right:-14px;z-index:3;width:120px;height:auto;animation:floatY 5s ease-in-out infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.about-img-main{width:100%;max-width:380px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:block;position:relative;z-index:2;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.about-img-sec{position:absolute;bottom:10px;right:-10px;z-index:3;width:220px;border-radius:var(--r);box-shadow:var(--shadow-lg);border:4px solid var(--white);transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.about-visual:hover .about-img-main{transform:scale(1.03)}
.about-visual:hover .about-img-sec{transform:scale(1.03)}
.about-counter{position:absolute;bottom:30px;left:-8px;z-index:4;background:var(--white);backdrop-filter:blur(12px);border-radius:var(--r);padding:16px 22px;box-shadow:var(--shadow-lg);text-align:center;min-width:130px}
.about-counter .sn{font-size:28px;display:block;line-height:1}
.about-counter .sl{font-size:9.5px;margin-top:3px}
.about-content .badge{margin-bottom:16px}
.about-content .stitle{margin-bottom:20px}
.about-desc{font-size:15px;color:var(--gray1);line-height:1.85;margin-bottom:28px}
.about-features{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:32px}
.about-feat{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--black);font-weight:500}
.about-feat svg{width:16px;height:16px;fill:var(--g);flex-shrink:0}
@media(max-width:1024px){
  .about-split{grid-template-columns:1fr;gap:44px}
  .about-visual{min-height:auto;display:flex;justify-content:center}
  .about-img-sec{right:0}
  .about-counter{left:0}
  .about-it-icon{right:0}
}
@media(max-width:600px){
  .about-features{grid-template-columns:1fr}
  .about-img-sec{width:160px;bottom:0}
  .about-counter{bottom:10px;padding:12px 16px;min-width:100px}
  .about-it-icon{width:80px;top:0}
}

/* — SOLUTIONS GRID — */
.sol-premium{
  background:var(--white);
  position:relative;overflow:hidden;padding:100px 0;
}
.sol-premium::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(122,184,42,0.12) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.12) 1px,transparent 1px);
  background-size:60px 60px
}
.sol-premium-imgcard{
  grid-column:span 2;border-radius:18px;overflow:hidden;
  position:relative;cursor:pointer;min-height:210px;
  background-size:cover;background-position:center;
  border:1px solid rgba(122,184,42,0.15);
  transition:all .4s cubic-bezier(.22,.61,.36,1);
  display:flex;align-items:flex-end
}
.sol-premium-imgcard:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 60px rgba(0,0,0,0.15);
  border-color:var(--g)
}
.sol-premium-imgcard-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,0.75) 100%)
}
.sol-premium-imgcard-content{
  position:relative;z-index:1;padding:22px 26px;width:100%
}
.sol-premium-imgcard-content .tag-dark{
  margin-bottom:8px;display:inline-block
}
.sol-premium-imgcard-content h4{
  font-family:var(--title);font-size:16px;color:var(--white);margin-bottom:3px
}
.sol-premium-imgcard-content p{
  font-size:12px;color:rgba(255,255,255,0.6);max-width:320px;line-height:1.5
}
.sol-premium-orb{
  position:absolute;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(122,184,42,0.06) 0%,transparent 70%)
}
.sol-premium-orb.t{width:550px;height:550px;top:-200px;right:-120px;animation:orbFloat 9s ease-in-out infinite}
.sol-premium-orb.b{width:400px;height:400px;bottom:-150px;left:-100px;animation:orbFloat 11s ease-in-out infinite reverse}
@keyframes orbFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(20px,-25px) scale(1.05)}
  66%{transform:translate(-15px,15px) scale(.95)}
}
.sol-premium .wrap{position:relative;z-index:1}
.sol-premium .eyebrow{color:var(--g)}
.sol-premium .eyebrow::before{background:var(--g)}
.sol-premium .stitle{color:var(--black);font-size:clamp(28px,3.8vw,48px)}
.sol-premium .ssub{color:var(--gray1);max-width:600px;margin-bottom:52px}

.sol-premium-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px
}
.sol-premium-card{
  background:rgba(255,255,255,0.65);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(122,184,42,0.12);
  border-radius:18px;padding:30px 28px 26px;
  cursor:pointer;position:relative;overflow:hidden;
  transition:all .4s cubic-bezier(.22,.61,.36,1);
  display:flex;flex-direction:column;
  box-shadow:0 4px 24px rgba(0,0,0,0.04);
}
.sol-premium-card::before{
  content:'';position:absolute;top:0;left:20px;right:20px;height:2px;
  background:var(--sol-c);opacity:0;border-radius:0 0 2px 2px;
  transition:opacity .35s,left .35s,right .35s
}
.sol-premium-card::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background:var(--sol-bg);
  transition:opacity .4s
}
.sol-premium-card>*{position:relative;z-index:1}
.sol-premium-card:hover{transform:translateY(-6px);border-color:var(--sol-c)}
.sol-premium-card:hover::before{opacity:1;left:0;right:0}
.sol-premium-card:hover::after{opacity:1}
.sol-premium-card:hover{box-shadow:0 16px 48px rgba(0,0,0,0.08),0 0 40px var(--sol-glow)}

.sol-premium-card.c-green{--sol-c:#7AB82A;--sol-bg:rgba(122,184,42,0.15);--sol-glow:rgba(122,184,42,0.12)}
.sol-premium-card.c-blue{--sol-c:#3B82F6;--sol-bg:rgba(59,130,246,0.15);--sol-glow:rgba(59,130,246,0.12)}
.sol-premium-card.c-purple{--sol-c:#A855F7;--sol-bg:rgba(168,85,247,0.15);--sol-glow:rgba(168,85,247,0.12)}
.sol-premium-card.c-cyan{--sol-c:#06B6D4;--sol-bg:rgba(6,182,212,0.15);--sol-glow:rgba(6,182,212,0.12)}
.sol-premium-card.c-orange{--sol-c:#F97316;--sol-bg:rgba(249,115,22,0.15);--sol-glow:rgba(249,115,22,0.12)}
.sol-premium-card.c-red{--sol-c:#EF4444;--sol-bg:rgba(239,68,68,0.15);--sol-glow:rgba(239,68,68,0.12)}

.sol-premium-card.span2{grid-column:span 2}
.sol-premium-card.span2 .sol-ico-box{width:50px;height:50px}

.sol-ico-box{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--sol-bg);color:var(--sol-c);flex-shrink:0;
  margin-bottom:18px;transition:all .35s;
  border:1px solid rgba(255,255,255,0.5);
}
.sol-premium-card:hover .sol-ico-box{
  box-shadow:0 0 24px var(--sol-glow),inset 0 0 16px var(--sol-glow);
  border-color:var(--sol-c)
}
.sol-ico-box svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.sol-card-kick{
  display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sol-c);margin-bottom:8px;font-family:var(--body)
}
.sol-card-title{
  font-family:var(--title);font-size:20px;color:var(--black);margin-bottom:10px;
  letter-spacing:-.02em;transition:color .3s
}
.sol-premium-card:hover .sol-card-title{color:var(--sol-c)}
.sol-card-desc{
  font-size:13px;color:var(--gray2);line-height:1.7;margin-bottom:18px;flex:1
}
.sol-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.sol-card-tag{
  font-size:10px;font-weight:600;padding:3px 10px;border-radius:100px;
  background:var(--g-bg);border:1px solid rgba(122,184,42,0.12);
  color:var(--gray2);font-family:var(--body);transition:all .25s
}
.sol-premium-card:hover .sol-card-tag{
  background:var(--sol-bg);border-color:var(--sol-c);color:var(--sol-c)
}
.sol-card-arrow{
  display:flex;align-items:center;gap:8px;
  font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gray3);transition:all .3s;font-family:var(--body);margin-top:4px
}
.sol-premium-card:hover .sol-card-arrow{color:var(--sol-c);gap:14px}
.sol-premium-card.span2 .sol-card-title{font-size:24px}

@media(max-width:968px){
  .sol-premium-grid{grid-template-columns:1fr 1fr}
  .sol-premium-card.span2{grid-column:span 2}
}
@media(max-width:600px){
  .sol-premium-grid{grid-template-columns:1fr}
  .sol-premium-card.span2{grid-column:span 1}
  .sol-premium-imgcard{grid-column:span 1;min-height:180px}
  .sol-premium{padding:72px 0 56px}
}

/* — SECTEURS GRID — */
.sec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sec-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:22px 18px;cursor:pointer;transition:all .2s;box-shadow:var(--shadow)}
.sec-card:hover{border-color:var(--g);transform:translateY(-3px);box-shadow:0 8px 28px rgba(122,184,42,0.12)}
.sec-n{font-family:var(--title);font-size:14px;margin-bottom:6px;color:var(--black)}
.sec-d{font-size:12px;color:var(--gray2);line-height:1.6}

.sec-ico-box {
  width:44px;height:44px;border-radius:10px;
  background:var(--g-bg);border:1px solid rgba(122,184,42,0.1);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;color:var(--g);
  transition:all .25s ease;
}
.sec-card:hover .sec-ico-box {
  background:var(--g);color:var(--white);
  box-shadow:0 0 16px rgba(122,184,42,0.3);
  border-color:var(--g);transform:translateY(-2px);
}
.sec-ico-box svg {
  width:20px;height:20px;stroke:currentColor;
  fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
}

.secteurs-cover {
  background-size:cover;background-position:55% 25%;
  background-attachment:fixed;position:relative;isolation:isolate;
}
.secteurs-cover .secteurs-overlay {
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg,#0a0f0a 0%,rgba(10,15,10,0.92) 20%,rgba(10,15,10,0.65) 45%,rgba(0,0,0,0.30) 70%,rgba(0,0,0,0.08) 100%);
}
.secteurs-cover .wrap{position:relative;z-index:2}
.secteurs-cover .eyebrow{color:var(--g-light)}
.secteurs-cover .eyebrow::before{background:var(--g-light)}
.secteurs-cover .stitle{color:var(--white)}
.secteurs-cover .ssub{color:rgba(255,255,255,0.75)}
.secteurs-cover .sec-card{
  background:rgba(255,255,255,0.06);backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.10);
  box-shadow:0 4px 24px rgba(0,0,0,0.2);
}
.secteurs-cover .sec-card:hover{
  background:rgba(122,184,42,0.13);border-color:var(--g);
  transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,0.35);
}
.secteurs-cover .sec-n{color:var(--white)}
.secteurs-cover .sec-d{color:rgba(255,255,255,0.65)}
.secteurs-cover .sec-ico-box{
  background:rgba(122,184,42,0.18);border-color:rgba(122,184,42,0.25);
  color:var(--g-light);
}
.secteurs-cover .sec-card:hover .sec-ico-box{
  background:var(--g);color:var(--white);border-color:var(--g);
}
@media (prefers-reduced-motion: reduce) {
  .secteurs-cover{background-attachment:scroll}
}
@media(max-width:800px){
  .sec-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .sec-grid{grid-template-columns:1fr}
}

/* — PARTNERS — */
.part-row{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:nowrap}
@media(max-width:968px){.part-row{gap:24px;flex-wrap:wrap}}
.part{display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .25s}
.part img{height:32px;width:auto;display:block;opacity:.55;transition:opacity .3s ease,transform .4s cubic-bezier(.22,.61,.36,1)}
.part:hover img{opacity:1;transform:scale(1.08)}

/* — WHY CHOOSE US — */
.why-split{display:grid;grid-template-columns:1.1fr 0.9fr;gap:52px}
@media(max-width:968px){.why-split{grid-template-columns:1fr;gap:40px}}
.why-stack{display:flex;flex-direction:column;gap:16px}
.why-item-premium{
  display:flex;gap:18px;
  background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);
  -webkit-backdrop-filter:blur(12px) saturate(180%);
  border:1px solid var(--border);border-radius:var(--r-lg);
  padding:24px;box-shadow:var(--shadow);transition:all .25s ease;
}
.why-item-premium:hover{
  background:var(--g-bg);border-color:var(--g);
  transform:translateX(6px);box-shadow:0 8px 30px rgba(122,184,42,0.16);
}
.why-item-premium:hover .why-content-premium h3{color:var(--g)}
.why-num-premium{
  font-family:var(--title);font-size:32px;
  color:var(--g-pale,#d4e8a0);line-height:1;
  flex-shrink:0;transition:color .25s ease;
}
.why-item-premium:hover .why-num-premium{color:var(--g-dark)}
.why-content-premium h3{font-family:var(--title);font-size:16px;margin-bottom:6px;color:var(--black)}
.why-content-premium p{font-size:13px;color:var(--gray1);line-height:1.65;margin:0}
.why-visual-container{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-lg);border:1px solid rgba(122,184,42,0.15);
  background:var(--black);min-height:420px;
}
.why-visual-img{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.85;transition:transform .6s cubic-bezier(.22,.61,.36,1);
}
.elementor .why-visual-img{height:100%}
.why-visual-container:hover .why-visual-img{transform:scale(1.03)}

/* — TESTIMONIALS — */
.testi{background:var(--g-bg);border:1px solid rgba(122,184,42,0.25);border-radius:var(--r-lg);padding:40px 44px;max-width:800px}
.testi-q{font-size:18px;font-weight:400;font-style:italic;color:var(--black);line-height:1.8;margin-bottom:24px;position:relative;padding-left:24px}
.testi-q::before{content:'"';position:absolute;left:0;top:-4px;font-size:48px;color:var(--g);font-style:normal;line-height:1}
.testi-who{display:flex;align-items:center;gap:12px}
.testi-av{width:42px;height:42px;border-radius:50%;background:var(--g-pale);display:flex;align-items:center;justify-content:center;font-size:17px;overflow:hidden;flex-shrink:0}
.testi-av img{width:100%;height:100%;object-fit:cover;display:block}
.testi-name{font-family:var(--title);font-size:13px;color:var(--black)}
.testi-role{font-size:12px;color:var(--gray2)}
@media(max-width:600px){.testi{padding:28px 22px}}

/* — GRID HELPERS — */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:868px){.g3{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.g2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}}

/* — CTA BAND — */
.cta-band{background:var(--g);padding:48px 5%;position:relative;overflow:hidden}
.cta-band::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(rgba(0,0,0,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,0.06) 1px,transparent 1px);
  background-size:56px 56px
}
.cta-band::after{
  content:'';position:absolute;inset:0;z-index:0;
  background:linear-gradient(135deg,rgba(0,0,0,0.1) 0%,transparent 40%,rgba(255,255,255,0.05) 60%,transparent 100%);
  pointer-events:none
}
.cta-orb{
  position:absolute;border-radius:50%;pointer-events:none;z-index:1
}
.cta-orb.t{
  width:500px;height:500px;top:-200px;right:-100px;
  background:radial-gradient(circle,rgba(255,255,255,0.08) 0%,transparent 70%);
  animation:orbFloat 10s ease-in-out infinite
}
.cta-orb.b{
  width:400px;height:400px;bottom:-150px;left:-80px;
  background:radial-gradient(circle,rgba(255,255,255,0.05) 0%,transparent 70%);
  animation:orbFloat 12s ease-in-out infinite reverse
}
.cta-inner{max-width:1220px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;position:relative;z-index:2}
.cta-inner h2{font-size:clamp(20px,2.8vw,38px);line-height:1.18;color:var(--white);font-family:var(--title);letter-spacing:-.02em}
.cta-inner h2 span{color:var(--black);font-weight:400}
.cta-btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--white);color:var(--g);padding:15px 32px;border-radius:8px;
  font-weight:700;font-size:14px;letter-spacing:.03em;border:none;cursor:pointer;
  font-family:var(--body);transition:all .25s cubic-bezier(.22,.61,.36,1);white-space:nowrap;
  box-shadow:0 4px 20px rgba(0,0,0,0.1)
}
.cta-btn:hover{
  background:var(--g-pale);transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(0,0,0,0.15)
}

/* ══ BREADCRUMB ══ */
.bc{display:flex;gap:8px;font-size:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
.bc a,.bc-current{text-decoration:none}
.bc--light{color:var(--gray2)}
.bc--light a{color:var(--gray2)}
.bc--light .bc-sep{color:var(--gray3)}
.bc--light .bc-current{color:var(--g);font-weight:600}
.bc--dark{color:rgba(255,255,255,0.4)}
.bc--dark a{color:rgba(255,255,255,0.4)}
.bc--dark .bc-sep{color:rgba(255,255,255,0.3)}
.bc--dark .bc-current{color:var(--g-light);font-weight:600}

/* ══ PREMIUM HERO ══ */
.hero-premium{
  position:relative;overflow:hidden;padding:110px 5%;min-height:58vh;
  display:flex;align-items:center
}
.hero-premium.is-dark{
  background:linear-gradient(135deg,#0a1a0a 0%,#132013 30%,#1a2a0a 60%,#0d1a0d 100%)
}
.hero-premium.is-dark::after{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-size:256px 256px;pointer-events:none
}
.hero-premium.is-light{
  background:linear-gradient(180deg,#fafafa 0%,#fff 40%);border-bottom:1px solid var(--border)
}
.hero-premium.is-banner{
  background:linear-gradient(180deg,var(--off) 0%,#fff 100%);padding:80px 5% 64px;
  min-height:auto;border-bottom:1px solid var(--border)
}
.hero-premium-grid{
  position:absolute;inset:0;pointer-events:none;z-index:1
}
.hero-premium.is-dark .hero-premium-grid{
  background-image:linear-gradient(rgba(122,184,42,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.04) 1px,transparent 1px);
  background-size:56px 56px
}
.hero-premium.is-light .hero-premium-grid{
  background-image:linear-gradient(var(--g-pale) 1px,transparent 1px),linear-gradient(90deg,var(--g-pale) 1px,transparent 1px);
  background-size:56px 56px;opacity:.4
}
.hero-premium-orb{
  position:absolute;border-radius:50%;pointer-events:none;z-index:1;will-change:transform
}
.hero-premium-orb.t{
  width:600px;height:600px;top:-200px;right:-100px;
  background:radial-gradient(circle,rgba(122,184,42,0.1) 0%,rgba(122,184,42,0.03) 40%,transparent 70%);
  animation:orbFloat 8s ease-in-out infinite
}
.hero-premium-orb.b{
  width:450px;height:450px;bottom:-120px;left:-80px;
  background:radial-gradient(circle,rgba(122,184,42,0.07) 0%,rgba(122,184,42,0.02) 40%,transparent 70%);
  animation:orbFloat 10s ease-in-out infinite reverse
}
.hero-premium-particles{
  position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden
}
.hero-premium-particles span{
  position:absolute;width:3px;height:3px;border-radius:50%;
  background:rgba(122,184,42,0.2);animation:particleDrift linear infinite
}
.hero-premium-particles span:nth-child(1){left:10%;top:20%;animation-duration:14s;animation-delay:0s;width:2px;height:2px}
.hero-premium-particles span:nth-child(2){left:25%;top:60%;animation-duration:18s;animation-delay:2s;width:4px;height:4px;background:rgba(122,184,42,0.15)}
.hero-premium-particles span:nth-child(3){left:45%;top:30%;animation-duration:16s;animation-delay:4s;width:3px;height:3px}
.hero-premium-particles span:nth-child(4){left:65%;top:70%;animation-duration:20s;animation-delay:1s;width:2px;height:2px}
.hero-premium-particles span:nth-child(5){left:80%;top:40%;animation-duration:15s;animation-delay:3s;width:4px;height:4px;background:rgba(122,184,42,0.12)}
.hero-premium-particles span:nth-child(6){left:90%;top:80%;animation-duration:17s;animation-delay:5s;width:3px;height:3px}
@keyframes particleDrift{
  0%{transform:translateY(0) translateX(0);opacity:0}
  10%{opacity:1}
  90%{opacity:1}
  100%{transform:translateY(-100vh) translateX(40px);opacity:0}
}
.hero-premium.is-tech{
  background:linear-gradient(145deg,#0a0f12 0%,#0d1a14 25%,#0a1a0a 50%,#0f1215 100%)
}
.hero-premium.is-tech::after{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
  background-size:256px 256px;pointer-events:none
}
.hero-premium.is-tech .hero-premium-grid{
  background-image:linear-gradient(rgba(122,184,42,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.03) 1px,transparent 1px);
  background-size:56px 56px
}
.hero-premium.is-tech .hero-premium-orb.t{
  width:500px;height:500px;top:-180px;right:-120px;
  background:radial-gradient(circle,rgba(122,184,42,0.08) 0%,rgba(100,200,255,0.03) 40%,transparent 70%)
}
.hero-premium.is-tech .hero-premium-orb.b{
  width:400px;height:400px;bottom:-100px;left:-100px;
  background:radial-gradient(circle,rgba(100,200,255,0.05) 0%,rgba(122,184,42,0.02) 40%,transparent 70%)
}
.hero-premium.is-tech .hero-premium-title{color:var(--white)}
.hero-premium.is-tech .hero-premium-desc{color:rgba(255,255,255,0.65)}
.hero-premium.is-tech .hero-premium-badge{
  background:rgba(122,184,42,0.1);border:1px solid rgba(122,184,42,0.25);color:var(--g-light)
}
.hero-premium.is-tech .hero-premium-badge .bdot-c{background:var(--g-light)}
.hero-tech-card{
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);
  border-radius:16px;padding:32px;backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);box-shadow:0 20px 60px rgba(0,0,0,0.3)
}
.hero-tech-card .tag{background:rgba(122,184,42,0.12);color:var(--g-light);border-color:rgba(122,184,42,0.2)}
.hero-tech-card .tag-dark{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.7);border-radius:100px;padding:4px 14px;font-size:0.8em}
.tag-dark{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.7);border-radius:100px;padding:4px 14px;font-size:0.8em}
.hero-tech-card .diag{background:rgba(0,0,0,0.2);border-color:rgba(255,255,255,0.06)}
.hero-tech-card .diag-lbl{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;font-family:var(--body);color:rgba(255,255,255,0.4)}
.hero-tech-card .drow{display:flex;gap:9px}
.hero-tech-card .dnode{border-radius:7px;padding:11px 13px;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06);box-shadow:none}
.hero-tech-card .dnode.hi{border-color:rgba(122,184,42,0.3);background:rgba(122,184,42,0.06)}
.hero-tech-card .dn-ico{font-size:16px;flex-shrink:0}
.hero-tech-card .dn-n{font-size:12px;font-weight:600;color:rgba(255,255,255,0.85)}
.hero-tech-card .dn-s{font-size:10px;margin-top:1px;color:rgba(255,255,255,0.4)}
.hero-tech-card .darrow{text-align:center;font-size:17px;padding:5px 0;color:rgba(122,184,42,0.5)}
.hero-tech-card .sstat{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06);box-shadow:none}
.hero-tech-card .sstat-n{color:var(--g-light)}
.hero-tech-card .sstat-l{color:rgba(255,255,255,0.4)}
.hero-tech-card .nv-st-item{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06)}
.hero-tech-card .nv-st-v{color:var(--g-light)}
.hero-tech-card .nv-st-l{color:rgba(255,255,255,0.4)}
.hero-tech-card .nv-node{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.06)}
.hero-tech-card .nv-node.ok{background:rgba(122,184,42,0.08);border-color:rgba(122,184,42,0.2)}
.hero-tech-card .nv-n{color:rgba(255,255,255,0.85)}
.hero-tech-card .nv-sp{color:rgba(255,255,255,0.4)}
.hero-tech-card .nv-mid-label{background:rgba(0,0,0,.5);color:var(--g-light)}
.hero-tech-card .nv-mid-line{background:linear-gradient(90deg,transparent,rgba(122,184,42,0.2),rgba(122,184,42,0.4),rgba(122,184,42,0.2),transparent)}
.hero-premium-inner{
  position:relative;z-index:2;max-width:1220px;margin:0 auto;width:100%
}
.hero-premium-inner.split{
  display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center
}
.hero-premium-inner.centered{text-align:center}
.hero-premium-inner.centered .hero-premium-title,
.hero-premium-inner.centered .hero-premium-desc{margin-inline:auto}
.hero-premium-badge{
  display:inline-flex;align-items:center;gap:8px;
  border-radius:100px;padding:7px 20px;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:24px;font-family:var(--body);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
.hero-premium.is-dark .hero-premium-badge{
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:var(--g-light)
}
.hero-premium.is-light .hero-premium-badge{
  background:var(--g-pale);border:1px solid rgba(122,184,42,0.25);color:var(--g)
}
.hero-premium-badge .bdot-c{
  width:5px;height:5px;border-radius:50%;animation:blink 2.2s ease-in-out infinite
}
.hero-premium.is-dark .hero-premium-badge .bdot-c{background:var(--g-light)}
.hero-premium.is-light .hero-premium-badge .bdot-c{background:var(--g)}
.hero-premium-title{
  font-family:var(--title);line-height:1.06;margin-bottom:20px;letter-spacing:-.03em;font-weight:700;font-size:clamp(30px,4.2vw,52px)
}
.hero-premium.is-dark .hero-premium-title{color:var(--white)}
.hero-premium.is-light .hero-premium-title{color:var(--black)}
.hero-premium-title .hl{color:var(--g);text-shadow:0 0 40px rgba(122,184,42,0.15)}
.hero-premium-desc{
  line-height:1.85;margin-bottom:34px;font-weight:400
}
.hero-premium.is-dark .hero-premium-desc{color:rgba(255,255,255,0.7)}
.hero-premium.is-light .hero-premium-desc{color:var(--gray1)}
.hero-premium-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-premium-inner.centered .hero-premium-actions{justify-content:center}
@media(max-width:868px){
  .hero-premium{padding:80px 5% 60px;min-height:40vh}
  .hero-premium-inner.split{grid-template-columns:1fr;gap:30px;text-align:center}
  .hero-premium-inner.split .hero-premium-actions{justify-content:center}
  .hero-premium-orb.t{width:350px;height:350px;top:-100px}
  .hero-premium-orb.b{width:250px;height:250px;bottom:-80px}
}
@media(max-width:480px){
  .hero-premium{padding:60px 5% 40px;min-height:auto}
  .hero-premium-title{font-size:26px!important}
  .hero-premium-desc{font-size:14px!important}
  .hero-premium-actions .s-btn-p,.hero-premium-actions .s-btn-s{width:100%;justify-content:center}
}

/* ══ ABOUT: VISION SPLIT ══ */
.vision-split{display:grid;grid-template-columns:1fr 1.2fr;gap:0;background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);margin:48px auto 0;max-width:1220px;position:relative;z-index:3}
.vision-image{position:relative;min-height:400px;overflow:hidden;background:linear-gradient(135deg,#0f1a0a 0%,#1a2e0a 40%,#2a4a0a 100%);display:flex;align-items:center;justify-content:center}
/*
 * A deliberate deviation from the design, which leaves this centred. The photo
 * is portrait in a landscape frame, so cover discards about 40% of its height;
 * centred, that lands squarely on the faces. Anchoring to the top keeps the
 * whole group — even 12% down clips the back row across the forehead.
 */
.vision-image img{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;inset:0}
.vision-image::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,0.50) 0%,rgba(122,184,42,0.15) 100%);z-index:1}
.vision-image-pattern{position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle at 20% 50%,rgba(122,184,42,0.20) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(122,184,42,0.10) 0%,transparent 40%),linear-gradient(rgba(122,184,42,0.08) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.08) 1px,transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px}
.vision-image-badge{position:relative;z-index:2;text-align:center;color:var(--white);padding:20px}
.vision-image-badge .vib-icon{font-size:56px;display:block;margin-bottom:12px;opacity:0.9}
.vision-image-badge .vib-text{font-family:var(--title);font-size:14px;letter-spacing:0.12em;text-transform:uppercase;opacity:0.7;font-weight:400}
.vision-content{padding:48px 44px;display:flex;flex-direction:column;gap:28px}
.vision-title{font-family:var(--title);font-size:clamp(24px,3vw,36px);color:var(--black);line-height:1.15}
.vision-title span{color:var(--g)}
.vision-text{font-size:15px;color:var(--gray1);line-height:1.85;font-style:italic;border-left:3px solid var(--g);padding-left:20px}
.vision-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:var(--r);overflow:hidden;margin-top:8px}
.vision-stat{background:var(--white);padding:22px 18px;text-align:center;transition:background .3s,transform .3s}
.vision-stat:hover{background:var(--g-bg);transform:translateY(-2px)}
.vision-stat-n{font-family:var(--title);font-size:36px;color:var(--g);display:block;line-height:1}
.vision-stat-l{font-size:11px;color:var(--gray2);text-transform:uppercase;letter-spacing:0.06em;margin-top:6px;display:block;font-weight:600}

/* ══ BNUM (big numbers) ══ */
.bnum-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-radius:var(--r-lg);overflow:hidden}
.bnum{background:var(--white);padding:40px 32px}
.bnum-n{font-family:var(--title);font-size:52px;color:var(--g);display:block;line-height:1}
.bnum-l{font-size:14px;font-weight:600;color:var(--black);margin-top:7px;display:block}
.bnum-d{font-size:12.5px;color:var(--gray2);margin-top:5px;line-height:1.6}

/* ══ ABOUT: ENHANCED BNUM ══ */
.bnum-grid.enhanced{margin-top:0;background:transparent;border-radius:0;overflow:visible;gap:16px;grid-template-columns:repeat(4,1fr);background:transparent}
.bnum-grid.enhanced .bnum{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px 28px;text-align:center;box-shadow:var(--shadow);transition:all .3s cubic-bezier(.22,.61,.36,1);position:relative;overflow:hidden}
.bnum-grid.enhanced .bnum::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.bnum-grid.enhanced .bnum:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(122,184,42,0.12);border-color:var(--g)}
.bnum-grid.enhanced .bnum:hover::before{transform:scaleX(1)}
.bnum-grid.enhanced .bnum-n{font-size:clamp(36px,4vw,60px);position:relative;display:inline-block}
.bnum-grid.enhanced .bnum-n::after{content:'+';color:var(--g-light);font-size:clamp(18px,2vw,28px);position:absolute;top:0;right:-20px;opacity:0.6}
.bnum-grid.enhanced .bnum:nth-child(2) .bnum-n::after,.bnum-grid.enhanced .bnum:nth-child(1) .bnum-n::after{content:''}
.bnum-grid.enhanced .bnum-l{font-size:15px;margin-top:10px;color:var(--dark)}
.bnum-grid.enhanced .bnum-d{font-size:13px;margin-top:8px;color:var(--gray2)}
.bnum-ico{font-size:28px;display:block;margin-bottom:10px}

/* ══ TIMELINE ══ */
/* Ported from SectionHeader.vue, whose styles were scoped to the component and
   so never made it into the theme stylesheet. */
.sec-h{margin-bottom:52px}
.sec-h--c{text-align:center}
.eyebrow-c{margin-inline:auto}
.sec-h--c .ssub{margin:0 auto}
/* The design constrains the timeline rather than letting it fill .wrap. */
.tline-wrap{max-width:820px;margin:0 auto}
.tline{position:relative;padding-left:30px;border-left:2px solid var(--g-pale);display:flex;flex-direction:column;gap:36px}
.tl-dot{position:absolute;left:-38px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--g);border:3px solid var(--white);box-shadow:0 0 0 2px var(--g)}
.tl-y{font-family:var(--title);font-size:12px;color:var(--g);margin-bottom:4px;letter-spacing:.07em}
.tl-t{font-family:var(--title);font-size:15px;margin-bottom:6px;color:var(--black)}
.tl-d{font-size:13px;color:var(--gray1);line-height:1.7}

/* ══ ABOUT: ENHANCED TIMELINE ══ */
.tline.enhanced{border-left:3px solid;border-image:linear-gradient(to bottom,var(--g),var(--g-light),var(--g-pale)) 1;padding-left:36px;gap:44px}
.tline-item{position:relative;opacity:0;transform:translateX(-20px);transition:opacity .6s ease,transform .6s ease}
.tline-item.revealed{opacity:1;transform:translateX(0)}
.tline-item:nth-child(1){transition-delay:0s}
.tline-item:nth-child(2){transition-delay:.12s}
.tline-item:nth-child(3){transition-delay:.24s}
.tline-item:nth-child(4){transition-delay:.36s}
.tline-item:nth-child(5){transition-delay:.48s}
.tline-item:nth-child(6){transition-delay:.60s}
.tline.enhanced .tl-dot{left:-45px;top:5px;width:16px;height:16px;background:var(--g);border:3px solid var(--white);box-shadow:0 0 0 3px var(--g),0 0 20px rgba(122,184,42,0.3);animation:tlPulse 2.6s ease-in-out infinite}
@keyframes tlPulse{0%,100%{box-shadow:0 0 0 3px var(--g),0 0 20px rgba(122,184,42,0.2)}50%{box-shadow:0 0 0 5px var(--g),0 0 30px rgba(122,184,42,0.4)}}
.tline.enhanced .tl-y{font-size:13px;font-weight:800;letter-spacing:.1em;background:var(--g-bg);display:inline-block;padding:2px 12px;border-radius:100px;margin-bottom:8px}
.tline.enhanced .tl-t{font-size:clamp(16px,1.4vw,19px);margin-bottom:8px}
.tline.enhanced .tl-d{font-size:13.5px;line-height:1.8}
.tline.enhanced .tl-img{margin-top:16px;border-radius:var(--r);overflow:hidden;height:180px;background:var(--g-pale);position:relative;box-shadow:var(--shadow)}
.tline.enhanced .tl-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.tline.enhanced .tline-item:hover .tl-img img{transform:scale(1.04)}

/* ══ ABOUT: TEAM ══ */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:960px;margin:0 auto}
.team-card{text-align:center;position:relative}
.team-img-wrap{position:relative;width:200px;height:200px;margin:0 auto 18px;border-radius:20px;overflow:hidden;border:3px solid var(--g);box-shadow:0 4px 20px rgba(122,184,42,0.15);transition:all .4s cubic-bezier(.22,.61,.36,1)}
.team-card:hover .team-img-wrap{transform:scale(1.04);border-color:var(--g-light);box-shadow:0 8px 36px rgba(122,184,42,0.25)}
.team-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.team-card:hover .team-img-wrap img{transform:scale(1.08)}
.team-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(122,184,42,0.25) 0%,transparent 50%);opacity:0;transition:opacity .4s ease;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px}
.team-card:hover .team-overlay{opacity:1}
.team-overlay-icon{color:var(--white);font-size:18px;width:36px;height:36px;background:rgba(0,0,0,0.30);backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,0.25);transition:all .3s}
.team-overlay-icon:hover{background:var(--g);border-color:var(--g);transform:scale(1.1)}
.team-name{font-family:var(--title);font-size:17px;color:var(--black);margin-bottom:5px;transition:color .3s}
.team-card:hover .team-name{color:var(--g)}
.team-role{font-size:12px;color:var(--gray2);text-transform:uppercase;letter-spacing:.08em;font-family:var(--body);font-weight:600;transition:color .3s}
.team-card:hover .team-role{color:var(--g-dark)}

/* ══ ABOUT: PARALLAX CTA ══ */
.about-cta{position:relative;overflow:hidden;height:480px;display:flex;align-items:center;justify-content:center;text-align:center}
.about-cta-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,24,5,0.95) 0%,rgba(15,40,8,0.9) 50%,rgba(122,184,42,0.15) 100%);z-index:1}
.about-cta-grid{position:absolute;inset:0;z-index:1;opacity:0.08;background-image:linear-gradient(rgba(122,184,42,0.30) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.30) 1px,transparent 1px);background-size:60px 60px}
.about-cta-content{position:relative;z-index:2;max-width:900px;padding:0 24px}
.about-cta-badge{display:inline-flex;align-items:center;gap:10px;background:rgba(122,184,42,0.15);border:1.5px solid rgba(122,184,42,0.30);border-radius:100px;padding:5px 16px;font-size:11px;font-weight:700;color:var(--g-light);letter-spacing:.08em;text-transform:uppercase;margin-bottom:24px;font-family:var(--body)}
.about-cta-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--g);animation:blink 2.2s ease-in-out infinite;display:inline-block;margin-right:6px}
.about-cta-title{font-family:var(--title);font-size:clamp(28px,4vw,46px);color:var(--white);line-height:1.15;margin-bottom:18px}
.about-cta-title span{color:var(--g-light)}
.about-cta-desc{font-size:16px;color:rgba(255,255,255,0.75);line-height:1.8;margin-bottom:32px}
.about-cta-btn{display:inline-flex;align-items:center;gap:10px;background:var(--g);color:var(--white);padding:14px 32px;border-radius:6px;font-weight:700;font-size:14px;letter-spacing:.03em;border:none;cursor:pointer;font-family:var(--body);transition:all .25s}
.about-cta-btn:hover{background:var(--g-dark);transform:translateY(-2px);box-shadow:0 8px 30px rgba(122,184,42,0.25)}
.about-cta-btn-outline{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--white);padding:14px 32px;border-radius:6px;font-weight:600;font-size:14px;border:1.5px solid rgba(255,255,255,0.30);cursor:pointer;font-family:var(--body);transition:all .25s;margin-left:12px}
.about-cta-btn-outline:hover{border-color:var(--g);color:var(--g-light);transform:translateY(-2px)}
.about-cta-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}
@media(max-width:640px){
  .about-cta{height:420px}
  .about-cta-actions{flex-direction:column}
  .about-cta-btn-outline{margin-left:0}
}
@media(max-width:868px){
  .vision-split{grid-template-columns:1fr}
  .vision-image{min-height:280px}
  .vision-content{padding:32px 24px}
  .vision-stats{grid-template-columns:repeat(3,1fr)}
  .bnum-grid.enhanced{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:repeat(2,1fr);gap:28px}
  .team-img-wrap{width:160px;height:160px}
}
@media(max-width:540px){
  .vision-stats{grid-template-columns:1fr}
  .bnum-grid.enhanced{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr;gap:40px}
  .team-img-wrap{width:180px;height:180px}
  .vision-content{padding:24px 18px}
  .tline.enhanced{padding-left:26px}
  .tline.enhanced .tl-dot{left:-33px;width:14px;height:14px}
}

/* ══ POURQUOI: VALUE SPLIT ══ */
.pq-split{display:grid;grid-template-columns:1fr 1.1fr;gap:0;background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);margin:48px auto 0;max-width:1220px;position:relative;z-index:3}
.pq-split-image{position:relative;min-height:380px;overflow:hidden;background:linear-gradient(135deg,#0f1a0a 0%,#1a2e0a 50%,#0f1a0a 100%)}
.pq-split-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.pq-split-image::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,0.45) 0%,rgba(122,184,42,0.10) 100%);z-index:1}
.pq-split-pattern{position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle at 30% 60%,rgba(122,184,42,0.15) 0%,transparent 50%),radial-gradient(circle at 70% 20%,rgba(122,184,42,0.08) 0%,transparent 40%),linear-gradient(rgba(122,184,42,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.06) 1px,transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px}
.pq-split-badge{position:absolute;bottom:24px;left:24px;z-index:2;display:flex;align-items:center;gap:10px;background:rgba(0,0,0,0.45);backdrop-filter:blur(8px);border:1px solid rgba(122,184,42,0.25);border-radius:100px;padding:8px 18px}
.pq-split-badge-icon{font-size:16px;color:var(--g-light)}
.pq-split-badge-text{font-size:11px;font-weight:600;color:var(--white);letter-spacing:.04em;font-family:var(--body);text-transform:uppercase}
.pq-split-content{padding:44px 40px;display:flex;flex-direction:column;gap:22px}
.pq-split-title{font-family:var(--title);font-size:clamp(22px,2.8vw,34px);color:var(--black);line-height:1.15}
.pq-split-title span{color:var(--g)}
.pq-split-text{font-size:14.5px;color:var(--gray1);line-height:1.85;border-left:3px solid var(--g);padding-left:20px}
.pq-split-highlights{display:flex;flex-direction:column;gap:10px}
.pq-split-hl{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--gray1);line-height:1.6}
.pq-split-hl-ico{color:var(--g);font-size:14px;flex-shrink:0}
@media(max-width:868px){
  .pq-split{grid-template-columns:1fr}
  .pq-split-image{min-height:260px}
  .pq-split-content{padding:32px 24px}
}
@media(max-width:540px){
  .pq-split-content{padding:24px 18px}
}

/* ══ POURQUOI: PILLARS ══ */
.pq-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pq-pillar{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px 28px;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:all .4s cubic-bezier(.22,.61,.36,1)}
.pq-pillar:hover{transform:translateY(-8px);box-shadow:0 16px 48px rgba(122,184,42,0.15);border-color:var(--g)}
.pq-pillar::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--g),var(--g-light));transform:scaleX(0);transform-origin:left;transition:transform .5s ease}
.pq-pillar:hover::before{transform:scaleX(1)}
.pq-pillar-orb{position:absolute;top:-40px;right:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(122,184,42,0.06) 0%,transparent 70%);z-index:0;transition:all .5s ease}
.pq-pillar:hover .pq-pillar-orb{transform:scale(1.8);opacity:0.8}
.pq-pillar-icon{position:relative;z-index:1;font-size:32px;margin-bottom:18px;display:block}
/*
 * The 3R+S pillars carry a large faint initial rather than an icon — R, R, R, S
 * for Réseau, Réactivité, Résilience, Sécurité, which is what the section
 * heading refers to.
 */
/* Opacity raised from the design's 0.12: at that value the initials barely
   registered, and they carry the 3R+S the heading names. */
.pq-pillar-letter{position:relative;z-index:1;font-family:var(--title);font-size:64px;font-weight:700;line-height:1;color:var(--g);display:block;margin-bottom:6px;letter-spacing:-0.04em;opacity:0.42}
@media(max-width:540px){
  .pq-pillar-letter{font-size:44px}
  .pq-pillars-4 .pq-pillar-letter{font-size:36px}
}
.pq-pillar-title{position:relative;z-index:1;font-family:var(--title);font-size:19px;color:var(--black);margin-bottom:12px}
.pq-pillar-desc{position:relative;z-index:1;font-size:13.5px;color:var(--gray1);line-height:1.8;margin-bottom:20px}
.pq-pillar-stat{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray2);background:var(--g-bg);padding:6px 14px;border-radius:100px;font-family:var(--body)}
.pq-pillar-stat span{color:var(--g);font-size:13px}
/* Four pillars (the 3R+S) sit 2x2 rather than in a row, with tighter padding
   to suit the narrower cell. */
.pq-pillars-4{grid-template-columns:repeat(2,1fr)}
.pq-pillars-4 .pq-pillar{padding:24px 22px}
@media(max-width:868px){
  .pq-pillars{grid-template-columns:1fr;gap:18px}
  .pq-pillar{padding:28px 20px}
  /* Keep the 2x2 on tablets — a single column makes the section very tall. */
  .pq-pillars-4{grid-template-columns:repeat(2,1fr)}
  .pq-pillars-4 .pq-pillar{padding:20px 16px}
}
@media(max-width:560px){
  .pq-pillars-4{grid-template-columns:1fr}
}

/* ══ POURQUOI: STATS STRIP ══ */
.pq-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;max-width:1220px;margin:0 auto;background:var(--border);border-radius:var(--r-lg);overflow:hidden;position:relative;z-index:2}
.pq-stat{background:var(--white);padding:32px 20px;text-align:center;transition:all .3s}
.pq-stat:hover{background:var(--g-bg)}
.pq-stat-n{font-family:var(--title);font-size:clamp(28px,3vw,42px);color:var(--g);display:block;line-height:1;margin-bottom:6px}
.pq-stat-l{font-size:11px;color:var(--gray2);text-transform:uppercase;letter-spacing:.07em;display:block;font-weight:600}
@media(max-width:868px){.pq-stats{grid-template-columns:repeat(2,1fr);border-radius:var(--r)}}
@media(max-width:540px){.pq-stats{grid-template-columns:1fr 1fr}}

/* ══ POURQUOI: ENGAGEMENTS & DIFFÉRENCIATEURS ══ */
.pq-eng-section{position:relative;padding:96px 0;background:linear-gradient(170deg,#0a1a05 0%,#102008 40%,#1a3a0a 100%);overflow:hidden}
.pq-eng-bg-pattern{position:absolute;inset:0;z-index:0;opacity:0.06;background-image:radial-gradient(circle at 20% 30%,rgba(122,184,42,0.30) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(122,184,42,0.15) 0%,transparent 50%),linear-gradient(rgba(122,184,42,0.20) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.20) 1px,transparent 1px);background-size:100% 100%,100% 100%,56px 56px,56px 56px}
.pq-diff-banner{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:0;background:rgba(255,255,255,0.06);backdrop-filter:blur(12px);border:1px solid rgba(122,184,42,0.15);border-radius:var(--r-lg);padding:28px 20px;margin-bottom:40px;position:relative;z-index:2}
.pq-diff{text-align:center;padding:0 12px}
.pq-diff-n{display:block;font-family:var(--title);font-size:clamp(26px,3vw,38px);color:var(--g-light);line-height:1;margin-bottom:4px}
.pq-diff-l{display:block;font-size:13px;color:var(--white);font-weight:600;margin-bottom:2px}
.pq-diff-d{display:block;font-size:11px;color:rgba(255,255,255,0.50)}
.pq-diff-divider{width:1px;height:48px;background:rgba(122,184,42,0.20)}
.pq-eng-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;position:relative;z-index:2}
.pq-eng-card{background:rgba(255,255,255,0.04);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(122,184,42,0.12);border-radius:var(--r-lg);padding:28px 24px;transition:all .4s cubic-bezier(.22,.61,.36,1);position:relative;overflow:hidden}
.pq-eng-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light));opacity:0;transition:opacity .4s ease}
.pq-eng-card::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(122,184,42,0.03) 0%,transparent 60%);z-index:0;pointer-events:none}
.pq-eng-card:hover{border-color:rgba(122,184,42,0.35);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.20);background:rgba(255,255,255,0.07)}
.pq-eng-card:hover::before{opacity:1}
.pq-eng-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;position:relative;z-index:1}
.pq-eng-card-ico{font-size:26px;display:block}
.pq-eng-card-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:3px 10px;border-radius:100px;font-family:var(--body)}
.pq-eng-card-tag.is-engagement{background:rgba(122,184,42,0.15);color:var(--g-light)}
.pq-eng-card-tag.is-diff{background:rgba(122,184,42,0.10);color:var(--g-light);border:1px solid rgba(122,184,42,0.20)}
.pq-eng-card-t{font-family:var(--title);font-size:16px;color:var(--white);margin-bottom:10px;position:relative;z-index:1}
.pq-eng-card-d{font-size:13px;color:rgba(255,255,255,0.60);line-height:1.75;position:relative;z-index:1;margin-bottom:16px}
.pq-eng-card-foot{position:relative;z-index:1;padding-top:14px;border-top:1px solid rgba(122,184,42,0.08)}
.pq-eng-card-stat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--g-light);font-family:var(--body)}
@media(max-width:868px){
  .pq-eng-grid{grid-template-columns:repeat(2,1fr)}
  .pq-diff-banner{grid-template-columns:1fr;gap:16px;padding:24px 16px}
  .pq-diff-divider{width:100%;height:1px}
}
@media(max-width:540px){
  .pq-eng-grid{grid-template-columns:1fr}
}

/* ══ POURQUOI: SAV GRID ══ */
.pq-sav-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.pq-sav{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:all .3s cubic-bezier(.22,.61,.36,1)}
.pq-sav:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.10);border-color:var(--g)}
.pq-sav-img{height:180px;overflow:hidden;position:relative}
.pq-sav-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.pq-sav:hover .pq-sav-img img{transform:scale(1.06)}
.pq-sav-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 60%,rgba(0,0,0,0.15));pointer-events:none}
.pq-sav-body{padding:24px 22px;display:flex;flex-direction:column;flex:1}
.pq-sav-ico{font-size:24px;display:block;margin-bottom:10px}
.pq-sav-t{font-family:var(--title);font-size:16px;color:var(--black);margin-bottom:8px}
.pq-sav-d{font-size:13px;color:var(--gray1);line-height:1.7;flex:1}
@media(max-width:868px){.pq-sav-grid{grid-template-columns:1fr}}
@media(max-width:540px){.pq-sav-img{height:140px}}

/* ══ POURQUOI: TEAM VALUES ══ */
.pq-team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pq-team-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px 28px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:all .4s cubic-bezier(.22,.61,.36,1)}
.pq-team-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(122,184,42,0.12);border-color:var(--g)}
.pq-team-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light));transform:scaleX(0);transform-origin:left;transition:transform .5s ease}
.pq-team-card:hover::before{transform:scaleX(1)}
.pq-team-orb{position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,rgba(122,184,42,0.05) 0%,transparent 70%);z-index:0;transition:all .5s ease}
.pq-team-card:hover .pq-team-orb{transform:scale(2)}
.pq-team-ico{font-size:32px;display:block;margin-bottom:16px;position:relative;z-index:1}
.pq-team-t{font-family:var(--title);font-size:17px;color:var(--black);margin-bottom:10px;position:relative;z-index:1}
.pq-team-d{font-size:13px;color:var(--gray1);line-height:1.75;position:relative;z-index:1}
@media(max-width:868px){.pq-team{grid-template-columns:1fr;gap:18px}}
@media(max-width:540px){.pq-team-card{padding:26px 20px}}

/* ══ CONNECTIVITÉ: WHY SPLIT ══ */
.cn-why{padding:96px 0;position:relative}
.cn-why::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(122,184,42,0.07) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.07) 1px,transparent 1px);background-size:56px 56px}
.cn-why .wrap{position:relative;z-index:1}
.cn-why-split{display:grid;grid-template-columns:0.75fr 1.8fr;gap:36px;align-items:stretch}
.cn-why-image{position:relative;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(135deg,#0f1a0a 0%,#1a2e0a 100%)}
.cn-why-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.cn-why-image::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,0.40) 0%,rgba(122,184,42,0.10) 100%);z-index:1}
.cn-why-image-pattern{position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle at 30% 50%,rgba(122,184,42,0.12) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(122,184,42,0.06) 0%,transparent 40%),linear-gradient(rgba(122,184,42,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.05) 1px,transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px}
.cn-why-image-badge{position:absolute;bottom:20px;left:20px;z-index:2;background:rgba(0,0,0,0.45);backdrop-filter:blur(8px);border:1px solid rgba(122,184,42,0.20);border-radius:100px;padding:6px 16px;font-size:11px;font-weight:600;color:var(--white);letter-spacing:.04em;font-family:var(--body)}
.cn-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cn-atout{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px 20px;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:all .35s cubic-bezier(.22,.61,.36,1)}
.cn-atout::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light));opacity:0;transition:opacity .35s ease}
.cn-atout:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.10);border-color:var(--g-pale)}
.cn-atout:hover::before{opacity:1}
.cn-atout-icon{width:40px;height:40px;border-radius:10px;background:var(--g-bg);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:12px;transition:all .3s}
.cn-atout:hover .cn-atout-icon{background:var(--g);box-shadow:0 4px 16px rgba(122,184,42,0.25)}
.cn-atout-t{font-family:var(--title);font-size:14px;color:var(--black);margin-bottom:6px;line-height:1.35}
.cn-atout-d{font-size:12px;color:var(--gray1);line-height:1.65;margin-bottom:12px}
.cn-atout-stat{display:inline-flex;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--g);background:var(--g-bg);padding:3px 10px;border-radius:100px;font-family:var(--body)}
.cn-atout-stat strong{font-size:inherit;margin:0 3px}
@media(max-width:868px){
  .cn-why-split{grid-template-columns:1fr}
  .cn-why-image{min-height:240px}
  .cn-atout{padding:20px 16px}
}
@media(max-width:540px){
  .cn-why-grid{grid-template-columns:1fr}
}

/* ══ CONNECTIVITÉ: SOLUTION CARDS ══ */
.cn-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.cn-card{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:all .35s cubic-bezier(.22,.61,.36,1)}
.cn-card:hover{box-shadow:0 12px 40px rgba(122,184,42,0.10);border-color:var(--g-pale)}
.cn-card-inner{display:flex;flex-direction:column;height:100%}
.cn-card-left{padding:28px 24px 16px;display:flex;gap:16px;align-items:flex-start}
.cn-card-icon{width:48px;height:48px;flex-shrink:0;background:var(--g-bg);border-radius:var(--r);display:flex;align-items:center;justify-content:center}
.cn-card-icon svg{width:24px;height:24px;fill:var(--g)}
.cn-card-info{flex:1}
.cn-card-category{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--g);margin-bottom:4px;font-family:var(--body)}
.cn-card-title{font-family:var(--title);font-size:19px;color:var(--black);margin-bottom:6px}
.cn-card-desc{font-size:12.5px;color:var(--gray2);line-height:1.6}
.cn-card-center{padding:0 24px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.cn-card-feat{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--gray1);line-height:1.5}
.cn-card-feat svg{width:16px;height:16px;fill:var(--g);flex-shrink:0;margin-top:2px}
.cn-card-right{padding:20px 24px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}
.cn-card-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 20px;border:none;border-radius:6px;cursor:pointer;font-family:var(--body);font-weight:700;font-size:13px;letter-spacing:.02em;background:linear-gradient(135deg,#6abf1a,#4ca00e);color:var(--white);transition:all .25s}
.cn-card-btn:hover{background:linear-gradient(135deg,#5cad14,#3a8c0a);transform:translateY(-1px);box-shadow:0 6px 20px rgba(106,191,26,0.30)}
.cn-card-btn svg{width:14px;height:14px;fill:currentColor}
.cn-card-footnote{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--gray2);line-height:1.4}
.cn-card-footnote svg{width:14px;height:14px;fill:var(--g-light);flex-shrink:0}
.cn-card--featured{background:linear-gradient(135deg,#f2fbe8,#edf6dc);border-color:var(--g);box-shadow:0 4px 24px rgba(122,184,42,0.12);transform:translateY(-4px)}
.cn-card--featured:hover{box-shadow:0 12px 48px rgba(122,184,42,0.20);transform:translateY(-6px)}
.cn-card-badge{position:absolute;top:0;left:20px;z-index:2;background:linear-gradient(135deg,#92d425,#65b100);color:var(--white);font-size:10px;font-weight:700;letter-spacing:.08em;padding:5px 14px;border-radius:0 0 6px 6px;font-family:var(--body)}
.cn-cards--cols-2{grid-template-columns:repeat(2,1fr)}
.cn-cards--eqh{align-items:stretch}
.cn-cards--eqh .cn-card{height:100%}
@media(max-width:968px){
  .cn-cards,.cn-cards--cols-2{grid-template-columns:1fr;max-width:500px;margin:0 auto}
  .cn-card--featured{transform:translateY(0)}
  .cn-card--featured:hover{transform:translateY(-3px)}
  .cn-card-left{flex-direction:column;align-items:center;text-align:center}
  .cn-card-icon{margin:0 auto}
}
@media(max-width:540px){
  .cn-card-left{padding:20px 18px 12px}
  .cn-card-center{padding:0 18px 16px}
  .cn-card-right{padding:16px 18px}
}

/* ══ BENEFITS GRID ══ */
.ben-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:var(--r-lg);overflow:hidden}
.ben{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);padding:34px 26px;position:relative;overflow:hidden;transition:all .35s cubic-bezier(.22,.61,.36,1)}
.ben::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light));opacity:0;transition:opacity .35s ease}
.ben:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(122,184,42,0.08);background:var(--white)}
.ben:hover::before{opacity:1}
.ben-ico{font-size:28px;margin-bottom:16px;display:block}
.ben-t{font-family:var(--title);font-size:16px;margin-bottom:8px;color:var(--black)}
.ben-d{font-size:13px;color:var(--gray1);line-height:1.7}

/* ══ BENEFITS DARK VARIANT ══ */
.sc-benefits-dark{position:relative;overflow:hidden;background:linear-gradient(145deg,#0a0f12 0%,#0d1a14 25%,#0a1a0a 50%,#0f1215 100%);padding:80px 0}
.sc-benefits-dark-grid{position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(rgba(122,184,42,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.04) 1px,transparent 1px);background-size:56px 56px}
.sc-benefits-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:1;will-change:transform}
.sc-benefits-orb.t{width:500px;height:500px;top:-180px;right:-120px;background:radial-gradient(circle,rgba(122,184,42,0.08) 0%,rgba(100,200,255,0.03) 40%,transparent 70%);animation:orbFloat 8s ease-in-out infinite}
.sc-benefits-orb.b{width:400px;height:400px;bottom:-100px;left:-100px;background:radial-gradient(circle,rgba(100,200,255,0.05) 0%,rgba(122,184,42,0.02) 40%,transparent 70%);animation:orbFloat 10s ease-in-out infinite reverse}
.sc-benefits-dark .eyebrow{color:var(--white);background:rgba(255,255,255,0.10);border-color:rgba(255,255,255,0.20)}
.sc-benefits-dark .stitle{color:var(--white)}
.sc-benefits-dark .ssub{color:rgba(255,255,255,0.75)}
.ben--dark{background:rgba(255,255,255,0.04)!important;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid rgba(255,255,255,0.06)!important}
.ben--dark .ben-t{color:var(--white)!important}
.ben--dark .ben-d{color:rgba(255,255,255,0.55)!important}
.ben--dark:hover{background:rgba(255,255,255,0.08)!important;border-color:rgba(122,184,42,0.3)!important;box-shadow:0 8px 28px rgba(0,0,0,0.3)!important}
.ben--dark:hover::before{opacity:1}

/* ══ USE CASES ══ */
.uc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.uc{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r);padding:20px 16px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow);text-decoration:none;display:block}
.uc:hover{border-color:var(--g);background:var(--g-bg);box-shadow:0 6px 24px rgba(122,184,42,0.1);transform:translateY(-2px)}
.uc-ico{font-size:26px;margin-bottom:10px;display:block}
.uc-t{font-family:var(--title);font-size:12px;margin-bottom:4px;color:var(--black)}
.uc-d{font-size:11px;color:var(--gray2);line-height:1.5}
@media(max-width:868px){.uc-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:540px){.uc-grid{grid-template-columns:repeat(2,1fr)}}

/* ══ SMART: LE CONSTAT ══ */
.sc-constat{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.sc-constat-left{display:flex;flex-direction:column;gap:28px}
.sc-constat-text{display:flex;flex-direction:column;gap:16px}
.sc-constat-text p{font-size:14px;color:var(--gray1);line-height:1.75;margin:0}
.sc-constat-text p strong{color:var(--g-dark)}
.sc-constat-cards{display:flex;flex-direction:column;gap:2px;border-radius:var(--r);overflow:hidden}
.sc-cc{display:flex;gap:14px;align-items:flex-start;background:var(--g-bg);padding:16px 18px;transition:background .25s}
.sc-cc:hover{background:var(--g-pale)}
.sc-cc-icon{width:30px;height:30px;min-width:30px;border-radius:8px;background:var(--white);display:flex;align-items:center;justify-content:center;color:var(--g);margin-top:2px}
.sc-cc-icon svg{width:10px;height:10px;fill:currentColor}
.sc-cc-label{font-family:var(--title);font-size:14px;font-weight:600;color:var(--black);margin-bottom:4px}
.sc-cc-desc{font-size:13px;color:var(--gray1);line-height:1.6}
.sc-constat-right{position:sticky;top:120px}
.sc-constat-images{position:relative;min-height:500px}
.sc-ci-box{position:absolute;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.08);transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .45s ease}
.sc-ci-box img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.sc-ci-box:hover img{transform:scale(1.05)}
.sc-ci-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(44,54,57,0.12) 0%,transparent 60%);pointer-events:none}
.sc-ci-a{width:70%;height:320px;top:0;right:0;z-index:1}
.sc-ci-b{width:60%;height:280px;bottom:40px;left:0;z-index:2}
.sc-ci-box:hover{transform:translateY(-4px);box-shadow:0 28px 70px rgba(0,0,0,0.12)}
.sc-constat-images::after{content:'';position:absolute;z-index:3;width:60px;height:60px;top:10px;left:calc(30% - 120px);border-top:3px solid var(--g-light);border-left:3px solid var(--g);border-radius:10px 0 0 0;box-shadow:-4px -4px 16px rgba(122,184,42,0.08);pointer-events:none}
.sc-constat-images::before{content:'';position:absolute;z-index:3;width:60px;height:60px;top:350px;right:10px;border-bottom:3px solid var(--g-light);border-right:3px solid var(--g);border-radius:0 0 10px 0;box-shadow:4px 4px 16px rgba(122,184,42,0.08);pointer-events:none}
@media(max-width:868px){
  .sc-constat{grid-template-columns:1fr;gap:40px}
  .sc-constat-right{position:static}
  .sc-constat-images{min-height:380px}
  .sc-ci-a{width:65%;height:280px}
  .sc-ci-b{width:55%;height:240px}
  .sc-constat-images::before{top:210px}
}
@media(max-width:540px){
  .sc-constat-images{min-height:300px}
  .sc-ci-a{width:75%;height:220px}
  .sc-ci-b{width:65%;height:200px}
  .sc-constat-images::before{top:150px}
}

/* ══ GLOBAL: COMPOSANTES CARDS ══ */
.gc-card{padding:36px 30px 32px;background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);position:relative;overflow:hidden;transition:all .3s cubic-bezier(.22,.61,.36,1)}
.gc-card-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.gc-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.1);border-color:rgba(122,184,42,0.2)}
.gc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light))}
.gc-card-ico{width:44px;height:44px;border-radius:10px;background:var(--g-bg);border:1px solid rgba(122,184,42,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.gc-card-ico svg{width:20px;height:20px;fill:var(--g)}
.gc-card-t{font-family:var(--title);font-size:17px;color:var(--black);margin:0}
.gc-card-d{font-size:13.5px;color:var(--gray1);line-height:1.75;margin-bottom:16px}
.gc-card-feats{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}
.gc-card-feats li{font-size:12px;color:var(--gray2);display:flex;align-items:center;gap:7px}
.gc-card-feats li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--g);flex-shrink:0}

/* ══ GLOBAL: COMPARISON TABLE ══ */
.gc-compare{display:flex;flex-direction:column;gap:36px}
.gc-compare-table{overflow:hidden}
.gc-ct-head{display:grid;grid-template-columns:1fr 1.6fr 0.9fr 0.9fr;gap:1px;background:var(--gray5);border-radius:10px 10px 0 0;overflow:hidden}
.gc-ct-hc{background:var(--off);padding:14px 14px 14px 16px;font-family:var(--title);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--gray2);font-weight:700;display:flex;flex-direction:column;gap:6px}
.gc-ct-hc--gc{color:var(--g)}
.gc-ct-hc--gc .gc-ct-hi svg{fill:var(--g)}
.gc-ct-hi{display:flex;align-items:center;justify-content:center;width:22px;height:22px}
.gc-ct-hi svg{width:15px;height:15px;fill:currentColor}
.gc-ct-rows{display:flex;flex-direction:column;gap:1px;background:var(--gray5);border-radius:0 0 10px 10px;overflow:hidden}
.gc-ct-row{display:grid;grid-template-columns:1fr 1.6fr 0.9fr 0.9fr;gap:1px;background:var(--white);border-left:4px solid var(--g);transition:box-shadow .2s}
.gc-ct-row:hover{background:rgba(122,184,42,0.03);box-shadow:0 2px 12px rgba(122,184,42,0.08)}
.gc-ct-row:last-child{border-radius:0 0 10px 10px}
.gc-ct-cell{padding:14px 16px;display:flex;align-items:center;gap:11px;font-size:13px;color:var(--gray1);line-height:1.5}
.gc-ct-cell--dim{font-weight:600;color:var(--black);font-family:var(--title);font-size:14px;padding-left:18px}
.gc-ct-ri{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--g)}
.gc-ct-ri svg{width:16px;height:16px;fill:currentColor}
@media(max-width:868px){
  .gc-ct-head{grid-template-columns:1fr 1.2fr 0.8fr 0.8fr}
  .gc-ct-row{grid-template-columns:1fr 1.2fr 0.8fr 0.8fr}
}
@media(max-width:640px){
  .gc-ct-head{grid-template-columns:0.8fr 1fr 0.7fr 0.7fr}
  .gc-ct-hc{font-size:9px;padding:10px 8px}
  .gc-ct-cell{font-size:11px;padding:10px 8px}
  .gc-ct-cell--dim{font-size:12px}
}
@media(max-width:480px){
  .gc-ct-head,.gc-ct-row{grid-template-columns:0.7fr 0.9fr 0.6fr 0.6fr}
  .gc-ct-hc{font-size:8px;padding:8px 5px;gap:4px}
  .gc-ct-cell{font-size:10px;padding:8px 5px;gap:6px}
  .gc-ct-cell--dim{font-size:10px}
  .gc-ct-ri svg{width:13px;height:13px}
}

/* ══ EDGE USE CASES ══ */
/* ══ EDGE SIM — 2x2 COMPONENT GRID ══ */
.es-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.es-card{padding:24px 20px;background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);transition:all .25s cubic-bezier(.22,.61,.36,1)}
.es-card:hover{transform:translateY(-3px);border-color:rgba(122,184,42,0.25);box-shadow:var(--shadow-lg)}
.es-card-ico{font-size:22px;margin-bottom:12px;display:block}
.es-card-t{font-family:var(--title);font-size:15px;color:var(--black);margin-bottom:6px}
.es-card-d{font-size:12.5px;color:var(--gray1);line-height:1.7}
@media(max-width:868px){.es-grid{grid-template-columns:1fr}}

.es-use{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r);padding:24px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:all .3s cubic-bezier(.22,.61,.36,1)}
.es-use::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--g),var(--g-light));opacity:0;transition:opacity .3s ease}
.es-use:hover{transform:translateY(-3px);border-color:rgba(122,184,42,0.2);box-shadow:0 10px 32px rgba(122,184,42,0.08)}
.es-use:hover::before{opacity:1}
.es-use-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.es-use-ico{width:42px;height:42px;border-radius:10px;background:var(--g-bg);border:1px solid rgba(122,184,42,0.15);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.es-use-t{font-family:var(--title);font-size:15px;color:var(--black);margin-bottom:2px}
.es-use-stat{font-size:11px;color:var(--g);font-weight:600;letter-spacing:.03em;font-family:var(--body)}
.es-use-d{font-size:13px;color:var(--gray1);line-height:1.7;margin:0}
@media(max-width:868px){
  .es-use-grid{grid-template-columns:1fr 1fr}
}

/* ══ MSSP: POURQUOI MSSP ══ */
.ms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ms-card{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 24px;box-shadow:var(--shadow);transition:all .35s cubic-bezier(.22,.61,.36,1)}
.ms-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.08);border-color:rgba(122,184,42,0.2)}
.ms-ico{width:48px;height:48px;border-radius:12px;background:var(--g-bg);border:1px solid rgba(122,184,42,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g);margin-bottom:18px}
.ms-t{font-family:var(--title);font-size:16px;line-height:1.35;margin-bottom:8px;color:var(--black)}
.ms-d{font-size:13px;color:var(--gray1);line-height:1.7}

/* ══ MSSP: OFFERS CHECK POINT ══ */
.offer-mod{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:34px 30px;box-shadow:var(--shadow);position:relative;transition:all .35s cubic-bezier(.22,.61,.36,1);display:flex;flex-direction:column}
.offer-mod:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.08);border-color:rgba(122,184,42,0.2)}
.offer-mod.hl{border-color:var(--g);border-width:2px}
.offer-mod.hl::before{content:'Recommandé';position:absolute;top:-12px;left:24px;background:var(--g);color:var(--white);font-size:11px;font-weight:700;padding:3px 14px;border-radius:100px;letter-spacing:.06em;font-family:var(--body);z-index:2}
.offer-mod-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.offer-mod-ico{width:48px;height:48px;border-radius:12px;background:var(--g-bg);border:1px solid rgba(122,184,42,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.offer-mod.hl .offer-mod-ico{background:var(--g);color:var(--white);border-color:var(--g)}
.offer-mod-badge{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray2);font-family:var(--body);background:var(--off);padding:4px 14px;border-radius:100px}
.offer-mod.hl .offer-mod-badge{background:rgba(122,184,42,0.1);color:var(--g)}
.offer-mod-t{font-family:var(--title);font-size:20px;margin-bottom:3px;color:var(--black)}
.offer-mod-s{font-size:12.5px;color:var(--gray2);margin-bottom:14px}
.offer-mod-d{font-size:13px;color:var(--gray1);line-height:1.7;margin-bottom:18px;flex:1}
.offer-mod .feat-list{gap:7px;margin-bottom:22px}
.offer-mod .feat{font-size:12.5px;padding:8px 12px;background:var(--g-bg);border-radius:7px}
.offer-mod-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 0;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;transition:all .25s;font-family:var(--body);border:none;text-decoration:none}
.offer-mod.hl .offer-mod-btn{background:var(--g);color:var(--white)}
.offer-mod.hl .offer-mod-btn:hover{background:var(--g-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(122,184,42,0.25)}
.offer-mod:not(.hl) .offer-mod-btn{background:var(--off);color:var(--gray1);border:1px solid var(--border)}
.offer-mod:not(.hl) .offer-mod-btn:hover{background:var(--g);color:var(--white);border-color:var(--g);transform:translateY(-2px);box-shadow:0 6px 20px rgba(122,184,42,0.15)}
@media(max-width:768px){
  .offer-mod{padding:26px 22px}
  .ms-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:540px){
  .ms-grid{grid-template-columns:1fr}
}

/* ══ SECTEUR FINANCE — CARD BASE ══ */
.card-g{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);position:relative;overflow:hidden}
.card-g::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--g)}

/* ══ SECTEUR FINANCE — CHALLENGES ══ */
/* Centred lead-in above the challenge cards; inline-styled in the source. */
.sb-chall-intro{max-width:540px;margin:0 auto 48px;font-size:14px;color:var(--gray1);line-height:1.7;text-align:center}
/* Padding is inline on the card in the source, like the intro above it. */
.sb-chall-card{background:rgba(255,255,255,0.72);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);transition:all .35s cubic-bezier(.22,.61,.36,1);padding:28px 26px}
.sb-chall-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(122,184,42,0.1);border-color:rgba(122,184,42,0.2)}
.sb-chall-icon{width:48px;height:48px;border-radius:12px;background:var(--g-bg);border:1px solid rgba(122,184,42,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px;margin-bottom:18px}
.sb-chall-title{font-family:var(--title);font-size:17px;color:var(--black);margin-bottom:10px;line-height:1.35}
.sb-chall-desc{font-size:13px;color:var(--gray1);line-height:1.7;margin:0 0 14px}

/* ══ SECTEUR FINANCE — SOLUTIONS TABS ══ */
.sol-tabs{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start}
.st-side{background:var(--off);border-radius:var(--r-lg);padding:20px 12px;position:sticky;top:100px}
.st-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray3);margin-bottom:12px;padding:0 8px;font-family:var(--body)}
.st-tab{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;cursor:pointer;transition:all .2s;margin-bottom:3px;border-left:3px solid transparent}
.st-tab:hover{background:var(--g-pale)}
.st-ico{width:36px;height:36px;border-radius:8px;background:var(--g-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.st-n{font-size:13px;font-weight:700;color:var(--black);margin-bottom:1px}
.st-s{font-size:11px;color:var(--gray2);line-height:1.3}
.st-main{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);min-height:320px}
.st-panel{padding:32px 30px;animation:stFade .35s ease;display:none}
.st-panel.act{display:block}
.st-ph{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.st-pi{width:56px;height:56px;border-radius:14px;background:var(--g-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.st-pn{font-family:var(--title);font-size:20px;color:var(--black);margin-bottom:2px}
.st-ps{font-size:13px;color:var(--gray2)}
.st-pd{font-size:14px;color:var(--gray1);line-height:1.75;margin-bottom:20px}
.st-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}
.st-pf{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--black);padding:10px 12px;background:var(--g-bg);border-radius:8px}
.st-pf-ico{width:28px;height:28px;border-radius:6px;background:rgba(122,184,42,0.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.st-pcta{display:inline-flex;align-items:center;gap:8px;background:var(--g);color:var(--white);border:none;padding:13px 26px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;transition:all .25s;font-family:var(--body);text-decoration:none}
.st-pcta:hover{background:var(--g-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(122,184,42,0.25)}
/* Tabs active states */
@keyframes stFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.st-panel.act{display:block}
.st-tab.act{background:var(--white);border-left-color:var(--g);box-shadow:0 2px 8px rgba(0,0,0,0.04)}
.st-tab.act .st-ico{background:var(--g);color:var(--white)}

/* ══ SECTEUR FINANCE — TESTIMONIAL SPLIT ══ */
.testi-split{display:flex;gap:0;background:var(--g-bg);border:1px solid rgba(122,184,42,0.25);border-radius:var(--r-lg);overflow:hidden}
.testi-img{width:200px;flex-shrink:0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(122,184,42,0.08),rgba(122,184,42,0.04))}
.testi-img-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:rgba(122,184,42,0.3);background:linear-gradient(135deg,var(--g-pale),transparent)}
.testi-img-inner svg{width:72px;height:72px}
.testi-img-inner img{width:100%;height:100%;object-fit:cover}
.testi-content{padding:40px 44px 40px 36px;flex:1;min-width:0}
.testi-content .testi-q{margin-bottom:24px}
.testi-content .testi-who{margin:0}
@media(max-width:768px){
  .testi-split{flex-direction:column}
  .testi-img{width:100%;height:120px}
  .testi-content{padding:28px 24px}
}

/* ══ SECTEUR FINANCE — TESTIMONIAL SLIDER ══ */
.testi-slider{position:relative;overflow:hidden}
.ts-track{display:flex;transition:transform .45s cubic-bezier(.22,.61,.36,1);width:100%}
.testi-slider .testi-split{flex:0 0 100%}
.ts-dots{display:flex;justify-content:center;gap:10px;margin-top:22px}
.ts-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--border);background:transparent;cursor:pointer;padding:0;transition:all .25s}
.ts-dot.act{background:var(--g);border-color:var(--g)}

/* ══ SECTEUR FINANCE — HERO STATS GRID ══ */
.s-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.sstat{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.sstat-n{font-family:var(--title);font-size:30px;color:var(--g);display:block}
.sstat-l{font-size:11px;color:var(--gray2);text-transform:uppercase;letter-spacing:.07em;margin-top:4px;display:block}
/* On the dark hero variants the base white background reads as a solid block.
   The design overrides these three inline on every instance; scoping by variant
   does the same for any placement without repeating it per widget. */
.hero-premium.is-dark .sstat,
.hero-premium.is-tech .sstat{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.1);box-shadow:none}
.hero-premium.is-dark .sstat-n,
.hero-premium.is-tech .sstat-n{color:var(--g-light)}
.hero-premium.is-dark .sstat-l,
.hero-premium.is-tech .sstat-l{color:rgba(255,255,255,0.5)}

@media(max-width:868px){
  .sol-tabs{grid-template-columns:1fr}
  .st-side{position:static;display:flex;flex-wrap:wrap;gap:6px;padding:16px;overflow-x:auto}
  .st-label{width:100%;margin-bottom:6px}
  .st-tab{flex-shrink:0}
  .st-pgrid{grid-template-columns:1fr}
}

/* ══ BLOG — HERO ══ */
.art-hero{position:relative;overflow:hidden;padding:100px 5% 60px;background:linear-gradient(145deg,#0a0f12 0%,#0d1a14 25%,#0a1a0a 50%,#0f1215 100%)}
.art-hero-grid{position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(rgba(122,184,42,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.04) 1px,transparent 1px);background-size:56px 56px}
.art-hero-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:1;will-change:transform}
.art-hero-orb.t{width:500px;height:500px;top:-180px;right:-120px;background:radial-gradient(circle,rgba(122,184,42,0.08) 0%,rgba(100,200,255,0.03) 40%,transparent 70%);animation:orbFloat 8s ease-in-out infinite}
.art-hero-orb.b{width:400px;height:400px;bottom:-100px;left:-100px;background:radial-gradient(circle,rgba(100,200,255,0.05) 0%,rgba(122,184,42,0.02) 40%,transparent 70%);animation:orbFloat 10s ease-in-out infinite reverse}
.art-hero-inner{max-width:1220px;margin:0 auto;position:relative;z-index:2;text-align:center}
.art-hero-bad{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--g-light);background:rgba(122,184,42,0.12);padding:7px 16px;border-radius:100px;margin-bottom:22px;letter-spacing:.04em;border:1px solid rgba(122,184,42,0.2)}
.art-hero-title{font-size:clamp(30px,4.2vw,52px);line-height:1.12;margin:0 auto 16px;max-width:740px;color:var(--white)}
.art-hero-title span{color:var(--g-light)}
.art-hero-desc{font-size:16px;color:rgba(255,255,255,0.5);line-height:1.8;max-width:540px;margin:0 auto 30px}
.art-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:0;justify-content:center}
.art-hero-count{max-width:1220px;margin:36px auto 0;position:relative;z-index:2;padding-top:20px;border-top:1px solid rgba(255,255,255,0.06);font-size:13px;color:rgba(255,255,255,0.35);display:flex;align-items:center;justify-content:center;gap:8px}
.art-hero-count-n{font-family:var(--title);font-size:26px;color:var(--g-light);font-weight:700}

/* ══ BLOG — FILTER ══ */
.art-filter{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--border)}
.art-fil{background:var(--white);border:1px solid var(--border);padding:8px 18px;border-radius:100px;font-size:13px;font-weight:600;color:var(--gray1);cursor:pointer;transition:all .2s;font-family:var(--body);text-decoration:none;display:inline-block}
.art-fil:hover,.art-fil.act{background:var(--g);color:var(--white);border-color:var(--g)}

/* ══ BLOG — FEATURED ══ */
.art-feat{display:grid;grid-template-columns:1fr 1.2fr;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);transition:all .35s cubic-bezier(.22,.61,.36,1)}
.art-feat:hover{box-shadow:0 12px 40px rgba(122,184,42,0.08);border-color:rgba(122,184,42,0.2)}
.art-feat-img-link{display:block;text-decoration:none;color:inherit}
.art-feat-img{position:relative;min-height:380px;overflow:hidden}
.art-feat-cat{position:absolute;top:16px;left:16px;background:var(--g);color:var(--white);font-size:11px;font-weight:700;padding:4px 14px;border-radius:100px;letter-spacing:.04em;z-index:2}
.art-feat-body{padding:36px 36px 40px;display:flex;flex-direction:column;justify-content:center}
.art-feat-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.art-feat-date{font-size:12px;color:var(--gray2)}
.art-feat-read{font-size:12px;color:var(--gray2);position:relative;padding-left:12px}
.art-feat-read::before{content:'';position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:3px;border-radius:50%;background:var(--gray3)}
.art-feat-title-link{text-decoration:none;color:inherit}
.art-feat-title{font-family:var(--title);font-size:clamp(18px,2vw,26px);line-height:1.3;margin-bottom:12px;color:var(--black)}
.art-feat-desc{font-size:14px;color:var(--gray1);line-height:1.75;margin-bottom:20px}
.art-feat-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--g);font-weight:700;font-size:13px;cursor:pointer;padding:0;transition:gap .25s;font-family:var(--body);text-decoration:none}
.art-feat-btn:hover{gap:14px}

/* ══ BLOG — GRID HEADING ══ */
.art-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}
.art-head-t{font-family:var(--title);font-size:28px;color:var(--black)}

/* ══ BLOG — CARDS ══ */
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.art-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;transition:all .35s cubic-bezier(.22,.61,.36,1);box-shadow:var(--shadow)}
.art-card:hover{border-color:rgba(122,184,42,0.2);box-shadow:0 10px 36px rgba(122,184,42,0.08);transform:translateY(-4px)}
.art-card-img-link{display:block;text-decoration:none;color:inherit}
.art-card-img{height:200px;overflow:hidden}
.art-card-body{padding:20px 22px 26px}
.art-card-meta{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.art-card-date{font-size:11px;color:var(--gray2)}
.art-card-t-link{text-decoration:none;color:inherit}
.art-card-t{font-family:var(--title);font-size:15px;line-height:1.4;margin-bottom:8px;color:var(--black)}
.art-card-d{font-size:12.5px;color:var(--gray1);line-height:1.65;margin-bottom:14px}
.art-card-more{font-size:12px;font-weight:700;color:var(--g);display:inline-flex;align-items:center;gap:6px;transition:gap .25s;font-family:var(--body);text-decoration:none}
.art-card:hover .art-card-more{gap:12px}

/* ══ BLOG — NEWSLETTER ══ */
.art-nl{position:relative;overflow:hidden;padding:60px 0}
.art-nl-bg{position:absolute;inset:0;background:linear-gradient(135deg,#0a0f12,#0d1a14);z-index:1}
.art-nl-bg::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(122,184,42,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.03) 1px,transparent 1px);background-size:48px 48px}
.art-nl-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r-lg);padding:36px 40px;backdrop-filter:blur(8px)}
.art-nl-info{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}
.art-nl-icon{width:48px;height:48px;border-radius:12px;background:rgba(122,184,42,0.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g-light)}
.art-nl-t{font-family:var(--title);font-size:20px;color:var(--white);margin-bottom:4px}
.art-nl-d{font-size:13px;color:rgba(255,255,255,0.5);line-height:1.6}
.art-nl-input-wrap{display:flex;gap:10px;max-width:520px}
.art-nl-input{flex:1;padding:13px 18px;border-radius:8px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.06);color:var(--white);font-size:14px;outline:none;transition:border-color .2s;font-family:var(--body)}
.art-nl-input::placeholder{color:rgba(255,255,255,0.3)}
.art-nl-input:focus{border-color:var(--g)}
.art-nl-btn{padding:13px 26px;border-radius:8px;background:var(--g);color:var(--white);border:none;font-weight:700;font-size:13px;cursor:pointer;transition:all .25s;white-space:nowrap;font-family:var(--body)}
.art-nl-btn:hover{background:var(--g-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(122,184,42,0.2)}
.art-nl-msg{font-size:13px;color:var(--g-light);margin-top:10px;min-height:20px}

/* ══ BLOG — PAGINATION ══ */
.art-pagi{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:40px;padding-top:28px;border-top:1px solid var(--border)}
.pagi-btn{background:var(--white);border:1px solid var(--border);padding:10px 22px;border-radius:6px;font-size:13px;font-weight:600;color:var(--gray1);cursor:pointer;transition:all .2s;font-family:var(--body);text-decoration:none;display:inline-block}
.pagi-btn:hover:not(:disabled){background:var(--g);color:var(--white);border-color:var(--g)}
.pagi-btn:disabled{opacity:.4;cursor:default}
.pagi-info{font-size:13px;color:var(--gray2);font-weight:500}

/* ══ BLOG — SINGLE ARTICLE ══ */
.art-single-layout{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start}
.art-single-main{min-width:0}
.art-single-img{border-radius:var(--r-lg);overflow:hidden;margin-bottom:32px;box-shadow:var(--shadow-lg)}
.art-single-body{font-size:16px;line-height:1.9;color:var(--gray1)}
.art-single-body h2{font-size:clamp(20px,2.4vw,28px);margin:36px 0 14px;color:var(--black);font-family:var(--title)}
.art-single-body h3{font-size:clamp(17px,1.6vw,20px);margin:28px 0 10px;color:var(--black);font-family:var(--title)}
.art-single-body p{margin-bottom:18px}
.art-single-body blockquote{margin:24px 0;padding:18px 24px;background:var(--g-bg);border-left:4px solid var(--g);border-radius:0 var(--r) var(--r) 0;font-style:italic;color:var(--dark);font-size:15px;line-height:1.75}
.art-single-body ul,.art-single-body ol{margin:0 0 18px 24px}
.art-single-body li{margin-bottom:8px}
.art-single-body img{border-radius:var(--r);margin:24px 0}
.art-single-body a{color:var(--g);font-weight:600;text-decoration:underline}
.art-single-body a:hover{color:var(--g-dark)}
.art-single-sidebar{display:flex;flex-direction:column;gap:20px;position:sticky;top:90px}
.art-ss-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}
.art-ss-title{font-size:15px;margin-bottom:10px;color:var(--black);font-family:var(--title)}
.art-ss-text{font-size:13px;color:var(--gray1);line-height:1.7;margin-bottom:16px}
.art-ss-card .textwidget p{font-size:13px;color:var(--gray1);line-height:1.7;margin-bottom:16px}
.art-ss-cats{display:flex;flex-direction:column;gap:8px}
.art-ss-cats a,.widget_categories ul{font-size:13px;color:var(--gray1);transition:color .2s,padding-left .2s;padding:4px 0;text-decoration:none}
.widget_categories ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.widget_categories .cat-item{font-size:13px;padding:0}
.widget_categories .cat-item a,.art-ss-cats a{color:var(--gray1);text-decoration:none;display:block;padding:4px 0;transition:color .2s,padding-left .2s}
.widget_categories .cat-item a:hover,.art-ss-cats a:hover{color:var(--g);padding-left:6px}
.art-ss-card:last-child{background:linear-gradient(135deg,#0a1a0a,#132013);border-color:rgba(122,184,42,0.2)}
.art-ss-card:last-child .art-ss-title{color:var(--white)}
.art-ss-card:last-child .art-ss-text{color:rgba(255,255,255,0.6)}
.art-ss-card:last-child .textwidget p{color:rgba(255,255,255,0.6)}

/* ══ BLOG — RELATED ══ */
.art-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.art-rel-card{cursor:pointer}

/* ══ BLOG — RESPONSIVE ══ */
@media(max-width:868px){
  .art-single-layout{grid-template-columns:1fr}
  .art-single-sidebar{position:static;margin-top:32px}
  .art-rel-grid{grid-template-columns:1fr 1fr}
  .art-feat{grid-template-columns:1fr}
  .art-feat-img{min-height:200px}
  .art-feat-body{padding:28px 24px}
  .art-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .art-grid{grid-template-columns:1fr}
  .art-rel-grid{grid-template-columns:1fr}
  .art-nl-card{padding:24px 20px}
  .art-nl-input-wrap{flex-direction:column}
  .art-hero{padding:80px 5% 56px}
  .art-head{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ══ CARRIÈRE — JOB LIST, JOB DETAIL, APPLICATION FORM ══ */
/* Ported from the design's stylesheet; rules the theme already had are omitted. */
.s-btn-p,.s-btn-s,.btn-g,.btn-outline,.btn-white,.nav-cta{position:relative;overflow:hidden}
.form-msg{margin-top:12px;padding:10px 14px;border-radius:7px;font-size:13px;display:none;font-family:var(--body)}
.form-msg.error{display:block;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}
.form-msg.success{display:block;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}
.field.error input,.field.error select,.field.error textarea{border-color:#ef4444;background:#fef2f2}
.field .err-text{display:none;font-size:11px;color:#ef4444;margin-top:4px;font-family:var(--body)}
.field.error .err-text{display:block}
.field{margin-bottom:16px}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray2);margin-bottom:7px;font-family:var(--body)}
.field input,.field select,.field textarea{width:100%;background:var(--off);border:1.5px solid var(--gray5);border-radius:7px;padding:12px 16px;color:var(--black);font-size:14px;font-family:var(--body);outline:none;transition:border-color .2s;appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--g);background:var(--white)}
.field textarea{resize:vertical;min-height:100px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.job-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1100px;margin:0 auto}
.job-card{background:var(--white);border:1px solid rgba(122,184,42,0.35);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 2px 12px rgba(122,184,42,0.04),0 4px 24px rgba(0,0,0,0.05);transition:all .4s cubic-bezier(.22,.61,.36,1);display:flex;flex-direction:column;position:relative}
.job-card::after{content:'';position:absolute;inset:0;border-radius:var(--r-lg);pointer-events:none;box-shadow:inset 0 1px 0 rgba(122,184,42,0.08);z-index:2}
.job-card:hover{transform:translateY(-6px);box-shadow:0 8px 32px rgba(122,184,42,0.10),0 4px 12px rgba(122,184,42,0.06);border-color:rgba(122,184,42,0.22)}
.job-card-img-link{display:block;overflow:hidden;height:300px;position:relative;flex-shrink:0}
.job-card-img{width:100%;height:100%}
.job-card-img svg{transition:transform .55s ease}
.job-card-img img{transition:transform .55s ease;width:100%;height:100%;object-fit:cover;display:block}
.job-card:hover .job-card-img svg{transform:scale(1.06)}
.job-card:hover .job-card-img img{transform:scale(1.06)}
.job-card-body{padding:18px 20px 20px;position:relative;flex:1;display:flex;flex-direction:column}
.job-card-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.job-card-number{font-family:var(--title);font-size:26px;font-weight:700;color:var(--g);line-height:1;opacity:0.18}
.job-card-sector{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g);background:linear-gradient(135deg,var(--g-bg),rgba(122,184,42,0.07));border:1px solid rgba(122,184,42,0.16);padding:4px 12px;border-radius:100px;font-family:var(--body)}
.job-card-title-link{text-decoration:none;display:block;margin-bottom:6px}
.job-card-title{font-family:var(--title);font-size:17px;color:var(--black);margin:0;line-height:1.3;transition:color .25s}
.job-card-title-link:hover .job-card-title{color:var(--g)}
.job-card-excerpt{font-size:13px;color:var(--gray1);line-height:1.65;margin-bottom:14px;flex:1}
.job-card-meta{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;margin-bottom:14px;border:1px solid rgba(122,184,42,0.35)}
.jcm-item{background:var(--off);padding:8px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(122,184,42,0.25)}
.jcm-item:last-child{border-bottom:none}
.jcm-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray2);font-family:var(--body);min-width:62px}
.jcm-val{font-size:13px;color:var(--black);font-weight:600}
.job-card-cta{display:inline-flex;align-items:center;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--g);text-decoration:none;font-family:var(--body);transition:all .3s;gap:4px;margin-top:auto;align-self:flex-start}
.job-card-cta:hover{gap:8px;color:var(--g-dark)}
.job-single-layout{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.job-single-sidebar{display:flex;flex-direction:column;gap:20px;position:sticky;top:90px}
.job-single-main{min-width:0}
.job-single-section{margin-bottom:36px;padding-bottom:28px;border-bottom:1px solid var(--border)}
.job-single-section:last-child{border-bottom:none}
.job-ss-title{font-family:var(--title);font-size:18px;color:var(--black);margin-bottom:14px}
.job-ss-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.job-ss-list li{font-size:14px;color:var(--gray1);line-height:1.7;padding-left:20px;position:relative}
.job-ss-list li::before{content:'';position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--g)}
.job-ss-text{font-size:14px;color:var(--gray1);line-height:1.8}
.job-single-apply{background:var(--g-bg);border:1px solid rgba(122,184,42,0.2);border-radius:var(--r-lg);padding:24px;display:flex;align-items:flex-start;gap:16px;margin-top:32px}
.job-single-apply-icon{width:44px;height:44px;border-radius:10px;background:rgba(122,184,42,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.job-single-email{font-size:15px;font-weight:700;color:var(--g);text-decoration:none}
.job-single-email:hover{text-decoration:underline}
@media(max-width:640px){ .art-grid{grid-template-columns:1fr} .art-rel-grid{grid-template-columns:1fr} .wb-grid{grid-template-columns:1fr} .art-nl-card{padding:24px 20px} .art-nl-input-wrap{flex-direction:column} .art-hero{padding:80px 5% 56px} .art-head{flex-direction:column;align-items:flex-start;gap:12px} }
@media(max-width:1024px){ .job-list{grid-template-columns:repeat(2,1fr)} .job-card-img-link{height:260px} }
@media(max-width:868px){ .job-single-layout{grid-template-columns:1fr} .job-single-sidebar{position:static;margin-top:28px} .job-list{grid-template-columns:1fr;max-width:640px} .job-card-img-link{height:240px} }
@media(max-width:540px){ .job-card-body{padding:16px 14px 18px} .job-card-title{font-size:16px} .job-card-img-link{height:180px} }

/* ══ CARRIÈRE — FLUENT FORMS SKIN ══ */
/* Fluent Forms ships its own layout; these rules only restyle it to match the
   design's .apply-form, so the plugin stays responsible for behaviour. */
.apply-form-wrap{margin-top:8px}
.apply-form-notice{margin-top:14px;padding:10px 14px;border-radius:7px;font-size:12.5px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-family:var(--body)}
.apply-form .ff-el-group{margin-bottom:16px}
.apply-form .ff-el-input--label label{font-size:12.5px;font-weight:600;color:var(--gray1);margin-bottom:6px;font-family:var(--body)}
.apply-form .ff-el-form-control{width:100%;padding:12px 14px;border:1px solid var(--gray4);border-radius:var(--r);font-size:14px;font-family:var(--body);color:var(--black);background:var(--white);transition:border-color .2s,box-shadow .2s}
.apply-form .ff-el-form-control:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px rgba(122,184,42,0.12)}
.apply-form textarea.ff-el-form-control{min-height:120px;resize:vertical}
.apply-form .ff-el-input--content .ff-el-form-check-label{font-size:13px;color:var(--gray1)}
.apply-form .ff_file_upload_holder,.apply-form .ff-el-input--content .ff-upload-button{border:1px dashed var(--gray4);border-radius:var(--r);padding:16px;text-align:center;font-size:13px;color:var(--gray2);background:var(--off)}
.apply-form .ff-btn-submit{display:inline-flex;align-items:center;gap:9px;background:var(--g);color:var(--white);border:1px solid var(--g);padding:13px 28px;border-radius:var(--r);font-weight:700;font-size:13px;font-family:var(--body);cursor:pointer;transition:background .25s,transform .25s}
.apply-form .ff-btn-submit:hover{background:var(--g-dark);border-color:var(--g-dark);transform:translateY(-1px)}
.apply-form .ff-el-is-error .ff-el-form-control{border-color:#dc2626}
.apply-form .error.text-danger,.apply-form .ff-el-is-error .error{color:#b91c1c;font-size:12px;margin-top:5px}
.apply-form .ff-message-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:14px 16px;border-radius:var(--r);font-size:13.5px}
@media(max-width:640px){.apply-form .ff-btn-submit{width:100%;justify-content:center}}

/* ══ CARRIÈRE — CONTACT FORM 7 SKIN ══ */
/* CF7 emits its own wrappers; the form markup already carries the theme's
   classes, so these only cover what CF7 adds around them. */
.apply-form .wpcf7-form-control-wrap{display:block}
.apply-form .req{color:#dc2626}
.apply-form input[type=file].ff-upload-input{width:100%;padding:14px;border:1px dashed var(--gray4);border-radius:var(--r);background:var(--off);font-size:13px;color:var(--gray2);cursor:pointer}
.apply-form input[type=file].ff-upload-input:hover{border-color:var(--g)}
.apply-form .wpcf7-not-valid{border-color:#dc2626}
.apply-form .wpcf7-not-valid-tip{color:#b91c1c;font-size:12px;margin-top:5px;display:block}
.apply-form .wpcf7-response-output{margin:16px 0 0;padding:12px 16px;border-radius:var(--r);font-size:13.5px;border-width:1px;border-style:solid}
.apply-form form.sent .wpcf7-response-output{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.apply-form form.invalid .wpcf7-response-output,.apply-form form.failed .wpcf7-response-output{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.apply-form .wpcf7-spinner{margin:0 0 0 10px}
.apply-form input.ff-btn-submit{border:1px solid var(--g)}

/* ══ CARRIÈRE — SIDEBAR CTA CARD ══ */
.art-ss-cta{background:linear-gradient(135deg,#0a1a0a,#132013);border-color:rgba(122,184,42,0.2)}
.art-ss-cta .art-ss-title{color:var(--white)}
.art-ss-cta .art-ss-text{color:rgba(255,255,255,0.6)}
.art-ss-card .btn-outline,.art-ss-card .btn-g{width:100%;justify-content:center;font-size:12px}
/*
 * Document hero — the article and job pages narrow the hero and left-align it.
 * The design carries these as inline styles; they are classes here so the
 * markup stays declarative.
 */
.art-hero--doc{padding:100px 5% 50px}
.art-hero-inner--doc{text-align:left;max-width:900px;margin:0 auto}
.art-single-title{text-align:left;margin-left:0}
.job-hero-tag{background:rgba(122,184,42,0.15);border-color:rgba(122,184,42,0.3);color:var(--g-light)}
.job-hero-meta{display:flex;gap:20px;font-size:13px;color:rgba(255,255,255,0.5);flex-wrap:wrap}
.art-hero-meta{display:flex;gap:16px;font-size:13px;color:rgba(255,255,255,0.5);margin-bottom:12px;flex-wrap:wrap}
.art-single-back{margin-top:48px;padding-top:32px;border-top:1px solid var(--border)}
.art-rel-section{padding:40px 0 80px}
.art-rel-head{margin-bottom:28px}
.section--doc{padding:48px 0 80px}
.job-single-back{margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}
/* Left-aligned variant of the hero, used by the single-application page. */
.art-hero-inner.is-left{text-align:left;max-width:900px;margin:0 auto}
.art-hero-inner.is-left .art-hero-title,.art-hero-inner.is-left .art-hero-desc{text-align:left;margin-left:0}
.art-hero-inner.is-left .art-hero-actions{justify-content:flex-start}

/* ══ NEWSLETTER — MC4WP SKIN ══ */
/* MC4WP wraps the markup the form supplies; these cover what it adds. */
.art-nl-notice{margin-top:12px;padding:9px 13px;border-radius:6px;font-size:12px;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.75);font-family:var(--body)}
.art-nl-form .mc4wp-form{margin:0}
.art-nl-form .mc4wp-form p{margin:0}
.art-nl-form input[type=submit].art-nl-btn{cursor:pointer}
.art-nl-form .mc4wp-alert{margin-top:12px;padding:10px 14px;border-radius:7px;font-size:13px;font-family:var(--body)}
.art-nl-form .mc4wp-success{background:rgba(122,184,42,0.15);border:1px solid rgba(122,184,42,0.35);color:var(--g-light)}
.art-nl-form .mc4wp-error,.art-nl-form .mc4wp-notice{background:rgba(220,38,38,0.12);border:1px solid rgba(220,38,38,0.3);color:#fca5a5}

/* ══ CONTACT — HERO, INFO BLOCKS, FORM WRAP, MAPS ══ */
.gc-ct-hi--hl svg{fill:var(--g);}
.gc-ct-dim{font-family:var(--title); font-size:14px; font-weight:600; color:var(--black); line-height:1.3;}
.gc-ct-cell--badge{justify-content:center;}
.wb-dl{font-size:12px;font-weight:700;color:var(--g);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px;font-family:var(--body)}
.cf-wrap{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:36px;box-shadow:var(--shadow-lg)}
.cf-wrap h3{font-family:var(--title);font-size:22px;margin-bottom:6px;color:var(--black)}
.cf-wrap>p{font-size:13.5px;color:var(--gray1);margin-bottom:26px;line-height:1.7}
.iblock{display:flex;gap:14px;align-items:flex-start}
.ib-ico{width:40px;height:40px;border-radius:8px;background:var(--g-pale);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.ib-lbl{font-size:11px;font-weight:700;color:var(--gray2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-family:var(--body)}
.ib-val{font-size:14px;color:var(--black);font-weight:600}
.ib-sub{font-size:12px;color:var(--gray2);margin-top:2px}
.ct-hero{position:relative;overflow:hidden;padding:100px 5% 60px;background:linear-gradient(145deg,#0a0f12 0%,#0d1a14 25%,#0a1a0a 50%,#0f1215 100%)}
.ct-hero-grid{position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(rgba(122,184,42,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(122,184,42,0.04) 1px,transparent 1px);background-size:56px 56px}
.ct-hero-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:1;will-change:transform}
.ct-hero-orb.t{width:500px;height:500px;top:-180px;right:-120px;background:radial-gradient(circle,rgba(122,184,42,0.08) 0%,rgba(100,200,255,0.03) 40%,transparent 70%);animation:orbFloat 8s ease-in-out infinite}
.ct-hero-orb.b{width:400px;height:400px;bottom:-100px;left:-100px;background:radial-gradient(circle,rgba(100,200,255,0.05) 0%,rgba(122,184,42,0.02) 40%,transparent 70%);animation:orbFloat 10s ease-in-out infinite reverse}
.ct-hero-inner{max-width:1220px;margin:0 auto;position:relative;z-index:2;text-align:center}
.ct-hero-bad{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--g-light);background:rgba(122,184,42,0.12);padding:7px 16px;border-radius:100px;margin-bottom:22px;letter-spacing:.04em;border:1px solid rgba(122,184,42,0.2)}
.ct-hero-title{font-size:clamp(30px,4.2vw,52px);line-height:1.12;margin:0 auto 16px;max-width:740px;color:var(--white)}
.ct-hero-title span{color:var(--g-light)}
.ct-hero-desc{font-size:16px;color:rgba(255,255,255,0.5);line-height:1.8;max-width:540px;margin:0 auto 30px}
.ct-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:0;justify-content:center}
.ct-hero-actions .s-btn-s{text-decoration:none}
.ct-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:52px;align-items:start}
.ct-cards{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.ct-card{display:flex;align-items:flex-start;gap:14px;background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}
.ct-ico{width:40px;height:40px;border-radius:10px;background:var(--g-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--g)}
.ct-card-l{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray3);margin-bottom:3px;font-family:var(--body)}
.ct-card-v{font-size:14px;font-weight:600;color:var(--black);line-height:1.5}
.ct-card-s{font-size:12px;color:var(--gray2);margin-top:3px}
.ct-map{margin-bottom:24px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border)}
.ct-agencies{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ct-agency{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow)}
.ct-agency-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ct-agency-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ct-agency-n{font-family:var(--title);font-size:15px;color:var(--black)}
.ct-agency-r{font-size:11px;color:var(--g);text-transform:uppercase;letter-spacing:.07em;font-weight:600;font-family:var(--body)}
.ct-agency-a{font-size:12.5px;color:var(--gray1);line-height:1.65;padding-left:18px;border-left:2px solid var(--g-bg)}
/*
 * The design declares the info blocks twice and lets the later, contact-page
 * version win: flat rows early on, white cards here. Only the hover and the
 * strong rule had been carried over, so the blocks rendered flat and the hover
 * restyled a border that did not exist.
 */
.info-blocks{display:flex;flex-direction:column;gap:12px}
.iblock{display:flex;align-items:flex-start;gap:14px;background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow);transition:all .3s ease}
.ib-ico{width:42px;height:42px;border-radius:11px;background:var(--g-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}
.ib-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray3);margin-bottom:3px;font-family:var(--body)}
.ib-val{font-size:15px;font-weight:600;color:var(--black);line-height:1.5}
.ib-sub{font-size:12px;color:var(--gray2);margin-top:3px;line-height:1.55}
.iblock:hover{border-color:rgba(122,184,42,0.2);box-shadow:0 8px 28px rgba(122,184,42,0.08)}
.ib-sub strong{font-weight:700;color:var(--black)}
/* The design prints the addresses as plain text; the mailto stays, the link styling goes. */
.ib-sub a{color:inherit;text-decoration:none}
.ib-sub a:hover{color:var(--g)}
@media(max-width:868px){ .ct-layout{grid-template-columns:1fr} .ct-agencies{grid-template-columns:1fr} }
/* Contact — bits the design carried inline. */
.ct-left-title{font-size:26px;margin-bottom:30px;font-family:var(--title);color:var(--black);line-height:1.2}
.ct-privacy{font-size:11.5px;color:var(--gray2);margin-top:14px;text-align:center;line-height:1.6}
.ct-maps{background:var(--off);padding:90px 0;border-top:1px solid rgba(20,23,28,0.10)}
.ct-maps-title{margin-bottom:36px}
.ct-map-card{padding:0;overflow:hidden}
.ct-map-frame{border:0;display:block;width:100%;filter:grayscale(0.15) contrast(0.95)}
.ct-map-body{padding:22px 24px}
.ct-map-name{font-family:var(--title);font-size:16px;margin-bottom:6px;color:var(--black)}
.ct-map-addr{font-size:13px;color:var(--gray2);line-height:1.6;margin-bottom:12px}
.cf-wrap .apply-form .ct-submit{width:100%;justify-content:center}
.ct-hero-actions .s-btn-s svg{margin-right:6px}

/* ══ SEARCH, EMPTY STATES, COMMENTS ══ */
/* Templates WordPress needs that the design has no counterpart for; styled
   from the theme's own tokens so they do not read as core defaults. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:var(--white);border-radius:var(--r);box-shadow:var(--shadow-lg);clip:auto;clip-path:none;color:var(--black);display:block;font-size:14px;font-weight:700;height:auto;left:20px;line-height:1;padding:16px 24px;text-decoration:none;top:20px;width:auto;z-index:100000}

.mt-searchform{display:flex;gap:10px;flex-wrap:wrap;max-width:620px}
.mt-search-input{flex:1;min-width:220px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--r);font-family:var(--body);font-size:14px;color:var(--black);background:var(--white)}
.mt-search-input:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px rgba(122,184,42,0.12)}
.mt-search-submit{flex-shrink:0}
.mt-search-again{margin-bottom:36px}

.mt-none{max-width:620px;margin:0 auto;text-align:center;padding:40px 0 20px}
.mt-none-title{font-family:var(--title);font-size:26px;color:var(--black);margin-bottom:12px}
.mt-none-text{font-size:14px;color:var(--gray1);line-height:1.7;margin-bottom:24px}
.mt-none-form{margin-bottom:24px}
.mt-none-form .mt-searchform{justify-content:center}
.mt-none-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.mt-comments{margin-top:48px;padding-top:32px;border-top:1px solid var(--border)}
.mt-comments-title{font-family:var(--title);font-size:22px;color:var(--black);margin-bottom:24px}
.mt-comment-list{list-style:none;margin:0 0 32px;padding:0}
.mt-comment-list .comment-body{background:var(--white);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:20px 22px;margin-bottom:14px}
.mt-comment-list .children{list-style:none;margin:0 0 0 28px;padding:0}
.mt-comment-list .comment-author{font-family:var(--title);font-size:15px;color:var(--black)}
.mt-comment-list .comment-metadata{font-size:12px;color:var(--gray2);margin-bottom:10px}
.mt-comment-list .comment-metadata a{color:var(--gray2);text-decoration:none}
.mt-comments-closed{font-size:13px;color:var(--gray2)}
.mt-comments .comment-form input[type=text],.mt-comments .comment-form input[type=email],.mt-comments .comment-form input[type=url],.mt-comments .comment-form textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);font-family:var(--body);font-size:14px;background:var(--white);color:var(--black)}
.mt-comments .comment-form label{display:block;font-size:12px;font-weight:700;color:var(--gray2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-family:var(--body)}
.mt-comments .comment-form p{margin-bottom:16px}

/* ══ THEME OPTIONS ══ */
/* Styles for the optional pieces. None of these render unless the matching
   Customizer option is on, so the design's own pages are unaffected. */

/* 404 */
.mt-404{padding-top:68px;min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center}
.mt-404-code{font-size:120px;font-family:var(--title);color:var(--g);line-height:1;margin-bottom:16px}
.mt-404 .ssub{margin:0 auto 32px}
.mt-404-search{margin-top:36px;display:flex;justify-content:center}
.mt-404-search .mt-searchform{justify-content:center}

/* Article listing — list layout */
.art-grid--list{grid-template-columns:1fr;gap:16px}
.art-grid--list .art-card{display:grid;grid-template-columns:260px 1fr;align-items:stretch}
.art-grid--list .art-card-img{height:100%;min-height:170px}
.art-grid--list .art-card-body{display:flex;flex-direction:column;justify-content:center}
@media(max-width:768px){
  .art-grid--list .art-card{grid-template-columns:1fr}
  .art-grid--list .art-card-img{min-height:180px}
}

/* Floating buttons */
.mt-float{position:fixed;right:20px;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:var(--shadow-lg);z-index:880;transition:transform .2s ease,opacity .2s ease,background .2s ease}
.mt-float:hover{transform:translateY(-2px)}
.mt-float-wa{bottom:20px;background:#25d366;color:var(--white);text-decoration:none}
.mt-float-wa:hover{background:#1da851}
.mt-float-top{bottom:20px;background:var(--g);color:var(--white);opacity:0;visibility:hidden;pointer-events:none}
.mt-float-top.is-visible{opacity:1;visibility:visible;pointer-events:auto}
.mt-float-top:hover{background:var(--g-dark)}
/* With both on, the scroll button stacks above WhatsApp. */
.mt-float-wa ~ .mt-float-top{bottom:84px}
@media(max-width:600px){
  .mt-float{right:14px;width:46px;height:46px}
  .mt-float-wa{bottom:14px}
  .mt-float-wa ~ .mt-float-top{bottom:72px}
}

/* Edge SIM — the design pairs the component cards with a dark diagram panel. */
.es-layout{display:grid;grid-template-columns:1fr 2fr;gap:22px;align-items:stretch}
.es-layout--plain{grid-template-columns:1fr}
.es-visual{background:linear-gradient(145deg,#0d2a0d,#091e09);border-radius:var(--r-lg);padding:32px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:380px}
.es-visual svg{max-width:100%;height:auto}
.es-visual-tags{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.es-visual-tag{background:rgba(122,184,42,0.12);border:1px solid rgba(122,184,42,0.25);border-radius:6px;padding:5px 12px;font-size:11px;color:rgba(255,255,255,0.6);font-family:var(--body)}
@media(max-width:868px){
  .es-layout{grid-template-columns:1fr}
  .es-visual{min-height:280px}
}

/* ══ ARTICLE IMAGERY & CARD AFFORDANCES ══ */
/*
 * Featured images fill the same boxes the generated placeholders occupied, so a
 * listing stays aligned whether or not a post has an image. The sizes are hard
 * crops (see add_image_size in functions.php); object-fit covers the remainder
 * when a box's aspect differs slightly from the crop.
 */
.art-card-img img,
.art-feat-img img,
.art-single-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.art-single-img img { height: auto; }

/*
 * .s-btn-s is a hero button — white text on a translucent white border — so on
 * a light section it read as blank until hover. This variant is the same button
 * for light backgrounds.
 */
.s-btn-s--onlight {
  color: var(--gray1);
  border-color: var(--border);
}
.s-btn-s--onlight:hover {
  color: var(--g);
  border-color: var(--g);
  background: rgba(122, 184, 42, 0.06);
}

/*
 * The whole card is clickable, not just its "Lire" link. The title's link is
 * stretched across the card; the remaining links sit above it so they keep
 * their own targets and the card still exposes one primary link to assistive
 * tech rather than three overlapping ones.
 */
.art-card { position: relative; }
.art-card .art-card-t-link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.art-card .art-card-more,
.art-card .art-card-img-link { position: relative; z-index: 2; }
.art-card .art-card-t-link:focus-visible::after {
  outline: 2px solid var(--g);
  outline-offset: -3px;
  border-radius: var(--r-lg);
}
