/*
  ORGANIWEB - custom.css (theme enfant ascend_premium_child)
  Design system + page d'accueil, issu de la maquette v2 (28/08/2026).
  Classes prefixees "organiweb-" conformement a WORDPRESS_RULES.md.
  Suppression : retirer ce fichier + desactiver le theme enfant.

  POLICES : Manrope (titres) + Public Sans (texte) SELF-HEBERGEES
  (fonts/*.woff2, polices variables) - @font-face ci-dessous + preload
  via functions.php. Zero appel externe Google Fonts.
*/

/*
  ORGANIWEB — Feuille de style de travail (page d'accueil + en-tête + pied de page)
  Aperçu validé le 16/07/2026. Toutes les classes sont préfixées "organiweb-"
  conformément à docs/WORDPRESS_RULES.md.

  Sur le site WordPress (Ascend/Kadence) :
  - les jetons :root et les styles de contenu (hero, sections, cartes...) vont
    dans Personnaliser > CSS additionnel ;
  - les styles d'en-tête/pied de page habillent les éléments natifs du
    constructeur Ascend (voir la classe "CSS Class" de chaque élément) ;
  - la navigation et le tiroir mobile réels seront rendus par Ascend — les
    règles ci-dessous les simulent uniquement pour cet aperçu autonome.
*/

/* ===== POLICES SELF-HEBERGEES ===== */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('fonts/manrope.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/public-sans.woff2') format('woff2');
}
@font-face {
  font-family: 'Public Sans';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url('fonts/public-sans-italic.woff2') format('woff2');
}

:root {
  --organiweb-blue: #3478d4;
  --organiweb-blue-dark: #245da8;
  --organiweb-blue-darker: #163d73;
  --organiweb-blue-light: #eaf2fc;

  --organiweb-green: #82b933;
  --organiweb-green-dark: #638e26;
  --organiweb-green-light: #f0f7e6;

  --organiweb-black: #000000;
  --organiweb-anthracite: #4f5053;
  --organiweb-gray-700: #5f6368;
  --organiweb-gray-300: #d9dde3;
  --organiweb-gray-100: #f4f6f8;
  --organiweb-white: #ffffff;

  --font-size-xs: 0.9rem;
  --font-size-sm: 1rem;
  --font-size-md: 1.1875rem;
  --font-size-lg: 1.375rem;
  --font-size-xl: clamp(1.7813rem, 3.2vw, 2.5625rem);
  --font-size-2xl: clamp(2.3125rem, 5.1vw, 4.1563rem);
  --line-height-body: 1.65;
  --line-height-title: 1.15;

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4.5rem;
  --space-7: 6rem;

  --organiweb-font-title: 'Manrope', ui-sans-serif, 'Segoe UI', system-ui, sans-serif;
  --organiweb-font-body: 'Public Sans', ui-sans-serif, 'Segoe UI', system-ui, sans-serif;

  --organiweb-header-h: 76px;
  --organiweb-utility-h: 38px;
  --organiweb-radius: 8px;
  --organiweb-container: 1280px;
  --font-size-hero: clamp(2.25rem, 4vw, 3.4375rem);
}

/* Force la police et la taille de base ORGANIWEB (le theme parent Ascend
   charge ascend.css APRES custom.css et imposait Source Sans Pro +
   html{font-size:10px} qui rendait tous les rem minuscules) */
html {
  font-size: 16px !important;
}
body {
  font-family: var(--organiweb-font-body) !important;
  font-size: 16px;
}

/* ================= PORTFOLIO / REALISATIONS ================= */
/* Sous-liste des CMS dans les cartes de services (ex : WooCommerce/PrestaShop/Shopify) */
.organiweb-service-cms {
  list-style: none;
  margin: 10px 0 4px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.organiweb-service-cms a {
  display: inline-block;
  background: var(--organiweb-blue-light);
  color: var(--organiweb-blue-dark);
  font-size: var(--font-size-xs);
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  text-decoration: none;
  transition: background .25s ease, color .25s ease;
}
.organiweb-service-cms a:hover {
  background: var(--organiweb-blue);
  color: #fff;
}
.organiweb-portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: var(--space-5);
}
.organiweb-filter-btn {
  border: 1.5px solid var(--organiweb-gray-300);
  background: var(--organiweb-white);
  color: var(--organiweb-anthracite);
  font-family: var(--organiweb-font-body);
  font-size: var(--font-size-sm);
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: all .25s ease;
}
.organiweb-filter-btn:hover { border-color: var(--organiweb-blue); color: var(--organiweb-blue-dark); }
.organiweb-filter-btn.is-active {
  background: var(--organiweb-blue);
  border-color: var(--organiweb-blue);
  color: #fff;
}
.organiweb-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
@media (max-width: 1080px) { .organiweb-portfolio-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .organiweb-portfolio-grid { grid-template-columns: 1fr; } }
.organiweb-portfolio-card {
  display: block;
  background: var(--organiweb-white);
  border: 1px solid var(--organiweb-gray-300);
  border-radius: 14px;
  overflow: hidden;
  height: 100%;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease;
}
.organiweb-portfolio-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(22, 61, 115, .12);
}
.organiweb-portfolio-thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--organiweb-gray-100);
  overflow: hidden;
}
.organiweb-portfolio-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.organiweb-portfolio-card:hover .organiweb-portfolio-thumb img { transform: scale(1.04); }
.organiweb-portfolio-tag {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(255, 255, 255, .92);
  color: var(--organiweb-blue-dark);
  font-size: var(--font-size-xs);
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
}
.organiweb-portfolio-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--organiweb-gray-700);
  font-size: var(--font-size-md);
  text-align: center;
  line-height: 1.5;
}
.organiweb-portfolio-body { padding: var(--space-3) var(--space-3) var(--space-4); }
.organiweb-portfolio-body h3 {
  font-family: var(--organiweb-font-title);
  font-size: var(--font-size-lg);
  color: var(--organiweb-black);
  margin: 0 0 4px;
}
.organiweb-portfolio-role {
  font-size: var(--font-size-xs);
  font-weight: 700;
  color: var(--organiweb-blue-dark);
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 8px;
}
.organiweb-portfolio-desc { font-size: var(--font-size-sm); color: var(--organiweb-gray-700); margin-bottom: 10px; }
.organiweb-portfolio-link { font-size: var(--font-size-sm); font-weight: 700; color: var(--organiweb-blue); }
.organiweb-portfolio-item.is-hidden { display: none; }

/* ================= PAGES SERVICES (modele page service) ================= */
/* Sommaire des prestations (page Nos Services) */
.organiweb-services-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: var(--space-3);
}
.organiweb-services-nav-link {
  display: block;
  background: var(--organiweb-white);
  border: 1.5px solid var(--organiweb-gray-300);
  border-radius: 12px;
  padding: 14px 18px;
  color: var(--organiweb-anthracite);
  font-size: var(--font-size-sm);
  font-weight: 600;
  text-decoration: none;
  transition: all .25s ease;
}
.organiweb-services-nav-link:hover {
  border-color: var(--organiweb-blue);
  color: var(--organiweb-blue-dark);
  box-shadow: 0 8px 20px rgba(22, 61, 115, .10);
}
@media (max-width: 640px) {
  .organiweb-services-nav { grid-template-columns: 1fr; }
}
/* CTA sous chaque prestation */
.organiweb-services-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: var(--space-4);
}
/* ===== Bloc prestation 2 colonnes (page Nos services) ===== */
.organiweb-service-block {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--space-6);
  align-items: stretch;
}
.organiweb-service-block__content {
  min-width: 0;
}
.organiweb-service-block__visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  background: var(--organiweb-white);
  border: 1px solid var(--organiweb-gray-300);
  border-radius: 20px;
  padding: var(--space-6) var(--space-4);
  box-shadow: 0 20px 50px rgba(22, 61, 115, .10);
  min-height: 260px;
  height: 100%;
  align-self: stretch;
}
.organiweb-service-block__visual .organiweb-service-icon {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--organiweb-blue-light);
  color: var(--organiweb-blue-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0;
}
.organiweb-service-block__visual .organiweb-service-icon svg {
  width: 48px;
  height: 48px;
}
.organiweb-service-block__label {
  font-family: var(--organiweb-font-title);
  font-size: var(--font-size-md);
  font-weight: 700;
  color: var(--organiweb-anthracite);
  text-align: center;
}
@media (max-width: 992px) {
  .organiweb-service-block {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }
  .organiweb-service-block__visual {
    min-height: 0;
    padding: var(--space-4);
  }
}
/* Badges CMS en grand (page services) */
.organiweb-service-cms--big {
  gap: 10px;
  margin: var(--space-3) 0;
}
.organiweb-service-cms--big a {
  font-size: var(--font-size-md);
  padding: 10px 20px;
}
.organiweb-breadcrumb {
  background: var(--organiweb-gray-100);
  border-bottom: 1px solid var(--organiweb-gray-300);
  padding: 12px 0;
  font-size: var(--font-size-xs);
  color: var(--organiweb-gray-700);
}
.organiweb-breadcrumb a { color: var(--organiweb-blue-dark); font-weight: 600; }
.organiweb-breadcrumb a:hover { text-decoration: underline; }
.organiweb-breadcrumb span[aria-current] { color: var(--organiweb-anthracite); font-weight: 600; }
.organiweb-breadcrumb .organiweb-container { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.organiweb-service-hero {
  padding: var(--space-6) 0 var(--space-5);
  background-image: url('hero-accueil.jpg');
  background-size: cover;
  background-position: center;
  position: relative;
  border-bottom: 1px solid var(--organiweb-gray-300);
  /* Compense le décalage de 24px du conteneur (margin-collapse du thème) */
  margin-top: -24px;
  /* Le header est en absolute/fixed par-dessus : le hero occupe tout le haut.
     Padding = hauteur du header Ascend (130px desktop, 64px mobile) + espace */
  padding-top: calc(130px + var(--space-5));
}
@media (max-width: 1080px) {
  .organiweb-service-hero { padding-top: calc(130px + var(--space-4)); }
}
@media (max-width: 640px) {
  .organiweb-service-hero { padding-top: 110px; }
  /* Sur mobile, le hero des pages projets ne doit PAS remonter sous le
     header (margin-top:-24px du piège 9) : sinon l'image du mockup se
     voit à travers le bas du header et donne l'impression que le logo
     déborde. */
  body.single-portfolio .organiweb-service-hero { margin-top: 0; }
}
/* Voile dégradé : transparent en haut (l'image se voit à travers le header
   translucide), blanc là où est le texte (lisibilité) et vers le bas */
.organiweb-service-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.40) 0%,
    rgba(255, 255, 255, 0.75) 180px,
    rgba(255, 255, 255, 0.88) 320px,
    rgba(255, 255, 255, 0.82) 100%);
}
.organiweb-service-hero .organiweb-container {
  position: relative;
  z-index: 1;
  max-width: 1350px;
}
.organiweb-service-hero h1 { font-size: var(--font-size-2xl); letter-spacing: -0.02em; line-height: 1.22; margin: 0 0 var(--space-3); }
.organiweb-service-hero .organiweb-hero-lead { font-size: var(--font-size-md); color: var(--organiweb-gray-700); max-width: 60ch; margin-bottom: var(--space-4); }
.organiweb-service-hero .organiweb-hero-note { display: block; margin-top: var(--space-2); font-size: var(--font-size-xs); color: var(--organiweb-gray-700); }

.organiweb-section { padding: var(--space-7) 0; }
.organiweb-section--alt { background: var(--organiweb-blue-light); }
.organiweb-section .organiweb-container { max-width: 1350px; }
.organiweb-section .organiweb-section-head p { max-width: 65ch; }
.organiweb-section .organiweb-value-list { margin-top: var(--space-3); }
.organiweb-section .organiweb-method-grid { margin-top: var(--space-3); }
.organiweb-section .organiweb-offers-grid { margin-top: var(--space-3); }
.organiweb-section .organiweb-cases-grid { margin-top: var(--space-3); max-width: 100%; }
/* Carte réalisation en pleine largeur (visuel gauche, texte droite) */
.organiweb-case-card--wide {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 0;
  max-width: 100%;
  grid-column: 1 / -1;
}
.organiweb-case-card--wide .organiweb-case-visual { aspect-ratio: auto; min-height: 280px; }
.organiweb-case-card--wide .organiweb-case-body { padding: var(--space-4); justify-content: center; gap: 10px; }
@media (max-width: 640px) {
  .organiweb-case-card--wide { grid-template-columns: 1fr; }
  .organiweb-case-card--wide .organiweb-case-visual { min-height: 180px; }
}
.organiweb-section .organiweb-faq-list { margin-top: var(--space-3); }
.organiweb-section .organiweb-cta-final { border-radius: var(--organiweb-radius); }

/* ============================================================
   PAGE CONTACT : coordonnées + formulaire CF7
   ============================================================ */
.organiweb-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--space-6);
  align-items: start;
}
.organiweb-contact-infos h3 {
  font-family: var(--organiweb-font-title);
  font-weight: 700;
  color: var(--organiweb-anthracite);
  margin-bottom: var(--space-3);
}
.organiweb-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.organiweb-contact-list li {
  font-size: var(--font-size-sm);
  color: var(--organiweb-gray-700);
  line-height: 1.5;
}
.organiweb-contact-list li a {
  color: var(--organiweb-blue-dark);
  font-weight: 600;
  text-decoration: none;
}
.organiweb-contact-list li a:hover { text-decoration: underline; }
.organiweb-contact-note {
  font-size: var(--font-size-sm);
  color: var(--organiweb-gray-700);
  margin-top: var(--space-4);
  max-width: 45ch;
}
.organiweb-contact-form {
  background: var(--organiweb-white);
  border: 1px solid var(--organiweb-gray-300);
  border-radius: 20px;
  padding: var(--space-5);
  box-shadow: 0 20px 50px rgba(22, 61, 115, .10);
}
.organiweb-contact-form .wpcf7-form label {
  display: block;
  font-size: var(--font-size-sm);
  font-weight: 600;
  color: var(--organiweb-anthracite);
  margin-bottom: 8px;
}
.organiweb-contact-form .wpcf7-form input,
.organiweb-contact-form .wpcf7-form textarea {
  width: 100%;
  border: 1px solid var(--organiweb-gray-300);
  border-radius: 10px;
  padding: 12px 14px;
  font-size: var(--font-size-sm);
  color: var(--organiweb-anthracite);
  background: var(--organiweb-white);
  margin-bottom: 16px;
  min-height: 44px;
}
.organiweb-contact-form .wpcf7-form textarea { min-height: 140px; }
.organiweb-contact-form .wpcf7-form input:focus,
.organiweb-contact-form .wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--organiweb-blue);
  box-shadow: 0 0 0 3px rgba(52, 120, 212, .15);
}
.organiweb-contact-form .wpcf7-form .wpcf7-submit {
  background: var(--organiweb-blue);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 14px 32px;
  font-size: var(--font-size-sm);
  font-weight: 700;
  cursor: pointer;
  transition: background .2s ease;
}
.organiweb-contact-form .wpcf7-form .wpcf7-submit:hover { background: var(--organiweb-blue-dark); }
.organiweb-contact-form .wpcf7-response-output {
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: var(--font-size-sm);
}
.organiweb-contact-form .wpcf7-not-valid-tip { color: #d32f2f; font-size: var(--font-size-xs); margin-top: -8px; margin-bottom: 12px; }
@media (max-width: 768px) {
  .organiweb-contact-grid { grid-template-columns: 1fr; }
}
/* ============================================================
   HEADER : largeur maximale 1350px (demande client 28/08) ===== */
#kad-header-menu .kad-header-menu-inner,
#kad-header-menu .container {
  max-width: 1350px !important;
  margin-left: auto;
  margin-right: auto;
}
/* ===== PORTFOLIO : largeur max 1350px (demande client) ===== */
body.page-template-template-portfolio-grid .container,
body.post-type-archive-portfolio .container {
  max-width: 1350px !important;
  margin-left: auto;
  margin-right: auto;
}

/* ===== PORTFOLIO : le HERO seul en pleine largeur (le contenu interne
   reste centré à 1350px) ===== */
/* Le parent .main a overflow:hidden par défaut qui rognait le hero à 1350px
   ET casse le position:sticky de la sidebar. On le passe à visible. */
body.page-template-template-portfolio-grid .main.col-md-12,
body.page-id-756 .main.col-md-12,
body.single-portfolio .main.col-md-12 {
  overflow: visible !important;
}
body.page-template-template-portfolio-grid .organiweb-service-hero,
body.page-id-756 .organiweb-service-hero,
body.single-portfolio .organiweb-service-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  border-left: none;
  border-right: none;
  border-radius: 0;
}
body.page-template-template-portfolio-grid .organiweb-service-hero .organiweb-container,
body.page-id-756 .organiweb-service-hero .organiweb-container,
body.single-portfolio .organiweb-service-hero .organiweb-container {
  max-width: 1350px;
  margin-left: auto;
  margin-right: auto;
}

/* Quand l'admin est connecté, la barre WordPress (32px) occupe le haut :
   le header fixed descend pour ne pas être recouvert (sinon logo coupé).
   Le theme Ascend ajoute alors un padding interne de 32px : on laisse le
   header s'étendre naturellement (130 + 32 = 162px) pour contenir le logo. */
body.admin-bar #kad-header-menu { top: 32px; }
/* Le theme Ascend pousse le contenu du header de 32px quand admin-bar :
   on compense sur l'outer pour que le logo reste aligné dans le header */
body.admin-bar #kad-header-menu .kad-header-menu-outer {
  margin-top: -32px;
}
@media (max-width: 782px) {
  body.admin-bar #kad-header-menu { top: 46px; }
  body.admin-bar #kad-header-menu .kad-header-menu-outer {
    margin-top: -46px;
  }
}

/* ===== HEADER STICKY BLANC TRANSLUCIDE + FLOU (verre dépoli) =====
   fixed = sort du flux (l'image du hero passe derrière) ET reste collé
   en haut au défilement (sticky), contrairement à absolute.
   Blanc translucide 0.85 + blur : effet verre dépoli, le contenu qui
   défile derrière apparaît flouté (demande client 29/08) */
#kad-header-menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
  /* Fond en dégradé : opaque en haut (lisibilité logo/menu), transparent en bas
     pour un fondu doux vers le hero/le contenu en dessous.
     PAS de backdrop-filter : il floutait l'image derrière sur toute la hauteur
     et créait un trait net à la fin du header. */
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.98) 0%,
    rgba(255, 255, 255, 0.92) 80%,
    rgba(255, 255, 255, 0) 100%);
  overflow: hidden;
}
.kad-header-menu-outer { background: transparent !important; }
/* Le logo ne doit JAMAIS dépasser la hauteur du header.
   Hauteur réduite (~90px dans un header de 130px) pour qu'il respire :
   plus de marge en haut et en bas (demande client 29/08) */
#kad-header-menu img,
#kad-header-menu .ascend-logo {
  max-height: 90px !important;
  width: auto !important;
}

/* ===== PAGES AVEC HERO ORGANIWEB : annuler les conteneurs du thème
   (padding 32px du container-fullwidth, marges Bootstrap, article) pour
   que l'image du hero touche les bords de l'écran ===== */
body:has(.organiweb-service-hero) .container.container-fullwidth {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body:has(.organiweb-service-hero) .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
body:has(.organiweb-service-hero) .main.col-md-12,
body:has(.organiweb-service-hero) .entry-content,
body:has(.organiweb-service-hero) article {
  padding: 0 !important;
  margin: 0 !important;
}

/* Les sections alternées (fond bleu clair) s'étendent en pleine largeur,
   leur contenu interne reste centré à 1350px */
body:has(.organiweb-service-hero) .organiweb-section--alt,
body.page-id-756 .organiweb-section--alt {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
body:has(.organiweb-service-hero) .organiweb-section--alt .organiweb-container,
body.page-id-756 .organiweb-section--alt .organiweb-container {
  max-width: 1350px;
  margin-left: auto;
  margin-right: auto;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--organiweb-font-body);
  color: var(--organiweb-anthracite);
  background: var(--organiweb-white);
  line-height: var(--line-height-body);
}
h1, h2, h3, .organiweb-logo__word {
  font-family: var(--organiweb-font-title) !important;
  line-height: var(--line-height-title);
  color: var(--organiweb-black);
  margin: 0;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.organiweb-container {
  max-width: var(--organiweb-container);
  margin: 0 auto;
  padding: 0 24px;
}
.organiweb-eyebrow {
  font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--organiweb-blue-dark); margin-bottom: 10px; display: block;
}
.organiweb-section-head { margin-bottom: var(--space-4); }
.organiweb-section-head h2 { font-size: var(--font-size-xl); letter-spacing: -0.01em; }
.organiweb-section-head p { color: var(--organiweb-gray-700); margin-top: 10px; }

/* ---------- Révélation au défilement ----------
   PATTERN ROBUSTE : le contenu est VISIBLE par défaut (zéro risque de page
   vide si JS désactivé/en échec). Seul body.organiweb-js (classe posée par
   script.js) active le masquage initial + animation. */
body.organiweb-js .organiweb-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
body.organiweb-js .organiweb-reveal--visible,
body.organiweb-js .organiweb-reveal.organiweb-reveal--visible { opacity: 1; transform: none; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(1) { transition-delay: 0s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(2) { transition-delay: .08s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(3) { transition-delay: .16s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(4) { transition-delay: .24s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(5) { transition-delay: .32s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(6) { transition-delay: .4s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(7) { transition-delay: .48s; }
body.organiweb-js .organiweb-reveal-group .organiweb-reveal:nth-child(8) { transition-delay: .56s; }
.organiweb-reveal--delayed { transition-delay: .15s; }
@media (prefers-reduced-motion: reduce) {
  body.organiweb-js .organiweb-reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- Skip link ---------- */
.organiweb-skip {
  position: absolute; left: -999px; top: 0;
  background: var(--organiweb-blue-darker); color: #fff; padding: 10px 16px;
  z-index: 999; border-radius: 0 0 6px 0;
}
.organiweb-skip:focus { left: 0; }

/* ================= HEADER ================= */
.organiweb-header { position: sticky; top: 0; z-index: 100; background: var(--organiweb-white); border-bottom: 1px solid var(--organiweb-gray-300); }
.organiweb-header__utility { background: var(--organiweb-blue-darker); color: #dbe6f6; font-size: var(--font-size-xs); height: var(--organiweb-utility-h); overflow: hidden; transition: height .25s ease, opacity .2s ease; }
.organiweb-header--compact .organiweb-header__utility { height: 0; opacity: 0; }
.organiweb-header__utility .organiweb-container { height: var(--organiweb-utility-h); display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
.organiweb-zone { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.organiweb-zone svg { flex: none; opacity: .8; }
.organiweb-utility-right { display: flex; align-items: center; gap: var(--space-4); }
.organiweb-status { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.organiweb-status__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--organiweb-green); box-shadow: 0 0 0 0 rgba(130,185,51,.6); animation: organiweb-pulse 2.4s ease-in-out infinite; }
@keyframes organiweb-pulse { 0% { box-shadow: 0 0 0 0 rgba(130,185,51,.55); } 70% { box-shadow: 0 0 0 6px rgba(130,185,51,0); } 100% { box-shadow: 0 0 0 0 rgba(130,185,51,0); } }
@media (prefers-reduced-motion: reduce) { .organiweb-status__dot { animation: none; } }
.organiweb-utility-phone { display: flex; align-items: center; gap: 6px; }
.organiweb-utility-phone:hover { color: #fff; }
.organiweb-header__main { height: var(--organiweb-header-h); transition: height .25s ease; }
.organiweb-header--compact .organiweb-header__main { height: 64px; }
.organiweb-header__main .organiweb-container { height: 100%; display: flex; align-items: center; gap: var(--space-4); }
.organiweb-logo { display: flex; align-items: center; gap: 10px; margin-right: auto; flex: none; }
.organiweb-logo__mark { width: 34px; height: 34px; border-radius: 9px; background: linear-gradient(135deg, var(--organiweb-blue), var(--organiweb-blue-dark)); display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--organiweb-font-title); font-weight: 800; font-size: 14px; flex: none; }
.organiweb-logo__word { font-size: 1.2813rem; font-weight: 800; letter-spacing: -0.01em; }
.organiweb-logo__word span { color: var(--organiweb-blue); }
.organiweb-nav { display: flex; align-items: center; gap: var(--space-4); }
.organiweb-nav__item { position: relative; font-weight: 600; font-size: var(--font-size-sm); color: var(--organiweb-anthracite); padding: 8px 2px; }
.organiweb-nav__item::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--organiweb-blue); transform: scaleX(0); transform-origin: left; transition: transform .18s ease; }
.organiweb-nav__item:hover::after, .organiweb-nav__item:focus-visible::after, .organiweb-nav__item[aria-expanded="true"]::after { transform: scaleX(1); }
.organiweb-nav__item:hover, .organiweb-nav__item:focus-visible { color: var(--organiweb-blue-dark); }
.organiweb-nav__caret { display: inline-block; margin-left: 4px; transition: transform .18s ease; }
.organiweb-nav__item[aria-expanded="true"] .organiweb-nav__caret { transform: rotate(180deg); }
.organiweb-dropdown { position: absolute; top: calc(100% + 12px); left: -14px; min-width: 210px; background: #fff; border: 1px solid var(--organiweb-gray-300); border-radius: var(--organiweb-radius); box-shadow: 0 16px 32px rgba(22, 61, 115, .12); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .16s ease, transform .16s ease; }
.organiweb-nav__item[aria-expanded="true"] .organiweb-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.organiweb-dropdown a { display: block; padding: 9px 10px; border-radius: 6px; font-size: var(--font-size-sm); font-weight: 500; }
.organiweb-dropdown a:hover, .organiweb-dropdown a:focus-visible { background: var(--organiweb-blue-light); color: var(--organiweb-blue-dark); }
.organiweb-header__actions { display: flex; align-items: center; gap: var(--space-2); flex: none; }
.organiweb-icon-btn { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid var(--organiweb-gray-300); color: var(--organiweb-anthracite); background: #fff; }
.organiweb-icon-btn:hover { border-color: var(--organiweb-blue); color: var(--organiweb-blue); }
.organiweb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 20px; border-radius: 999px; font-weight: 700; font-size: var(--font-size-sm); border: 1.5px solid transparent; white-space: nowrap; transition: background .15s ease, color .15s ease, border-color .15s ease, transform .1s ease; }
.organiweb-btn:active { transform: translateY(1px); }
.organiweb-btn--primary { background: var(--organiweb-blue); color: #fff; }
.organiweb-btn--primary:hover { background: var(--organiweb-blue-dark); }
.organiweb-btn--ghost { background: transparent; color: var(--organiweb-blue-dark); border-color: var(--organiweb-gray-300); }
.organiweb-btn--ghost:hover { border-color: var(--organiweb-blue); background: var(--organiweb-blue-light); }
.organiweb-btn--lg { padding: 14px 26px; font-size: var(--font-size-md); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--organiweb-blue-dark); outline-offset: 2px; border-radius: 4px; }
.organiweb-burger { display: none; width: 42px; height: 42px; border: 1px solid var(--organiweb-gray-300); border-radius: 8px; background: #fff; align-items: center; justify-content: center; flex: none; }
.organiweb-burger span, .organiweb-burger::before, .organiweb-burger::after { content: ""; display: block; width: 18px; height: 2px; background: var(--organiweb-anthracite); position: relative; }
.organiweb-burger span { margin: 4px 0; }
.organiweb-drawer-backdrop { position: fixed; inset: 0; background: rgba(22,61,115,.35); opacity: 0; visibility: hidden; transition: opacity .2s ease; z-index: 199; }
.organiweb-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(340px, 86vw); background: #fff; z-index: 200; transform: translateX(100%); transition: transform .25s ease; display: flex; flex-direction: column; box-shadow: -12px 0 32px rgba(0,0,0,.12); }
body.organiweb-drawer-open .organiweb-drawer { transform: translateX(0); }
body.organiweb-drawer-open .organiweb-drawer-backdrop { opacity: 1; visibility: visible; }
body.organiweb-drawer-open { overflow: hidden; }
.organiweb-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 18px; border-bottom: 1px solid var(--organiweb-gray-300); }
.organiweb-drawer__close { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--organiweb-gray-300); background: #fff; }
.organiweb-drawer__body { padding: 18px; overflow-y: auto; flex: 1; }
.organiweb-drawer__nav a, .organiweb-drawer__accordion summary { display: block; padding: 13px 4px; font-weight: 700; font-size: var(--font-size-md); border-bottom: 1px solid var(--organiweb-gray-100); cursor: pointer; }
.organiweb-drawer__accordion[open] summary { color: var(--organiweb-blue-dark); }
.organiweb-drawer__accordion a { font-weight: 500; font-size: var(--font-size-sm); padding: 10px 4px 10px 14px; border: none; }
.organiweb-drawer__cta { display: flex; flex-direction: column; gap: 10px; margin-top: var(--space-3); }
.organiweb-drawer__cta .organiweb-btn { width: 100%; }
.organiweb-drawer__foot { padding: 16px 18px; border-top: 1px solid var(--organiweb-gray-300); font-size: var(--font-size-xs); color: var(--organiweb-gray-700); display: flex; flex-direction: column; gap: 8px; }

/* ================= HERO ================= */
.organiweb-hero {
  /* padding-top = hauteur du header Ascend (130px) + espace, pour que le
     contenu (badge, H1) ne passe JAMAIS sous le header fixed */
  padding: calc(130px + var(--space-5)) 0 var(--space-6);
  background: var(--organiweb-white);
  position: relative;
  overflow: hidden;
}
.organiweb-hero::before {
  content: "";
  position: absolute; top: -220px; right: -160px;
  width: 620px; height: 620px; border-radius: 50%;
  background: radial-gradient(circle, rgba(52,120,212,.14), rgba(52,120,212,0) 70%);
  pointer-events: none;
}
.organiweb-hero::after {
  content: "";
  position: absolute; bottom: -260px; left: -200px;
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle, rgba(130,185,51,.10), rgba(130,185,51,0) 70%);
  pointer-events: none;
}
.organiweb-hero .organiweb-container { position: relative; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: var(--space-6); align-items: center; }
.organiweb-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--organiweb-blue-light); color: var(--organiweb-blue-dark);
  font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .03em;
  padding: 7px 14px; border-radius: 999px; margin-bottom: var(--space-3);
}
.organiweb-hero-eyebrow .organiweb-status__dot { background: var(--organiweb-green); }
.organiweb-hero h1 {
  font-size: var(--font-size-hero);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.organiweb-hero-highlight {
  color: var(--organiweb-blue);
  background-image: linear-gradient(var(--organiweb-blue-light), var(--organiweb-blue-light));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 38%;
  transition: background-size 1s cubic-bezier(.2,.8,.2,1) .3s;
}
.organiweb-hero.organiweb-reveal--visible .organiweb-hero-highlight { background-size: 100% 38%; }
.organiweb-hero p.organiweb-hero-lead { color: var(--organiweb-gray-700); font-size: var(--font-size-md); max-width: 52ch; margin: var(--space-3) 0 var(--space-4); }
.organiweb-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.organiweb-hero-note { display: block; margin-top: 12px; font-size: var(--font-size-xs); color: var(--organiweb-gray-700); }

.organiweb-impact {
  background: #fff;
  border: 1px solid var(--organiweb-gray-300);
  border-radius: 20px;
  padding: var(--space-4);
  box-shadow: 0 24px 60px rgba(22,61,115,.10);
}

/* Animation répétitive : la carte flotte nettement + ombre qui respire.
   Ne démarre qu'une fois visible (reveal au scroll) ; désactivée si
   prefers-reduced-motion. Amplitude marquée (±14px sur 5s). */
.organiweb-impact.organiweb-reveal--visible {
  animation: organiweb-impact-float 5s ease-in-out infinite;
}
@keyframes organiweb-impact-float {
  0%, 100% {
    transform: translateY(0);
    box-shadow: 0 24px 60px rgba(22,61,115,.10);
  }
  50% {
    transform: translateY(-14px);
    box-shadow: 0 40px 80px rgba(22,61,115,.22);
  }
}
@media (prefers-reduced-motion: reduce) {
  .organiweb-impact.organiweb-reveal--visible {
    animation: none;
  }
}
.organiweb-impact-ring-wrap { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-5); padding-bottom: var(--space-4); border-bottom: 1px solid var(--organiweb-gray-100); }
.organiweb-impact-ring { position: relative; width: 108px; height: 108px; flex: none; }
.organiweb-impact-ring svg { transform: rotate(-90deg); }
.organiweb-impact-ring circle { fill: none; stroke-width: 8; }
.organiweb-impact-ring .organiweb-ring-track { stroke: var(--organiweb-gray-100); }
.organiweb-impact-ring .organiweb-ring-fill {
  stroke: var(--organiweb-blue);
  stroke-linecap: round;
  stroke-dasharray: 289;
  stroke-dashoffset: 289;
  transition: stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1) .2s;
}
.organiweb-impact.organiweb-reveal--visible .organiweb-ring-fill { stroke-dashoffset: 40; }
.organiweb-impact-ring-num {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--organiweb-font-title); font-weight: 800; font-size: 1.5rem; color: var(--organiweb-black);
}
.organiweb-impact-ring-label strong { display: block; font-family: var(--organiweb-font-title); font-size: var(--font-size-md); }
.organiweb-impact-ring-label span { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); }
.organiweb-impact-mini { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); }
.organiweb-impact-mini div strong { display: block; font-family: var(--organiweb-font-title); font-size: var(--font-size-lg); color: var(--organiweb-blue-dark); }
.organiweb-impact-mini div span { font-size: 14px; color: var(--organiweb-gray-700); }
.organiweb-impact-footnote { font-size: 14px; color: var(--organiweb-gray-700); font-style: italic; margin-top: var(--space-2); }

/* ================= BANDEAU DE CONFIANCE ================= */
.organiweb-trust { background: var(--organiweb-gray-100); padding: var(--space-5) 0; border-top: 1px solid var(--organiweb-gray-300); border-bottom: 1px solid var(--organiweb-gray-300); }
.organiweb-trust .organiweb-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); text-align: center; }
.organiweb-trust-item strong { display: block; font-family: var(--organiweb-font-title); font-weight: 800; font-size: clamp(1.7813rem, 3.1vw, 2.5625rem); color: var(--organiweb-blue-dark); letter-spacing: -0.01em; margin-bottom: 16px; }
.organiweb-trust-item span { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--organiweb-gray-700); }
.organiweb-trust-footnote { text-align: center; font-size: 14px; color: var(--organiweb-gray-700); margin-top: var(--space-3); font-style: italic; }

/* ================= MANIFESTE (bloc de contraste ponctuel) ================= */
.organiweb-manifesto {
  background: var(--organiweb-blue-darker);
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 42px 42px;
  color: #fff;
  padding: var(--space-7) 0;
  text-align: center;
}
.organiweb-manifesto .organiweb-container { max-width: 880px; }
.organiweb-manifesto .organiweb-status { justify-content: center; display: inline-flex; margin-bottom: var(--space-3); color: #b9cbe6; font-size: var(--font-size-xs); }
.organiweb-manifesto p.organiweb-manifesto-lead {
  font-family: var(--organiweb-font-title);
  font-weight: 700;
  font-size: clamp(1.5438rem, 3.28vw, 2.4375rem);
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.organiweb-manifesto p.organiweb-manifesto-lead span { color: #8fc6ff; }
.organiweb-manifesto p.organiweb-manifesto-sub { color: #b9cbe6; max-width: 56ch; margin: var(--space-3) auto 0; font-size: var(--font-size-sm); }

/* ================= PRESTATIONS ================= */
.organiweb-services { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.organiweb-service-card { position: relative; overflow: hidden; border: 1px solid var(--organiweb-gray-300); border-radius: var(--organiweb-radius); padding: var(--space-3); transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; height: 100%; display: flex; flex-direction: column; }
.organiweb-service-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--organiweb-blue), var(--organiweb-green)); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.organiweb-service-card:hover, .organiweb-service-card:focus-within { border-color: var(--organiweb-blue); box-shadow: 0 20px 40px rgba(22,61,115,.14); transform: translateY(-4px); }
.organiweb-service-card:hover::before, .organiweb-service-card:focus-within::before { transform: scaleX(1); }
.organiweb-service-icon { width: 42px; height: 42px; border-radius: 10px; background: var(--organiweb-blue-light); color: var(--organiweb-blue-dark); display: flex; align-items: center; justify-content: center; margin-bottom: var(--space-2); transition: background .2s ease, transform .2s ease; }
.organiweb-service-card:hover .organiweb-service-icon { transform: scale(1.08); }
.organiweb-service-card h3 { font-size: var(--font-size-md); margin-bottom: 6px; }
.organiweb-service-card p { font-size: var(--font-size-sm); color: var(--organiweb-gray-700); flex: 1; margin: 0 0 var(--space-2); }
.organiweb-service-card a { font-size: var(--font-size-xs); font-weight: 700; color: var(--organiweb-blue-dark); }
.organiweb-service-card a:hover { text-decoration: underline; }

/* ================= PROPOSITION DE VALEUR ================= */
.organiweb-value { padding: var(--space-7) 0; background: var(--organiweb-blue-light); }
.organiweb-value .organiweb-container { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-6); align-items: center; }
.organiweb-value-visual { background: #fff; border: 1px solid #d6e6f9; border-radius: 16px; padding: var(--space-4); }
.organiweb-value-visual .organiweb-status { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); margin-bottom: var(--space-2); }
.organiweb-value-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--organiweb-gray-100); font-size: var(--font-size-sm); }
.organiweb-value-row:last-child { border-bottom: none; }
.organiweb-value-row span:last-child { font-weight: 700; color: var(--organiweb-blue-dark); }
.organiweb-value-list { list-style: none; margin: var(--space-3) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.organiweb-value-list li { display: flex; gap: 10px; font-size: var(--font-size-sm); }
.organiweb-value-list li::before { content: "✓"; color: var(--organiweb-green-dark); font-weight: 700; flex: none; }

/* ================= OFFRES (aperçu) ================= */
.organiweb-offers { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-offers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); align-items: stretch; }
.organiweb-offer-card { position: relative; border: 1px solid var(--organiweb-gray-300); border-radius: 16px; padding: var(--space-4); display: flex; flex-direction: column; background: #fff; }
.organiweb-offer-card--featured { border-color: var(--organiweb-green); box-shadow: 0 20px 44px rgba(130,185,51,.14); }
.organiweb-offer-badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--organiweb-green); color: #fff; font-size: 14px; font-weight: 700; padding: 4px 12px; border-radius: 999px; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.organiweb-offer-name { font-size: var(--font-size-md); margin-bottom: 4px; }
.organiweb-offer-target { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); margin-bottom: var(--space-3); min-height: 2.6em; }
.organiweb-offer-price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 2px; flex-wrap: wrap; }
.organiweb-offer-price .organiweb-offer-prefix { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); }
.organiweb-offer-price strong { font-family: var(--organiweb-font-title); font-size: var(--font-size-lg); font-weight: 800; color: var(--organiweb-blue-dark); }
.organiweb-offer-price .organiweb-offer-tbc { font-size: var(--font-size-xs); font-style: italic; color: var(--organiweb-gray-700); background: var(--organiweb-gray-100); padding: 2px 8px; border-radius: 6px; }
.organiweb-offer-freq { font-size: 14px; color: var(--organiweb-gray-700); margin-bottom: var(--space-3); }
.organiweb-offer-list { list-style: none; margin: 0 0 var(--space-3); padding: 0; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.organiweb-offer-list li { font-size: var(--font-size-sm); display: flex; gap: 8px; }
.organiweb-offer-list li::before { content: "✓"; color: var(--organiweb-green-dark); font-weight: 700; flex: none; }
.organiweb-offer-engagement { font-size: 14px; color: var(--organiweb-gray-700); margin-bottom: var(--space-3); padding-top: var(--space-2); border-top: 1px solid var(--organiweb-gray-100); }
.organiweb-offer-card .organiweb-btn { width: 100%; }
.organiweb-offers-footnote { text-align: center; font-size: 14px; color: var(--organiweb-gray-700); margin-top: var(--space-4); font-style: italic; }
.organiweb-offers-more { text-align: center; margin-top: var(--space-3); }

/* ================= RÉALISATIONS (aperçu) ================= */
.organiweb-cases { padding: var(--space-7) 0; background: var(--organiweb-gray-100); }
.organiweb-cases-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.organiweb-case-card { background: #fff; border: 1px solid var(--organiweb-gray-300); border-radius: var(--organiweb-radius); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s ease, transform .2s ease; }
.organiweb-case-card:hover, .organiweb-case-card:focus-within { box-shadow: 0 20px 40px rgba(22,61,115,.12); transform: translateY(-4px); }
.organiweb-case-visual { aspect-ratio: 16 / 10; background: repeating-linear-gradient(135deg, var(--organiweb-gray-100), var(--organiweb-gray-100) 10px, #eef1f4 10px, #eef1f4 20px); display: flex; flex-direction: column; overflow: hidden; }
.organiweb-case-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.organiweb-case-visual-dots { display: flex; gap: 5px; padding: 10px 12px; }
.organiweb-case-visual-dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--organiweb-gray-300); }
.organiweb-case-visual-label { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; font-size: 14px; color: var(--organiweb-gray-700); padding: 0 16px 16px; }
.organiweb-case-visual-label code { font-size: 14px; background: #fff; border: 1px solid var(--organiweb-gray-300); padding: 2px 6px; border-radius: 4px; color: var(--organiweb-blue-dark); }
.organiweb-case-body { padding: var(--space-3); display: flex; flex-direction: column; gap: 6px; flex: 1; }
.organiweb-case-status { align-self: flex-start; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; }
.organiweb-case-status--done { background: var(--organiweb-green-light); color: var(--organiweb-green-dark); }
.organiweb-case-status--progress { background: var(--organiweb-blue-light); color: var(--organiweb-blue-dark); }
.organiweb-case-sector { font-size: 14px; color: var(--organiweb-gray-700); text-transform: uppercase; letter-spacing: .04em; }
.organiweb-case-card h3 { font-size: var(--font-size-md); }
.organiweb-case-desc { font-size: var(--font-size-sm); color: var(--organiweb-gray-700); flex: 1; }
.organiweb-case-link { font-size: var(--font-size-xs); font-weight: 700; color: var(--organiweb-blue-dark); margin-top: 4px; }
.organiweb-case-link:hover { text-decoration: underline; }
.organiweb-cases-more { text-align: center; margin-top: var(--space-6); margin-bottom: var(--space-5); }

/* ================= IA ================= */
.organiweb-ai { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-ai .organiweb-container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: center; }
.organiweb-ai-card { background: var(--organiweb-gray-100); border-radius: 16px; padding: var(--space-4); }
.organiweb-ai-card h3 { font-size: var(--font-size-sm); margin-bottom: 4px; }
.organiweb-ai-card p { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); margin: 0; }
.organiweb-ai-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); }
.organiweb-ai-grid .organiweb-ai-card { grid-column: span 1; }
.organiweb-ai-disclaimer { margin-top: var(--space-3); font-size: var(--font-size-xs); color: var(--organiweb-gray-700); border-left: 3px solid var(--organiweb-green); padding-left: 12px; }

/* ================= METHODE ================= */
.organiweb-method { padding: var(--space-7) 0; background: var(--organiweb-gray-100); }
.organiweb-method-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--space-2); counter-reset: organiweb-step; }
.organiweb-method-step { background: #fff; border: 1px solid var(--organiweb-gray-300); border-radius: var(--organiweb-radius); padding: var(--space-3) var(--space-2); position: relative; }
.organiweb-method-step::before {
  counter-increment: organiweb-step; content: counter(organiweb-step);
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--organiweb-blue); color: #fff; font-family: var(--organiweb-font-title); font-weight: 800; font-size: var(--font-size-xs);
  margin-bottom: var(--space-2);
}
.organiweb-method-step h3 { font-size: var(--font-size-sm); margin-bottom: 4px; }
.organiweb-method-step p { font-size: 20px; color: var(--organiweb-gray-700); margin: 0; }

/* ================= SECTEURS ACCOMPAGNÉS (aperçu) ================= */
.organiweb-sectors { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-sectors-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-4); border-top: 1px solid var(--organiweb-gray-300); }
.organiweb-sector-row { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 4px; border-bottom: 1px solid var(--organiweb-gray-300); text-decoration: none; color: inherit; transition: background .15s ease, padding-left .15s ease; border-radius: 6px; }
.organiweb-sector-row:hover, .organiweb-sector-row:focus-visible { background: var(--organiweb-blue-light); padding-left: 12px; }
.organiweb-sector-icon { width: 44px; height: 44px; border-radius: 50%; background: var(--organiweb-blue-light); color: var(--organiweb-blue-dark); display: flex; align-items: center; justify-content: center; flex: none; font-size: 20px; transition: background .15s ease; }
.organiweb-sector-row:hover .organiweb-sector-icon { background: #fff; }
.organiweb-sector-text { flex: 1; min-width: 0; }
.organiweb-sector-text strong { display: block; font-family: var(--organiweb-font-title); font-size: var(--font-size-md); }
.organiweb-sector-text span { font-size: var(--font-size-xs); color: var(--organiweb-gray-700); }
.organiweb-sector-arrow { flex: none; color: var(--organiweb-blue-dark); font-weight: 700; }

/* ================= TÉMOIGNAGES (en attente de vrais avis) ================= */
.organiweb-testimonials { padding: var(--space-7) 0; background: var(--organiweb-blue-light); }
.organiweb-testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.organiweb-testimonial-card { background: #fff; border: 1px dashed var(--organiweb-gray-300); border-radius: var(--organiweb-radius); padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); }
.organiweb-testimonial-pending { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--organiweb-blue-dark); background: var(--organiweb-blue-light); padding: 3px 9px; border-radius: 999px; align-self: flex-start; }
.organiweb-testimonial-quote-mark { font-family: var(--organiweb-font-title); font-size: 2.5rem; line-height: 1; color: var(--organiweb-blue); opacity: .35; }
.organiweb-testimonial-text { font-size: var(--font-size-sm); color: var(--organiweb-gray-700); font-style: italic; flex: 1; }
.organiweb-testimonial-person { display: flex; align-items: center; gap: 10px; padding-top: var(--space-2); border-top: 1px solid var(--organiweb-gray-100); }
.organiweb-testimonial-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--organiweb-gray-100); color: var(--organiweb-gray-700); display: flex; align-items: center; justify-content: center; font-family: var(--organiweb-font-title); font-weight: 800; font-size: 20px; flex: none; }
.organiweb-testimonial-person strong { display: block; font-size: var(--font-size-sm); }
.organiweb-testimonial-person span { font-size: 14px; color: var(--organiweb-gray-700); }
.organiweb-testimonials-footnote { text-align: center; font-size: 14px; color: var(--organiweb-gray-700); margin-top: var(--space-4); font-style: italic; }

/* ================= À PROPOS / FONDATEUR ================= */
.organiweb-founder { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-founder .organiweb-container { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: var(--space-6); align-items: center; }
.organiweb-founder-photo { position: relative; }
.organiweb-founder-photo-frame { aspect-ratio: 4 / 5; border-radius: 20px; background: repeating-linear-gradient(135deg, var(--organiweb-gray-100), var(--organiweb-gray-100) 10px, #eef1f4 10px, #eef1f4 20px); display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid var(--organiweb-gray-300); }
.organiweb-founder-photo-label { font-size: 14px; color: var(--organiweb-gray-700); text-align: center; padding: 16px; }
.organiweb-founder-photo-label code { display: block; margin-top: 6px; font-size: 14px; background: #fff; border: 1px solid var(--organiweb-gray-300); padding: 2px 8px; border-radius: 4px; color: var(--organiweb-blue-dark); }
.organiweb-founder-photo-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.organiweb-founder-badge { position: absolute; bottom: -14px; left: 20px; background: #fff; border: 1px solid var(--organiweb-gray-300); border-radius: 999px; padding: 8px 16px; box-shadow: 0 12px 28px rgba(22,61,115,.12); font-size: var(--font-size-xs); font-weight: 700; color: var(--organiweb-blue-dark); }
.organiweb-founder-name { font-size: var(--font-size-xl); }
.organiweb-founder-role { font-size: var(--font-size-sm); color: var(--organiweb-blue-dark); font-weight: 700; margin-top: 4px; margin-bottom: var(--space-3); }
.organiweb-founder-text { color: var(--organiweb-gray-700); margin-bottom: var(--space-3); }
.organiweb-founder-quote { border-left: 3px solid var(--organiweb-green); padding-left: var(--space-3); font-style: italic; font-size: var(--font-size-md); color: var(--organiweb-black); margin: 0 0 var(--space-4); font-family: var(--organiweb-font-title); font-weight: 600; }

/* ================= AUDIT GRATUIT ================= */
.organiweb-audit { padding: var(--space-7) 0; background: var(--organiweb-blue-light); }
.organiweb-audit .organiweb-container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); align-items: start; }
.organiweb-audit-scope { list-style: none; margin: var(--space-3) 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.organiweb-audit-scope li { display: flex; gap: 10px; font-size: var(--font-size-sm); }
.organiweb-audit-scope li::before { content: "✓"; color: var(--organiweb-green-dark); font-weight: 700; flex: none; }
.organiweb-audit-note { margin-top: var(--space-4); font-size: var(--font-size-xs); color: var(--organiweb-gray-700); background: #fff; border: 1px solid #d6e6f9; border-radius: var(--organiweb-radius); padding: var(--space-3); }
.organiweb-audit-form { background: #fff; border-radius: 16px; padding: var(--space-4); box-shadow: 0 24px 60px rgba(22,61,115,.08); }
.organiweb-audit-form h3 { font-size: var(--font-size-md); margin-bottom: var(--space-3); }
.organiweb-form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: var(--space-3); }
.organiweb-form-row label { font-size: var(--font-size-xs); font-weight: 700; color: var(--organiweb-anthracite); }
.organiweb-form-row label span { font-weight: 400; color: var(--organiweb-gray-700); }
.organiweb-form-row input, .organiweb-form-row textarea { padding: 10px 12px; border-radius: 8px; border: 1px solid var(--organiweb-gray-300); font-size: var(--font-size-sm); font-family: var(--organiweb-font-body); }
.organiweb-form-row input:focus, .organiweb-form-row textarea:focus { outline: 2px solid var(--organiweb-blue-dark); outline-offset: 1px; border-color: var(--organiweb-blue); }
.organiweb-form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.organiweb-form-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--organiweb-gray-700); margin-bottom: var(--space-3); }
.organiweb-form-consent input { margin-top: 3px; flex: none; }
.organiweb-form-microcopy { font-size: 14px; color: var(--organiweb-gray-700); margin-top: var(--space-2); text-align: center; }

/* ================= FAQ ================= */
.organiweb-faq { padding: var(--space-7) 0; background: var(--organiweb-white); }
.organiweb-faq-list { border-top: 1px solid var(--organiweb-gray-300); max-width: 820px; margin: 0 auto; }
.organiweb-faq-item { border-bottom: 1px solid var(--organiweb-gray-300); }
.organiweb-faq-item summary { list-style: none; cursor: pointer; padding: var(--space-3) 4px; font-weight: 700; font-family: var(--organiweb-font-title); font-size: var(--font-size-md); display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); }
.organiweb-faq-item summary::-webkit-details-marker { display: none; }
.organiweb-faq-item summary::after { content: "+"; font-size: 1.5rem; color: var(--organiweb-blue-dark); flex: none; transition: transform .2s ease; font-weight: 400; }
.organiweb-faq-item[open] summary::after { transform: rotate(45deg); }
.organiweb-faq-item p { padding: 0 4px var(--space-3); color: var(--organiweb-gray-700); font-size: var(--font-size-sm); margin: 0; max-width: 70ch; }

/* ================= CTA FINAL ================= */
.organiweb-cta-final { background: var(--organiweb-blue-darker); background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 42px 42px; color: #fff; padding: var(--space-6) 0; text-align: center; }
.organiweb-cta-final h2 { color: #fff; font-size: var(--font-size-xl); }
.organiweb-cta-final p { color: #b9cbe6; max-width: 56ch; margin: 12px auto var(--space-4) !important; text-align: center; }
.organiweb-cta-final-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.organiweb-cta-final .organiweb-btn--ghost { color: #fff; border-color: rgba(255,255,255,.35); }
.organiweb-cta-final .organiweb-btn--ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; }

/* ================= FOOTER ================= */
.organiweb-footer { background: var(--organiweb-blue-darker); color: #dbe6f6; }
.organiweb-footer a { color: #dbe6f6; }
.organiweb-footer a:hover { color: #fff; }
.organiweb-footer__top { padding: var(--space-6) 0 var(--space-5); display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-5); border-bottom: 1px solid rgba(255,255,255,.12); }
.organiweb-footer__brand .organiweb-logo__word { color: #fff; }
.organiweb-footer__brand p { max-width: 40ch; color: #b9cbe6; margin-top: var(--space-2); font-size: var(--font-size-sm); }
.organiweb-footer__contact { list-style: none; padding: 0; margin: var(--space-3) 0 0; display: flex; flex-direction: column; gap: 8px; font-size: var(--font-size-sm); }
.organiweb-footer__contact li { display: flex; align-items: center; gap: 8px; }
.organiweb-next { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--organiweb-radius); padding: var(--space-3); }
.organiweb-next h3 { color: #fff; font-size: var(--font-size-md); margin-bottom: 4px; }
.organiweb-next p { margin: 0 0 var(--space-2); font-size: var(--font-size-xs); color: #b9cbe6; }
.organiweb-next__list { display: flex; flex-direction: column; gap: 8px; }
.organiweb-next .organiweb-btn--ghost { background: transparent; border-color: rgba(255,255,255,.35); color: #fff; justify-content: space-between; }
.organiweb-next .organiweb-btn--ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.organiweb-next .organiweb-btn--primary { justify-content: space-between; }
.organiweb-footer__grid { padding: var(--space-5) 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); border-bottom: 1px solid rgba(255,255,255,.12); }
.organiweb-footer__grid h4 { color: #fff; font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: .06em; margin-bottom: var(--space-2); font-family: var(--organiweb-font-title); }
.organiweb-footer__grid ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.organiweb-footer__grid a { font-size: var(--font-size-sm); }
.organiweb-newsletter-form { display: flex; gap: 8px; margin-top: 4px; }
.organiweb-newsletter-form input { flex: 1; min-width: 0; padding: 10px 12px; border-radius: 6px; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; font-size: var(--font-size-xs); }
.organiweb-newsletter-form input::placeholder { color: #9fb6d6; }
.organiweb-newsletter-form button { padding: 10px 14px; border-radius: 6px; border: none; background: var(--organiweb-green); color: #16330a; font-weight: 700; font-size: var(--font-size-xs); }
.organiweb-newsletter-form button:hover { background: var(--organiweb-green-dark); color: #fff; }
.organiweb-newsletter-note { font-size: 14px; color: #9fb6d6; margin-top: 6px; }
.organiweb-footer__bottom { padding: var(--space-3) 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; font-size: var(--font-size-xs); color: #9fb6d6; }
.organiweb-footer__status { display: flex; align-items: center; gap: 8px; }
.organiweb-footer__status .organiweb-status__dot { background: var(--organiweb-green); }
.organiweb-footer__legal { display: flex; gap: 16px; flex-wrap: wrap; }
.organiweb-footer__social { display: flex; gap: 10px; }
.organiweb-footer__social a { width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; }
.organiweb-footer__social a:hover { border-color: #fff; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1080px) {
  .organiweb-nav, .organiweb-header__actions .organiweb-icon-btn { display: none; }
  .organiweb-burger { display: flex; }
  .organiweb-header__actions .organiweb-btn--primary { padding: 9px 14px; font-size: var(--font-size-xs); }
  .organiweb-hero .organiweb-container { grid-template-columns: 1fr; }
  .organiweb-hero::before, .organiweb-hero::after { width: 340px; height: 340px; }
  .organiweb-services-grid { grid-template-columns: repeat(2, 1fr); }
  .organiweb-offers-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
  .organiweb-cases-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
  .organiweb-sectors-list { grid-template-columns: 1fr; }
  .organiweb-testimonials-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
  .organiweb-value .organiweb-container, .organiweb-ai .organiweb-container, .organiweb-founder .organiweb-container { grid-template-columns: 1fr; }
  .organiweb-founder-photo { max-width: 320px; margin: 0 auto var(--space-4); }
  .organiweb-audit .organiweb-container { grid-template-columns: 1fr; }
  .organiweb-form-grid-2 { grid-template-columns: 1fr; }
  .organiweb-method-grid { grid-template-columns: repeat(3, 1fr); }
  .organiweb-footer__top { grid-template-columns: 1fr; }
  .organiweb-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .organiweb-header__utility { display: none; }
  .organiweb-header__main { height: 64px; }
  .organiweb-trust .organiweb-container { grid-template-columns: repeat(2, 1fr); }
  .organiweb-services-grid { grid-template-columns: 1fr; }
  .organiweb-method-grid { grid-template-columns: 1fr 1fr; }
  .organiweb-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .organiweb-footer__bottom { flex-direction: column; align-items: flex-start; }
  .organiweb-hero h1 { font-size: var(--font-size-xl); }
}

/* ===== Portfolio : images rondes ===== */
body.page-template-template-portfolio-grid .portfolio-loop-image-container,
body.post-type-archive-portfolio .portfolio-loop-image-container {
  border-radius: 50%;
  overflow: hidden;
}
body.page-template-template-portfolio-grid .portfolio-loop-image-container .portfolio-img-hover-inner,
body.post-type-archive-portfolio .portfolio-loop-image-container .portfolio-img-hover-inner {
  border-radius: 50%;
  overflow: hidden;
}
body.page-template-template-portfolio-grid .portfolio-loop-image-container .portfolio-hover-item,
body.post-type-archive-portfolio .portfolio-loop-image-container .portfolio-hover-item {
  border-radius: 50%;
  overflow: hidden;
}
/* Cadre de survol : suivre la forme ronde (au lieu du rectangle en pointillés) */
body.page-template-template-portfolio-grid .portfolio-loop-image-container .portfolio-hover-item .portfolio-overlay-border,
body.post-type-archive-portfolio .portfolio-loop-image-container .portfolio-hover-item .portfolio-overlay-border {
  border-radius: 50%;
}
body.page-template-template-portfolio-grid .portfolio-loop-image-container .portfolio-hover-item:hover .portfolio-overlay-border,
body.post-type-archive-portfolio .portfolio-loop-image-container .portfolio-hover-item:hover .portfolio-overlay-border {
  top: 12px; bottom: 12px; left: 12px; right: 12px;
}

/* ===== Hero portfolio : image de fond spécifique (ne touche pas aux pages services) ===== */
body.page-template-template-portfolio-grid .organiweb-service-hero,
body.single-portfolio .organiweb-service-hero {
  background-image: url('hero-portfolio.jpg');
}

/* ===== Hero ACCUEIL : image de fond dédiée (mockup multi-appareils) ===== */
body.home .organiweb-service-hero {
  background-image: url('hero-accueil.jpg');
  background-size: cover;
  background-position: center;
}

/* ===== Barre de filtres portfolio (#options) : aérer avec du padding ===== */
body.page-template-template-portfolio-grid #options.kt-filter-options {
  padding: 20px 0;
}

/* ===== Hero portfolio : fondu vers le contenu (pas de séparation tranchée) ===== */
body.page-template-template-portfolio-grid .organiweb-service-hero,
body.single-portfolio .organiweb-service-hero {
  border-bottom: none;
}
body.page-template-template-portfolio-grid .organiweb-service-hero::before,
body.single-portfolio .organiweb-service-hero::before {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.40) 0%,
    rgba(255, 255, 255, 0.75) 180px,
    rgba(255, 255, 255, 0.88) 320px,
    rgba(255, 255, 255, 1) 100%);
}

/* ===== Hero ACCUEIL : fondu vers le contenu (identique au portfolio) ===== */
body.home .organiweb-service-hero {
  border-bottom: none;
}
body.home .organiweb-service-hero::before {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.40) 0%,
    rgba(255, 255, 255, 0.75) 180px,
    rgba(255, 255, 255, 0.88) 320px,
    rgba(255, 255, 255, 1) 100%);
}

/* ===== Hero NOS SERVICES (page-id-756) : fondu vers le contenu ===== */
body.page-id-756 .organiweb-service-hero {
  border-bottom: none;
}
body.page-id-756 .organiweb-service-hero::before {
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0.40) 0%,
    rgba(255, 255, 255, 0.75) 180px,
    rgba(255, 255, 255, 0.88) 320px,
    rgba(255, 255, 255, 1) 100%);
}

/* ===== Hero ACCUEIL : mise en page 2 colonnes (texte + carte impact) ===== */
body.home .organiweb-hero-split {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: var(--space-6);
  align-items: center;
}
body.home .organiweb-hero-split__text {
  min-width: 0;
}
@media (max-width: 992px) {
  body.home .organiweb-hero-split {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }
}

/* ============================================================
   FICHES PROJET (single-portfolio) - présentation UX optimisée
   Layout 'above' : image pleine largeur au-dessus, texte dessous.
   ============================================================ */

/* Image du projet : pleine largeur, sans marges blanches latérales,
   coins arrondis, ombre douce pour la détacher du fond. */
body.single-portfolio .portfolio-project .postfeat,
body.single-portfolio .portfolio-project .post-single-img {
  width: 100%;
  margin: 0 0 28px;
}
body.single-portfolio .portfolio-project .postfeat img,
body.single-portfolio .portfolio-project .post-single-img img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(79, 80, 83, 0.14);
  display: block;
}

/* Bandeau méta (Client / Secteur / Localisation) : carte claire
   qui aère la transition image → texte. */
body.single-portfolio .portfolio-content .entry-content > p:first-child {
  background: #f4f6f8;
  border: 1px solid #d9dde3;
  border-left: 4px solid #3478d4;
  border-radius: 8px;
  padding: 18px 22px;
  margin: 0 0 32px;
  font-size: 0.95rem;
  line-height: 1.7;
}

/* ============================================================
   FICHES PROJET : mise en page 2 colonnes (contenu + sidebar)
   ============================================================ */
/* Le thème parent met body { overflow-x:hidden } qui CRÉE un conteneur
   de scroll et casse position:sticky de la sidebar. On passe à
   overflow-x:clip (ne crée pas de scroll container → sticky OK). */
body.single-portfolio {
  overflow-x: clip;
}
/* Le wrapper externe .container du thème a overflow:hidden qui casse
   aussi le sticky → on le passe à visible sur les fiches projet. */
body.single-portfolio > .container {
  overflow: visible !important;
}
body.single-portfolio .organiweb-project-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 48px;
  align-items: start;
  max-width: 1350px;
  margin: 0 auto;
}
body.single-portfolio .organiweb-project-main {
  min-width: 0;
}
body.single-portfolio .organiweb-project-sidebar {
  position: sticky;
  top: 160px;
}

/* Contenu : largeur de lecture confortable + aération verticale. */
body.single-portfolio .portfolio-content .entry-content {
  max-width: 100%;
  margin: 0;
}
body.single-portfolio .portfolio-content .entry-content h2 {
  margin-top: 40px;
  margin-bottom: 16px;
}
body.single-portfolio .portfolio-content .entry-content h3 {
  margin-top: 28px;
  margin-bottom: 10px;
}
body.single-portfolio .portfolio-content .entry-content p {
  margin-bottom: 18px;
  line-height: 1.75;
}
body.single-portfolio .portfolio-content .entry-content ul {
  margin: 0 0 20px 0;
  padding-left: 22px;
}
body.single-portfolio .portfolio-content .entry-content ul li {
  margin-bottom: 10px;
  line-height: 1.7;
}

/* ===== Hiérarchie visuelle H2 vs H3 (cohérence) ===== */
body.single-portfolio .portfolio-content .entry-content h2 {
  font-size: 1.6rem;
  font-weight: 700;
  color: #4f5053;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin-top: 48px;
  margin-bottom: 18px;
  position: relative;
}
body.single-portfolio .portfolio-content .entry-content h2::after {
  content: '';
  position: absolute;
  left: 18px;
  bottom: -6px;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, #82b933, #3478d4);
  border-radius: 2px;
}
body.single-portfolio .portfolio-content .entry-content h3 {
  font-size: 1.15rem;
  font-weight: 600;
  color: #3478d4;
  letter-spacing: 0;
  padding-left: 14px;
  border-left: 4px solid #82b933;
}

/* ===== Sidebar : cartes ===== */
body.single-portfolio .organiweb-sidebar-inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
body.single-portfolio .organiweb-sidebar-card {
  background: #f4f6f8;
  border: 1px solid #d9dde3;
  border-radius: 12px;
  padding: 24px;
}
body.single-portfolio .organiweb-sidebar-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #4f5053;
  margin: 0 0 14px;
  padding: 0;
  border: none;
}
body.single-portfolio .organiweb-sidebar-card p {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #5f6368;
  margin-bottom: 16px;
}
body.single-portfolio .organiweb-sidebar-cta {
  background: #3478d4;
  border-color: #3478d4;
  color: #fff;
}
body.single-portfolio .organiweb-sidebar-cta .organiweb-sidebar-eyebrow {
  display: block;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.85);
  margin-bottom: 8px;
}
body.single-portfolio .organiweb-sidebar-cta h3 {
  color: #fff;
}
body.single-portfolio .organiweb-sidebar-cta p {
  color: rgba(255,255,255,0.9);
}
body.single-portfolio .organiweb-sidebar-cta .organiweb-btn--ghost {
  border-color: rgba(255,255,255,0.6);
  color: #fff;
  background: transparent;
}
body.single-portfolio .organiweb-sidebar-cta .organiweb-btn--ghost:hover {
  background: rgba(255,255,255,0.15);
}
body.single-portfolio .organiweb-btn--block {
  display: block;
  width: 100%;
  text-align: center;
  margin-bottom: 10px;
}

/* ===== Sidebar : faits clés ===== */
body.single-portfolio .organiweb-sidebar-facts {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.single-portfolio .organiweb-sidebar-facts li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 0;
  border-bottom: 1px solid #d9dde3;
  margin: 0;
}
body.single-portfolio .organiweb-sidebar-facts li:last-child {
  border-bottom: none;
}
body.single-portfolio .organiweb-fact-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #5f6368;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body.single-portfolio .organiweb-fact-value {
  font-size: 0.9rem;
  font-weight: 600;
  color: #4f5053;
  text-align: left;
  line-height: 1.4;
}

/* ===== Sidebar : barres d'expertise ===== */
body.single-portfolio .organiweb-skill {
  margin-bottom: 14px;
}
body.single-portfolio .organiweb-skill-name {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: #4f5053;
  margin-bottom: 6px;
}
body.single-portfolio .organiweb-skill-bar {
  display: block;
  height: 8px;
  background: #d9dde3;
  border-radius: 4px;
  overflow: hidden;
}
body.single-portfolio .organiweb-skill-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #3478d4, #82b933);
  border-radius: 4px;
}

/* ===== Sidebar : infogérance ===== */
body.single-portfolio .organiweb-infogerance {
  background: #eef3fb;
  border: 1px solid #d9e3f5;
  border-radius: 8px;
  padding: 14px 16px;
}
body.single-portfolio .organiweb-infogerance-type {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: #3478d4;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
body.single-portfolio .organiweb-infogerance p {
  font-size: 0.88rem;
  line-height: 1.55;
  color: #5f6368;
  margin: 0;
}

/* CTA final « Un projet similaire ? » : SUPPRIMÉ (doublon avec la sidebar).
   On masque le H2 et son paragraphe pour ne pas faire doublon. */
body.single-portfolio .portfolio-content .entry-content h2:last-of-type,
body.single-portfolio .portfolio-content .entry-content h2:last-of-type + p {
  display: none;
}

/* Mobile : la sidebar passe sous le contenu. */
@media (max-width: 992px) {
  body.single-portfolio .organiweb-project-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  body.single-portfolio .organiweb-project-sidebar {
    position: static;
  }
}

/* ============================================================
   HEADER MOBILE : contenir le logo (pas de débordement)
   Le thème met overflow:visible sur .mobile-headerclass, ce qui
   laisse le logo (avec son sous-titre) dépasser du header.
   ============================================================ */
.mobile-headerclass {
  overflow: hidden;
}

/* ============================================================
   BOUTON HEADER "Commencer mon projet" (zone droite)
   Raccord à l'identité visuelle : bleu, arrondi, blanc.
   ============================================================ */
.organiweb-header-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin-left: 16px;
  padding: 10px 20px;
  font-family: var(--organiweb-font-title);
  font-size: 15px;
  font-weight: 700;
  color: #fff !important;
  background: #3478d4;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(52, 120, 212, 0.30);
  transition: background .2s ease, transform .2s ease;
  line-height: 1.2;
}
.organiweb-header-cta:hover {
  background: #2a63b3;
  color: #fff !important;
  transform: translateY(-1px);
}
/* Contexte widget du header Ascend : neutraliser les styles de menu */
.menu-widget-area-kt .organiweb-header-cta,
.kt-header-extras .organiweb-header-cta {
  display: inline-flex !important;
  width: auto !important;
  height: auto !important;
  padding: 10px 20px !important;
  margin: 0 0 0 16px !important;
}
@media (max-width: 1080px) {
  .organiweb-header-cta { display: none !important; }
}

/* ============================================================
   Header : "Mon compte" / "Login/Signup" remplacé par une ICÔNE
   utilisateur (kt-icon-user). Texte masqué, icône affichée.
   Réversible : retirer ces règles pour revenir au texte.
   ============================================================ */
.kt-header-extras .menu-account-icon-kt .menu-account-btn .kt-extras-label span {
  font-size: 0 !important;              /* cache le texte */
  line-height: 24px !important;          /* garde une hauteur de ligne = aligne avec le panier */
  display: inline-flex !important;
  align-items: center !important;
}
.kt-header-extras .menu-account-icon-kt .menu-account-btn .kt-extras-label span::before {
  content: "\eaf7";                     /* kt-icon-user */
  font-family: "kt-icon" !important;
  font-style: normal;
  font-size: 20px !important;           /* taille icône = 20px (harmonisé avec panier) */
  line-height: 1 !important;
  display: inline-block;
  vertical-align: middle;
}
.kt-header-extras .menu-account-icon-kt .menu-account-btn .kt-extras-label span:hover::before {
  opacity: 0.75;
}

/* ============================================================
   Badge compteur panier (kt-cart-total) - raccord charte
   ORGANIWEB : fond bleu au lieu du teal du thème parent.
   ============================================================ */
.kt-header-extras .menu-cart-icon-kt .kt-cart-total {
  background-color: var(--organiweb-blue) !important;
  border-radius: 999px !important;       /* rond, cohérent avec les pills ORGANIWEB */
  box-shadow: 0 0 0 2px #fff !important; /* liseré blanc pour détacher du header */
}

/* ============================================================
   Alignement + harmonisation des 2 icônes du header
   (compte + panier) : même taille, alignées verticalement.
   ============================================================ */
.kt-header-extras .menu-account-icon-kt .menu-account-btn,
.kt-header-extras .menu-cart-icon-kt .menu-cart-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  padding-left: 8px !important;          /* réduit l'espace entre les 2 icônes */
  padding-right: 8px !important;
}
.kt-header-extras .menu-account-icon-kt .menu-account-btn .kt-extras-label span::before {
  font-size: 20px !important;           /* icône compte = 20px */
}
.kt-header-extras .menu-cart-icon-kt .menu-cart-btn i.kt-icon-bag {
  font-size: 20px !important;           /* icône panier = 20px (harmonisé avec compte) */
  line-height: 1 !important;
}

/* ============================================================
   BOUTON "RETOUR EN HAUT" (scroll to top) - #topcontrol du thème
   Design raccord à l'identité visuelle : bleu, arrondi, flèche.
   Le JS du thème crée #topcontrol (conteneur fixed) + .to_the_top
   (enfant). On style #topcontrol (taille + fond) et on centre l'icône.
   ============================================================ */
#topcontrol {
  z-index: 9999;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #3478d4;
  box-shadow: 0 8px 24px rgba(52, 120, 212, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  right: 24px !important;
  bottom: 24px !important;
  -webkit-transition: background .2s ease;
  -o-transition: background .2s ease;
  transition: background .2s ease;
}
#topcontrol:hover {
  background: #2a63b3;
}
#topcontrol .to_the_top {
  position: static !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
#topcontrol .to_the_top .kt-icon-arrow-up2 {
  font-size: 20px;
  line-height: 1;
  color: #fff;
}
@media (max-width: 640px) {
  #topcontrol {
    width: 44px;
    height: 44px;
  }
}

/* ============================================================
   FICHES PROJET : navigation basse (projet précédent / suivant)
   Raccord à l'identité visuelle, mentions en français.
   ============================================================ */
body.single-portfolio .organiweb-portfolio-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid #d9dde3;
}
body.single-portfolio .organiweb-portfolio-nav__link {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  max-width: 40%;
  transition: opacity .2s ease;
}
body.single-portfolio .organiweb-portfolio-nav__link:hover {
  opacity: .75;
}
body.single-portfolio .organiweb-portfolio-nav__link--next {
  text-align: right;
  flex-direction: row-reverse;
}
body.single-portfolio .organiweb-portfolio-nav__arrow {
  font-size: 1.6rem;
  line-height: 1;
  color: #3478d4;
  flex-shrink: 0;
}
body.single-portfolio .organiweb-portfolio-nav__text {
  display: flex;
  flex-direction: column;
}
body.single-portfolio .organiweb-portfolio-nav__link--next .organiweb-portfolio-nav__text {
  align-items: flex-end;
}
body.single-portfolio .organiweb-portfolio-nav__label {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #5f6368;
  margin-bottom: 4px;
}
body.single-portfolio .organiweb-portfolio-nav__title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #4f5053;
}
body.single-portfolio .organiweb-portfolio-nav__grid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  padding: 12px 18px;
  background: #f4f6f8;
  border: 1px solid #d9dde3;
  border-radius: 12px;
  transition: border-color .2s ease, background .2s ease;
}
body.single-portfolio .organiweb-portfolio-nav__grid:hover {
  border-color: #3478d4;
  background: #eef3fb;
}
body.single-portfolio .organiweb-portfolio-nav__grid-icon {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3px;
  width: 22px;
}
body.single-portfolio .organiweb-portfolio-nav__grid-icon span {
  display: block;
  width: 9px;
  height: 9px;
  background: #3478d4;
  border-radius: 2px;
}
body.single-portfolio .organiweb-portfolio-nav__grid-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #3478d4;
  text-align: center;
  line-height: 1.2;
}
@media (max-width: 640px) {
  body.single-portfolio .organiweb-portfolio-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }
  body.single-portfolio .organiweb-portfolio-nav__link {
    max-width: 100%;
  }
  body.single-portfolio .organiweb-portfolio-nav__grid {
    order: -1;
  }
}
@media (max-width: 768px) {
  body.single-portfolio .portfolio-project .postfeat img,
  body.single-portfolio .portfolio-project .post-single-img img {
    border-radius: 8px;
  }
  body.single-portfolio .portfolio-content .entry-content {
    max-width: 100%;
  }
}

/* ============================================================
   FICHES PROJET : image du projet en FOND du hero (30/08/2026)
   Le single-portfolio.php child injecte l'image du projet en
   background-image inline (remplace hero-portfolio.jpg du CSS).
   L'image dupliquée du template parent est masquée.
   ============================================================ */

/* Masquer l'image dupliquée du template parent (colonne portfolio-project) */
body.single-portfolio .portfolio-project {
  display: none;
}

/* Le contenu passe en pleine largeur (plus de colonne image à gauche) */
body.single-portfolio .portfolio-content {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
}

/* ============================================================
   SOUS-MENU "Nos Services" (menu DESKTOP .nav-main uniquement)
   2 colonnes PERMANENTES (pas de flash : grille jamais modifiée),
   visibilité via opacity/visibility pour rester fluide.
   ============================================================ */
/* Toujours en grid 2 colonnes ; masqué via visibility/opacity */
.sf-menu.sf-menu-normal > li.menu-item-83 > ul.sub-menu {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 6px 10px;
  width: 560px !important;
  padding: 14px;
  margin: 0;
  left: 50% !important;
  transform: translateX(-50%);
  background: #fff;
  border: 1px solid var(--organiweb-gray-200, #e2e8f0) !important;
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(22, 61, 115, .16);
  position: absolute;
  visibility: hidden;
  opacity: 0;
  z-index: 9999;
  transition: opacity .15s ease, visibility .15s ease;
}
/* Affiché au survol du parent (visible en 2 colonnes) */
.sf-menu.sf-menu-normal > li.menu-item-83:hover > ul.sub-menu,
.sf-menu.sf-menu-normal > li.menu-item-83.sfHover > ul.sub-menu {
  visibility: visible;
  opacity: 1;
}
/* Items : aucun décalage */
.sf-menu.sf-menu-normal > li.menu-item-83 > ul.sub-menu > li {
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
  border-radius: 10px;
  transition: background .2s ease;
}
.sf-menu.sf-menu-normal > li.menu-item-83 > ul.sub-menu > li:hover {
  background: var(--organiweb-blue-light, #eaf2fc);
}
.sf-menu.sf-menu-normal > li.menu-item-83 > ul.sub-menu > li > a {
  display: block;
  padding: 10px 14px;
  margin: 0;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--organiweb-anthracite, #163d73);
  white-space: normal;
  line-height: 1.3;
}
/* Ligne verticale courte au centre (séparateur des 2 colonnes) */
.sf-menu.sf-menu-normal > li.menu-item-83 > ul.sub-menu::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 30px;
  bottom: 30px;
  width: 1px;
  background: var(--organiweb-blue, #3478d4);
}
/* Retirer la flèche du parent (plus de sous-niveau visible) */
.sf-menu.sf-menu-normal > li.menu-item-83.sf-dropdown > a:after {
  display: none;
}

/* ===== MENU DESKTOP premier niveau (même langage que le sous-menu) =====
   Items en liens cliquables arrondis, survol pastille bleu clair (#eaf2fc),
   texte anthracite. Cohérent avec le panneau du sous-menu desktop.
   ⚠️ Spécificité montée avec #kad-header-menu (+ .nav-main) pour battre
   ascend.css (.nav-main ul.sf-menu > li > a = 0,2,1) chargé après custom.css. */
#kad-header-menu .nav-main ul.sf-menu > li > a,
#kad-header-menu ul.sf-menu.sf-menu-normal > li > a {
  padding: 10px 16px;
  border-radius: 10px;
  color: var(--organiweb-anthracite, #163d73);
  font-weight: 600;
  font-size: 13.5px;
  letter-spacing: .02em;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease;
}
#kad-header-menu .nav-main ul.sf-menu > li > a:hover,
#kad-header-menu .nav-main ul.sf-menu > li > a:focus-visible,
#kad-header-menu .nav-main ul.sf-menu > li.sfHover > a {
  background: var(--organiweb-blue-light, #eaf2fc);
  color: var(--organiweb-blue-dark, #1d4f9b);
}

/* ===== MENU DRAWER (barre latérale, actif à toutes les largeurs) =====
   Premier niveau stylé en cohérence avec le sous-menu desktop :
   pastilles arrondies + survol bleu clair + chevron bleu. */
ul.kad-mobile-nav > li {
  margin: 2px 0;
  border: none;
}
ul.kad-mobile-nav > li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 16px;
  border-radius: 12px;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1.3;
  transition: background .18s ease, color .18s ease, padding-left .18s ease;
}
ul.kad-mobile-nav > li > a:hover,
ul.kad-mobile-nav > li > a:focus-visible {
  background: var(--organiweb-blue-light, #eaf2fc);
  color: var(--organiweb-anthracite, #163d73);
  padding-left: 20px;
}
/* Chevron (accordéon) du premier niveau : bleu au survol / état ouvert */
ul.kad-mobile-nav > li > .kad-submenu-accordion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: #fff;
  transition: background .18s ease, color .18s ease;
}
ul.kad-mobile-nav > li > a:hover ~ .kad-submenu-accordion,
ul.kad-mobile-nav > li > .kad-submenu-accordion:hover {
  background: var(--organiweb-blue-light, #eaf2fc);
  color: var(--organiweb-blue, #3478d4);
}
/* Item actif/déplié : léger fond pour montrer l'état ouvert */
ul.kad-mobile-nav > li.menu-item-has-children.sf-dropdown-open > a,
ul.kad-mobile-nav > li.sfHover > a {
  background: rgba(255, 255, 255, .08);
  color: #fff;
}
ul.kad-mobile-nav > li.active > a,
body[data-page] ul.kad-mobile-nav > li.active > a {
  color: var(--organiweb-blue-light, #eaf2fc);
}

/* ===== MENU MOBILE : effet de rebondissement à l'ouverture ===== */
/* Le menu mobile est un popup Magnific Popup (mfp-slide) qui glisse depuis
   la droite. On ajoute un léger overshoot horizontal (rebond) à l'ouverture. */
@keyframes organiweb-menu-bounce {
  0%   { transform: translate(270px, 0); }
  60%  { transform: translate(-12px, 0); }
  80%  { transform: translate(6px, 0); }
  100% { transform: translate(0, 0); }
}
.mfp-ready.mfp-slide .mag-pop-sldr {
  animation: organiweb-menu-bounce .45s cubic-bezier(.22, 1, .36, 1);
}

/* ===== FIT CARTE RÉALISATION WIDE (correction cascade) =====
   .organiweb-case-card (ligne ~839) est défini APRÈS --wide et
   impose display:flex, écrasant le display:grid de --wide.
   Cette règle en fin de fichier force le grid pour la carte wide. */
.organiweb-case-card.organiweb-case-card--wide {
  display: grid !important;
  grid-template-columns: 1fr 1.2fr;
}
.organiweb-case-card.organiweb-case-card--wide .organiweb-case-visual {
  aspect-ratio: auto;
  min-height: 280px;
}
.organiweb-case-card.organiweb-case-card--wide .organiweb-case-body {
  padding: var(--space-4);
  justify-content: center;
  gap: 10px;
  flex-direction: column;
}
@media (max-width: 640px) {
  .organiweb-case-card.organiweb-case-card--wide {
    grid-template-columns: 1fr;
  }
  .organiweb-case-card.organiweb-case-card--wide .organiweb-case-visual {
    min-height: 180px;
  }
}

/* ============ CARTE EXPERT SIDEBAR (GEO chantier 2) ============ */
.organiweb-sidebar-card.organiweb-sidebar-expert {
  background: linear-gradient(135deg, #f0f6ff 0%, #ffffff 100%);
  border-left: 4px solid var(--organiweb-blue);
}
.organiweb-sidebar-expert-name {
  font-family: var(--organiweb-font-title);
  font-size: var(--font-size-md);
  color: var(--organiweb-blue-dark);
  margin-bottom: 4px;
}
.organiweb-sidebar-expert-role {
  font-size: var(--font-size-xs);
  color: var(--organiweb-gray-600, #5f6368);
  font-weight: 600;
  margin-bottom: var(--space-2);
}
.organiweb-sidebar-expert-bio {
  font-size: var(--font-size-sm);
  color: var(--organiweb-gray-700);
  margin-bottom: var(--space-2);
}
.organiweb-sidebar-expert-metrics {
  list-style: none;
  margin: 0 0 var(--space-3);
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.organiweb-sidebar-expert-metrics li {
  font-size: var(--font-size-sm);
  color: var(--organiweb-gray-700);
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.organiweb-expert-num {
  font-family: var(--organiweb-font-title);
  font-weight: 700;
  color: var(--organiweb-green-dark);
  font-size: var(--font-size-md);
  min-width: 44px;
}
.organiweb-sidebar-expert .organiweb-btn {
  margin-top: 4px;
}

/* ============ BLOG / ARTICLES (GEO chantier 3) ============ 
   Supprime le bandeau H1 de catégorie sur les single posts pour ne garder
   qu'UN SEUL H1 = le titre de l'article (règle SEO H1 unique, comme portfolio).
*/
body.single-post #pageheader.titleclass {
  display: none !important;
}
/* Aération du contenu des articles */
body.single-post .entry-content,
body.single-post .templates-content-single,
body.single-post .single-article .main {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}
body.single-post .entry-content p {
  line-height: 1.75;
  margin-bottom: 1.25em;
}
body.single-post .entry-content h2 {
  margin-top: 2em;
  font-size: 1.55rem;
}
body.single-post .entry-content h3 {
  font-size: 1.2rem;
  color: var(--organiweb-blue-dark);
}
body.single-post .entry-title {
  font-size: 2.2rem;
}
/* Sidebar blog (déjà ok) */
.blog .kt_blog_item,
.archive .kt_blog_item {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--organiweb-gray-200);
}

/* ============ BANDEAUX BLOG - charte claire (GEO chantier 3) ============ 
   Remplace le bandeau sombre #444 par défaut du thème Ascend par un fond clair
   cohérent avec le design ORGANIWEB. S'applique aux pages blog, archives et
   recherche (pas aux pages hero du design system).
*/
body.blog #pageheader,
body.archive #pageheader,
body.search #pageheader,
body.category #pageheader,
body.tag #pageheader {
  background: linear-gradient(135deg, #eaf2fc 0%, #ffffff 100%) !important;
}
body.blog #pageheader .top-contain-title,
body.archive #pageheader .top-contain-title,
body.search #pageheader .top-contain-title,
body.category #pageheader .top-contain-title,
body.tag #pageheader .top-contain-title {
  color: var(--organiweb-blue-dark) !important;
  font-size: 2.4rem !important;
}
body.blog #pageheader .page-header,
body.archive #pageheader .page-header,
body.search #pageheader .page-header,
body.category #pageheader .page-header,
body.tag #pageheader .page-header {
  height: auto !important;
  min-height: 140px;
  padding: 40px 0;
}
/* Mise en page article : retiré le bandeau sombre des single posts */
body.single-post #pageheader {
  display: none !important;
}

