/* ==========================================================================
   Controlling Services — styles du thème
   Port de la maquette (web/assets/css/styles.css) sur le balisage des blocs core.
   Les valeurs viennent de theme.json (presets) : changer une couleur dans
   Apparence > Éditeur > Styles se répercute ici.
   Icônes : classe « has-ico ico-<nom> » sur un bloc (::before) ou <span class="ico ico-<nom>">.
   ========================================================================== */

:root {
  --c-petrole: var(--wp--preset--color--petrole);
  --c-petrole-700: var(--wp--preset--color--petrole-700);
  --c-petrole-900: var(--wp--preset--color--petrole-900);
  --c-accent: var(--wp--preset--color--accent);
  --c-accent-strong: var(--wp--preset--color--accent-strong);
  --c-accent-hover: #0c6e61;
  --c-accent-text: var(--wp--preset--color--accent-text);
  --c-mint: var(--wp--preset--color--mint);
  --c-mint-soft: var(--wp--preset--color--mint-soft);
  --c-ink: var(--wp--preset--color--ink);
  --c-muted: var(--wp--preset--color--muted);
  --c-line: var(--wp--preset--color--line);
  --c-light-accent: #7fd6c7;      /* turquoise clair sur fond foncé */

  --f-head: var(--wp--preset--font-family--head);
  --f-body: var(--wp--preset--font-family--body);
  --f-script: var(--wp--preset--font-family--script);

  --fs-xs: var(--wp--preset--font-size--xs);
  --fs-sm: var(--wp--preset--font-size--sm);
  --fs-base: var(--wp--preset--font-size--base);
  --fs-md: var(--wp--preset--font-size--md);
  --fs-lg: var(--wp--preset--font-size--lg);
  --fs-h3: var(--wp--preset--font-size--heading-3);
  --fs-h2: var(--wp--preset--font-size--heading-2);
  --fs-h1: var(--wp--preset--font-size--heading-1);

  --container: var(--wp--style--global--wide-size, 1200px);
  --gutter: var(--wp--style--root--padding-right, clamp(16px, 4vw, 32px));
  --section-y: clamp(64px, 8vw, 112px);
  --radius-sm: var(--wp--custom--radius--sm);
  --radius: var(--wp--custom--radius--md);
  --radius-lg: var(--wp--custom--radius--lg);
  --shadow-sm: var(--wp--preset--shadow--sm);
  --shadow: var(--wp--preset--shadow--md);
  --shadow-lg: var(--wp--preset--shadow--lg);
  --header-h: var(--wp--custom--header-height, 76px);
  --ease: var(--wp--custom--ease);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; border-radius: 6px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Les grandes zones s'enchaînent sans espace (WordPress en ajoute un par défaut). */
.wp-site-blocks > *,
.site-main > .wp-block-post-content > .alignfull,
.site-bottom > * { margin-block-start: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }
/* Pages « simples » (texte libre, politique de confidentialité…) : de l'air en haut et en bas. */
.wp-block-post-content > :first-child:not(.alignfull) { margin-block-start: clamp(40px, 6vw, 72px); }
.wp-block-post-content > :last-child:not(.alignfull) { margin-block-end: var(--section-y); }

/* ---------- Icônes (masque SVG, couleur = currentColor) ---------- */
.ico,
.has-ico::before {
  content: ""; display: inline-block; flex: none; width: 1em; height: 1em;
  background-color: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.ico { vertical-align: -0.125em; }
.wp-block-button.has-ico::before { content: none; }

/* ---------- Boutons (bloc Bouton) ---------- */
.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; border: 2px solid transparent; white-space: nowrap; text-decoration: none;
  box-shadow: 0 8px 20px rgba(15, 133, 117, 0.28);
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.wp-block-button__link:hover { text-decoration: none; }
.has-arrow .wp-block-button__link::after,
.wp-block-button.has-ico .wp-block-button__link::before {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px; background-color: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
  transition: transform .2s var(--ease);
}
.has-arrow { --ico: url("../img/icons/arrow-right.svg"); }
.has-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }

.wp-block-button.is-style-outline > .wp-block-button__link {
  padding: 0 24px; border: 2px solid var(--c-accent-strong); color: var(--c-accent-text);
  background: #fff; box-shadow: none;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--c-accent-strong); color: #fff; }
.btn-sm .wp-block-button__link { min-height: 42px; padding: 0 20px; }
.wp-block-button__width-100 .wp-block-button__link { width: 100%; }

/* Boutons des formulaires (balisage du mu-plugin) */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 24px; border-radius: 999px; border: 2px solid transparent;
  font-family: var(--f-head); font-weight: 700; font-size: var(--fs-sm); line-height: 1.2;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.btn .ico { font-size: 18px; transition: transform .2s var(--ease); }
.btn:hover .ico--arrow { transform: translateX(3px); }
.btn--primary { background: var(--c-accent-strong); color: #fff; box-shadow: 0 8px 20px rgba(15, 133, 117, 0.28); }
.btn--primary:hover { background: var(--c-accent-hover); color: #fff; text-decoration: none; }
.btn--outline { border-color: var(--c-accent-strong); color: var(--c-accent-text); background: #fff; }
.btn--outline:hover { background: var(--c-accent-strong); color: #fff; }
.btn--sm { min-height: 42px; padding: 0 20px; }
.btn--block { width: 100%; }
.btn:disabled, .btn.is-busy { opacity: .75; cursor: progress; }

/* ---------- Titres de section ---------- */
.eyebrow {
  font-family: var(--f-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--c-accent-text);
}
.eyebrow + * { margin-block-start: 12px; }
.section-title { font-size: var(--fs-h2); }
.section-title--bar::after {
  content: ""; display: block; width: 44px; height: 4px; margin-top: 16px;
  border-radius: 4px; background: var(--c-accent);
}
.section-head { gap: 32px; margin-bottom: 40px; }
.section-head > :first-child { flex: 0 1 auto; }
.section-lead { margin-block-start: 18px; font-size: var(--fs-md); }
.section-aside { gap: 16px; flex: none; }
.section-aside > * { margin: 0; }
.section-aside__num {
  font-family: var(--f-head); font-weight: 700; font-size: clamp(3.5rem, 2.5rem + 3vw, 5rem); line-height: 1;
  color: transparent; background: linear-gradient(180deg, rgba(14, 79, 87, .10), rgba(14, 79, 87, .04));
  -webkit-background-clip: text; background-clip: text;
}
.section-aside__text { font-size: var(--fs-sm); color: var(--c-accent-text); font-weight: 500; line-height: 1.45; }

/* ==========================================================================
   En-tête
   ========================================================================== */
.site-header-part {
  position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50;
  transition: box-shadow .25s var(--ease);
}
/* Le flou est sur un pseudo-élément : un backdrop-filter sur l'en-tête lui-même
   enfermerait le menu mobile (position: fixed) dans la hauteur de l'en-tête. */
.site-header-part::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(255, 255, 255, 0.96);
  -webkit-backdrop-filter: saturate(160%) blur(10px); backdrop-filter: saturate(160%) blur(10px);
}
.site-header-part.is-scrolled { box-shadow: 0 6px 24px rgba(14, 79, 87, 0.1); }
.site-header__inner { min-height: var(--header-h); gap: 24px; }
.brand { flex: none; }
.brand img { height: 42px; width: auto; }

.site-nav .wp-block-navigation__container { gap: 30px; }
.site-nav .wp-block-navigation-item__content {
  position: relative; display: inline-block; padding: 8px 0;
  font-size: var(--fs-sm); font-weight: 500; color: var(--c-ink); text-decoration: none;
  transition: color .2s var(--ease);
}
.site-nav .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
  background: var(--c-accent); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease);
}
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--c-accent-text); text-decoration: none; }
.site-nav .current-menu-item > .wp-block-navigation-item__content { font-weight: 600; }
.site-nav .current-menu-item > .wp-block-navigation-item__content::after,
.site-nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }

/* Menu mobile (bloc Navigation) */
.site-nav .wp-block-navigation__responsive-container-open {
  width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--c-line);
  background: #fff; color: var(--c-petrole); align-items: center; justify-content: center;
}
.site-nav .wp-block-navigation__responsive-container-open svg { width: 24px; height: 24px; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
  padding: calc(var(--header-h) + 8px) var(--gutter) 32px; background: #fff; color: var(--c-ink);
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: static; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  top: calc(var(--wp-admin--admin-bar--height, 0px) + 11px); right: var(--gutter); width: 46px; height: 46px; border-radius: 12px;
  border: 1px solid var(--c-line); align-items: center; justify-content: center; color: var(--c-petrole);
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 24px; height: 24px; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; padding-top: 0; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; align-items: stretch; width: 100%; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block; width: 100%; padding: 16px 0; font-size: var(--fs-md); border-bottom: 1px solid var(--c-line);
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }

/* ==========================================================================
   En-tête des pages intérieures + fil d'Ariane
   ========================================================================== */
.page-hero {
  padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 5vw, 64px);
  background: linear-gradient(180deg, var(--c-mint) 0%, var(--c-mint-soft) 100%); border-bottom: 1px solid var(--c-line);
}
.page-hero__title { font-size: var(--fs-h1); }
.page-hero__lead { max-width: 700px; font-size: var(--fs-md); }
.page-hero .wp-block-heading + * { margin-block-start: 16px; }
.page-hero .hero__actions { margin-block-start: 28px; }
.page-hero--404 { padding-top: clamp(64px, 10vw, 128px); padding-bottom: clamp(64px, 10vw, 128px); }

/* Fil d'Ariane : un paragraphe ; chaque lien est suivi d'un chevron. */
.breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 26px; font-size: var(--fs-sm); color: var(--c-muted); }
.breadcrumb a { display: inline-flex; align-items: center; gap: 8px; color: var(--c-accent-text); text-decoration: none; font-weight: 500; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb a::after {
  content: ""; width: 14px; height: 14px; background-color: var(--c-muted);
  -webkit-mask: url("../img/icons/chevron-right.svg") center / contain no-repeat; mask: url("../img/icons/chevron-right.svg") center / contain no-repeat;
}
.breadcrumb + * { margin-block-start: 0; }
.breadcrumb--light { color: rgba(255, 255, 255, 0.78); }
.breadcrumb--light a, .site-bottom .breadcrumb--light a { color: var(--c-light-accent); }
.breadcrumb--light a::after { background-color: rgba(255, 255, 255, 0.78); }

/* ==========================================================================
   Hero (bloc Couverture)
   ========================================================================== */
.wp-block-cover.hero {
  color: #fff; min-height: min(640px, 88vh); padding: 72px 0 132px; align-items: center;
  background: var(--c-petrole-900);
}
.wp-block-cover.hero > .wp-block-cover__background {
  opacity: 1 !important;
  background:
    linear-gradient(90deg, rgba(7, 47, 52, 0.92) 0%, rgba(7, 47, 52, 0.72) 32%, rgba(7, 47, 52, 0.18) 62%, rgba(7, 47, 52, 0) 78%),
    linear-gradient(0deg, rgba(7, 47, 52, 0.55) 0%, rgba(7, 47, 52, 0) 30%);
}
/* WordPress retire le padding des conteneurs imbriqués : on rend la gouttière au contenu du hero. */
.hero .wp-block-cover__inner-container { width: 100%; padding-left: var(--gutter); padding-right: var(--gutter); }
.hero__inner { position: relative; }
.hero__content { max-width: 700px; }
.hero__eyebrow { color: #fff; opacity: .92; }
.hero__eyebrow + * { margin-block-start: 18px; }
.hero__title { color: #fff; font-size: var(--fs-h1); letter-spacing: -0.012em; }
.hero__lead { margin-block-start: 22px; font-size: var(--fs-md); line-height: 1.55; color: rgba(255, 255, 255, 0.92); max-width: 480px; }
.hero__actions { gap: 14px; margin-block-start: 34px; }

.hero__script {
  position: absolute; right: 7%; top: 2%; margin: 0;
  font-family: var(--f-script); font-size: clamp(1.6rem, 1rem + 1.4vw, 2.3rem); font-weight: 500;
  line-height: 1.05; color: rgba(255, 255, 255, 0.95);
  transform: rotate(-8deg); text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}
.hero__script::after {
  content: ""; display: block; width: 150px; height: 18px; margin: 4px 0 0 40%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 18'%3E%3Cpath d='M2 12c30-8 70-10 110-5 12 2 22 1 36-4' fill='none' stroke='rgba(255,255,255,.85)' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat;
}

.hero__badge {
  position: absolute; right: 0; bottom: 8px; margin: 0; gap: 14px;
  padding: 16px 20px; border-radius: var(--radius);
  background: rgba(7, 47, 52, 0.42); border: 1px solid rgba(255, 255, 255, 0.22);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  font-size: var(--fs-xs); line-height: 1.5; color: rgba(255, 255, 255, 0.9);
}
.hero__flag { margin: 0; flex: none; }
.hero__flag img { width: 30px; height: 30px; display: block; }
.hero__badge strong { display: block; font-size: var(--fs-sm); color: #fff; font-family: var(--f-head); }

/* ---------- Bandeau de confiance ---------- */
.trust { position: relative; z-index: 2; }
.wp-block-post-content > .trust.alignfull { margin-block-start: -72px; }
.trust__card {
  display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; list-style: none;
  background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 26px 12px;
}
.trust__card > li {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  margin: 0; padding: 6px 12px; text-align: center;
  font-family: var(--f-head); font-weight: 700; font-size: var(--fs-sm); color: var(--c-petrole);
}
.trust__card > li + li { border-left: 1px solid var(--c-line); }
.trust__card > li::before { font-size: 38px; color: var(--c-accent); }

/* ==========================================================================
   Qui sommes-nous
   ========================================================================== */
.about { padding-top: var(--section-y); padding-bottom: var(--section-y); }
.wp-block-columns.about__grid { gap: clamp(40px, 6vw, 80px); align-items: center; margin: 0 auto; }
.about__grid > .about__text { flex: 1 1 0; }
.about__grid > .about__media { flex: 1.08 1 0; }
.about__text .section-title { margin-bottom: 22px; }
.about__text > p + p { margin-block-start: 14px; }
.about__text strong { color: var(--c-petrole); }
.about__text p a { color: var(--c-accent-text); font-weight: 600; }

.features { display: flex; flex-wrap: wrap; gap: 20px 48px; margin: 44px 0 0; padding: 0; list-style: none; }
.features > li {
  display: flex; flex-direction: column; gap: 10px; margin: 0;
  font-family: var(--f-head); font-size: var(--fs-sm); font-weight: 700; color: var(--c-petrole);
}
.features > li::before { font-size: 30px; color: var(--c-accent); }

.wp-block-column.about__media {
  position: relative; align-self: start; margin-top: 28px;
  margin-right: calc(-1 * max(var(--gutter), (100vw - var(--container)) / 2));
}
.about__photo { margin: 0; }
.about__photo img {
  display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg); box-shadow: var(--shadow);
}
.about__quote {
  position: absolute; z-index: 1; top: -28px; right: clamp(16px, 8%, 90px); margin: 0;
  display: flex; gap: 12px; align-items: flex-start; max-width: 260px;
  padding: 18px 20px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);
  font-size: var(--fs-sm); font-weight: 500; line-height: 1.45; color: var(--c-ink);
}
.about__quote::before { font-size: 26px; color: var(--c-accent); }

/* ==========================================================================
   Lien vers l'autre domaine (bas des pages Controlling / Fiscalité)
   ========================================================================== */
.crosslink {
  gap: 18px; margin-block-start: 36px; padding: 20px 24px;
  border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--c-line); box-shadow: var(--shadow-sm);
}
.crosslink::before { width: 46px; height: 46px; border-radius: 12px; background: var(--ico-t) center / 22px no-repeat, var(--c-mint); }
.crosslink > p { flex: 1; margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.crosslink strong { display: block; font-family: var(--f-head); font-size: var(--fs-base); color: var(--c-petrole); }
.crosslink > .wp-block-buttons { flex: none; margin: 0; }
.tax .crosslink { background: var(--c-mint-soft); box-shadow: none; }

/* ==========================================================================
   Controlling (prestations)
   ========================================================================== */
.services { padding-top: var(--section-y); padding-bottom: var(--section-y); background: linear-gradient(180deg, var(--c-mint) 0%, var(--c-mint-soft) 100%); }
.svc-groups { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 22px; }
.svc-groups > * { margin: 0; }
.svc-group {
  display: flex; flex-direction: column; padding: 26px 24px 16px;
  background: #fff; border-radius: var(--radius-lg); border: 1px solid rgba(14, 79, 87, 0.06); box-shadow: var(--shadow-sm);
}
.svc-group > * { margin-block-start: 0; }
.svc-group__head {
  display: grid; grid-template-columns: 46px 1fr; column-gap: 14px; align-items: center;
  padding-bottom: 18px; margin-bottom: 8px; border-bottom: 2px solid var(--c-mint);
}
.svc-group__head::before { grid-row: span 2; width: 46px; height: 46px; border-radius: 12px; background: var(--ico-w) center / 22px no-repeat, var(--c-petrole); }
.svc-group__head > * { margin: 0; grid-column: 2; }
.svc-group__title { font-size: var(--fs-lg); }
.svc-group__sub { margin-top: 2px; font-size: var(--fs-sm); color: var(--c-muted); }
.svc-list { list-style: none; margin: 0; padding: 0; }
.svc-list--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; padding-top: 8px; }
.svc-list > li {
  /* Icône hors du flux : titre + description (avec liens éventuels) restent un seul bloc de texte. */
  position: relative; margin: 0 -12px; padding: 12px 12px 12px 48px; border-radius: var(--radius-sm);
  font-size: var(--fs-sm); line-height: 1.5; color: var(--c-muted); transition: background-color .2s var(--ease);
}
.svc-list > li:hover { background: var(--c-mint-soft); }
.svc-list > li::before { position: absolute; left: 12px; top: 13px; font-size: 22px; color: var(--c-accent); }
.svc-list strong {
  display: block; margin-bottom: 3px; font-family: var(--f-head); font-size: var(--fs-base); font-weight: 700;
  line-height: 1.35; color: var(--c-ink); letter-spacing: -0.01em;
}

/* ==========================================================================
   Fiscalité
   ========================================================================== */
.tax { padding-top: var(--section-y); padding-bottom: var(--section-y); }
.tax__subtitle { font-family: var(--f-head); font-size: var(--fs-lg); font-weight: 600; color: var(--c-ink); }
.page-hero .tax__subtitle { margin-block-start: 14px; }
.tax__tagline { margin-block-start: 8px; font-family: var(--f-head); font-size: var(--fs-md); font-weight: 700; color: var(--c-accent-text); }
.tax__intro { margin-block-start: 14px; max-width: 640px; color: var(--c-muted); }

/* Étapes 1 → 2 → 3 (liste numérotée) */
.steps { counter-reset: step; list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.steps > li {
  counter-increment: step; position: relative; display: grid; grid-template-columns: 36px 1fr; column-gap: 14px; align-items: center;
  margin: 0; padding: 16px 18px; border-radius: var(--radius); background: var(--c-mint-soft); border: 1px solid var(--c-line);
  font-size: var(--fs-xs); line-height: 1.35; color: var(--c-muted);
}
.steps > li::before {
  content: counter(step); grid-row: span 2; width: 36px; height: 36px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-petrole); color: #fff; font-family: var(--f-head); font-weight: 700; font-size: var(--fs-base);
}
.steps > li:not(:last-child)::after {
  content: ""; position: absolute; top: 50%; right: -15px; z-index: 1;
  width: 9px; height: 9px; border-top: 2px solid var(--c-accent); border-right: 2px solid var(--c-accent);
  transform: translateY(-50%) rotate(45deg);
}
.steps strong { display: block; margin-bottom: 2px; font-family: var(--f-head); font-size: var(--fs-sm); color: var(--c-petrole); }

/* Deux canaux : en ligne (recommandé) ou formulaire PDF */
.channels { display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; align-items: stretch; }
.channels > * { margin: 0; }
.channel {
  position: relative; display: flex; flex-direction: column; gap: 22px;
  padding: 30px 30px 28px; border-radius: var(--radius-lg); background: #fff;
  border: 1.5px solid var(--c-line); box-shadow: var(--shadow-sm);
}
.channel > * { margin: 0; }
.channel--featured { border: 2px solid var(--c-accent); background: linear-gradient(160deg, var(--c-mint) 0%, #fff 55%); box-shadow: 0 18px 40px rgba(28, 158, 138, 0.16); }
.channel__badge {
  position: absolute; top: 0; right: 24px; transform: translateY(-50%);
  padding: 5px 14px; border-radius: 999px; background: var(--c-accent-strong); color: #fff;
  font-family: var(--f-head); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .02em;
}
.channel__head { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; align-items: start; }
.channel__head::before { grid-row: span 2; width: 52px; height: 52px; border-radius: 14px; background: var(--ico-w) center / 26px no-repeat, var(--c-accent-strong); }
.channel__head--soft::before { background: var(--ico-t) center / 26px no-repeat, var(--c-mint); }
.channel__head > * { grid-column: 2; margin: 0; }
.channel__head h3 { font-size: var(--fs-h3); }
.channel__head p { margin-top: 4px; font-size: var(--fs-sm); color: var(--c-muted); }
.channel__list, .channel__ways { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.channel__list { gap: 10px; }
.channel__list > li { display: flex; align-items: center; gap: 10px; margin: 0; font-size: var(--fs-sm); color: var(--c-ink); }
.channel__list > li::before { font-size: 20px; color: var(--c-accent-strong); }
.channel__ways { gap: 14px; }
.channel__ways > li { position: relative; padding-left: 32px; margin: 0; font-size: var(--fs-sm); line-height: 1.45; color: var(--c-muted); }
.channel__ways > li::before { position: absolute; left: 0; top: 2px; font-size: 20px; color: var(--c-accent); }
.channel__ways strong { display: block; font-family: var(--f-head); color: var(--c-petrole); }
.channel__ways a { color: var(--c-accent-text); font-weight: 600; }
.channel > .wp-block-buttons { margin-top: auto; }

.tax__note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-block-start: 26px; font-size: var(--fs-sm); color: var(--c-muted); text-align: center; }
.tax__note::before { color: var(--c-accent); font-size: 18px; }

/* Icône dans une « boîte » colorée : pas de masque, l'icône déjà colorée (icons/w = blanc,
   icons/t = turquoise) est posée en image de fond sur la couleur de la boîte. */
.crosslink::before,
.svc-group__head::before,
.channel__head::before { -webkit-mask: none; mask: none; }

/* ==========================================================================
   Contact + pied de page (fond montagnes partagé)
   ========================================================================== */
.site-bottom {
  position: relative; isolation: isolate; color: #fff;
  background: var(--c-petrole-900) url("../img/montagnes.webp") center bottom / cover no-repeat;
}
.site-bottom::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(14, 79, 87, 0.9) 0%, rgba(11, 67, 74, 0.62) 45%, rgba(7, 47, 52, 0.55) 72%, rgba(7, 47, 52, 0.35) 100%);
}
.site-bottom .eyebrow { color: var(--c-light-accent); }
.site-bottom .section-title { color: #fff; }
.site-bottom .section-title--bar::after { background: #3cc3ad; }
.site-bottom a:where(:not(.wp-block-button__link):not(.btn)) { color: #fff; }

.contact { padding-top: var(--section-y); padding-bottom: calc(var(--section-y) * 0.8); }
.contact--page { padding-top: clamp(32px, 5vw, 56px); }
.contact--page .breadcrumb { margin-bottom: clamp(28px, 4vw, 48px); }
.wp-block-columns.contact__grid { gap: clamp(40px, 6vw, 96px); margin: 0; }
.contact__lead { margin-block-start: 22px; max-width: 460px; font-size: var(--fs-md); color: rgba(255, 255, 255, 0.9); }
/* Icône hors du flux : le texte et ses liens restent un seul paragraphe. */
.contact__shortcut { position: relative; padding-left: 32px; margin-block-start: 28px; max-width: 460px; font-size: var(--fs-sm); color: rgba(255, 255, 255, 0.85); }
.contact__shortcut::before { position: absolute; left: 0; top: 1px; font-size: 20px; color: var(--c-light-accent); }
.contact__shortcut a { font-weight: 600; }

/* Bandeau d'appel vers /contact/ (bas de chaque page) */
.cta-band { padding-top: calc(var(--section-y) * 0.85); padding-bottom: calc(var(--section-y) * 0.7); }
.cta-band__inner { gap: 32px 64px; }
.cta-band__inner > * { margin: 0; }
.cta-band__side { gap: 32px 48px; }
.cta-band__side > * { margin: 0; }
.contact__address { position: relative; padding-left: 40px; margin-block-start: 36px; font-size: var(--fs-md); font-style: normal; line-height: 1.6; color: rgba(255, 255, 255, 0.95); }
.cta-band .contact__address { margin-block-start: 0; }
.contact__address::before { position: absolute; left: 0; top: 2px; font-size: 26px; color: var(--c-light-accent); }

/* Carte du formulaire de contact */
.form-card { background: #fff; color: var(--c-ink); border-radius: var(--radius-lg); padding: clamp(24px, 3vw, 34px); box-shadow: var(--shadow-lg); }
.form-card a { color: var(--c-accent-text); }
.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.field label, .field .label { font-size: var(--fs-sm); font-weight: 600; color: var(--c-ink); }
.field input, .field select, .field textarea {
  width: 100%; min-height: 46px; padding: 11px 14px; border-radius: var(--radius-sm);
  border: 1.5px solid var(--c-line); background: #fff; font: inherit; font-size: var(--fs-base); color: var(--c-ink);
  transition: border-color .2s, box-shadow .2s; box-sizing: border-box;
}
.field textarea { min-height: 110px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #93a4a8; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--c-accent); box-shadow: 0 0 0 4px rgba(28, 158, 138, 0.15); }
.field.has-error input, .field.has-error textarea, .field.has-error select { border-color: #c2413b; }
.field__error { font-size: var(--fs-xs); color: #b3261e; }
.form-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; font-size: var(--fs-xs); color: var(--c-muted); text-align: center; }
.form-note .ico { font-size: 14px; }
.form-status { display: none; align-items: flex-start; gap: 12px; padding: 16px 18px; margin-top: 16px; border-radius: var(--radius-sm); font-size: var(--fs-sm); }
.form-status.is-visible { display: flex; }
.form-status p { margin: 0; }
.form-status--ok { background: var(--c-mint); color: var(--c-petrole); }
.form-status--ok .ico { font-size: 20px; color: var(--c-accent-strong); margin-top: 1px; }
.form-status--error { background: #fdecea; color: #8c1d18; }
/* Champ piège anti-spam : invisible pour les humains. */
.cs-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Pied de page ---------- */
.site-footer { padding-top: 8px; padding-bottom: 40px; }
.site-footer--compact { padding-top: 16px; }
.site-footer__row { gap: 28px; padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.site-footer--compact .site-footer__row { border-top: 0; }
.site-footer__brand { margin: 0; }
.site-footer__brand img { height: 38px; width: auto; display: block; }
.footer-nav .wp-block-navigation__container { gap: 8px 26px; flex-wrap: wrap; }
.footer-nav .wp-block-navigation-item__content { font-size: var(--fs-sm); color: rgba(255, 255, 255, 0.85) !important; text-decoration: none; }
.footer-nav .wp-block-navigation-item__content:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 4px; }
.site-footer__end { gap: 24px; }
.site-footer__end > * { margin: 0; }
.wp-block-social-links.social { gap: 8px; margin: 0; }
.wp-block-social-links.social .wp-social-link {
  width: 38px; height: 38px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.25); transition: background-color .2s;
}
.wp-block-social-links.social .wp-social-link:hover { background: var(--c-accent-strong); transform: none; }
.wp-block-social-links.social .wp-social-link a { padding: 0; }
.wp-block-social-links.social .wp-social-link svg { width: 18px; height: 18px; }
.site-footer__legal { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, 0.25); font-size: var(--fs-xs); line-height: 1.7; color: rgba(255, 255, 255, 0.78); }
.site-footer__legal > * { margin: 0; }
.site-bottom .site-footer__legal a { color: rgba(255, 255, 255, 0.78); }
.site-bottom .site-footer__legal a:hover { color: #fff; }
.site-footer__motto {
  margin: 64px auto 0 !important; width: fit-content; text-align: center;
  font-family: var(--f-script); font-weight: 500; font-size: clamp(1.5rem, 1.1rem + 1vw, 2rem); line-height: 1.1;
  color: rgba(255, 255, 255, 0.92); transform: rotate(-4deg);
}
.site-footer__motto::after {
  content: ""; display: block; width: 110px; height: 14px; margin: 6px auto 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 14'%3E%3Cpath d='M2 9c26-6 58-7 106-3' fill='none' stroke='%233cc3ad' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat;
}

/* ==========================================================================
   Apparition au défilement (seulement avec JS)
   ========================================================================== */
.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }
.reveal--d1 { transition-delay: .08s; }
.reveal--d2 { transition-delay: .16s; }
.reveal--d3 { transition-delay: .24s; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .site-nav .wp-block-navigation__container { gap: 20px; }
}

/* ---------- Tablette ---------- */
@media (max-width: 960px) {
  :root { --header-h: 68px; }
  .brand img { height: 36px; }

  /* La photo reste visible en haut, le texte se pose sur un dégradé en bas */
  .wp-block-cover.hero { align-items: flex-end; padding: clamp(180px, 34vw, 300px) 0 120px; min-height: 0 !important; }
  .wp-block-cover.hero > .wp-block-cover__background { background: linear-gradient(180deg, rgba(7,47,52,.12) 0%, rgba(7,47,52,.22) 14%, rgba(7,47,52,.74) 32%, rgba(7,47,52,.93) 100%); }
  .hero__title { text-shadow: 0 2px 20px rgba(0, 0, 0, 0.25); }
  .hero__script { display: none; }
  .hero__badge { position: static; margin-top: 28px; width: fit-content; }

  .trust__card { padding: 8px; }
  .trust__card > li { padding: 18px 8px; }

  .wp-block-columns.about__grid { flex-direction: column; }
  .about__grid > .wp-block-column { flex-basis: auto !important; width: 100%; }
  .wp-block-column.about__media { margin-right: 0; margin-top: 28px; }
  .about__photo img { border-radius: var(--radius-lg); }

  .section-head { flex-direction: column; align-items: flex-start !important; gap: 20px; }

  .svc-groups { grid-template-columns: 1fr; }
  .svc-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
  .channels { grid-template-columns: 1fr; }

  .wp-block-columns.contact__grid { flex-direction: column; }
  .contact__grid > .wp-block-column { flex-basis: auto !important; width: 100%; }
  .cta-band__inner, .cta-band__side { flex-direction: column; align-items: flex-start !important; }
  .site-footer__row { flex-direction: column; align-items: flex-start !important; }
  .site-footer__end { flex-wrap: wrap !important; }
  .site-bottom { background-image: url("../img/montagnes-1024.webp"); }
}

/* ---------- Mobile ---------- */
@media (max-width: 600px) {
  :root { --section-y: 56px; }
  .section-head { margin-bottom: 28px; }
  .section-aside { display: none !important; }
  .section-lead { font-size: var(--fs-base); margin-block-start: 14px; }

  .wp-block-cover.hero { padding: 190px 0 104px; }
  .hero .wp-block-cover__image-background { object-position: 36% 50% !important; }
  .hero__title { font-size: 2rem; }
  .hero__eyebrow { font-size: 0.6875rem; }
  .hero__lead { font-size: var(--fs-base); margin-block-start: 16px; }
  .hero__actions { margin-block-start: 26px; gap: 12px; }
  .hero__actions .wp-block-button, .hero__actions .wp-block-button__link { width: 100%; }
  .hero__badge { display: none !important; }

  .wp-block-post-content > .trust.alignfull { margin-block-start: -64px; }
  .trust__card > li { gap: 8px; padding: 16px 4px; font-size: var(--fs-xs); }
  .trust__card > li::before { font-size: 30px; }

  .crosslink { flex-wrap: wrap !important; padding: 18px; }
  .crosslink > p { flex-basis: calc(100% - 64px); }
  .crosslink > .wp-block-buttons, .crosslink .wp-block-button, .crosslink .wp-block-button__link { width: 100%; }
  .cta-band__side { align-self: stretch; }
  .cta-band .wp-block-buttons, .cta-band .wp-block-button, .cta-band .wp-block-button__link { width: 100%; }
  .page-hero .hero__actions .wp-block-button, .page-hero .hero__actions .wp-block-button__link { width: 100%; }

  .about__quote { position: relative; top: auto; right: auto; max-width: none; margin: 0 16px -18px; }
  .features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 32px; }

  .svc-list, .svc-list--cols { grid-template-columns: 1fr; }
  .svc-group { padding: 20px 18px 10px; }
  .svc-list > li { padding: 10px 12px 10px 48px; }
  .svc-list > li::before { top: 11px; }
  .svc-list strong { font-size: 0.9375rem; }

  .steps { grid-template-columns: 1fr; gap: 10px; margin-bottom: 22px; }
  .steps > li::after { display: none; }
  .channel { padding: 26px 20px 22px; gap: 18px; }
  .channel .wp-block-buttons, .channel .wp-block-button, .channel .wp-block-button__link { width: 100%; }
  .channel__badge { right: 16px; }

  .tax__subtitle { font-size: var(--fs-md); }
  .tax__tagline { font-size: var(--fs-base); }
  .tax__intro { font-size: var(--fs-sm); }

  .tax__note, .form-note { justify-content: flex-start; align-items: flex-start; text-align: left; }
  .tax__note::before, .form-note .ico { margin-top: 3px; }
  .contact__address { margin-block-start: 26px; font-size: var(--fs-base); }
  .site-footer__legal { padding-left: 0; border-left: 0; }
  .site-footer__motto { margin-top: 44px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ---------- Table des icônes (généré depuis assets/img/icons/) ---------- */
.ico-arrow-right { --ico: url("../img/icons/arrow-right.svg"); --ico-w: url("../img/icons/w/arrow-right.svg"); --ico-t: url("../img/icons/t/arrow-right.svg"); }
.ico-at-sign { --ico: url("../img/icons/at-sign.svg"); --ico-w: url("../img/icons/w/at-sign.svg"); --ico-t: url("../img/icons/t/at-sign.svg"); }
.ico-calculator { --ico: url("../img/icons/calculator.svg"); --ico-w: url("../img/icons/w/calculator.svg"); --ico-t: url("../img/icons/t/calculator.svg"); }
.ico-calendar-days { --ico: url("../img/icons/calendar-days.svg"); --ico-w: url("../img/icons/w/calendar-days.svg"); --ico-t: url("../img/icons/t/calendar-days.svg"); }
.ico-chart-column { --ico: url("../img/icons/chart-column.svg"); --ico-w: url("../img/icons/w/chart-column.svg"); --ico-t: url("../img/icons/t/chart-column.svg"); }
.ico-chart-no-axes-column { --ico: url("../img/icons/chart-no-axes-column.svg"); --ico-w: url("../img/icons/w/chart-no-axes-column.svg"); --ico-t: url("../img/icons/t/chart-no-axes-column.svg"); }
.ico-chart-pie { --ico: url("../img/icons/chart-pie.svg"); --ico-w: url("../img/icons/w/chart-pie.svg"); --ico-t: url("../img/icons/t/chart-pie.svg"); }
.ico-chart-spline { --ico: url("../img/icons/chart-spline.svg"); --ico-w: url("../img/icons/w/chart-spline.svg"); --ico-t: url("../img/icons/t/chart-spline.svg"); }
.ico-check { --ico: url("../img/icons/check.svg"); --ico-w: url("../img/icons/w/check.svg"); --ico-t: url("../img/icons/t/check.svg"); }
.ico-chevron-left { --ico: url("../img/icons/chevron-left.svg"); --ico-w: url("../img/icons/w/chevron-left.svg"); --ico-t: url("../img/icons/t/chevron-left.svg"); }
.ico-chevron-right { --ico: url("../img/icons/chevron-right.svg"); --ico-w: url("../img/icons/w/chevron-right.svg"); --ico-t: url("../img/icons/t/chevron-right.svg"); }
.ico-circle-check { --ico: url("../img/icons/circle-check.svg"); --ico-w: url("../img/icons/w/circle-check.svg"); --ico-t: url("../img/icons/t/circle-check.svg"); }
.ico-clock { --ico: url("../img/icons/clock.svg"); --ico-w: url("../img/icons/w/clock.svg"); --ico-t: url("../img/icons/t/clock.svg"); }
.ico-coins { --ico: url("../img/icons/coins.svg"); --ico-w: url("../img/icons/w/coins.svg"); --ico-t: url("../img/icons/t/coins.svg"); }
.ico-download { --ico: url("../img/icons/download.svg"); --ico-w: url("../img/icons/w/download.svg"); --ico-t: url("../img/icons/t/download.svg"); }
.ico-factory { --ico: url("../img/icons/factory.svg"); --ico-w: url("../img/icons/w/factory.svg"); --ico-t: url("../img/icons/t/factory.svg"); }
.ico-file-text { --ico: url("../img/icons/file-text.svg"); --ico-w: url("../img/icons/w/file-text.svg"); --ico-t: url("../img/icons/t/file-text.svg"); }
.ico-gauge { --ico: url("../img/icons/gauge.svg"); --ico-w: url("../img/icons/w/gauge.svg"); --ico-t: url("../img/icons/t/gauge.svg"); }
.ico-heart { --ico: url("../img/icons/heart.svg"); --ico-w: url("../img/icons/w/heart.svg"); --ico-t: url("../img/icons/t/heart.svg"); }
.ico-hourglass { --ico: url("../img/icons/hourglass.svg"); --ico-w: url("../img/icons/w/hourglass.svg"); --ico-t: url("../img/icons/t/hourglass.svg"); }
.ico-linkedin { --ico: url("../img/icons/linkedin.svg"); --ico-w: url("../img/icons/w/linkedin.svg"); --ico-t: url("../img/icons/t/linkedin.svg"); }
.ico-lock { --ico: url("../img/icons/lock.svg"); --ico-w: url("../img/icons/w/lock.svg"); --ico-t: url("../img/icons/t/lock.svg"); }
.ico-mail { --ico: url("../img/icons/mail.svg"); --ico-w: url("../img/icons/w/mail.svg"); --ico-t: url("../img/icons/t/mail.svg"); }
.ico-map-pin { --ico: url("../img/icons/map-pin.svg"); --ico-w: url("../img/icons/w/map-pin.svg"); --ico-t: url("../img/icons/t/map-pin.svg"); }
.ico-menu { --ico: url("../img/icons/menu.svg"); --ico-w: url("../img/icons/w/menu.svg"); --ico-t: url("../img/icons/t/menu.svg"); }
.ico-minus { --ico: url("../img/icons/minus.svg"); --ico-w: url("../img/icons/w/minus.svg"); --ico-t: url("../img/icons/t/minus.svg"); }
.ico-monitor-up { --ico: url("../img/icons/monitor-up.svg"); --ico-w: url("../img/icons/w/monitor-up.svg"); --ico-t: url("../img/icons/t/monitor-up.svg"); }
.ico-percent { --ico: url("../img/icons/percent.svg"); --ico-w: url("../img/icons/w/percent.svg"); --ico-t: url("../img/icons/t/percent.svg"); }
.ico-phone { --ico: url("../img/icons/phone.svg"); --ico-w: url("../img/icons/w/phone.svg"); --ico-t: url("../img/icons/t/phone.svg"); }
.ico-plus { --ico: url("../img/icons/plus.svg"); --ico-w: url("../img/icons/w/plus.svg"); --ico-t: url("../img/icons/t/plus.svg"); }
.ico-quote { --ico: url("../img/icons/quote.svg"); --ico-w: url("../img/icons/w/quote.svg"); --ico-t: url("../img/icons/t/quote.svg"); }
.ico-scan-search { --ico: url("../img/icons/scan-search.svg"); --ico-w: url("../img/icons/w/scan-search.svg"); --ico-t: url("../img/icons/t/scan-search.svg"); }
.ico-send { --ico: url("../img/icons/send.svg"); --ico-w: url("../img/icons/w/send.svg"); --ico-t: url("../img/icons/t/send.svg"); }
.ico-settings { --ico: url("../img/icons/settings.svg"); --ico-w: url("../img/icons/w/settings.svg"); --ico-t: url("../img/icons/t/settings.svg"); }
.ico-shield-check { --ico: url("../img/icons/shield-check.svg"); --ico-w: url("../img/icons/w/shield-check.svg"); --ico-t: url("../img/icons/t/shield-check.svg"); }
.ico-target { --ico: url("../img/icons/target.svg"); --ico-w: url("../img/icons/w/target.svg"); --ico-t: url("../img/icons/t/target.svg"); }
.ico-trending-up { --ico: url("../img/icons/trending-up.svg"); --ico-w: url("../img/icons/w/trending-up.svg"); --ico-t: url("../img/icons/t/trending-up.svg"); }
.ico-upload { --ico: url("../img/icons/upload.svg"); --ico-w: url("../img/icons/w/upload.svg"); --ico-t: url("../img/icons/t/upload.svg"); }
.ico-user-round-check { --ico: url("../img/icons/user-round-check.svg"); --ico-w: url("../img/icons/w/user-round-check.svg"); --ico-t: url("../img/icons/t/user-round-check.svg"); }
.ico-users { --ico: url("../img/icons/users.svg"); --ico-w: url("../img/icons/w/users.svg"); --ico-t: url("../img/icons/t/users.svg"); }
.ico-x { --ico: url("../img/icons/x.svg"); --ico-w: url("../img/icons/w/x.svg"); --ico-t: url("../img/icons/t/x.svg"); }
