/* ════════════════════════════════════════════════════════════
   NEOTISS Custom Theme — Main Stylesheet
   ════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy: #14304f;
  --steel: #24507d;
  --accent: #e8501a;
  --accent-pale: rgba(232,80,26,.12);
  --silver: #c8d6e5;
  --light: #f4f7fb;
  --white: #ffffff;
  --text: #1a2535;
  --muted: #5a6a7e;
  --font-display: 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', sans-serif;
  --nav-h: 96px;
  --radius: 3px;
}

html { scroll-behavior: smooth; }
body {
  font-size: 17px;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--white);
  overflow-x: hidden;
  padding-top: var(--nav-h); /* offset for fixed header */
}
img { max-width: 100%; display: block; }
a { color: inherit; }

/* ─── HEADER / NAV ──────────────────────────────────────────── */
#site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: var(--nav-h);
  background: var(--navy);
  transition: box-shadow .3s;
}
#site-header.scrolled { box-shadow: 0 2px 24px rgba(0,0,0,.35); }

.header-inner {
  height: 100%;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px;
  max-width: 1600px;
  margin: 0 auto;
}

.site-logo {
  display: flex; align-items: center;
  text-decoration: none; flex-shrink: 0;
  /* Zone de confort : 15 px en haut et en bas (barre 96 - logo 66),
     soit 23 % de la hauteur du logo. 28 px avant le menu. */
  padding: 15px 28px 15px 0;
}
.site-logo-img,
.site-logo img { height: 66px; width: auto; display: block; }

#primary-nav { height: 100%; }
.nav-links {
  display: flex; align-items: center; list-style: none; gap: 2px;
  height: 100%;
}
.nav-links > li { position: relative; height: 100%; display: flex; align-items: center; }
.nav-links > li > a {
  display: flex; align-items: center; gap: 5px;
  color: #FFFFFF; font-weight: 500; font-size: 1rem;
  letter-spacing: .03em; text-decoration: none; padding: 0 15px; height: 100%;
  transition: color .2s; white-space: nowrap;
}
.nav-links > li > a:hover,
.nav-links > li:hover > a { color: var(--white); }
.nav-links .arrow {
  display: inline-block; width: 0; height: 0;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transition: transform .2s; flex-shrink: 0;
}
.nav-links > li:hover .arrow { transform: rotate(180deg); }

.nav-links > li > a::after {
  content: ''; position: absolute; bottom: 0; left: 14px; right: 14px;
  height: 2px; background: var(--accent); transform: scaleX(0);
  transition: transform .2s; transform-origin: left;
}
.nav-links > li:hover > a::after { transform: scaleX(1); }

.dropdown {
  position: absolute; top: 100%; left: 0;
  background: var(--white); border-top: 3px solid var(--accent);
  min-width: 230px; padding: 8px 0;
  box-shadow: 0 12px 40px rgba(0,0,0,.18);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s, visibility .2s, transform .2s;
  list-style: none;
}
.nav-links > li:hover .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown li a {
  display: block; padding: 11px 22px;
  color: var(--text); font-size: .95rem; text-decoration: none;
  transition: background .15s, color .15s;
}
.dropdown li a:hover { background: var(--light); color: var(--accent); }

.nav-cta {
  background: var(--accent); color: var(--white) !important;
  padding: 9px 22px !important; border-radius: var(--radius);
  font-weight: 600 !important; height: auto !important;
  font-size: .84rem !important;
}

#mobile-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
#mobile-toggle span { display: block; width: 24px; height: 2px; background: var(--silver); border-radius: 2px; transition: .3s; }
#mobile-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
#mobile-toggle.open span:nth-child(2) { opacity: 0; }
#mobile-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

#mobile-nav {
  display: none; position: fixed; top: var(--nav-h); left: 0; right: 0; bottom: 0;
  background: var(--navy); z-index: 999; overflow-y: auto; padding: 20px;
}
#mobile-nav.open { display: block; }
.mobile-nav-links { list-style: none; }
.mobile-nav-links > li { border-bottom: 1px solid rgba(255,255,255,.08); }
.mobile-nav-links > li > a { display: block; padding: 14px 0; color: var(--silver); font-size: 1rem; text-decoration: none; }
.mobile-nav-links .dropdown { position: static; opacity: 1; visibility: visible; transform: none; background: transparent; border-top: none; box-shadow: none; padding-left: 16px; }
.mobile-nav-links .dropdown li a { color: var(--muted); font-size: .98rem; }

/* ─── HERO CAROUSEL ─────────────────────────────────────── */
#hero {
  position: relative;
  overflow: hidden;
  background: var(--navy);
  padding: 0;
  margin: 0;
  width: 100%;
  left: 0;
  right: 0;
}

/* Track */
.carousel-track-wrap { overflow: hidden; }
.carousel-track { display: flex; transition: transform .65s cubic-bezier(.4,0,.2,1); }

/* Slides */
.carousel-slide {
  min-width: 100%; flex-shrink: 0;
  position: relative;
  height: calc(100vh - var(--nav-h));
  min-height: 560px; max-height: 860px;
  overflow: hidden;
}
.carousel-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transform: scale(1); transition: transform 9s ease;
}
.carousel-slide.active .carousel-bg { transform: scale(1.03); }
.carousel-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(20,48,79,.9) 0%, rgba(20,48,79,.5) 50%, rgba(20,48,79,.15) 100%);
}
.hero-overlay {
  background: linear-gradient(135deg, rgba(20,48,79,.78) 38%, rgba(20,48,79,.32) 100%);
}

/* Decorative SVG lines on slide 0 */
.hero-lines {
  position: absolute; right: 0; top: 0; bottom: 0;
  width: 42%; overflow: hidden; opacity: .18; pointer-events: none;
}
.hero-lines svg { width: 100%; height: 100%; }

/* Content area — shared by all slides */
.carousel-content {
  position: absolute; bottom: 100px; left: 0;
  padding: 0 80px; max-width: 820px;
}

/* Slide 0 uses the big hero typography */
.hero-slide-content .hero-eyebrow { margin-bottom: 20px; }
.hero-slide-content .hero-h1 { margin-bottom: 24px; }
.hero-slide-content .hero-lead { margin-bottom: 40px; }

/* Application slides use the smaller carousel typography */
.carousel-eyebrow {
  font-family: var(--font-display); font-size: .7rem; font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase;
  color: rgba(255,255,255,.55); margin-bottom: 14px;
}
.carousel-accent-line {
  width: 32px; height: 3px; background: var(--accent);
  margin-bottom: 16px; border-radius: 2px;
}
.carousel-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.carousel-tag {
  font-size: .67rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  padding: 3px 12px; border-radius: 20px;
  background: rgba(232,80,26,.18); color: #f4a07a;
  border: 1px solid rgba(232,80,26,.3);
}
.carousel-title {
  font-family: var(--font-display); font-weight: 700; color: var(--white);
  font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.1; margin-bottom: 14px;
}
.carousel-desc {
  font-size: .95rem; line-height: 1.75; font-weight: 300;
  color: rgba(255,255,255,.72); max-width: 540px; margin-bottom: 22px;
}
.carousel-cta {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-display); font-size: .82rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--accent); text-decoration: none; transition: gap .2s;
}
.carousel-cta:hover { gap: 10px; }

/* Nav row */
.carousel-nav {
  position: absolute; bottom: 0; left: 0; right: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 80px;
  background: linear-gradient(to top, rgba(11,31,58,.7) 0%, transparent 100%);
}
.carousel-dots { display: flex; gap: 10px; align-items: center; }
.carousel-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.3); border: none; cursor: pointer; padding: 0;
  transition: background .25s, transform .25s;
}
.carousel-dot.active { background: var(--accent); transform: scale(1.35); }
.carousel-arrows { display: flex; gap: 8px; }
.carousel-arr {
  width: 40px; height: 40px; border-radius: var(--radius);
  border: 1.5px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.07); color: var(--white);
  cursor: pointer; font-size: 1.1rem;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s;
}
.carousel-arr:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.45); }

/* Progress bar */
.carousel-progress {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: rgba(255,255,255,.1);
}
.carousel-progress-bar {
  height: 100%; width: 0%; background: var(--accent);
  transition: width linear;
}

/* Scroll hint — reused from original hero */
.hero-scroll {
  position: absolute; bottom: 60px; right: 80px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: var(--silver); font-size: .7rem; letter-spacing: .15em; text-transform: uppercase;
  pointer-events: none;
}
.scroll-line {
  width: 1px; height: 50px;
  background: linear-gradient(to bottom, var(--accent), transparent);
  animation: scrollPulse 1.8s ease-in-out infinite;
}
@keyframes scrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }



.btn-primary {
  background: var(--accent); color: var(--white);
  padding: 14px 32px; border-radius: var(--radius);
  font-family: var(--font-display); font-weight: 700; font-size: 1rem;
  letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none; transition: background .2s, transform .15s;
  display: inline-block;
}
.btn-primary:hover { background: #c73f10; transform: translateY(-1px); }
.btn-outline {
  border: 1.5px solid rgba(200,214,229,.4); color: var(--silver);
  padding: 14px 32px; border-radius: var(--radius);
  font-family: var(--font-display); font-weight: 700; font-size: 1rem;
  letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none; transition: border-color .2s, color .2s;
  display: inline-block;
}
.btn-outline:hover { border-color: var(--silver); color: var(--white); }

.hero-scroll {
  position: absolute; bottom: 40px; right: 80px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  color: var(--silver); font-size: .7rem; letter-spacing: .15em; text-transform: uppercase;
}
.scroll-line { width: 1px; height: 50px; background: linear-gradient(to bottom, var(--accent), transparent); animation: scrollPulse 1.8s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.4} 50%{opacity:1} }

/* Hero slide 0 typography */
.hero-eyebrow { font-family: var(--font-display); font-size: .75rem; font-weight: 500; letter-spacing: .25em; text-transform: uppercase; color: var(--accent); }
.hero-slide-content .hero-h1, .hero-slide-content .hero-lead { text-shadow: 0 2px 18px rgba(8,20,36,.45); }
.hero-h1 { font-family: var(--font-display); font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 700; line-height: 1; color: var(--white); letter-spacing: -.01em; }
.hero-h1 em { color: var(--accent); font-style: normal; }
.hero-lead { font-size: 1.05rem; line-height: 1.7; color: var(--silver); max-width: 520px; font-weight: 300; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }


#stats { background: var(--steel); display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { padding: 36px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,.1); }
.stat:last-child { border-right: none; }
.stat-num { font-family: var(--font-display); font-size: 2.6rem; font-weight: 700; color: var(--white); line-height: 1; }
.stat-num span { color: var(--accent); }
.stat-label { font-size: .78rem; color: var(--silver); letter-spacing: .08em; text-transform: uppercase; margin-top: 6px; }

/* ─── SECTION COMMONS ──────────────────────────────────── */
section { padding: 96px 80px; }
.section-eyebrow { font-family: var(--font-display); font-size: .72rem; font-weight: 500; letter-spacing: .25em; text-transform: uppercase; color: var(--accent); margin-bottom: 12px; }
.section-title { font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem); font-weight: 700; color: var(--navy); line-height: 1.1; margin-bottom: 20px; }
.section-lead { font-size: 1rem; line-height: 1.8; color: var(--muted); max-width: 580px; font-weight: 300; }

/* ─── APPLICATIONS ──────────────────────────────────────── */
#applications { background: var(--light); }
.apps-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 56px; flex-wrap: wrap; gap: 20px; }
.apps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.app-card { position: relative; aspect-ratio: 3/4; overflow: hidden; background: var(--steel); cursor: pointer; min-height: 280px; }
.app-card-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .5s ease; }
.app-card:hover .app-card-bg { transform: scale(1.06); }
.app-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,31,58,.80) 0%, rgba(11,31,58,.15) 55%, rgba(11,31,58,.05) 100%); }
.app-card-icon { position: absolute; top: 28px; left: 28px; width: 48px; height: 48px; border: 1.5px solid rgba(232,80,26,.5); display: flex; align-items: center; justify-content: center; border-radius: 2px; }
.app-card-icon svg { width: 24px; height: 24px; fill: var(--accent); }
.app-card-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 28px; }
.app-card-title { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; color: var(--white); line-height: 1.2; margin-bottom: 8px; }
.app-card-link { font-size: .75rem; color: var(--accent); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; display: flex; align-items: center; gap: 6px; opacity: 0; transform: translateY(6px); transition: opacity .3s, transform .3s; }
.app-card:hover .app-card-link { opacity: 1; transform: translateY(0); }
.app-card-link::after { content: '→'; }

/* ─── PRODUCTS ──────────────────────────────────────────── */
#products { background: var(--white); }
.products-header { max-width: 600px; margin-bottom: 56px; }
.products-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.product-card { border: 1px solid #dde4ee; border-radius: var(--radius); overflow: hidden; transition: border-color .2s, box-shadow .2s; display: flex; flex-direction: column; }
.product-card:hover { border-color: var(--accent); box-shadow: 0 8px 32px rgba(232,80,26,.1); }
.product-img { height: 200px; background: linear-gradient(135deg, var(--steel), var(--navy)); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.product-img img { width: 100%; height: 100%; object-fit: cover; }
.product-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.product-tag { font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; color: var(--accent); font-weight: 600; margin-bottom: 8px; }
.product-name { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; color: var(--navy); margin-bottom: 12px; line-height: 1.2; }
.product-desc { font-size: .88rem; color: var(--muted); line-height: 1.7; flex: 1; }
.product-link { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; font-weight: 600; color: var(--accent); text-decoration: none; margin-top: 18px; letter-spacing: .06em; text-transform: uppercase; transition: gap .2s; }
.product-link:hover { gap: 10px; }

/* ─── LOCATIONS ─────────────────────────────────────────── */
#locations { background: linear-gradient(160deg, var(--steel) 0%, var(--navy) 60%); color: var(--white); }
#locations .section-title { color: var(--white); }
#locations .section-lead { color: var(--silver); max-width: 500px; }
.locations-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; margin-top: 56px; }
.location-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.location-item { background: rgba(255,255,255,.05); border-radius: var(--radius); padding: 24px 20px; text-align: center; border: 1px solid rgba(255,255,255,.08); transition: border-color .2s, background .2s; }
.location-item:hover { border-color: var(--accent); background: rgba(232,80,26,.08); }
.location-flag { font-size: 2.2rem; display: block; margin-bottom: 10px; }
.location-name { font-family: var(--font-display); font-size: 1.1rem; font-weight: 700; }
.location-name a { color: var(--white); text-decoration: none; }
.location-name a:hover { color: var(--accent); }
.location-city { font-size: .78rem; color: var(--silver); margin-top: 2px; }
.location-sub { font-size: .78rem; color: var(--silver); line-height: 1.5; }
.location-sub a { color: var(--accent); font-size: .76rem; font-weight: 600; text-decoration: none; display: inline-block; margin-top: 6px; }
.location-map-placeholder { border-radius: var(--radius); min-height: 320px; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.1); }
#neotiss-map { width: 100%; height: 100%; min-height: 320px; }
.map-pin { width: 14px; height: 14px; background: #e8501a; border-radius: 50%; border: 2px solid rgba(255,255,255,.9); position: relative; }
.map-pin-ring { position: absolute; inset: -5px; border-radius: 50%; border: 2px solid rgba(232,80,26,.4); animation: pingDot 2s ease-in-out infinite; display: block; }
.map-tooltip { background: rgba(11,31,58,.85) !important; border: none !important; color: #fff !important; font-family: 'Barlow Condensed', sans-serif !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase !important; padding: 3px 8px !important; border-radius: 3px !important; box-shadow: none !important; white-space: nowrap !important; }
.map-tooltip::before { display: none !important; }
@keyframes pingDot { 0%,100%{opacity:0;transform:scale(1)} 50%{opacity:.35;transform:scale(2.2)} }

/* ─── NEWS ──────────────────────────────────────────────── */
#news { background: var(--light); }
.news-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 40px; flex-wrap: wrap; gap: 20px; }
.news-header-actions { display: flex; align-items: center; gap: 12px; }
.news-arr { width: 40px; height: 40px; border-radius: var(--radius); border: 1.5px solid var(--silver); background: transparent; color: var(--navy); cursor: pointer; font-size: 1rem; display: flex; align-items: center; justify-content: center; transition: background .2s, color .2s, border-color .2s; }
.news-arr:hover { background: var(--navy); color: var(--white); border-color: var(--navy); }

/* Carousel wrapper */
.news-carousel-wrap { overflow: hidden; margin: 0 -80px; padding: 0 80px; }
.news-carousel { display: flex; gap: 24px; transition: transform .45s cubic-bezier(.4,0,.2,1); will-change: transform; }

/* Cards */
.news-card { background: var(--white); border-radius: var(--radius); overflow: hidden; border: 1px solid #dde4ee; transition: box-shadow .2s, transform .2s; flex: 0 0 340px; display: flex; flex-direction: column; }
.news-card:hover { box-shadow: 0 8px 32px rgba(11,31,58,.1); transform: translateY(-3px); }
.news-card-link { text-decoration: none; display: flex; flex-direction: column; flex: 1; }
.news-img { height: 200px; overflow: hidden; background: linear-gradient(135deg, var(--steel), var(--navy)); flex-shrink: 0; }
.news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.news-card:hover .news-img img { transform: scale(1.04); }
.news-img-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--steel), var(--navy)); }
.news-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.news-date { font-size: .72rem; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px; font-family: var(--font-display); }
.news-title { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--navy); line-height: 1.35; margin-bottom: 12px; flex: 1; }
.news-excerpt { font-size: .84rem; color: var(--muted); line-height: 1.7; margin-bottom: 16px; }
.news-readmore { color: var(--accent); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-family: var(--font-display); }

/* Archive page grid */
.news-grid-archive { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-grid-archive .news-card { flex: unset; }
.news-tag { display: inline-block; background: rgba(232,80,26,.1); color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 3px 10px; border-radius: 20px; margin-bottom: 12px; }

/* ─── CTA BANNER ────────────────────────────────────────── */
#cta { background: var(--accent); padding: 72px 80px; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cta-title { font-family: var(--font-display); font-size: clamp(2rem, 3vw, 2.8rem); font-weight: 700; color: var(--white); line-height: 1.1; }
.cta-sub { font-size: 1rem; color: rgba(255,255,255,.75); margin-top: 10px; font-weight: 300; }
.btn-white { background: var(--white); color: var(--accent); padding: 16px 38px; border-radius: var(--radius); font-family: var(--font-display); font-weight: 700; font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; flex-shrink: 0; transition: box-shadow .2s; }
.btn-white:hover { box-shadow: 0 6px 24px rgba(0,0,0,.25); }

/* ─── STANDARD PAGES (About, Products listing, etc.) ────── */
.standard-page { padding: 0; }
.standard-page-inner {}
.page-header { margin-bottom: 32px; }
.page-title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; color: var(--navy); }
.post-meta { color: var(--muted); font-size: .85rem; margin-top: 8px; }
.page-content { font-size: 1.02rem; line-height: 1.8; color: var(--text); }
.page-content h2 { font-family: var(--font-display); color: var(--navy); margin: 32px 0 16px; font-size: 1.7rem; }
.page-content h3 { font-family: var(--font-display); color: var(--navy); margin: 24px 0 12px; font-size: 1.3rem; }
.page-content p { margin-bottom: 18px; }
.page-content img { border-radius: var(--radius); margin: 20px 0; }
.page-content a { color: var(--accent); text-decoration: underline; }
.single-featured-image { margin-bottom: 32px; border-radius: var(--radius); overflow: hidden; }
.single-featured-image img { width: 100%; }

.child-pages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 40px; }
.child-page-card { display: block; border: 1px solid #dde4ee; border-radius: var(--radius); padding: 24px; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.child-page-card:hover { border-color: var(--accent); box-shadow: 0 8px 24px rgba(232,80,26,.1); }
.child-page-card h3 { font-family: var(--font-display); color: var(--navy); font-size: 1.05rem; margin-bottom: 8px; }
.child-page-link { color: var(--accent); font-size: .82rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }

.pagination { margin-top: 40px; text-align: center; }
.pagination a, .pagination span { display: inline-block; padding: 8px 14px; margin: 0 4px; border: 1px solid #dde4ee; border-radius: var(--radius); text-decoration: none; color: var(--text); }
.pagination .current { background: var(--accent); color: var(--white); border-color: var(--accent); }

/* ─── FOOTER ────────────────────────────────────────────── */
#site-footer { background: linear-gradient(180deg, #1d4468 0%, #16344f 100%); padding: 64px 80px 32px; color: #FFFFFF; border-top: 3px solid var(--accent); }
.footer-inner { max-width: 1600px; margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 56px; }

.footer-brand-logo-link { display: block; margin: 0 0 24px; line-height: 0; }
.footer-logo-img { height: 66px; width: auto; opacity: 1; display: block; }
.footer-brand-tagline { font-size: .84rem; line-height: 1.75; color: #FFFFFF; max-width: 280px; margin-bottom: 24px; }

.footer-socials { display: flex; flex-direction: column; gap: 10px; }
.footer-social-link {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 8px 14px; border-radius: var(--radius);
	border: 1px solid rgba(255,255,255,.1);
	background: rgba(255,255,255,.04);
	color: #7a8fa8; font-size: .84rem;
	text-decoration: none; transition: background .2s, color .2s, border-color .2s;
}
.footer-social-link:hover { background: var(--accent); color: var(--white); border-color: var(--accent); }
.footer-social-link svg { width: 17px; height: 17px; flex-shrink: 0; }

.footer-col-title { font-family: var(--font-display); font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--white); margin-bottom: 16px; }
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.footer-links a { color: #FFFFFF; font-size: .84rem; text-decoration: none; transition: color .2s; }
.footer-links a:hover { color: var(--accent); }

.footer-bottom { border-top: 1px solid rgba(255,255,255,.22); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font-size: .78rem; color: #FFFFFF; }
.footer-bottom-links { display: flex; gap: 20px; }
.footer-bottom-links a { color: #FFFFFF; text-decoration: none; font-size: .78rem; transition: color .2s; }
.footer-bottom-links a:hover { color: var(--accent); }


/* ─── STANDARD PAGE ─────────────────────────────────────── */

/* Page hero banner */
.page-hero {
  position: relative; height: 340px;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end;
  overflow: hidden;
}
.page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(11,31,58,.92) 0%, rgba(11,31,58,.4) 60%, rgba(11,31,58,.15) 100%);
}
.page-hero-content {
  position: relative; padding: 40px 80px;
}
.page-hero-eyebrow {
  font-family: var(--font-display); font-size: .7rem; font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 10px;
}
.page-hero-title {
  font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700; color: var(--white); line-height: 1.1; margin: 0;
}

/* Page layout */
.standard-page { background: var(--white); }
.standard-page-inner { max-width: 1680px; margin: 0 auto; padding: 56px 56px 88px; }


.page-header { margin-bottom: 40px; border-bottom: 2px solid var(--light); padding-bottom: 24px; }
.page-title { font-family: var(--font-display); font-size: clamp(2rem,4vw,3rem); font-weight: 700; color: var(--navy); margin: 0; }

/* Sidebar layout */
.page-layout-sidebar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 48px;
  align-items: start;
}
.page-content { min-width: 0; }
.page-content h2 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; color: var(--navy); margin: 40px 0 16px; padding-bottom: 10px; border-bottom: 2px solid var(--light); }
.page-content h3 { font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; color: var(--steel); margin: 28px 0 10px; }
.page-content p { font-size: 1rem; line-height: 1.8; color: #3a4f65; margin-bottom: 18px; }
.page-content ul, .page-content ol { padding-left: 20px; margin-bottom: 18px; }
.page-content li { font-size: 1rem; line-height: 1.8; color: #3a4f65; margin-bottom: 6px; }
.page-content a { color: var(--accent); text-decoration: none; }
.page-content a:hover { text-decoration: underline; }
.page-content img { max-width: 100%; height: auto; border-radius: var(--radius); margin: 24px 0; }
.page-content table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: .9rem; }
.page-content th { background: var(--navy); color: var(--white); padding: 10px 14px; text-align: left; font-family: var(--font-display); font-weight: 600; }
.page-content td { padding: 10px 14px; border-bottom: 1px solid var(--light); color: #3a4f65; }
.page-content tr:nth-child(even) td { background: #f9fafb; }

/* Sidebar */
.page-sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: calc(var(--nav-h) + 24px); }
.sidebar-card { background: var(--light); border-radius: var(--radius); padding: 24px; border-left: 3px solid var(--accent); }
.sidebar-card-title { font-family: var(--font-display); font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--navy); margin-bottom: 10px; }
.sidebar-card-text { font-size: .88rem; line-height: 1.65; color: #3a4f65; margin-bottom: 16px; }
.sidebar-btn { display: inline-block; width: 100%; text-align: center; padding: 10px 16px; border-radius: var(--radius); font-family: var(--font-display); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.sidebar-links { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sidebar-links a { font-size: .88rem; color: var(--accent); text-decoration: none; display: flex; align-items: center; gap: 6px; }
.sidebar-links a::before { content: '→'; font-size: .75rem; }
.sidebar-links a:hover { text-decoration: underline; }

/* Child pages grid */
.child-pages-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 16px; margin-top: 48px; padding-top: 40px; border-top: 2px solid var(--light); }
.child-page-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: var(--light); border-radius: var(--radius); text-decoration: none; border-left: 3px solid transparent; transition: border-color .2s, box-shadow .2s; }
.child-page-card:hover { border-color: var(--accent); box-shadow: 0 4px 16px rgba(11,31,58,.08); }
.child-page-card h3 { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--navy); margin: 0; }
.child-page-link { font-size: .8rem; color: var(--accent); font-weight: 600; }

/* Applications image grid */
.app-image-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 32px 0; }
.app-image-card { display: flex; flex-direction: column; text-decoration: none; border-radius: var(--radius); overflow: hidden; background: var(--navy); transition: transform .2s, box-shadow .2s; }
.app-image-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(11,31,58,.2); }
.app-image-card img { width: 100%; height: 160px; object-fit: cover; display: block; }
.app-image-card span { display: block; padding: 12px 16px; font-family: var(--font-display); font-size: .85rem; font-weight: 600; color: var(--white); text-align: center; }


.client-logos { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin: 24px 0; padding: 28px; background: var(--light); border-radius: var(--radius); }
.client-logos img { height: 36px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .55; transition: opacity .2s, filter .2s; }
.client-logos img:hover { filter: grayscale(0); opacity: 1; }

/* Nuclear stats row */
.nuclear-stats { display: flex; gap: 0; margin: 40px 0; background: var(--navy); border-radius: var(--radius); overflow: hidden; }
.nuclear-stat { flex: 1; padding: 28px 20px; text-align: center; border-right: 1px solid rgba(255,255,255,.1); }
.nuclear-stat:last-child { border-right: none; }
.nuclear-stat strong { display: block; font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; color: var(--accent); line-height: 1; margin-bottom: 8px; }
.nuclear-stat span { font-size: .82rem; color: var(--silver); letter-spacing: .05em; }


@media (max-width: 1100px) {
  section { padding: 72px 40px; }
  .apps-grid { grid-template-columns: repeat(2, 1fr); }
  .products-grid { grid-template-columns: repeat(2, 1fr); }
  .news-grid, .news-grid-archive { grid-template-columns: 1fr 1fr; }
  .news-card.featured { grid-column: 1 / -1; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  #cta { padding: 60px 40px; }
  .child-pages-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  #site-footer { padding: 48px 20px 24px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
  
  .carousel-content { padding: 28px 20px; bottom: 70px; }
  .carousel-nav { padding: 12px 20px; }
  .carousel-title { font-size: 1.6rem; }
  .carousel-desc { font-size: .86rem; }
  .hero-scroll { display: none; }
  
  .nav-links { display: none; }
  #mobile-toggle { display: flex; }
  section { padding: 56px 20px; }
  .hero-content { padding: 0 20px 80px; }
  #stats { grid-template-columns: repeat(2, 1fr); }
  .stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .stat:nth-child(even) { border-left: 1px solid rgba(255,255,255,.1); }
  .apps-grid, .products-grid { grid-template-columns: 1fr; }
  .news-grid, .news-grid-archive { grid-template-columns: 1fr; }
  .locations-inner { grid-template-columns: 1fr; }
  .location-map-placeholder { min-height: 200px; }
  .footer-grid { grid-template-columns: 1fr; }
  #cta { padding: 48px 20px; flex-direction: column; align-items: flex-start; }
  #site-footer { padding: 48px 20px 24px; }
  .apps-header, .news-header { flex-direction: column; align-items: flex-start; gap: 20px; }
  .hero-scroll { display: none; }
  .child-pages-grid { grid-template-columns: 1fr; }
  .standard-page-inner { padding: 32px 20px 56px; }
  .page-layout-sidebar { grid-template-columns: 1fr; }
  .page-sidebar { position: static; }
  .page-hero { height: 220px; }
  .page-hero-content { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Document download list */
.doc-list { display: flex; flex-direction: column; gap: 0; margin: 24px 0; border: 1px solid #dde4ee; border-radius: var(--radius); overflow: hidden; }
.doc-item { padding: 18px 24px; border-bottom: 1px solid #dde4ee; display: flex; align-items: center; gap: 20px; background: var(--white); transition: background .15s; flex-wrap: nowrap; }
.doc-item:last-child { border-bottom: none; }
.doc-item:hover { background: var(--light); }
.doc-meta { min-width: 90px; flex-shrink: 0; }
.doc-date { font-size: .72rem; color: var(--muted); letter-spacing: .06em; font-family: var(--font-display); }
.doc-title { font-family: var(--font-display); font-size: .92rem; font-weight: 600; color: var(--navy); flex: 1; margin: 0; }
.doc-desc { font-size: .82rem; color: #3a4f65; line-height: 1.6; margin: 4px 0 0; display: block; }
.doc-download { display: inline-flex; align-items: center; gap: 6px; background: var(--navy); color: var(--white); font-family: var(--font-display); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 7px 14px; border-radius: var(--radius); text-decoration: none; white-space: nowrap; flex-shrink: 0; transition: background .2s; }
.doc-download:hover { background: var(--accent); }

/* ─── MEDIA GRID (brochures, videos, publications, bulletins) ── */
.media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.media-card { background: var(--white); border: 1px solid #dde4ee; border-radius: var(--radius); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.media-card:hover { box-shadow: 0 8px 24px rgba(11,31,58,.1); transform: translateY(-3px); }
.media-card-link { text-decoration: none; display: flex; flex-direction: column; height: 100%; }
/* Couvertures de documents : JAMAIS de recadrage.
   « cover » remplissait le cadre en rognant l'image — sur une brochure
   cela coupait le titre et les logos, d'où l'effet « trop zoomé ».
   « contain » affiche la couverture ENTIÈRE quel que soit son format
   (A4 en 0,71, carré, paysage), centrée sur un fond neutre. */
.media-card-link { background: #fff; }
.media-card figure,
.media-card .media-thumb { margin: 0; }
.media-card img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: contain;
  display: block;
  background: #f4f6f9;
  padding: 14px;
  box-sizing: border-box;
  transition: transform .3s ease;
}
.media-card:hover img { transform: scale(1.03); }
.media-card-body { padding: 16px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.media-card-body h3 { font-family: var(--font-display); font-size: .9rem; font-weight: 700; color: var(--navy); line-height: 1.3; margin: 0 0 8px; flex: 1; }
.media-date { font-size: .72rem; color: var(--muted); display: block; margin-bottom: 6px; }
.media-dl { font-family: var(--font-display); font-size: .75rem; font-weight: 700; color: var(--accent); letter-spacing: .06em; text-transform: uppercase; display: block; }

@media (max-width: 768px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .media-grid { grid-template-columns: 1fr; } }

/* Wide data tables (privacy policy processing table) */
.page-content table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: .88rem; }
.page-content table td { padding: 10px 14px; border: 1px solid #dde4ee; vertical-align: top; }
.page-content table th { border: 1px solid var(--navy); font-size: .8rem; }
@media (max-width: 900px) {
  .page-content table { display: block; overflow-x: auto; white-space: nowrap; }
  .page-content table td, .page-content table th { white-space: normal; min-width: 130px; }
}

/* ─── THEY TRUST US (homepage, 4 market groups) ─────────────── */
#trust { padding: 96px 80px; background: var(--light); }
.trust-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 56px; max-width: 1600px; }
.trust-group { background: var(--white); border: 1px solid #e2e8f0; border-radius: var(--radius); padding: 28px 32px; }
.trust-group-title { font-family: var(--font-display); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid #eef2f7; }
.trust-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 26px 34px; }
.trust-logos img { height: 34px; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .58; transition: filter .25s, opacity .25s; }
/* Hydrocarbon & Chemical : logos plus petits à l'origine, on les agrandit */
.trust-group--hcp .trust-logos img { height: 46px; max-width: 175px; }
.trust-group--hcp .trust-logos { gap: 30px 38px; }
.trust-logos img:hover { filter: grayscale(0); opacity: 1; }

@media (max-width: 1100px) {
  #trust { padding: 72px 40px; }
  .trust-groups { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
  #trust { padding: 56px 20px; }
  .trust-group { padding: 22px 20px; }
  .trust-logos { gap: 20px 24px; }
  .trust-logos img { height: 28px; max-width: 120px; }
}

/* Bouton d'action dans les articles (vidéo, podcast, lien externe) */
.news-cta { margin: 28px 0 8px; }
.news-cta a {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--accent); color: var(--white);
  font-family: var(--font-display); font-size: .8rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  padding: 13px 26px; border-radius: var(--radius); text-decoration: none;
  transition: background .2s;
}
.news-cta a:hover { background: var(--navy); }

/* Largeur des pages — paliers intermédiaires */
@media (max-width: 1500px) { .standard-page-inner { padding: 52px 40px 80px; } }
@media (max-width: 1200px) { .standard-page-inner { padding: 48px 32px 72px; } }

/* ─── MÉDIAS DANS LES ARTICLES ──────────────────────────── */
/* YouTube — ratio 16:9 conservé à toutes les largeurs */
.video-embed { position: relative; width: 100%; padding-bottom: 56.25%; margin: 28px 0; border-radius: var(--radius); overflow: hidden; background: var(--navy); }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Vidéo hébergée — format carré LinkedIn, centrée et bornée */
.video-native { margin: 28px 0; display: flex; justify-content: center; }
.video-native video { width: 100%; max-width: 560px; height: auto; border-radius: var(--radius); background: var(--navy); display: block; }

/* Carte — popups et repli statique */
.map-static { display: flex; align-items: center; justify-content: center; }
.leaflet-container a.leaflet-popup-close-button { color: var(--muted); }
.map-popup .leaflet-popup-content-wrapper { border-radius: var(--radius); box-shadow: 0 8px 28px rgba(0,0,0,.28); }
.map-popup .leaflet-popup-content { margin: 14px 18px; font-family: var(--font-body); font-size: .86rem; line-height: 1.6; color: var(--navy); }
.map-popup .leaflet-popup-content strong { font-family: var(--font-display); font-size: .95rem; }
.map-popup .leaflet-popup-content a { color: var(--accent); font-weight: 600; text-decoration: none; }
.leaflet-control-zoom a { background: rgba(255,255,255,.92); color: var(--navy); border: none; }
.leaflet-control-zoom a:hover { background: var(--accent); color: #fff; }

/* Grille « They trust us » insérée dans le contenu d'une page */
.page-content .trust-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 28px 0 8px; }
.page-content .trust-group { background: var(--light); border: 1px solid #e2e8f0; border-radius: var(--radius); padding: 22px 24px; }
.page-content .trust-group-title { font-family: var(--font-display); font-size: .74rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--accent); margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid #e6ebf1; }
.page-content .trust-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 28px; }
.page-content .trust-logos img { height: 30px; width: auto; max-width: 130px; object-fit: contain; margin: 0; border-radius: 0; filter: grayscale(1); opacity: .62; transition: filter .25s, opacity .25s; }
.page-content .trust-logos img:hover { filter: grayscale(0); opacity: 1; }
.page-content .trust-group--hcp .trust-logos img { height: 40px; max-width: 155px; }
@media (max-width: 900px) { .page-content .trust-groups { grid-template-columns: 1fr; gap: 20px; } }

/* ─── VIDEO LIBRARY ─────────────────────────────────────────── */
/* Vidéo mise en avant */
.video-featured { display: grid; grid-template-columns: 1.35fr 1fr; gap: 0; margin: 32px 0 44px;
  background: var(--navy); border-radius: var(--radius); overflow: hidden; }
.video-featured-thumb { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: #0d1c2e; }
.video-featured-thumb img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease; }
.video-featured-thumb:hover img { transform: scale(1.04); }
.video-featured-body { padding: 40px 40px 36px; display: flex; flex-direction: column; justify-content: center; }
.video-featured-body .vf-eyebrow { font-family: var(--font-display); font-size: .7rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.video-featured-body h3 { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.25;
  color: #fff; margin: 0 0 14px; }
.video-featured-body p { font-size: .92rem; line-height: 1.65; color: #c6cdd4; margin: 0 0 22px; }
.video-featured-body .vf-date { font-size: .76rem; color: #8d9aa8; margin-bottom: 20px; }

/* Grille des autres vidéos */
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 8px; }
.video-card { background: var(--white); border: 1px solid #dde4ee; border-radius: var(--radius);
  overflow: hidden; transition: box-shadow .25s, transform .25s; }
.video-card:hover { box-shadow: 0 10px 30px rgba(11,31,58,.13); transform: translateY(-3px); }
.video-card-link { display: flex; flex-direction: column; height: 100%; text-decoration: none; }
.video-card-thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--light); }
.video-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.video-card:hover .video-card-thumb img { transform: scale(1.05); }
.video-card-body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.video-card-body h3 { font-family: var(--font-display); font-size: .93rem; font-weight: 700;
  line-height: 1.35; color: var(--navy); margin: 0 0 10px; flex: 1; }
.video-card-body .vc-date { font-size: .74rem; color: var(--muted); margin-bottom: 8px; }
.video-card-body .vc-cta { font-family: var(--font-display); font-size: .72rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: var(--accent); }

/* Bouton lecture en surimpression */
.play-badge { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, rgba(11,31,58,.06) 0%, rgba(11,31,58,.34) 100%);
  transition: background .25s; }
.play-badge::before { content: ''; width: 58px; height: 58px; border-radius: 50%;
  background: rgba(255,255,255,.92); box-shadow: 0 4px 18px rgba(0,0,0,.28); transition: transform .25s, background .25s; }
.play-badge::after { content: ''; position: absolute; width: 0; height: 0;
  border-left: 17px solid var(--accent); border-top: 11px solid transparent; border-bottom: 11px solid transparent;
  margin-left: 5px; transition: border-left-color .25s; }
.video-card:hover .play-badge::before,
.video-featured-thumb:hover .play-badge::before { transform: scale(1.1); background: var(--accent); }
.video-card:hover .play-badge::after,
.video-featured-thumb:hover .play-badge::after { border-left-color: #fff; }
.video-card:hover .play-badge,
.video-featured-thumb:hover .play-badge { background: linear-gradient(180deg, rgba(11,31,58,.02) 0%, rgba(11,31,58,.22) 100%); }

.video-channel-cta { margin-top: 44px; padding: 28px 32px; background: var(--light);
  border-radius: var(--radius); display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap; }
.video-channel-cta p { margin: 0; font-size: .95rem; color: var(--text); }
.video-channel-cta a { display: inline-flex; align-items: center; gap: 8px; background: var(--navy);
  color: #fff; font-family: var(--font-display); font-size: .78rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; padding: 13px 26px; border-radius: var(--radius);
  text-decoration: none; white-space: nowrap; transition: background .2s; }
.video-channel-cta a:hover { background: var(--accent); }

@media (max-width: 1100px) {
  .video-featured { grid-template-columns: 1fr; }
  .video-featured-body { padding: 28px 28px 30px; }
  .video-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .video-grid { grid-template-columns: 1fr; gap: 22px; }
  .video-featured-body h3 { font-size: 1.25rem; }
  .play-badge::before { width: 48px; height: 48px; }
}

/* Bandeau : réduction progressive sur petits écrans */
@media (max-width: 1100px) {
  :root { --nav-h: 84px; }
  .site-logo img { height: 58px; }
  .site-logo { padding: 13px 20px 13px 0; }
  .header-inner { padding: 0 28px; }
}
@media (max-width: 640px) {
  :root { --nav-h: 72px; }
  .site-logo img { height: 48px; }
  .site-logo { padding: 12px 14px 12px 0; }
  .header-inner { padding: 0 18px; }
  .footer-logo-img { height: 56px; }
}

/* =========================================================
   INTERNAL PAGE FRAMEWORK — products, applications, locations,
   expertise, resources and contact pages
   ========================================================= */
.internal-page { background: #fff; color: var(--navy); }
.internal-shell { width: min(1320px, calc(100% - 80px)); margin-inline: auto; }
.internal-hero { position: relative; min-height: 390px; display: flex; align-items: flex-end; background-color: var(--navy); background-position: center; background-size: cover; overflow: hidden; }
.internal-hero.no-image { min-height: 270px; background: linear-gradient(125deg, var(--navy), #123b60); }
.internal-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,26,48,.94) 0%, rgba(4,26,48,.76) 45%, rgba(4,26,48,.25) 100%); }
.internal-hero__content { position: relative; z-index: 1; padding-block: 72px 58px; color: #fff; }
.internal-eyebrow { margin: 0 0 12px; color: var(--accent); font-family: var(--font-display); font-size: .78rem; font-weight: 700; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; }
.internal-hero h1 { max-width: 900px; margin: 0; color: #fff; font-family: var(--font-display); font-size: clamp(2.5rem, 5vw, 5rem); line-height: .98; letter-spacing: -.02em; }
.internal-hero__intro { max-width: 760px; margin: 24px 0 0; color: rgba(255,255,255,.9); font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.6; }
.internal-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 72px; padding-block: 72px 96px; }
.internal-layout.has-sidebar { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
.internal-content { min-width: 0; font-size: 1.03rem; line-height: 1.78; color: #263d52; }
.internal-content > :first-child { margin-top: 0; }
.internal-content h2, .internal-content h3, .internal-content h4 { color: var(--navy); font-family: var(--font-display); line-height: 1.15; }
.internal-content h2 { margin: 52px 0 18px; font-size: clamp(1.8rem, 3vw, 2.65rem); }
.internal-content h3 { margin: 36px 0 14px; font-size: clamp(1.35rem, 2vw, 1.85rem); }
.internal-content p, .internal-content ul, .internal-content ol, .internal-content table, .internal-content figure { margin-block: 0 24px; }
.internal-content ul, .internal-content ol { padding-left: 1.25rem; }
.internal-content li { margin-bottom: 9px; }
.internal-content blockquote { margin: 36px 0; padding: 24px 30px; border-left: 4px solid var(--accent); background: var(--light); color: var(--navy); font-size: 1.15rem; }
.internal-content img { max-width: 100%; height: auto; border-radius: var(--radius); }
.internal-content table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.internal-content th { background: var(--navy); color: #fff; text-align: left; }
.internal-content th, .internal-content td { padding: 13px 16px; border: 1px solid #dfe6ec; }
.internal-content tr:nth-child(even) td { background: #f7f9fb; }
.internal-sidebar { position: sticky; top: 110px; display: grid; gap: 20px; }
.internal-side-card { padding: 28px; background: var(--light); border: 1px solid #e0e7ed; border-radius: var(--radius); }
.internal-side-card--cta { background: var(--navy); border-color: var(--navy); color: #fff; }
.internal-side-card h2 { margin: 0 0 14px; color: var(--navy); font-family: var(--font-display); font-size: 1.45rem; line-height: 1.15; }
.internal-side-card--cta h2 { color: #fff; }
.internal-side-card p:not(.internal-eyebrow) { margin: 0 0 22px; color: inherit; line-height: 1.6; opacity: .9; }
.internal-side-card .btn-primary { display: inline-flex; justify-content: center; width: 100%; }
.internal-link-list { list-style: none; margin: 0; padding: 0; }
.internal-link-list li + li { border-top: 1px solid #d8e1e8; }
.internal-link-list a { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; color: var(--navy); font-weight: 600; text-decoration: none; }
.internal-link-list a:hover { color: var(--accent); }
.internal-facts-wrap { position: relative; z-index: 2; background: #fff; box-shadow: 0 12px 34px rgba(11,38,64,.08); }
.internal-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.internal-fact { padding: 26px 28px; border-right: 1px solid #e1e7ec; }
.internal-fact:last-child { border-right: 0; }
.internal-fact strong, .internal-fact span { display: block; }
.internal-fact strong { color: var(--navy); font-family: var(--font-display); font-size: 1.8rem; line-height: 1.1; }
.internal-fact span { margin-top: 6px; color: #607384; font-size: .82rem; line-height: 1.4; text-transform: uppercase; letter-spacing: .06em; }
.internal-related-pages { margin-top: 70px; padding-top: 52px; border-top: 1px solid #dfe6ec; }
.internal-related-pages > h2 { margin: 0 0 28px; }
.internal-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.internal-card { display: flex; min-height: 180px; overflow: hidden; border: 1px solid #dfe6ec; border-radius: var(--radius); background: #fff; color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.internal-card:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 16px 38px rgba(11,38,64,.12); }
.internal-card__image { flex: 0 0 38%; min-height: 180px; background-position: center; background-size: cover; }
.internal-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 25px; }
.internal-card__body strong { color: var(--navy); font-family: var(--font-display); font-size: 1.3rem; line-height: 1.15; }
.internal-card__body span { margin-top: 10px; color: #607384; font-size: .9rem; line-height: 1.55; }
.internal-card__body em { margin-top: auto; padding-top: 16px; color: var(--accent); font-style: normal; font-size: .82rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.internal-page--resources .internal-content, .internal-page--contact .internal-content { max-width: 1100px; margin-inline: auto; }
.internal-page--contact .internal-hero { min-height: 300px; }

@media (max-width: 1050px) {
  .internal-layout.has-sidebar { grid-template-columns: 1fr; }
  .internal-sidebar { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .internal-shell { width: min(100% - 40px, 1320px); }
  .internal-hero { min-height: 320px; }
  .internal-hero__content { padding-block: 58px 42px; }
  .internal-layout { gap: 42px; padding-block: 48px 66px; }
  .internal-sidebar, .internal-card-grid { grid-template-columns: 1fr; }
  .internal-card { flex-direction: column; }
  .internal-card__image { flex-basis: auto; min-height: 180px; }
  .internal-facts { grid-template-columns: repeat(2, 1fr); }
  .internal-fact:nth-child(2n) { border-right: 0; }
}
@media (max-width: 460px) {
  .internal-shell { width: min(100% - 32px, 1320px); }
  .internal-facts { grid-template-columns: 1fr; }
  .internal-fact { border-right: 0; border-bottom: 1px solid #e1e7ec; }
}

/* Events page — v4.16 */
.events-hero { background-position: center 42%; }
.events-introduction { padding-top: 0; }
.events-introduction:empty { display: none; }
.events-introduction__content { max-width: 900px; margin: 0 auto; padding: 52px 0 0; }
.events-list { overflow: hidden; }
.event-feature { padding: clamp(64px, 7vw, 110px) 0; background: #fff; }
.event-feature--alternate { background: #f4f7fa; }
.event-feature__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.event-feature--alternate .event-feature__media { order: 2; }
.event-feature--alternate .event-feature__content { order: 1; }
.event-feature__media { margin: 0; position: relative; }
.event-feature__media::after { content: ''; position: absolute; right: -16px; bottom: -16px; width: 38%; height: 38%; border-right: 5px solid #ef6c00; border-bottom: 5px solid #ef6c00; pointer-events: none; }
.event-feature__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 20px 54px rgba(11,31,58,.16); }
.event-feature__content h2 { margin: 8px 0 24px; color: #102b49; font-size: clamp(2rem, 3vw, 3.25rem); line-height: 1.08; letter-spacing: -.025em; }
.event-feature__content p { margin: 0 0 18px; color: #405268; font-size: 1.05rem; line-height: 1.75; }
.event-feature__content p:last-child { margin-bottom: 0; }
.events-cta { padding: 64px 0; background: linear-gradient(135deg,#0b1f3a,#173b60); }
.events-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.events-cta h2 { max-width: 760px; margin: 8px 0 0; color: #fff; font-size: clamp(1.9rem, 3vw, 2.8rem); line-height: 1.12; }
.events-cta .internal-eyebrow { color: #ff8b2c; }
.events-cta .btn-primary { flex: 0 0 auto; }
@media (max-width: 900px) {
  .event-feature__grid { grid-template-columns: 1fr; }
  .event-feature--alternate .event-feature__media,
  .event-feature--alternate .event-feature__content { order: initial; }
  .event-feature__media img { aspect-ratio: 16 / 10; }
  .events-cta__inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  .event-feature { padding: 56px 0; }
  .event-feature__grid { gap: 34px; }
  .event-feature__media::after { right: -8px; bottom: -8px; border-width: 3px; }
  .event-feature__content p { font-size: 1rem; line-height: 1.68; }
}


/* Events archive visibility — v4.17 */
.events-archive { padding: clamp(64px, 7vw, 96px) 0; background: #f4f7fa; }
.events-archive--older { background: #fff; scroll-margin-top: 110px; }
.events-archive__heading { max-width: 760px; margin-bottom: 34px; }
.events-archive__heading h2 { margin: 6px 0 0; color: #102b49; font-size: clamp(2rem, 3vw, 3rem); line-height: 1.08; }
.events-archive__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.event-archive-card { overflow: hidden; background: #fff; border: 1px solid #dfe6ec; box-shadow: 0 12px 34px rgba(11,31,58,.08); transition: transform .2s ease, box-shadow .2s ease; }
.event-archive-card:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(11,31,58,.14); }
.event-archive-card__link { display: grid; grid-template-columns: minmax(180px, 42%) 1fr; min-height: 280px; color: inherit; text-decoration: none; }
.event-archive-card__media { min-height: 100%; overflow: hidden; background: linear-gradient(135deg, #102b49, #24547d); }
.event-archive-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.event-archive-card:hover .event-archive-card__media img { transform: scale(1.035); }
.event-archive-card__placeholder { display: block; width: 100%; height: 100%; min-height: 280px; background: linear-gradient(135deg, #102b49, #24547d); }
.event-archive-card__body { display: flex; flex-direction: column; align-items: flex-start; padding: 30px; }
.event-archive-card__body h3 { margin: 5px 0 15px; color: #102b49; font-size: clamp(1.4rem, 2vw, 2rem); line-height: 1.12; }
.event-archive-card__body p:not(.internal-eyebrow) { margin: 0; color: #405268; line-height: 1.65; }
.event-archive-card__cta { margin-top: auto; padding-top: 24px; color: var(--accent); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.events-archive-toggle { padding: 38px 0; background: #fff; border-top: 1px solid #e1e7ec; border-bottom: 1px solid #e1e7ec; }
.events-archive-toggle__inner { display: flex; justify-content: center; }
.events-archive-toggle__button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-width: 230px; padding: 15px 24px; border: 2px solid #102b49; background: transparent; color: #102b49; font-family: var(--font-display); font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease; }
.events-archive-toggle__button:hover, .events-archive-toggle__button:focus-visible { background: #102b49; color: #fff; }
.events-archive-toggle__hide { display: none; }
.events-archive-toggle__icon { font-size: 1.3rem; line-height: 1; transition: transform .2s ease; }
.events-archive-toggle__button[aria-expanded="true"] .events-archive-toggle__show { display: none; }
.events-archive-toggle__button[aria-expanded="true"] .events-archive-toggle__hide { display: inline; }
.events-archive-toggle__button[aria-expanded="true"] .events-archive-toggle__icon { transform: rotate(45deg); }
.events-archive[hidden] { display: none !important; }
@media (max-width: 900px) {
  .events-archive__grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .event-archive-card__link { grid-template-columns: 1fr; }
  .event-archive-card__media, .event-archive-card__placeholder { min-height: 220px; }
  .event-archive-card__body { padding: 24px; }
}

/* ─── HOMEPAGE REFINEMENT — v4.18 ───────────────────────── */
/* The homepage must remain complete and attractive without JavaScript. */
.product-card, .app-card, .news-card, .location-item, .stat {
  opacity: 1 !important;
  transform: none !important;
}

/* More controlled rhythm and a premium centered composition. */
#applications, #products, #trust, #locations, #news {
  padding-top: clamp(72px, 8vw, 118px);
  padding-bottom: clamp(72px, 8vw, 118px);
}
#applications > *, #products > *, #trust > *, #locations > *, #news > * {
  width: min(100%, 1440px);
  margin-left: auto;
  margin-right: auto;
}

/* Hero: less empty vertical space, stronger readability. */
.carousel-slide {
  height: clamp(620px, 78vh, 790px);
  min-height: 620px;
}
.carousel-content {
  bottom: 118px;
  max-width: 760px;
}
.hero-slide-content {
  padding: 0;
  border-left: 0;
  background: transparent;
  backdrop-filter: none;
}
.hero-h1 { font-size: clamp(3rem, 5.5vw, 5rem); }
.hero-lead { max-width: 620px; color: rgba(255,255,255,.88); }
.hero-slide-content .hero-eyebrow, .hero-slide-content .hero-h1, .hero-slide-content .hero-lead, .hero-slide-content .hero-actions { position: relative; z-index: 1; }
.hero-slide-content::before { content: ""; position: absolute; inset: -70px -120px -70px -80px; z-index: 0; pointer-events: none; background: radial-gradient(ellipse at left center, rgba(5,24,44,.48) 0%, rgba(5,24,44,.20) 48%, transparent 74%); }

/* Statistics now feel like a single proof bar. */
#stats {
  box-shadow: 0 14px 38px rgba(11,31,58,.16);
  position: relative;
  z-index: 3;
}
.stat { padding: 30px 20px; }
.stat-num { font-size: clamp(2rem, 3vw, 2.8rem); }

/* Application cards: visible, separated and editorial rather than a wall. */
.apps-header, .products-header, .news-header { margin-bottom: 44px; }
.apps-grid {
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.app-card {
  border-radius: 6px;
  min-height: 390px;
  aspect-ratio: auto;
  box-shadow: 0 10px 28px rgba(11,31,58,.10);
}
.app-card-overlay {
  background: linear-gradient(to top, rgba(7,25,45,.94) 0%, rgba(11,31,58,.28) 62%, rgba(11,31,58,.08) 100%);
}
.app-card-icon {
  top: 22px;
  left: 22px;
  background: rgba(11,31,58,.58);
  backdrop-filter: blur(5px);
}
.app-card-content { padding: 26px; }
.app-card-title { font-size: 1.38rem; }
.app-card-link {
  opacity: 1;
  transform: none;
  color: #ff8a5f;
}

/* Product cards: larger imagery, softer surface and consistent heights. */
.products-grid { gap: 28px; }
.product-card {
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(11,31,58,.09);
}
.product-card:hover {
  box-shadow: 0 18px 45px rgba(11,31,58,.15);
  transform: translateY(-4px);
}
.product-img { height: 245px; }
.product-body { padding: 28px; }
.product-name { font-size: 1.32rem; }

/* Trust section: better hierarchy and logo visibility. */
#trust { background: #f3f6fa; }
.trust-groups { gap: 24px; margin-top: 46px; }
.trust-group {
  border: 0;
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(11,31,58,.07);
  padding: 30px;
}
.trust-logos { gap: 28px 34px; }
.trust-logos img {
  opacity: .74;
  filter: grayscale(1) contrast(1.08);
}

/* Locations: clearer cards, larger map and balanced columns. */
.locations-inner { gap: 54px; align-items: stretch; }
.location-list { gap: 16px; }
.location-item {
  min-height: 145px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: rgba(255,255,255,.075);
}
.location-map-placeholder, #neotiss-map { min-height: 390px; }

/* News cards feel more substantial and remain visible in captures. */
.news-card { flex-basis: 370px; border: 0; box-shadow: 0 10px 28px rgba(11,31,58,.07); }
.news-img { height: 225px; }
.news-body { padding: 26px; }
.news-title { font-size: 1.12rem; }

/* CTA: stronger visual separation from the footer. */
#cta {
  background: linear-gradient(115deg, #e8501a 0%, #f06a2f 100%);
  padding-top: 64px;
  padding-bottom: 64px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}

@media (max-width: 1180px) {
  .apps-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .products-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  #applications, #products, #trust, #locations, #news { padding: 64px 22px; }
  .carousel-slide { height: 680px; min-height: 680px; }
  .carousel-content { padding: 0 22px; bottom: 100px; }
  .hero-slide-content { padding: 26px 22px; }
  .apps-grid, .products-grid, .trust-groups, .locations-inner { grid-template-columns: 1fr; }
  .app-card { min-height: 350px; }
  .product-img { height: 220px; }
  #stats { grid-template-columns: repeat(2,1fr); }
  .stat { border-bottom: 1px solid rgba(255,255,255,.1); }
  .location-map-placeholder, #neotiss-map { min-height: 300px; }
}

/* ─── HOMEPAGE INTERACTION & CAROUSEL POLISH — v4.18.4 ─── */
/* Keep the hero calm: a barely perceptible drift instead of a heavy zoom. */
.carousel-bg {
  transform: scale(1.005);
  transition: transform 14s cubic-bezier(.22,.61,.36,1), filter .6s ease;
  will-change: transform;
}
.carousel-slide.active .carousel-bg { transform: scale(1.015); }
.carousel-slide:not(.active) .carousel-bg { transform: scale(1.005); }

/* More refined image treatment without introducing a visible content box. */
.carousel-overlay {
  background:
    linear-gradient(90deg, rgba(7,24,43,.76) 0%, rgba(7,24,43,.40) 46%, rgba(7,24,43,.10) 78%),
    linear-gradient(to top, rgba(7,24,43,.66) 0%, transparent 54%);
}
.hero-overlay {
  background:
    linear-gradient(90deg, rgba(7,24,43,.82) 0%, rgba(7,24,43,.47) 48%, rgba(7,24,43,.10) 82%),
    linear-gradient(to top, rgba(7,24,43,.58) 0%, transparent 58%);
}
.carousel-title,
.hero-h1 { text-wrap: balance; }
.carousel-desc,
.hero-lead { text-wrap: pretty; }
.carousel-cta {
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(232,80,26,.5);
}
.carousel-cta:hover { border-bottom-color: var(--accent); }

/* Whole-card links: reliable with mouse, touch and keyboard. */
.app-card,
.product-card {
  position: relative;
  display: flex;
  text-decoration: none;
  color: inherit;
}
.app-card { display: block; }
.app-card:focus-visible,
.product-card:focus-visible {
  outline: 3px solid rgba(232,80,26,.72);
  outline-offset: 4px;
}
.app-card:hover .app-card-title,
.product-card:hover .product-name { color: #ff7a49; }
.app-card-title,
.product-name { transition: color .2s ease; }
.product-card { transition: transform .25s ease, box-shadow .25s ease; }
.app-card-link,
.product-link { pointer-events: none; }
.app-card-other .app-card-bg { background-position: center center !important; }
.app-card-other .app-card-overlay {
  background: linear-gradient(to top, rgba(11,31,58,.92) 0%, rgba(11,31,58,.25) 70%, rgba(11,31,58,.08) 100%);
}

@media (prefers-reduced-motion: reduce) {
  .carousel-bg,
  .carousel-slide.active .carousel-bg,
  .carousel-slide:not(.active) .carousel-bg {
    transform: none;
    transition: none;
  }
}


/* ─── RESPONSIVE MEDIA & ARTICLE RENDERING — v4.18.5 ──────
   Preserve intrinsic image proportions across posts and pages. */
img,
picture,
svg,
video,
canvas {
  max-width: 100%;
}

img {
  height: auto;
}

.page-content figure,
.internal-content figure,
.single-article figure,
.wp-block-image {
  max-width: 100%;
  margin: 28px auto;
}

.page-content figure img,
.internal-content figure img,
.single-article figure img,
.wp-block-image img,
.page-content > img,
.internal-content > img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none;
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
}

.wp-block-image.alignwide,
.wp-block-image.alignfull {
  width: 100%;
}

.wp-block-image.alignwide img,
.wp-block-image.alignfull img {
  width: 100% !important;
  height: auto !important;
}

.wp-element-caption,
.wp-block-image figcaption,
.page-content figcaption,
.internal-content figcaption {
  margin: 10px auto 0;
  color: #66798b;
  font-size: .82rem;
  line-height: 1.55;
  text-align: center;
}

.single-article {
  background: linear-gradient(180deg, #f5f8fb 0, #fff 220px);
}

.single-article__inner {
  max-width: 1240px;
  padding-top: 64px;
}

.single-article__header {
  max-width: 980px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.single-article__header .page-title {
  font-size: clamp(2.35rem, 5vw, 4.7rem);
  line-height: 1.02;
  letter-spacing: -.025em;
}

.single-article__header .news-tag {
  margin-bottom: 18px;
}

.single-article__header .post-meta {
  margin-top: 18px;
}

.single-featured-image {
  width: min(100%, 1120px);
  margin: 0 auto 48px;
  padding: clamp(8px, 1.2vw, 14px);
  border: 1px solid #e1e8ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(11,31,58,.12);
  overflow: hidden;
}

.single-featured-image img,
.single-featured-image__img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 720px;
  margin: 0 !important;
  border-radius: 6px;
  object-fit: contain;
  object-position: center;
}

.single-article__content {
  max-width: 860px;
  margin: 0 auto;
  font-size: 1.06rem;
}

.single-article__content > p:first-child {
  font-size: 1.18rem;
  line-height: 1.75;
  color: #223e58;
}

/* WordPress galleries keep a consistent grid without distorting assets. */
.wp-block-gallery,
.blocks-gallery-grid {
  align-items: start;
}

.wp-block-gallery figure,
.blocks-gallery-item {
  overflow: hidden;
  border-radius: var(--radius);
  background: #f4f7f9;
}

.wp-block-gallery img,
.blocks-gallery-item img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

/* Embedded media remains proportional and cannot overflow its column. */
.page-content iframe,
.internal-content iframe,
.single-article iframe,
.page-content video,
.internal-content video,
.single-article video {
  display: block;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 760px) {
  .single-article__inner {
    padding: 38px 20px 64px;
  }
  .single-article__header {
    margin-bottom: 26px;
    padding-bottom: 20px;
  }
  .single-featured-image {
    margin-bottom: 32px;
    padding: 6px;
    border-radius: 7px;
  }
  .single-article__content,
  .single-article__content > p:first-child {
    font-size: 1rem;
  }
}

/* ─── 50TH ANNIVERSARY ARTICLE ─────────────────────────────── */
.anniversary-article__inner { max-width: 1180px; }
.anniversary-article__header { max-width: 900px; }
.anniversary-hero {
  margin: 0 0 52px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--navy);
  box-shadow: 0 24px 60px rgba(20,48,79,.18);
}
.anniversary-hero img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: contain;
  background: var(--navy);
}
.anniversary-copy { max-width: 100%; }
.anniversary-copy > p,
.anniversary-copy > blockquote { max-width: 820px; margin-left: auto; margin-right: auto; }
.anniversary-lead {
  color: var(--navy);
  font-size: clamp(1.35rem, 2vw, 1.8rem) !important;
  line-height: 1.45 !important;
  font-weight: 600;
}
.anniversary-dates {
  margin: 62px 0;
  padding: clamp(28px, 5vw, 54px);
  border-radius: 10px;
  background: var(--light);
}
.anniversary-dates__intro { max-width: 720px; margin-bottom: 28px; }
.anniversary-dates__intro h2,
.anniversary-social h2 {
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.05;
}
.anniversary-dates__grid { display: grid; gap: 16px; }
.anniversary-date-card {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 24px;
  background: var(--white);
  border-left: 4px solid var(--accent);
  box-shadow: 0 10px 30px rgba(20,48,79,.07);
}
.anniversary-date-card time {
  display: flex;
  flex-direction: column;
  color: var(--navy);
  border-right: 1px solid var(--silver);
}
.anniversary-date-card time strong {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 3.1rem;
  line-height: .85;
}
.anniversary-date-card time span {
  margin-top: 8px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.anniversary-date-card h3 {
  margin: 0 0 5px;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.65rem;
}
.anniversary-date-card p { margin: 0; color: var(--muted); }
.anniversary-quote {
  position: relative;
  margin-top: 54px !important;
  margin-bottom: 54px !important;
  padding: 30px 34px;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  font-weight: 600;
  line-height: 1.2;
  border-left: 5px solid var(--accent);
  background: #fff;
  box-shadow: 0 16px 40px rgba(20,48,79,.08);
}
.anniversary-social {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  margin-top: 62px;
  padding: clamp(30px, 5vw, 56px);
  color: var(--white);
  background: linear-gradient(120deg, var(--navy), var(--steel));
  border-radius: 10px;
}
.anniversary-social .section-label { color: #ff875c; }
.anniversary-social h2 { color: var(--white); }
.anniversary-social p { max-width: 680px; margin: 12px 0 0; color: rgba(255,255,255,.82); }
.anniversary-social .btn { flex: 0 0 auto; white-space: nowrap; }

@media (max-width: 760px) {
  .anniversary-hero { margin-bottom: 34px; }
  .anniversary-dates { margin: 42px 0; padding: 22px 16px; }
  .anniversary-date-card { grid-template-columns: 78px minmax(0, 1fr); gap: 18px; padding: 20px 16px; }
  .anniversary-date-card time strong { font-size: 2.5rem; }
  .anniversary-social { align-items: flex-start; flex-direction: column; }
}

/* Locations redesign — v4.18.8 */
.location-hub,.france-location{background:#fff;color:var(--navy)}
.location-hub__hero{padding:clamp(90px,11vw,150px) 0 80px;background:radial-gradient(circle at 78% 35%,rgba(71,128,174,.32),transparent 30%),linear-gradient(135deg,#071d34,#17466f);color:#fff;overflow:hidden}
.location-hub__hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.location-hub__hero h1,.france-location__hero h1{margin:0;color:#fff;font:700 clamp(3.2rem,7vw,6.5rem)/.9 var(--font-display);letter-spacing:-.035em}.location-hub__hero p:not(.internal-eyebrow),.france-location__hero>div>p:not(.internal-eyebrow){max-width:650px;margin:28px 0 0;color:rgba(255,255,255,.82);font-size:1.15rem;line-height:1.7}.location-hub__globe img{display:block;width:100%;filter:brightness(0) invert(1);opacity:.65}.location-hub__intro{padding:90px 0 48px}.location-hub__intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.location-hub__intro h2,.france-location h2{margin:0;font:700 clamp(2.5rem,5vw,4.6rem)/.95 var(--font-display);letter-spacing:-.025em}.location-hub__intro-grid p{margin:0;color:#506579;font-size:1.12rem;line-height:1.8}.location-hub__cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;padding-bottom:100px}.location-hub__card{position:relative;display:block;min-height:400px;padding:42px;overflow:hidden;border:1px solid #dce5ec;background:linear-gradient(145deg,#f7f9fb,#fff);color:inherit;text-decoration:none;transition:.25s}.location-hub__card:after{content:"";position:absolute;right:-100px;bottom:-120px;width:280px;height:280px;border-radius:50%;background:rgba(232,80,26,.06);transition:.3s}.location-hub__card:hover{transform:translateY(-6px);border-color:transparent;box-shadow:0 24px 55px rgba(9,35,61,.14)}.location-hub__card:hover:after{transform:scale(1.25)}.location-hub__number{color:#9aabba;font:600 .8rem var(--font-display);letter-spacing:.15em}.location-hub__flag{float:right;font-size:2.4rem}.location-hub__region{display:block;margin-top:70px;color:var(--accent);font:700 .72rem var(--font-display);letter-spacing:.14em;text-transform:uppercase}.location-hub__card h2{margin:8px 0 0;font-size:3.1rem}.location-hub__card h3{margin:5px 0 20px;color:#456078;font:600 1rem var(--font-display)}.location-hub__card p{max-width:520px;color:#5a6d7e;line-height:1.7}.location-hub__link{position:absolute;left:42px;bottom:38px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.78rem}.location-hub__cta{padding:68px 0;background:#102f4f;color:#fff}.location-hub__cta>.internal-shell{display:flex;align-items:center;justify-content:space-between;gap:30px}.location-hub__cta h2{max-width:760px;color:#fff;font-size:clamp(2rem,4vw,3.4rem)}
.france-location__hero{padding:clamp(120px,14vw,190px) 0 80px;background:linear-gradient(90deg,rgba(5,25,45,.96),rgba(5,25,45,.58)),url('../images/photos/france-plant-hero.webp') center 48%/cover;color:#fff}.france-location__hero h1{max-width:1000px}.france-location__facts{display:flex;gap:50px;margin-top:52px}.france-location__facts span{color:rgba(255,255,255,.72);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.france-location__facts b{display:block;margin-bottom:5px;color:#fff;font:700 2rem var(--font-display);letter-spacing:0;text-transform:none}.france-location__story{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;padding:100px 0}.france-location__story p{margin:0 0 22px;color:#52687b;font-size:1.08rem;line-height:1.8}.france-location__capabilities{padding:95px 0;background:#f2f6f9}.france-location__capabilities>div>h2{max-width:800px}.france-location__cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:50px}.france-location__cap-grid article{padding:34px;background:#fff;border-top:4px solid var(--accent);box-shadow:0 12px 34px rgba(8,36,62,.08)}.france-location__cap-grid b{color:#9badbc;font-size:.75rem;letter-spacing:.14em}.france-location__cap-grid h3{margin:32px 0 14px;font:700 1.7rem var(--font-display)}.france-location__cap-grid p{color:#627587;line-height:1.7}.france-location__contacts{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;padding:100px 0}.france-location__contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.france-location__contact-grid article{padding:34px;border:1px solid #dce5ec}.france-location__contact-grid span{color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.france-location__contact-grid h3{margin:12px 0 22px;font:700 1.7rem var(--font-display)}.france-location__contact-grid address{margin-bottom:22px;color:#52687b;font-style:normal;line-height:1.75}.france-location__contact-grid a{display:block;margin-top:8px;color:var(--navy);font-weight:700}.france-location__cert{padding:75px 0;background:#e9eff4}.france-location__cert>.internal-shell{display:flex;align-items:end;justify-content:space-between;gap:40px}.france-location__cert h2{font-size:clamp(2.2rem,4vw,3.5rem)}.france-location__badges{display:flex;gap:12px}.france-location__badges span{min-width:150px;padding:20px;border-left:3px solid var(--accent);background:#fff;font:700 1.05rem var(--font-display)}.france-location__badges small{color:#6d7f8f;font:400 .75rem var(--font-body)}
@media(max-width:900px){.location-hub__hero-grid,.location-hub__intro-grid,.france-location__story,.france-location__contacts{grid-template-columns:1fr}.location-hub__globe{max-width:700px}.france-location__cap-grid{grid-template-columns:1fr}.france-location__cert>.internal-shell{align-items:flex-start;flex-direction:column}.france-location__contact-grid{grid-template-columns:1fr}}
@media(max-width:680px){.location-hub__cards{grid-template-columns:1fr}.location-hub__card{min-height:390px;padding:30px}.location-hub__link{left:30px}.location-hub__cta>.internal-shell{align-items:flex-start;flex-direction:column}.france-location__facts{flex-wrap:wrap;gap:26px}.france-location__badges{width:100%;flex-direction:column}.france-location__badges span{width:100%}}

/* v4.19.0 — Locations map visibility fix */
.location-hub__globe{
 position:relative;
 min-height:280px;
 display:flex;
 align-items:center;
 padding:28px;
 border:1px solid rgba(255,255,255,.14);
 border-radius:18px;
 background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
 box-shadow:0 30px 70px rgba(0,0,0,.18);
 overflow:hidden;
}
.location-hub__globe:before{
 content:"";
 position:absolute;
 inset:0;
 background:radial-gradient(circle at 50% 50%,rgba(82,155,207,.18),transparent 65%);
 pointer-events:none;
}
.location-hub__globe img{
 position:relative;
 z-index:1;
 display:block;
 width:100%;
 height:auto;
 max-height:360px;
 object-fit:contain;
 filter:none;
 opacity:1;
}
@media(max-width:900px){.location-hub__globe{min-height:220px;padding:20px}}

/* ═══ v4.20.0 production quality pass ═══ */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus,.skip-link:focus{clip:auto!important;width:auto;height:auto;margin:0;overflow:visible;white-space:normal;position:fixed!important;z-index:100000;top:12px;left:12px;padding:12px 18px;background:#fff;color:#113556;border-radius:4px;box-shadow:0 4px 18px rgba(0,0,0,.2)}
:focus-visible{outline:3px solid #f39800;outline-offset:3px}
.archive-page__header{max-width:820px;margin-bottom:42px}.archive-description{font-size:1.1rem;line-height:1.7;color:#526474}.news-grid-archive .news-card-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.news-grid-archive .news-title{font-size:1.55rem}.news-grid-archive .news-img{aspect-ratio:16/10;overflow:hidden}.news-grid-archive .news-img img{width:100%;height:100%;object-fit:cover}.pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.pagination .page-numbers{display:inline-flex;min-width:44px;height:44px;align-items:center;justify-content:center;padding:0 12px;border:1px solid #d8e0e7;border-radius:4px;text-decoration:none}.pagination .current{background:#113556;color:#fff;border-color:#113556}
.country-location__hero{position:relative;min-height:560px;display:flex;align-items:flex-end;background:linear-gradient(90deg,rgba(9,38,63,.96) 0%,rgba(9,38,63,.82) 48%,rgba(9,38,63,.28) 100%),var(--country-hero) center/cover no-repeat;color:#fff}.country-location__hero-content{padding-top:150px;padding-bottom:74px}.country-location__hero h1{max-width:900px;font-size:clamp(2.7rem,5vw,5.2rem);line-height:.98;margin:12px 0 24px}.country-location__hero p:not(.internal-eyebrow){max-width:720px;font-size:1.25rem;line-height:1.65}.country-location__facts{display:flex;gap:44px;flex-wrap:wrap;margin-top:38px}.country-location__facts span{display:flex;flex-direction:column;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.country-location__facts b{font-family:var(--font-display);font-size:1.8rem;color:#f39800;text-transform:none;letter-spacing:0}.country-location__story{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;padding-top:92px;padding-bottom:92px}.country-location__story h2,.country-location__capabilities h2,.country-location__contact h2{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.05}.country-location__story p{font-size:1.08rem;line-height:1.8;color:#526474}.country-location__capabilities{background:#f4f7f9;padding:92px 0}.country-location__cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:42px}.country-location__cap-grid article{background:#fff;padding:34px;box-shadow:0 12px 35px rgba(15,48,72,.08)}.country-location__cap-grid article>b{color:#f39800;font-family:var(--font-display);font-size:1.2rem}.country-location__cap-grid h3{font-size:1.45rem;margin:24px 0 12px}.country-location__cap-grid p{color:#61717e;line-height:1.65}.country-location__contact{display:grid;grid-template-columns:1fr .85fr;gap:80px;padding-top:92px;padding-bottom:92px;align-items:start}.country-location__contact>div>p:last-child{font-size:1.08rem;line-height:1.75;color:#526474}.country-location__contact article{background:#113556;color:#fff;padding:38px}.country-location__contact article span{color:#f39800;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem}.country-location__contact address{font-style:normal;line-height:1.7;margin:20px 0}.country-location__contact a{display:block;color:#fff;margin-top:10px}
.internal-content img,.entry-content img,.wp-block-image img{max-width:100%;height:auto}.wp-block-table{overflow-x:auto}.wp-block-table table{min-width:640px}
@media(max-width:800px){.country-location__hero{min-height:500px;background-position:center}.country-location__hero-content{padding-top:120px;padding-bottom:54px}.country-location__story,.country-location__contact{grid-template-columns:1fr;gap:32px;padding-top:64px;padding-bottom:64px}.country-location__cap-grid{grid-template-columns:1fr}.country-location__facts{gap:24px}.country-location__facts span{min-width:120px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.carousel-slide img{transform:none!important}}
#mobile-nav .menu-item-has-children{position:relative}#mobile-nav .submenu-toggle{position:absolute;right:18px;top:6px;width:42px;height:42px;border:0;background:transparent;color:inherit;font-size:1.5rem;cursor:pointer}#mobile-nav .menu-item-has-children>.dropdown{display:none}#mobile-nav .menu-item-has-children.submenu-open>.dropdown{display:block}

/* ═══ v4.20.1 — NEWS / UPDATES RENDERING CORRECTION ═══════════
   Isolated article rules. These deliberately override the broad v4.18.5
   media selectors without changing cards, locations, products or events. */
body.single-post .standard-page.single-article {
  padding-top: 0;
  background: linear-gradient(180deg,#eef3f7 0,#fff 360px);
}
body.single-post .single-article__inner {
  width: min(100% - 40px, 1180px);
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(48px,6vw,82px) 0 clamp(70px,8vw,110px);
}
body.single-post .single-article__header {
  width: min(100%,920px);
  max-width: 920px;
  margin: 0 auto clamp(30px,4vw,48px);
  padding: 0;
  text-align: center;
  border: 0;
}
body.single-post .single-article__header .page-title {
  margin: 14px 0 12px;
  font-size: clamp(2.25rem,5vw,4.5rem);
  line-height: 1.03;
  overflow-wrap: anywhere;
}
body.single-post .single-article__header .post-meta {
  margin: 12px 0 0;
  color: #647687;
}
body.single-post .single-featured-image,
body.single-post .anniversary-hero {
  width: min(100%,1080px);
  margin: 0 auto clamp(38px,5vw,60px);
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(14,42,67,.14);
  overflow: hidden;
}
body.single-post .single-featured-image img,
body.single-post .single-featured-image__img,
body.single-post .anniversary-hero img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  border-radius: 0;
  object-fit: initial !important;
  object-position: center;
}
body.single-post .single-article__content {
  width: min(100%,820px);
  max-width: 820px;
  margin: 0 auto;
  color: #263d50;
  font-size: clamp(1rem,1.2vw,1.1rem);
  line-height: 1.78;
}
body.single-post .anniversary-copy {
  width: min(100%,960px);
  max-width: 960px;
}
body.single-post .single-article__content > p:first-child {
  color: #183b59;
  font-size: clamp(1.14rem,1.8vw,1.3rem);
  line-height: 1.7;
}
body.single-post .single-article__content h2 {
  margin: 2.2em 0 .65em;
  font-size: clamp(1.65rem,3vw,2.35rem);
  line-height: 1.15;
}
body.single-post .single-article__content h3 {
  margin: 1.8em 0 .55em;
  font-size: clamp(1.3rem,2.2vw,1.75rem);
}
body.single-post .single-article__content figure,
body.single-post .single-article__content .wp-block-image {
  width: 100%;
  max-width: 100%;
  margin: clamp(28px,4vw,46px) auto;
}
body.single-post .single-article__content figure img,
body.single-post .single-article__content .wp-block-image img,
body.single-post .single-article__content > img {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  object-fit: initial !important;
  border-radius: 8px;
}
body.single-post .single-article__content img.alignleft,
body.single-post .single-article__content img.alignright {
  width: auto !important;
  max-width: 48% !important;
}
body.single-post .single-article__content blockquote {
  margin: clamp(34px,5vw,56px) auto;
  padding: 28px 32px;
  border-left: 5px solid #f39800;
  background: #f3f6f8;
  color: #153b5a;
  font-size: clamp(1.15rem,2vw,1.45rem);
  line-height: 1.55;
}
body.single-post .anniversary-dates,
body.single-post .anniversary-social {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width:760px) {
  body.single-post .single-article__inner { width:min(100% - 28px,1180px); padding-top:38px; }
  body.single-post .single-article__header .page-title { font-size:clamp(2rem,11vw,3.1rem); }
  body.single-post .single-featured-image,
  body.single-post .anniversary-hero { border-radius:8px; margin-bottom:32px; }
  body.single-post .single-article__content img.alignleft,
  body.single-post .single-article__content img.alignright { float:none; width:100% !important; max-width:100% !important; margin:24px 0 !important; }
  body.single-post .single-article__content blockquote { padding:22px 22px; }
}

/* ═══ v4.20.2 — ABOUT / CUSTOMER LOGO RENDERING ══════════════ */
.about-trust {
  margin-top: clamp(52px,7vw,88px);
  padding-top: clamp(46px,6vw,72px);
  border-top: 1px solid #dce4eb;
}
.about-trust__header {
  max-width: 760px;
  margin-bottom: 38px;
}
.about-trust__header h2 {
  margin: 8px 0 14px;
  color: var(--navy);
  font-size: clamp(2.1rem,4vw,3.6rem);
  line-height: 1.05;
}
.about-trust__header > p:last-child {
  margin: 0;
  color: #5d6f7e;
  font-size: 1.05rem;
  line-height: 1.75;
}
.internal-content .about-trust__groups {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
  margin: 0;
}
.internal-content .about-trust .trust-group {
  min-width: 0;
  padding: 26px 28px;
  background: #f6f8fa;
  border: 1px solid #dfe6ec;
  border-radius: 8px;
}
.internal-content .about-trust .trust-group-title {
  margin: 0 0 22px;
  padding: 0 0 13px;
  color: var(--accent);
  border-bottom: 1px solid #dfe6ec;
  font-size: .75rem;
  line-height: 1.4;
}
.internal-content .about-trust .trust-logos {
  display: grid;
  grid-template-columns: repeat(4,minmax(86px,1fr));
  gap: 18px;
  align-items: center;
}
.internal-content .about-trust .trust-logos img,
.internal-content .about-trust figure img,
.internal-content .about-trust img {
  display: block;
  width: 100% !important;
  max-width: 125px !important;
  height: 48px !important;
  max-height: 48px !important;
  margin: 0 auto !important;
  padding: 5px;
  border: 0;
  border-radius: 0;
  object-fit: contain !important;
  filter: grayscale(1);
  opacity: .68;
  transition: filter .2s ease,opacity .2s ease,transform .2s ease;
}
.internal-content .about-trust .trust-logos img:hover {
  filter: grayscale(0);
  opacity: 1;
  transform: translateY(-2px);
}
.internal-content .about-trust .trust-group--hcp .trust-logos img {
  max-width: 145px !important;
  height: 54px !important;
  max-height: 54px !important;
}
@media (max-width: 1050px) {
  .internal-content .about-trust__groups { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .internal-content .about-trust .trust-group { padding: 22px 18px; }
  .internal-content .about-trust .trust-logos { grid-template-columns: repeat(2,minmax(90px,1fr)); gap: 20px 14px; }
  .internal-content .about-trust .trust-logos img { max-width: 120px !important; height: 44px !important; max-height: 44px !important; }
}


/* ═══ v4.20.3 — 50TH ANNIVERSARY ARTICLE FINAL OVERRIDE ═══════
   Fully isolated from generic post and editor image rules. */
body.single-post .anniversary-article .anniversary-article__inner {
  width: min(100% - 40px, 1180px);
  max-width: 1180px;
  margin-inline: auto;
}
body.single-post .anniversary-article .anniversary-article__header {
  width: min(100%, 900px);
  margin-inline: auto;
}
body.single-post .anniversary-article .anniversary-hero {
  display: block;
  width: min(100%, 1040px);
  max-width: 1040px;
  margin: 0 auto clamp(38px, 5vw, 58px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: #0b263f;
  box-shadow: 0 20px 55px rgba(14,42,67,.15);
}
body.single-post .anniversary-article .anniversary-hero img {
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 16 / 9 !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}
body.single-post .anniversary-article .anniversary-copy {
  width: min(100%, 960px);
  max-width: 960px;
  margin-inline: auto;
}
body.single-post .anniversary-article .anniversary-copy > p {
  width: min(100%, 820px);
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
body.single-post .anniversary-article .anniversary-date-card {
  min-width: 0;
}
body.single-post .anniversary-article .anniversary-date-card > div {
  min-width: 0;
}
body.single-post .anniversary-article .anniversary-date-card h3,
body.single-post .anniversary-article .anniversary-date-card p {
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  body.single-post .anniversary-article .anniversary-article__inner {
    width: min(100% - 28px, 1180px);
  }
  body.single-post .anniversary-article .anniversary-hero {
    border-radius: 8px;
  }
  body.single-post .anniversary-article .anniversary-date-card {
    grid-template-columns: 68px minmax(0,1fr);
    gap: 14px;
  }
  body.single-post .anniversary-article .anniversary-date-card time {
    padding-right: 10px;
  }
}


/* ═══ v4.20.4 — HEADER / SINGLE-POST IMAGE SCOPE FIX ═══════════
   Prevent article image rules from affecting the global header logo and UI icons. */
body.single-post #site-header .site-logo,
body.single-post #site-header .site-logo img,
body.single-post #site-header .site-logo-img {
  flex: 0 0 auto;
}
body.single-post #site-header .site-logo img,
body.single-post #site-header .site-logo-img {
  display: block !important;
  width: auto !important;
  max-width: 260px !important;
  height: 66px !important;
  max-height: 66px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin: 0 !important;
}
body.single-post .single-article__content img,
body.single-post .single-featured-image img,
body.single-post .anniversary-hero img {
  box-sizing: border-box;
}
body.single-post .anniversary-social .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 14px 24px;
  color: #fff !important;
  text-decoration: none !important;
  line-height: 1.2;
}
@media (max-width: 1000px) {
  body.single-post #site-header .site-logo img,
  body.single-post #site-header .site-logo-img {
    height: 58px !important;
    max-height: 58px !important;
    max-width: 230px !important;
  }
}
@media (max-width: 700px) {
  body.single-post #site-header .site-logo img,
  body.single-post #site-header .site-logo-img {
    height: 48px !important;
    max-height: 48px !important;
    max-width: 190px !important;
  }
}


/* ═══ v4.20.5 — HEADER NAVIGATION RESTORE ═════════════════════
   Keep the brand mark constrained without allowing it to displace or hide the menu. */
#site-header .header-inner {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 20px;
}
#site-header .site-logo {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: 230px !important;
  min-width: 150px;
  overflow: hidden;
}
#site-header .site-logo .site-logo-img {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  height: 66px !important;
  max-height: 66px !important;
  object-fit: contain !important;
  object-position: left center;
}
#site-header #primary-nav {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
}
#site-header #primary-nav .nav-links {
  display: flex;
  justify-content: flex-end;
}
#site-header #mobile-toggle { flex: 0 0 auto; }
@media (max-width: 1100px) {
  #site-header .site-logo { max-width: 205px !important; min-width: 135px; }
  #site-header .site-logo .site-logo-img { height: 58px !important; max-height: 58px !important; }
}
@media (max-width: 900px) {
  #site-header #primary-nav { display: none !important; }
  #site-header #mobile-toggle { display: flex !important; }
}
@media (max-width: 640px) {
  #site-header .site-logo { max-width: 175px !important; min-width: 120px; }
  #site-header .site-logo .site-logo-img { height: 48px !important; max-height: 48px !important; }
}


/* ═══ v4.20.6 — PRIMARY CAROUSEL SLIDE ALIGNMENT ═══════════════
   Keep the brand slide distinctive while matching the baseline, width and
   vertical rhythm of every application slide. */
#hero .hero-slide-content {
  bottom: 100px;
  max-width: 820px;
  padding-inline: 80px;
}
#hero .hero-slide-content .hero-eyebrow {
  margin-bottom: 14px;
  color: var(--accent);
}
#hero .hero-slide-content .carousel-accent-line {
  margin-bottom: 16px;
}
#hero .hero-slide-content .hero-h1 {
  max-width: 690px;
  margin: 0 0 18px;
  font-size: clamp(2.55rem, 4.2vw, 3.85rem);
  line-height: 1.04;
  letter-spacing: -.015em;
}
#hero .hero-slide-content .hero-lead {
  max-width: 580px;
  margin-bottom: 26px;
  font-size: clamp(.92rem, 1.15vw, 1rem);
  line-height: 1.65;
}
#hero .hero-slide-content .hero-actions {
  gap: 12px;
}
#hero .hero-slide-content .btn-primary,
#hero .hero-slide-content .btn-outline {
  padding: 12px 24px;
  font-size: .86rem;
}
@media (max-width: 900px) {
  #hero .hero-slide-content {
    bottom: 88px;
    padding-inline: 28px;
    max-width: 720px;
  }
  #hero .hero-slide-content .hero-h1 {
    max-width: 620px;
    font-size: clamp(2.35rem, 7vw, 3.35rem);
  }
}
@media (max-width: 600px) {
  #hero .hero-slide-content {
    bottom: 86px;
    padding-inline: 20px;
  }
  #hero .hero-slide-content .hero-h1 {
    font-size: clamp(2rem, 10vw, 2.75rem);
    line-height: 1.02;
  }
  #hero .hero-slide-content .hero-lead {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 20px;
  }
  #hero .hero-slide-content .btn-primary,
  #hero .hero-slide-content .btn-outline {
    padding: 11px 18px;
    font-size: .78rem;
  }
}

/* v4.21.0 — final visual corrections requested before production */
#hero .carousel-bg--brand {
  /* Shift the photograph upward inside the viewport so more of the lower
     industrial scene remains visible, without changing the other slides. */
  background-position: center 72%;
}

/* The former diagonal hero decoration was removed from the template. Keep a
   defensive rule in case an older cached fragment is briefly served. */
#hero .hero-lines { display: none !important; }

/* Preserve the intended focal areas of Julien's replacement photographs. */
.app-card[href*="renewable-power"] .app-card-bg { background-position: center 58% !important; }
.app-card[href*="hvac-heat-pump"] .app-card-bg { background-position: center !important; }

/* Nuclear application replacement images: natural proportions, no stretch. */
.internal-page--application .neotiss-nuclear-image {
  display: block;
  width: 100%;
  max-width: 920px;
  height: auto !important;
  margin: 28px auto 42px;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 14px 34px rgba(20,48,79,.12);
}


/* ═══ v4.21.4 — SINGLE SEMANTIC NAVIGATION + AI CRAWL CLEANUP ═══
   One menu is rendered in the HTML and adapts to desktop/mobile. This avoids
   duplicate link text for crawlers while preserving the existing visual UI. */
#primary-nav .submenu-toggle { display: none; }
#primary-nav .menu-item:focus-within > .dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (max-width: 900px) {
  #site-header #primary-nav {
    display: none !important;
    position: fixed;
    top: var(--nav-h);
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    height: auto;
    padding: 20px;
    overflow-y: auto;
    background: var(--navy);
  }
  #site-header #primary-nav.open { display: block !important; }
  #site-header #primary-nav .nav-links {
    display: block !important;
    height: auto;
    list-style: none;
  }
  #site-header #primary-nav .nav-links > li {
    display: block;
    height: auto;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
  #site-header #primary-nav .nav-links > li > a {
    display: block;
    height: auto;
    padding: 14px 48px 14px 0;
    color: var(--silver);
    font-size: 1rem;
  }
  #site-header #primary-nav .nav-links > li > a::after,
  #site-header #primary-nav .nav-links .arrow { display: none; }
  #site-header #primary-nav .dropdown {
    display: none;
    position: static;
    min-width: 0;
    padding: 0 0 8px 16px;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  #site-header #primary-nav .menu-item-has-children.submenu-open > .dropdown { display: block; }
  #site-header #primary-nav .dropdown li a {
    padding: 10px 0;
    color: var(--muted);
    background: transparent;
  }
  #primary-nav .menu-item-has-children { position: relative; }
  #primary-nav .submenu-toggle {
    display: block;
    position: absolute;
    right: 0;
    top: 5px;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 1.5rem;
    cursor: pointer;
  }
}


/* v4.21.8 — final Communications visuals */
.neotiss-product-visual {
  margin: 30px 0 42px;
  overflow: hidden;
  border-radius: 4px;
  background: #f4f6f8;
  box-shadow: 0 12px 30px rgba(8,36,62,.10);
}
.neotiss-product-visual img,
.internal-content .neotiss-product-approved-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 620px;
  object-fit: contain;
  border-radius: 4px;
}
.neotiss-product-visual--helix {
  background: #fff;
}
.france-location__hero {
  background-image: linear-gradient(90deg,rgba(5,25,45,.94),rgba(5,25,45,.38)),url('../images/photos/france-plant-hero.webp');
  background-position: center 48%;
  background-size: cover;
}
@media (max-width: 700px) {
  .france-location__hero { background-position: 62% center; }
  .neotiss-product-visual { margin: 24px 0 32px; }
}

/* ═══════════════════════════════════════════════════════════════
   NEOTISS PROD CLEAN v5.0 — stable rendering baseline
   These rules intentionally scope media to the content component that owns it.
   ═══════════════════════════════════════════════════════════════ */

/* News cards always reserve a consistent visual area; the PHP helper now
   guarantees an image even when migrated posts have no featured thumbnail. */
.news-img {
  aspect-ratio: 8 / 5;
  height: auto;
  background: #e9eef2;
}
.news-img img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center;
}

/* News article imagery is isolated from header/logo/UI images. */
.single-article__content figure,
.single-article__content .wp-block-image {
  max-width: 100%;
  margin: 30px auto;
}
.single-article__content img {
  display: block;
  max-width: 100% !important;
  height: auto !important;
  margin-inline: auto;
  object-fit: contain;
}
.single-featured-image {
  width: min(100%, 1080px);
  margin: 0 auto 46px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.single-featured-image__img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: 720px;
  margin: 0 !important;
  border-radius: 8px;
  object-fit: contain !important;
  box-shadow: 0 16px 42px rgba(12,43,70,.12);
}
.single-article__back {
  margin-top: 52px !important;
  padding-top: 24px;
  border-top: 1px solid #dfe6ec;
}
.single-article__back a {
  color: var(--navy);
  font-weight: 600;
  text-decoration: none;
}
.single-article__back a:hover { color: var(--accent); }

/* Editor-managed brochures, publications and CSR documents remain the source
   of truth. Style PDF links consistently without replacing their content. */
.internal-page--resources .internal-content a[href*=".pdf"],
.internal-page--standard .internal-content a[href*=".pdf"] {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.internal-page--resources .internal-content > p:has(a[href*=".pdf"]),
.internal-page--resources .internal-content > div:has(a[href*=".pdf"]) {
  padding: 18px 20px;
  border: 1px solid #dce4ea;
  border-radius: 6px;
  background: #fff;
}

/* Country addresses use explicit line elements. This prevents escaped newline
   sequences from ever leaking into visible content or crawler text. */
.country-location__contact address {
  white-space: normal;
  font-style: normal;
}
.country-location__contact address span {
  display: block;
}

/* Separately injected Desalination menu item behaves exactly like its siblings. */
#primary-nav .neotiss-injected-desalination > a { white-space: nowrap; }

/* Useful real 404 page; keep the HTTP 404 rather than soft-redirecting unknown URLs. */
.not-found-page {
  min-height: 66vh;
  display: flex;
  align-items: center;
  padding: clamp(80px, 10vw, 140px) 0;
  background: linear-gradient(135deg, #f4f7f9, #fff);
}
.not-found-page__inner { max-width: 900px; }
.not-found-page h1 {
  max-width: 820px;
  margin: 10px 0 22px;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 4.7rem);
  line-height: 1;
}
.not-found-page__inner > p:not(.internal-eyebrow) {
  max-width: 700px;
  color: #526474;
  font-size: 1.08rem;
  line-height: 1.75;
}
.not-found-page__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 34px;
}
.btn-outline--dark {
  border-color: #b6c3ce;
  color: var(--navy) !important;
}
.btn-outline--dark:hover {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff !important;
}

@media (max-width: 680px) {
  .single-featured-image { margin-bottom: 30px; }
  .not-found-page__actions { flex-direction: column; align-items: stretch; }
  .not-found-page__actions a { justify-content: center; text-align: center; }
}

/* v5.0.3 — never expose an empty media column in internal child-card grids. */
.internal-card__image--fallback {
  background-image: linear-gradient(135deg, rgba(16,43,73,.96), rgba(36,84,125,.88));
}

/* v5.0.7 — About and Our History render the homepage #trust component
 * outside .internal-content. No special copy of the Trust styling is kept here:
 * the same markup intentionally inherits the exact homepage rules above. */

/* v5.0.8 — runtime repair: shared Trust component, late URL normalization and resource fallbacks. */
