/* ==========================================================================
   iKEROS — Pages vitrine (modèle « Vitrine »)
   Charte : bleu cobalt #3856B6 · bleu ciel #34A8EB (dégradé des CTA) · gris foncé #4B4B4B · gris bleu #EDF0FA
   Polices : polices système de l'appareil (aucun fichier de police téléchargé)
   Chargé uniquement sur les pages utilisant le modèle « Vitrine » (et dans l'éditeur des pages).
   ========================================================================== */

:root {
  --ikv-cobalt: #3856b6;
  --ikv-cobalt-700: #2c459a;
  --ikv-cobalt-900: #1b2a5e;
  --ikv-ciel: #34a8eb;
  --ikv-ink: #4b4b4b;
  --ikv-ink-strong: #22283a;
  --ikv-mist: #edf0fa;
  --ikv-line: #d8dff3;
  --ikv-white: #fff;

  --ikv-font-title: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ikv-font-text: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  --ikv-max: 1200px;
  --ikv-gutter: clamp(16px, 4vw, 40px);
  --ikv-pad-x: max(var(--ikv-gutter), calc((100% - var(--ikv-max)) / 2));
  --ikv-section-y: clamp(56px, 8vw, 112px);
  --ikv-radius: 16px;
  --ikv-shadow: 0 1px 2px rgba(27, 42, 94, .06), 0 12px 32px rgba(27, 42, 94, .08);
  --ikv-shadow-hover: 0 2px 4px rgba(27, 42, 94, .08), 0 22px 48px rgba(27, 42, 94, .16);
  --ikv-ease: cubic-bezier(.2, .7, .2, 1);

  /* Motif « pixels » du QR-code de la charte (utilisé en masque : sa couleur suit currentColor). */
  --ikv-motif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' shape-rendering='crispEdges'%3E%3Cpath d='M6 0h1v1h-1zM8 0h1v1h-1zM10 0h1v1h-1zM11 0h1v1h-1zM9 1h1v1h-1zM11 1h1v1h-1zM9 2h1v1h-1zM10 2h1v1h-1zM11 2h1v1h-1zM8 3h1v1h-1zM3 4h1v1h-1zM6 4h1v1h-1zM8 4h1v1h-1zM10 5h1v1h-1zM6 6h1v1h-1zM8 6h1v1h-1zM9 6h1v1h-1zM10 6h1v1h-1zM0 7h1v1h-1zM4 7h1v1h-1zM10 7h1v1h-1zM11 7h1v1h-1zM3 8h1v1h-1zM4 8h1v1h-1zM5 8h1v1h-1zM6 8h1v1h-1zM7 8h1v1h-1zM9 8h1v1h-1zM10 8h1v1h-1zM11 8h1v1h-1zM7 9h1v1h-1zM11 9h1v1h-1zM2 10h1v1h-1zM4 10h1v1h-1zM5 10h1v1h-1zM6 10h1v1h-1zM7 10h1v1h-1zM8 10h1v1h-1zM9 10h1v1h-1zM10 10h1v1h-1zM11 10h1v1h-1zM0 11h1v1h-1zM2 11h1v1h-1zM5 11h1v1h-1zM6 11h1v1h-1zM7 11h1v1h-1zM8 11h1v1h-1zM9 11h1v1h-1zM10 11h1v1h-1z' fill='%23fff'/%3E%3C/svg%3E");
  --ikv-pixel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 3' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v1H0zM2 0h1v1H2zM1 1h1v1H1zM0 2h1v1H0zM2 2h1v1H2z' fill='%23fff'/%3E%3C/svg%3E");
  --ikv-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* --------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------- */

/* L'en-tête et le pied de page interactifs héritent de la police de la charte. */
.ikv-page {
  background: var(--ikv-white);
  font-family: var(--ikv-font-text);
}

.ikv {
  display: block;
  color: var(--ikv-ink);
  font-family: var(--ikv-font-text);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}

.ikv:focus { outline: none; }

.ikv *,
.ikv *::before,
.ikv *::after { box-sizing: border-box; }

.ikv :where(p, h1, h2, h3, h4, h5, figure, ul, ol, blockquote) { margin: 0; }

.ikv :where(img) { max-width: 100%; height: auto; }

.ikv :where(a) {
  color: var(--ikv-cobalt);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

.ikv :where(a):hover { color: var(--ikv-cobalt-700); }

.ikv :where(strong, b) { font-weight: 700; color: var(--ikv-ink-strong); }

.ikv :where(h1, h2, h3, h4) {
  color: var(--ikv-ink-strong);
  font-family: var(--ikv-font-title);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -.01em;
  text-wrap: balance;
}

.ikv :where(h2) { font-size: clamp(30px, 3.6vw, 46px); }
.ikv :where(h3) { font-size: clamp(21px, 2vw, 26px); font-weight: 400; }
.ikv :where(h2, h3) strong { color: var(--ikv-cobalt); font-weight: 400; }

.ikv :where(p) { text-wrap: pretty; }

.ikv :where(a, button, input, summary):focus-visible {
  outline: 3px solid var(--ikv-ciel);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Rythme vertical : espace entre éléments frères dans tous les conteneurs. */
.ikv :where(.wp-block-group, .wp-block-group__inner-container, .wp-block-column) > * + * {
  margin-top: var(--ikv-flow, 1.15rem);
}

.ikv :where(h2, h3) + :where(p) { --ikv-flow: .9rem; }
.ikv :where(.wp-block-group, .wp-block-group__inner-container, .wp-block-column) > .wp-block-buttons { margin-top: 1.75rem; }

/* --------------------------------------------------------------------------
   Sections (bloc Groupe + classe « ikv-section »)
   ----------------------------------------------------------------------- */

.ikv .ikv-section {
  position: relative;
  margin: 0;
  padding: var(--ikv-section-y) var(--ikv-pad-x);
  isolation: isolate;
}

.ikv .ikv-section > * + *,
.ikv .ikv-section > .wp-block-group__inner-container > * + * { margin-top: clamp(28px, 4vw, 48px); }

.ikv .ikv-section--clair { background: var(--ikv-mist); }

.ikv .ikv-section--bleu,
.ikv .ikv-section--sombre {
  color: rgba(255, 255, 255, .86);
  background: var(--ikv-cobalt);
}

.ikv .ikv-section--sombre {
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(52, 168, 235, .18), transparent 55%),
    var(--ikv-cobalt-900);
}

.ikv :where(.ikv-section--bleu, .ikv-section--sombre) :where(h1, h2, h3, h4, strong) { color: var(--ikv-white); }
.ikv :where(.ikv-section--bleu, .ikv-section--sombre) :where(h2, h3) strong { color: var(--ikv-ciel); }
.ikv :where(.ikv-section--bleu, .ikv-section--sombre) :where(p a) { color: var(--ikv-white); }

/* Motif « pixels » dans le coin, comme sur la charte. */
.ikv .ikv-section--motif::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 0;
  width: clamp(160px, 22vw, 320px);
  aspect-ratio: 1;
  color: var(--ikv-white);
  background: currentColor;
  opacity: .1;
  -webkit-mask: var(--ikv-motif) no-repeat right bottom / contain;
  mask: var(--ikv-motif) no-repeat right bottom / contain;
  pointer-events: none;
}

.ikv .ikv-section--motif:not(.ikv-section--bleu):not(.ikv-section--sombre)::after {
  color: var(--ikv-cobalt);
  opacity: .08;
}

/* Introduction d'une section (sur-titre, titre, texte). */
.ikv .ikv-intro { max-width: 760px; }
.ikv .ikv-intro--center { margin-inline: auto; text-align: center; }
.ikv .ikv-intro--center .wp-block-buttons { justify-content: center; }
.ikv .ikv-intro :where(p:not(.ikv-kicker)) { font-size: clamp(17px, 1.4vw, 19px); }

/* Sur-titre : capitales espacées, comme les titres de la charte. */
.ikv .ikv-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ikv-cobalt);
  font-family: var(--ikv-font-title);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .28em;
  line-height: 1.4;
  text-transform: uppercase;
}

.ikv .ikv-kicker::before,
.ikv .ikv-pixels {
  content: "";
  display: inline-block;
  flex: none;
  width: 15px;
  height: 15px;
  background: var(--ikv-ciel);
  -webkit-mask: var(--ikv-pixel) center / contain no-repeat;
  mask: var(--ikv-pixel) center / contain no-repeat;
}

.ikv :where(.ikv-section--bleu, .ikv-section--sombre) .ikv-kicker { color: var(--ikv-ciel); }
.ikv .ikv-kicker + :where(h2, h3) { --ikv-flow: .8rem; }

/* --------------------------------------------------------------------------
   Colonnes
   ----------------------------------------------------------------------- */

.ikv .wp-block-columns {
  gap: clamp(28px, 5vw, 72px);
  margin-bottom: 0;
}

.ikv .wp-block-columns.are-vertically-aligned-center { align-items: center !important; }

@media (max-width: 781px) {
  .ikv .wp-block-columns { flex-wrap: wrap !important; }
  .ikv .wp-block-column { flex-basis: 100% !important; }
}

/* --------------------------------------------------------------------------
   Boutons (bloc Boutons natif + .ikv-btn des blocs iKEROS)
   Même style que les CTA du menu :
   - principal : dégradé cobalt → ciel (comme « Démonstration ») ;
   - secondaire (style « Contour ») : fond blanc, texte cobalt, filet fin.
   ----------------------------------------------------------------------- */

.ikv .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.ikv .wp-block-button { margin: 0; }

.ikv .wp-block-button__link,
.ikv .ikv-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 12px 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--ikv-white);
  background: linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
  box-shadow: 0 12px 28px rgba(56, 86, 182, .18);
  font-family: var(--ikv-font-text);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .02em;
  line-height: 1.2;
  text-decoration: none;
  transition: box-shadow .2s var(--ikv-ease), filter .2s var(--ikv-ease), background-color .2s var(--ikv-ease), color .2s var(--ikv-ease), transform .2s var(--ikv-ease);
}

.ikv .wp-block-button__link::after,
.ikv .ikv-btn::after {
  content: "";
  width: 16px;
  height: 16px;
  flex: none;
  background: currentColor;
  -webkit-mask: var(--ikv-arrow) center / contain no-repeat;
  mask: var(--ikv-arrow) center / contain no-repeat;
  transition: transform .2s var(--ikv-ease);
}

.ikv .wp-block-button__link:hover,
.ikv .ikv-btn:hover {
  color: var(--ikv-white);
  filter: saturate(1.15) brightness(1.05);
  box-shadow: 0 16px 34px rgba(56, 86, 182, .28);
  transform: translateY(-1px);
}

.ikv .wp-block-button__link:hover::after,
.ikv .ikv-btn:hover::after { transform: translateX(3px); }

/* Secondaire */
.ikv .is-style-outline .wp-block-button__link,
.ikv .ikv-btn--secondary {
  border-color: rgba(56, 86, 182, .18);
  color: var(--ikv-cobalt);
  background: var(--ikv-white);
  box-shadow: none;
}

.ikv .is-style-outline .wp-block-button__link:hover,
.ikv .ikv-btn--secondary:hover {
  color: var(--ikv-cobalt);
  background: var(--ikv-white) linear-gradient(rgba(56, 86, 182, .08), rgba(56, 86, 182, .08));
  filter: none;
  box-shadow: none;
}

/* Sur fond bleu / bleu nuit : le principal garde son dégradé, le secondaire devient transparent. */
.ikv :where(.ikv-section--bleu, .ikv-section--sombre, .ikv-bandeau) .wp-block-button__link {
  box-shadow: 0 12px 28px rgba(6, 12, 36, .3);
}

.ikv :where(.ikv-section--bleu) .wp-block-button__link:not(.ikv-btn--secondary) {
  border-color: rgba(255, 255, 255, .35);
}

.ikv :where(.ikv-section--bleu, .ikv-section--sombre, .ikv-bandeau) .is-style-outline .wp-block-button__link,
.ikv :where(.ikv-section--bleu, .ikv-section--sombre, .ikv-bandeau) .ikv-btn--secondary {
  border-color: rgba(255, 255, 255, .35);
  color: var(--ikv-white);
  background: transparent;
  box-shadow: none;
}

.ikv :where(.ikv-section--bleu, .ikv-section--sombre, .ikv-bandeau) .is-style-outline .wp-block-button__link:hover,
.ikv :where(.ikv-section--bleu, .ikv-section--sombre, .ikv-bandeau) .ikv-btn--secondary:hover {
  color: var(--ikv-white);
  background: rgba(255, 255, 255, .12);
}

/* Lien texte avec flèche (utilisé par les blocs iKEROS). */
.ikv .ikv-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ikv-cobalt);
  font-size: 15px;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

.ikv .ikv-link-arrow::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: var(--ikv-arrow) center / contain no-repeat;
  mask: var(--ikv-arrow) center / contain no-repeat;
  transition: transform .2s var(--ikv-ease);
}

.ikv .ikv-link-arrow:hover::after { transform: translateX(4px); }

/* --------------------------------------------------------------------------
   Images
   ----------------------------------------------------------------------- */

.ikv .wp-block-image { margin: 0; }
.ikv .wp-block-image img { display: block; }

.ikv .ikv-image-card img {
  width: 100%;
  border-radius: var(--ikv-radius);
  box-shadow: var(--ikv-shadow);
}

/* --------------------------------------------------------------------------
   Points forts (groupe « ikv-features » contenant des groupes « ikv-feature »)
   ----------------------------------------------------------------------- */

.ikv .ikv-features:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-features > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(14px, 2vw, 22px);
}

/* Variante 3 colonnes maximum (ex. 9 fonctionnalités). */
.ikv .ikv-features--3:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-features--3 > .wp-block-group__inner-container {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.ikv .ikv-features > * + *,
.ikv .ikv-features > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-feature {
  padding: 24px 22px 22px;
  border: 1px solid var(--ikv-line);
  border-radius: var(--ikv-radius);
  background: var(--ikv-white);
}

.ikv .ikv-feature::before {
  content: "";
  display: block;
  width: 46px;
  height: 46px;
  margin-bottom: 16px;
  border-radius: 12px;
  background: var(--ikv-icon, none) center / 24px no-repeat, var(--ikv-mist);
}

.ikv .ikv-feature :where(h3) { font-size: 20px; }
.ikv .ikv-feature :where(p) { font-size: 15.5px; line-height: 1.6; }
.ikv .ikv-feature :where(h3) + :where(p) { --ikv-flow: .5rem; }

.ikv :where(.ikv-section--bleu, .ikv-section--sombre) .ikv-feature {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .06);
}

.ikv :where(.ikv-section--bleu, .ikv-section--sombre) .ikv-feature::before {
  background: var(--ikv-icon, none) center / 24px no-repeat, rgba(52, 168, 235, .14);
}

.ikv .ikv-icon-info { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5h.01'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-histoire { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16L12 4 4 9Z'/%3E%3Cpath d='M6 10v7M10 10v7M14 10v7M18 10v7M4 20h16'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-enigme { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.2 9a3 3 0 1 1 4.3 2.7c-.9.4-1.5 1.2-1.5 2.2v.6'/%3E%3Cpath d='M12 18h.01'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-media { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m10 8.5 5.5 3.5-5.5 3.5v-7Z'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-qrcode { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8'%3E%3Crect x='4' y='4' width='6' height='6' rx='1'/%3E%3Crect x='14' y='4' width='6' height='6' rx='1'/%3E%3Crect x='4' y='14' width='6' height='6' rx='1'/%3E%3Cpath d='M14 14h2v2h-2zM18 14h2v2h-2zM14 18h2v2h-2zM18 18h2v2h-2z'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-carte { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5.5-8 12-8 12s-8-6.5-8-12a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E"); }

.ikv .ikv-icon-langue { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9s-1.3 6.4-3.8 9c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-audio { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='14' width='5' height='7' rx='1.5'/%3E%3Crect x='16' y='14' width='5' height='7' rx='1.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-recherche { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4.5 4.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-calendrier { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='15' rx='2'/%3E%3Cpath d='M4 10h16M9 3v4M15 3v4M9 14.5l2 2 4-4'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-stats { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16M7 16v-5M12 16V7M17 16v-8'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-feuille { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-9 5-14 15-14 0 10-5 15-14 15'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-eclair { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 3 5 13.5h6L10 21l8-10.5h-6L13 3Z'/%3E%3C/svg%3E"); }

.ikv .ikv-icon-euro { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6.5A7 7 0 1 0 18 17.5M4 10h9M4 14h9'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-horloge { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-mobile { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6.5' y='2.5' width='11' height='19' rx='2.5'/%3E%3Cpath d='M11 18.5h2'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-tableau { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4' width='17' height='16' rx='2'/%3E%3Cpath d='M3.5 9h17M9 9v11'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-musee { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.5 12 4l9 5.5M5 10v8M9.5 10v8M14.5 10v8M19 10v8M3 20.5h18'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-chateau { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V8h3v3h2V8h3v3h2V8h3v13M4 21h16M10 21v-4a2 2 0 0 1 4 0v4'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-commune { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V11l4-3 4 3v10M13 21V6l6 3v12M8 14h2M8 17h2M16 12h1M16 15h1'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-societe { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M3 12h18'/%3E%3C/svg%3E"); }

.ikv .ikv-icon-france { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21V4M5 4h14v10H5'/%3E%3Cpath d='M9.7 4v10M14.3 4v10'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-soleil { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2.5v2M12 19.5v2M2.5 12h2M19.5 12h2M5.3 5.3l1.4 1.4M17.3 17.3l1.4 1.4M5.3 18.7l1.4-1.4M17.3 6.7l1.4-1.4'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-fixation { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Ccircle cx='8' cy='8' r='1.2'/%3E%3Ccircle cx='16' cy='8' r='1.2'/%3E%3Ccircle cx='8' cy='16' r='1.2'/%3E%3Ccircle cx='16' cy='16' r='1.2'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-pinceau { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4.5 19.5 9.5 11 18l-5-5 8.5-8.5Z'/%3E%3Cpath d='M6 13l-2.5 2.5a2.5 2.5 0 0 0 0 3.5 2.5 2.5 0 0 0 3.5 0L9.5 16.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-plume { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4C11 4 6 9 6 18M6 18l-2 2M6 14h6M9 9h7'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-personne { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c.8-4 4-6 8-6s7.2 2 8 6'/%3E%3C/svg%3E"); }

.ikv .ikv-icon-etoile { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3.5 2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.9l-5.2 2.7 1-5.8-4.3-4.1 5.9-.9L12 3.5Z'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-message { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 15a2 2 0 0 1-2 2H8l-4 3.5V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v9Z'/%3E%3Cpath d='M8 9h8M8 12.5h5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-etiquette { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.5V4.5a1 1 0 0 1 1-1h8l8 8-9 9-8-8Z'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-paiement { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5.5' width='18' height='13' rx='2'/%3E%3Cpath d='M3 10h18M7 15h3'/%3E%3C/svg%3E"); }

.ikv .ikv-icon-photo { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l1.5-2.5h7L17 8h3a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1Z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-video { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6.5' width='13' height='11' rx='2'/%3E%3Cpath d='m16 10.5 5-3v9l-5-3'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-visite360 { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='12' rx='9' ry='4'/%3E%3Cpath d='M12 3v18M9.5 19.5 12 21l2.5-1.5'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-telephone { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l1.5 4-2 1.5a11 11 0 0 0 6.5 6.5L16 14l4 1.5V19a1.5 1.5 0 0 1-1.5 1.5A15.5 15.5 0 0 1 3.5 5.5 1.5 1.5 0 0 1 5 4Z'/%3E%3C/svg%3E"); }
.ikv .ikv-icon-lien { --ikv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334A8EB' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a4.5 4.5 0 0 0 6.4 0l3-3a4.5 4.5 0 0 0-6.4-6.4l-1 1'/%3E%3Cpath d='M14 10a4.5 4.5 0 0 0-6.4 0l-3 3a4.5 4.5 0 0 0 6.4 6.4l1-1'/%3E%3C/svg%3E"); }

/* Vidéo intégrée (bloc Intégrer + classe « ikv-video ») */
.ikv .ikv-video {
  max-width: 960px;
  margin-inline: auto;
}

.ikv .ikv-video .wp-block-embed__wrapper {
  overflow: hidden;
  border-radius: var(--ikv-radius);
  background: var(--ikv-cobalt-900);
  box-shadow: 0 30px 60px rgba(6, 12, 36, .45);
}

/* --------------------------------------------------------------------------
   Encadré (groupe « ikv-encadre ») : aparté mis en valeur
   ----------------------------------------------------------------------- */

.ikv .ikv-encadre {
  position: relative;
  padding: clamp(24px, 3vw, 34px);
  border-radius: var(--ikv-radius);
  background: var(--ikv-mist);
  overflow: hidden;
}

.ikv .ikv-encadre::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, var(--ikv-cobalt), var(--ikv-ciel));
}

.ikv .ikv-encadre :where(h3) { font-size: clamp(20px, 1.8vw, 24px); }
.ikv .ikv-encadre :where(p) { font-size: 16px; }

.ikv :where(.ikv-section--clair) .ikv-encadre { background: var(--ikv-white); }

/* --------------------------------------------------------------------------
   Équipe (groupe « ikv-equipe » contenant des groupes « ikv-membre » :
   image ronde, nom en titre H3, rôle, courte présentation)
   ----------------------------------------------------------------------- */

.ikv .ikv-equipe:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-equipe > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 280px));
  justify-content: center;
  gap: clamp(18px, 2.4vw, 28px);
}

.ikv .ikv-equipe > * + *,
.ikv .ikv-equipe > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-membre {
  padding: 28px 24px 26px;
  border: 1px solid var(--ikv-line);
  border-radius: var(--ikv-radius);
  background: var(--ikv-white);
  text-align: center;
}

.ikv .ikv-membre .wp-block-image { display: flex; justify-content: center; }

.ikv .ikv-membre .wp-block-image img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 4px var(--ikv-white), 0 0 0 6px var(--ikv-ciel);
}

.ikv .ikv-membre :where(h3) { font-size: 21px; }
.ikv .ikv-membre :where(h3) + :where(p) { --ikv-flow: .3rem; }
.ikv .ikv-membre .ikv-membre__role {
  color: var(--ikv-cobalt);
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ikv .ikv-membre :where(p:not(.ikv-membre__role)) { font-size: 15.5px; line-height: 1.6; }

/* --------------------------------------------------------------------------
   Formulaires Contact Form 7 (le CSS de CF7 n'est pas chargé sur les vitrines)
   Carte d'accueil : groupe « ikv-form-card ».
   ----------------------------------------------------------------------- */

.ikv .ikv-form-card {
  padding: clamp(24px, 3.4vw, 40px);
  border: 1px solid var(--ikv-line);
  border-radius: var(--ikv-radius);
  background: var(--ikv-white);
  box-shadow: var(--ikv-shadow);
}

.ikv .ikv-form-card :where(h2, h3) { font-size: clamp(22px, 2.2vw, 28px); }

.ikv .wpcf7 form > p { margin: 0 0 18px; }
.ikv .wpcf7 form > p:last-of-type { margin-bottom: 0; }

/* Grille des champs (classes Bootstrap « row / col-md-* » du formulaire de contact). */
.ikv .wpcf7 .row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  margin: 0;
}

.ikv .wpcf7 .row > [class*="col-"] { min-width: 0; padding: 0; }
.ikv .wpcf7 .row > .col-md-12 { grid-column: 1 / -1; }
.ikv .wpcf7 :is(.row, form) div > p { margin: 0 0 14px; }

@media (max-width: 640px) {
  .ikv .wpcf7 .row { grid-template-columns: minmax(0, 1fr); }
}

.ikv .wpcf7 p > br { display: none; }

/* Cases à cocher et boutons radio */
.ikv .wpcf7 .wpcf7-list-item { display: block; margin: 0 0 8px; }
.ikv .wpcf7 .wpcf7-list-item label {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  font-weight: 400;
  cursor: pointer;
}
.ikv .wpcf7 .wpcf7-list-item input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--ikv-cobalt); }

/* Radios en boutons segmentés (choix du type de demande). */
.ikv .wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.ikv .wpcf7 .wpcf7-radio .wpcf7-list-item { margin: 0; }
.ikv .wpcf7 .wpcf7-radio label {
  position: relative;
  padding: 9px 16px;
  border: 1px solid rgba(56, 86, 182, .25);
  border-radius: 999px;
  color: var(--ikv-cobalt);
  background: var(--ikv-white);
  font-weight: 600;
}
.ikv .wpcf7 .wpcf7-radio input { position: absolute; opacity: 0; pointer-events: none; }
.ikv .wpcf7 .wpcf7-radio label:has(input:checked) {
  border-color: transparent;
  color: var(--ikv-white);
  background: linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
}
.ikv .wpcf7 .wpcf7-radio label:has(input:focus-visible) { outline: 3px solid var(--ikv-ciel); outline-offset: 2px; }

.ikv .wpcf7 .wpcf7-turnstile { margin: 12px 0 16px; }

/* Champs remplis automatiquement depuis l'adresse (client, numéro) : masqués. */
.ikv .wpcf7 .hidden-field,
.ikv .wpcf7 p:has(> .hidden-field) { display: none; }

.ikv .wpcf7 label {
  display: block;
  color: var(--ikv-ink-strong);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}

.ikv .wpcf7 label br { display: none; }

.ikv .wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 8px; }

.ikv .wpcf7 :is(input[type="text"], input[type="email"], input[type="url"], input[type="tel"], textarea, select) {
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--ikv-line);
  border-radius: 12px;
  color: var(--ikv-ink-strong);
  background: var(--ikv-white);
  box-shadow: none;
  font: inherit;
  font-size: 16px; /* évite le zoom automatique sur iPhone */
  font-weight: 400;
  transition: border-color .2s var(--ikv-ease), box-shadow .2s var(--ikv-ease);
}

.ikv .wpcf7 textarea { height: 170px; min-height: 120px; resize: vertical; }

.ikv .wpcf7 :is(input, textarea, select):focus {
  border-color: var(--ikv-cobalt);
  outline: none;
  box-shadow: 0 0 0 3px rgba(52, 168, 235, .3);
}

.ikv .wpcf7 .wpcf7-not-valid { border-color: #c8323c; }

.ikv .wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #c8323c;
  font-size: 14px;
  font-weight: 400;
}

.ikv .wpcf7 input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 12px 26px;
  border: 0;
  border-radius: 999px;
  color: var(--ikv-white);
  background: linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
  box-shadow: 0 12px 28px rgba(56, 86, 182, .18);
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: filter .2s var(--ikv-ease), box-shadow .2s var(--ikv-ease);
}

.ikv .wpcf7 input[type="submit"]:hover {
  filter: saturate(1.15) brightness(1.05);
  box-shadow: 0 16px 34px rgba(56, 86, 182, .28);
}

.ikv .wpcf7 .wpcf7-spinner { display: none; }

.ikv .wpcf7 .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--ikv-line);
  border-radius: 12px;
  font-size: 15px;
}

.ikv .wpcf7 .wpcf7-response-output:empty { display: none; }
.ikv .wpcf7 form.sent .wpcf7-response-output { border-color: #3c9a5f; color: #24613b; background: #eef8f1; }
.ikv .wpcf7 form:is(.invalid, .failed, .spam, .aborted) .wpcf7-response-output { border-color: #c8323c; color: #8e1f27; background: #fdf0f1; }

/* --------------------------------------------------------------------------
   Liste à coches (bloc Liste + classe « ikv-checklist »)
   ----------------------------------------------------------------------- */

.ikv .ikv-checklist {
  display: grid;
  gap: 10px;
  margin-inline: 0;
  margin-bottom: 0; /* marge du haut : rythme vertical commun */
  padding: 0;
  list-style: none;
}

.ikv .ikv-checklist li {
  position: relative;
  padding-left: 32px;
  line-height: 1.5;
}

.ikv .ikv-checklist li::before {
  content: "";
  position: absolute;
  top: .1em;
  left: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat,
    linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
}

/* --------------------------------------------------------------------------
   Galerie photos (groupe « ikv-galerie » contenant des images avec légende)
   ----------------------------------------------------------------------- */

.ikv .ikv-galerie:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-galerie > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
  gap: clamp(10px, 1.6vw, 18px);
}

.ikv .ikv-galerie > * + *,
.ikv .ikv-galerie > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-galerie .wp-block-image {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 14px;
  background: var(--ikv-mist);
}

.ikv .ikv-galerie .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ikv-ease);
}

.ikv .ikv-galerie .wp-block-image:hover img { transform: scale(1.05); }

.ikv .ikv-galerie .wp-block-image figcaption {
  position: absolute;
  inset: auto 0 0;
  margin: 0;
  padding: 36px 14px 12px;
  color: var(--ikv-white);
  background: linear-gradient(0deg, rgba(10, 18, 48, .78), transparent);
  font-size: 14px;
  line-height: 1.35;
  text-align: left;
}

/* --------------------------------------------------------------------------
   Code couleur de la signalétique (groupe « ikv-couleurs » + groupes « ikv-couleur »)
   ----------------------------------------------------------------------- */

.ikv .ikv-couleurs:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-couleurs > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(14px, 2vw, 22px);
}

.ikv .ikv-couleurs > * + *,
.ikv .ikv-couleurs > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-couleur {
  --ikv-couleur: var(--ikv-cobalt);
  overflow: hidden;
  border: 1px solid var(--ikv-line);
  border-top: 5px solid var(--ikv-couleur);
  border-radius: var(--ikv-radius);
  background: var(--ikv-white);
}

.ikv .ikv-couleur--rouge { --ikv-couleur: #c8323c; }
.ikv .ikv-couleur--bleu { --ikv-couleur: #3856b6; }
.ikv .ikv-couleur--orange { --ikv-couleur: #e8892b; }
.ikv .ikv-couleur--vert { --ikv-couleur: #3c9a5f; }

.ikv .ikv-couleur .wp-block-image { margin: 0; background: var(--ikv-mist); }
.ikv .ikv-couleur .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ikv .ikv-couleur > :not(.wp-block-image) { margin-inline: 22px; }
.ikv .ikv-couleur > :last-child { margin-bottom: 22px; }
.ikv .ikv-couleur :where(h3) { color: var(--ikv-couleur); font-size: 21px; }
.ikv .ikv-couleur :where(p) { font-size: 15.5px; line-height: 1.6; }

/* Carte « point fort » entièrement cliquable quand son titre contient un lien. */
.ikv .ikv-feature:has(h3 a) {
  position: relative;
  transition: box-shadow .25s var(--ikv-ease), transform .25s var(--ikv-ease), border-color .25s var(--ikv-ease);
}

.ikv .ikv-feature h3 a {
  color: inherit;
  text-decoration: none;
}

.ikv .ikv-feature h3 a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.ikv .ikv-feature:has(h3 a):hover {
  border-color: transparent;
  box-shadow: var(--ikv-shadow-hover);
  transform: translateY(-2px);
}

.ikv .ikv-feature:has(h3 a):hover h3 { color: var(--ikv-cobalt); }

.ikv .ikv-feature:has(h3 a:focus-visible) { outline: 3px solid var(--ikv-ciel); outline-offset: 3px; }
.ikv .ikv-feature h3 a:focus-visible { outline: none; }

/* Pastille « Nouveau » dans un titre. */
.ikv .ikv-badge {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 10px;
  border-radius: 999px;
  color: var(--ikv-white);
  background: linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
  font-family: var(--ikv-font-text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.4;
  vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Étapes numérotées (groupe « ikv-steps » contenant des groupes « ikv-step »)
   ----------------------------------------------------------------------- */

.ikv .ikv-steps:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-steps > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: clamp(18px, 2.4vw, 28px);
  counter-reset: ikv-step;
}

.ikv .ikv-steps > * + *,
.ikv .ikv-steps > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-step {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--ikv-line);
  border-radius: var(--ikv-radius);
  background: var(--ikv-white);
  box-shadow: var(--ikv-shadow);
  counter-increment: ikv-step;
}

/* Grand numéro d'étape en dégradé. */
.ikv .ikv-step::before {
  content: counter(ikv-step, decimal-leading-zero);
  position: absolute;
  top: clamp(20px, 2.6vw, 30px);
  right: clamp(22px, 3vw, 32px);
  font-family: var(--ikv-font-title);
  font-size: clamp(44px, 5vw, 64px);
  font-weight: 300;
  line-height: 1;
  background: linear-gradient(135deg, var(--ikv-cobalt), var(--ikv-ciel));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: .9;
}

.ikv .ikv-step .wp-block-image img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 18px;
  background: var(--ikv-mist);
}

.ikv .ikv-step :where(h3) { padding-right: 70px; }
.ikv .ikv-step :where(p) { font-size: 16px; }
.ikv .ikv-step > .wp-block-buttons { margin-top: auto; padding-top: 1.5rem; }

/* --------------------------------------------------------------------------
   Questions / accordéons (bloc Détails natif, sans JavaScript)
   ----------------------------------------------------------------------- */

.ikv .ikv-faq:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-faq > .wp-block-group__inner-container { display: grid; gap: 12px; }

.ikv .ikv-faq > * + *,
.ikv .ikv-faq > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .wp-block-details {
  margin: 0;
  border: 1px solid var(--ikv-line);
  border-radius: 14px;
  background: var(--ikv-white);
  transition: border-color .2s var(--ikv-ease), box-shadow .2s var(--ikv-ease);
}

.ikv .wp-block-details[open] {
  border-color: transparent;
  box-shadow: var(--ikv-shadow);
}

.ikv .wp-block-details > summary {
  position: relative;
  padding: 20px 66px 20px 24px;
  color: var(--ikv-ink-strong);
  font-family: var(--ikv-font-title);
  font-size: clamp(18px, 1.6vw, 21px);
  font-weight: 400;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}

.ikv .wp-block-details > summary::-webkit-details-marker { display: none; }

.ikv .wp-block-details > summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 22px;
  width: 30px;
  height: 30px;
  margin-top: -15px;
  border-radius: 50%;
  background:
    linear-gradient(var(--ikv-cobalt), var(--ikv-cobalt)) center / 12px 2px no-repeat,
    linear-gradient(var(--ikv-cobalt), var(--ikv-cobalt)) center / 2px 12px no-repeat,
    var(--ikv-mist);
  transition: transform .25s var(--ikv-ease);
}

.ikv .wp-block-details[open] > summary::after { transform: rotate(45deg); }

.ikv .wp-block-details > :not(summary) {
  margin: 0;
  padding: 0 24px;
  font-size: 16px;
}

.ikv .wp-block-details > :not(summary) + :not(summary) { padding-top: .9rem; }
.ikv .wp-block-details > :is(ul, ol) { padding-left: 46px; }
.ikv .wp-block-details li + li { margin-top: .4rem; }
.ikv .wp-block-details .wp-block-image { max-width: 360px; }
.ikv .wp-block-details > :last-child:not(summary) { padding-bottom: 22px; }

.ikv :where(.ikv-section--bleu, .ikv-section--sombre) .wp-block-details { border-color: rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .06); }
.ikv :where(.ikv-section--bleu, .ikv-section--sombre) .wp-block-details > summary { color: var(--ikv-white); }

/* --------------------------------------------------------------------------
   Logos partenaires / utilisateurs (groupe « ikv-logos » contenant des images)
   ----------------------------------------------------------------------- */

.ikv .ikv-logos:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-logos > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
  gap: 14px;
}

.ikv .ikv-logos > * + *,
.ikv .ikv-logos > .wp-block-group__inner-container > * + * { margin-top: 0; }

.ikv .ikv-logos .wp-block-image {
  display: grid;
  place-items: center;
  height: 112px;
  padding: 18px;
  border: 1px solid var(--ikv-line);
  border-radius: 14px;
  background: var(--ikv-white);
}

.ikv .ikv-logos .wp-block-image img {
  width: auto;
  max-width: 100%;
  max-height: 72px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .75;
  transition: filter .25s var(--ikv-ease), opacity .25s var(--ikv-ease);
}

.ikv .ikv-logos .wp-block-image:hover img { filter: none; opacity: 1; }

/* Titre + bouton sur une même ligne (ex. « Les actualités » / « Toutes les actualités »). */
.ikv .ikv-head-row:not(:has(> .wp-block-group__inner-container)),
.ikv .ikv-head-row > .wp-block-group__inner-container {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 16px 32px;
}

.ikv .ikv-head-row > * + *,
.ikv .ikv-head-row > .wp-block-group__inner-container > * + * { margin-top: 0; }

/* --------------------------------------------------------------------------
   Accessibilité / préférences
   ----------------------------------------------------------------------- */

.ikv .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  .ikv .ikv-feature:has(h3 a):hover,
  .ikv .wp-block-button__link:hover,
  .ikv .ikv-btn:hover { transform: none; }

  .ikv *,
  .ikv *::before,
  .ikv *::after { transition: none !important; }
}
