/*
Theme Name: Cabinet WM
Theme URI: https://cabinet-wmouzai.com
Author: Cabinet WM
Description: Thème sur mesure du Cabinet WM, d'après la maquette « Cabinet WM – Refonte » (système Modernist). Textes, images et coordonnées se modifient dans Apparence → Personnaliser ; les prestations dans le menu « Services » de l'administration.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cabinet-wm
*/

/* ==========================================================================
   Jetons (tokens) — valeurs de la maquette
   ========================================================================== */
:root {
  --color-bg: #ffffff;
  --color-surface: #f6f6f6;
  --color-text: #201e1d;
  --color-accent: #b83336;
  --color-accent-2: #98addd;
  --color-divider: rgba(32, 30, 29, 0.4);

  --color-neutral-100: #f8f4f4;
  --color-neutral-200: #eae7e7;
  --color-neutral-300: #d7d3d3;
  --color-neutral-400: #bab6b6;
  --color-neutral-500: #9b9797;
  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;
  --color-neutral-900: #2d2b2b;

  --color-accent-100: #fbf1f1;
  --color-accent-200: #f6dedf;
  --color-accent-300: #edc2c3;
  --color-accent-400: #dd9294;
  --color-accent-500: #cc5f62;
  --color-accent-600: #a02b2e;
  --color-accent-700: #8a2427;
  --color-accent-800: #661a1c;
  --color-accent-900: #451618;

  --color-accent-2-100: #f2f5fb;
  --color-accent-2-200: #e0e8f6;
  --color-accent-2-300: #c8d6ee;
  --color-accent-2-400: #aec3e5;
  --color-accent-2-500: #98addd;
  --color-accent-2-600: #7290c6;
  --color-accent-2-700: #4f6ca3;
  --color-accent-2-800: #37507c;
  --color-accent-2-900: #263857;

  --font-heading: "Archivo", system-ui, sans-serif;
  --font-heading-weight: 800;
  --font-body: "Archivo", system-ui, sans-serif;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;

  --radius-sm: 0px;
  --radius-md: 0px;
  --radius-lg: 0px;

  --shadow-sm: 0 1px 2px rgba(45, 43, 43, 0.14);
  --shadow-md: 0 3px 10px rgba(45, 43, 43, 0.16);
  --shadow-lg: 0 12px 32px rgba(45, 43, 43, 0.22);

  --wm-container: 1240px;
  --wm-gutter: clamp(16px, 4vw, 40px);
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--color-bg); color: var(--color-text);
  font-family: var(--font-body); font-size: 15px; line-height: 1.55; font-weight: 400;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent-700); text-decoration: none; text-underline-offset: 3px; }
a:hover { color: var(--color-accent); }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
figcaption { font-size: 11px; margin-top: var(--space-1); color: rgba(32, 30, 29, 0.55); }
.text-muted { color: rgba(32, 30, 29, 0.55); }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: rgba(184, 51, 54, 0.3); }
button { font: inherit; }

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
  overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
  clip: auto; clip-path: none; height: auto; width: auto; left: 8px; top: 8px; z-index: 100000;
  background: var(--color-bg); color: var(--color-accent); padding: 12px 16px; border: 2px solid var(--color-accent);
}
.alignleft { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 12px; color: var(--color-neutral-700); margin-top: 6px; }
.sticky, .bypostauthor, .gallery-caption { display: inherit; }

/* ==========================================================================
   Composants du système Modernist
   ========================================================================== */
.hr { height: 2px; border: 0; margin: var(--space-4) 0; background: var(--color-divider); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 14px; line-height: 1.2; color: var(--color-text);
  background: transparent; border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md); white-space: nowrap;
}
.btn svg { display: block; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); color: var(--color-bg); }
.btn-primary:hover { background: var(--color-accent-600); color: var(--color-bg); }
.btn-primary:active { background: var(--color-accent-700); }
.btn-secondary { border-color: var(--color-divider); color: var(--color-text); }
.btn-secondary:hover { background: rgba(32, 30, 29, 0.07); color: var(--color-text); }
.btn-secondary:active { background: rgba(32, 30, 29, 0.14); }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: rgba(184, 51, 54, 0.1); }
.btn-block { width: 100%; margin-top: var(--space-2); justify-content: flex-start; text-align: left; white-space: normal; }
.btn-lg { min-height: 48px; padding-inline: 22px; }
.btn-md { min-height: 44px; }
.btn-inverse { background: var(--color-bg); color: var(--color-text); border-color: var(--color-bg); }
.btn-inverse:hover { background: var(--color-accent-100); color: var(--color-text); }
.btn-outline-light { background: transparent; color: var(--color-bg); border: 1px solid var(--color-bg); }
.btn-outline-light:hover { background: rgba(255, 255, 255, 0.12); color: var(--color-bg); }

.field > label { display: block; font-size: 12px; margin-bottom: 5px; color: rgba(32, 30, 29, 0.7); }
.input {
  width: 100%; min-height: 36px; padding: 6px 10px; font: inherit;
  font-size: 14px; color: var(--color-text); caret-color: var(--color-accent);
  background: var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input:hover { border-color: rgba(32, 30, 29, 0.45); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }

.card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); background: var(--color-surface); }
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }

.tag {
  display: inline-flex; align-items: center; font-size: 11px;
  letter-spacing: 0.02em; padding: 3px 10px; border-radius: 0;
}
.tag-accent { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-accent-2 { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }

/* Images bichromes (duotone) */
.duo { position: relative; overflow: hidden; isolation: isolate; background: var(--color-accent-2-200); }
.duo > .duo-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
  filter: grayscale(1) contrast(1.14) brightness(1.02);
  transform: scale(1.001); transition: transform 700ms cubic-bezier(.2, .7, .2, 1), filter 400ms ease;
}
.duo > .duo-lo, .duo > .duo-hi { position: absolute; inset: 0; pointer-events: none; transition: background-color 450ms ease, opacity 450ms ease; }
.duo > .duo-lo { background-color: #b9c9ec; mix-blend-mode: multiply; }
.duo > .duo-hi { background-color: #4f6ca3; mix-blend-mode: screen; opacity: 0.6; }
.duo:hover > .duo-img, a:hover .duo > .duo-img { transform: scale(1.045); filter: grayscale(1) contrast(1.22) brightness(1.04); }
.duo:hover > .duo-lo, a:hover .duo > .duo-lo { background-color: #98addd; }
.duo:hover > .duo-hi, a:hover .duo > .duo-hi { background-color: #37507c; opacity: 0.7; }

/* ==========================================================================
   Mise en page générale
   ========================================================================== */
.wm-site { min-height: 100vh; display: flex; flex-direction: column; background: var(--color-bg); }
.wm-main { flex: 1; }
.wm-container { max-width: var(--wm-container); margin: 0 auto; padding-left: var(--wm-gutter); padding-right: var(--wm-gutter); }
.wm-section { border-bottom: 2px solid var(--color-divider); }
.wm-section--surface { background: var(--color-surface); }
.wm-section-pad { padding-top: clamp(28px, 4vw, 56px); padding-bottom: clamp(28px, 4vw, 56px); }
.wm-kicker { display: block; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-accent-700); font-weight: 600; }
.wm-kicker--sm { letter-spacing: 0.14em; }
.wm-num { display: block; font-family: var(--font-heading); font-weight: 700; font-size: 12px; letter-spacing: 0.1em; color: var(--color-accent); }
.wm-h2 { font-family: var(--font-heading); font-weight: 700; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; letter-spacing: -0.025em; margin: 12px 0 16px; }
.wm-lead { margin: 0; font-size: 16px; line-height: 1.62; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-cat { display: block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent-2-700); font-weight: 600; }
a.wm-cat:hover { color: var(--color-accent-2-900); }
.wm-tags { display: flex; flex-wrap: wrap; gap: 8px; align-content: flex-start; }
.wm-tags .tag { font-size: 13.5px; padding: 7px 13px; }
.wm-arrow { flex: none; }

[data-nav="desktop"] { display: none; }
[data-nav="mobile"] { display: flex; }
@media (min-width: 1060px) {
  [data-nav="desktop"] { display: flex; }
  [data-nav="mobile"] { display: none; }
}

/* ---------- Barre supérieure ---------- */
.wm-topbar { background: var(--color-text); color: var(--color-bg); font-size: 12.5px; letter-spacing: 0.02em; }
.wm-topbar__inner { padding-top: 8px; padding-bottom: 8px; display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; }
.wm-topbar a { color: var(--color-bg); text-decoration: none; }
.wm-topbar a:hover { color: var(--color-accent-400); }
.wm-topbar__sep { opacity: 0.5; }
.wm-topbar__right { margin-left: auto; display: flex; gap: 14px; align-items: center; }
.wm-topbar a.wm-lang {
  display: inline-flex; align-items: center; min-height: 24px; border: 1px solid rgba(243, 242, 242, 0.4);
  font-size: 12px; padding: 2px 9px; letter-spacing: 0.08em; color: var(--color-bg);
}
.wm-topbar a.wm-lang:hover { border-color: var(--color-bg); color: var(--color-bg); }

/* ---------- En-tête ---------- */
.wm-header { position: sticky; top: 0; z-index: 50; background: var(--color-bg); border-bottom: 2px solid var(--color-divider); }
.wm-header__inner { display: flex; align-items: stretch; gap: 16px; min-height: 76px; }
.wm-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--color-text); padding: 12px 0; }
.wm-brand:hover { color: var(--color-text); }
.wm-mark {
  width: 40px; height: 40px; flex: none; background: var(--color-accent); color: var(--color-bg);
  font-family: var(--font-heading); font-weight: 800; font-size: 17px; letter-spacing: -0.02em;
  display: flex; align-items: center; justify-content: center;
}
.wm-brand__logo { max-height: 48px; width: auto; }
.wm-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.wm-brand__name { font-family: var(--font-heading); font-weight: 700; font-size: 17px; letter-spacing: -0.01em; }
.wm-brand__sub { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-neutral-600); white-space: nowrap; }
.wm-nav { margin-left: auto; align-items: stretch; gap: 2px; }
.wm-nav__link {
  display: flex; align-items: center; flex: none; white-space: nowrap; padding: 0 12px;
  font-size: 14px; font-weight: 500; text-decoration: none; letter-spacing: 0.01em; color: var(--color-text);
}
.wm-nav__link:hover { background: rgba(32, 30, 29, 0.06); color: var(--color-text); }
.wm-nav__link.is-current { color: var(--color-accent); box-shadow: inset 0 -3px 0 0 var(--color-accent); }
.wm-header__cta { align-items: center; padding-left: 10px; }
.wm-menu-toggle {
  margin-left: auto; align-items: center; gap: 8px; background: none; border: 2px solid var(--color-divider);
  font-size: 13px; font-weight: 600; padding: 0 14px; margin-block: 16px; cursor: pointer; color: var(--color-text);
}
.wm-mobile-menu {
  display: flex; flex-direction: column; border-top: 2px solid var(--color-divider); background: var(--color-bg);
  padding: 8px var(--wm-gutter) 20px;
}
.wm-mobile-menu[hidden] { display: none; }
.wm-mobile-menu__link { padding: 15px 0; font-size: 17px; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--color-neutral-300); color: var(--color-text); }
.wm-mobile-menu__link.is-current { color: var(--color-accent); }
.wm-mobile-menu .btn { margin-top: 18px; min-height: 48px; }

/* ---------- Accueil : héros ---------- */
.wm-hero__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0; }
.wm-hero__text {
  padding: clamp(40px, 7vw, 84px) 0; padding-right: clamp(0px, 4vw, 56px);
  display: flex; flex-direction: column; align-items: flex-start; gap: 24px;
}
.wm-hero__kicker { letter-spacing: 0.1em; text-transform: uppercase; font-size: 11px; }
.wm-hero__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(34px, 5.4vw, 60px); line-height: 1.02; letter-spacing: -0.03em; margin: 0; text-wrap: balance; }
.wm-hero__body { font-size: clamp(15px, 1.4vw, 17.5px); line-height: 1.6; max-width: 54ch; margin: 0; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.wm-hero__media { min-height: 280px; border-left: 2px solid var(--color-divider); }
@media (max-width: 659px) { .wm-hero__media { border-left: 0; border-top: 2px solid var(--color-divider); } }

/* ---------- Chiffres clés ---------- */
.wm-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.wm-stat {
  padding: clamp(24px, 3vw, 36px) clamp(12px, 2vw, 28px); border-left: 1px solid var(--color-neutral-300);
  display: flex; flex-direction: column; gap: 6px;
}
.wm-stat__n { font-family: var(--font-heading); font-weight: 800; font-size: clamp(30px, 3.6vw, 44px); line-height: 1; letter-spacing: -0.03em; color: var(--color-accent-700); }
.wm-stat__label { font-size: 13px; line-height: 1.4; color: var(--color-neutral-800); }

/* ---------- Têtes de section ---------- */
.wm-section-head { display: flex; flex-wrap: wrap; gap: 20px 40px; align-items: flex-end; justify-content: space-between; margin-bottom: clamp(28px, 4vw, 48px); }
.wm-section-head--tight { gap: 16px 40px; margin-bottom: clamp(24px, 3vw, 40px); }
.wm-section-head__text { max-width: 62ch; }
.wm-section-head__title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.08; letter-spacing: -0.025em; margin: 12px 0 14px; }
.wm-section-head__title--solo { margin-bottom: 0; }
.wm-section-head__body { margin: 0; font-size: 16px; line-height: 1.6; color: var(--color-neutral-800); }

/* ---------- Services (accueil) ---------- */
.wm-services { padding-top: clamp(40px, 6vw, 76px); padding-bottom: clamp(40px, 6vw, 76px); }
.wm-services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2px; background: var(--color-divider); border: 2px solid var(--color-divider); }
.wm-service-card {
  background: var(--color-bg); padding: clamp(22px, 2.6vw, 32px); display: flex; flex-direction: column; gap: 12px;
  text-decoration: none; color: var(--color-text); min-height: 210px;
}
.wm-service-card:hover { background: var(--color-accent-100); color: var(--color-text); }
.wm-service-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 20px; line-height: 1.15; letter-spacing: -0.01em; margin: 0; }
.wm-service-card__short { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-service-card__more { margin-top: auto; font-size: 13px; font-weight: 600; color: var(--color-accent-700); display: flex; align-items: center; gap: 6px; }

/* ---------- Secteurs ---------- */
.wm-sectors { padding-top: clamp(36px, 5vw, 64px); padding-bottom: clamp(36px, 5vw, 64px); display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(24px, 4vw, 56px); }
.wm-sectors__title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(24px, 3vw, 34px); line-height: 1.1; letter-spacing: -0.025em; margin: 12px 0 0; }

/* ---------- Témoignage ---------- */
.wm-testimonial { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(28px, 4vw, 60px); align-items: start; }
.wm-testimonial__quote { margin: 20px 0 0; font-family: var(--font-heading); font-weight: 600; font-size: clamp(21px, 2.7vw, 31px); line-height: 1.3; letter-spacing: -0.02em; text-wrap: pretty; }
.wm-testimonial__who { margin-top: 24px; padding-top: 18px; border-top: 2px solid var(--color-divider); font-size: 14px; color: var(--color-neutral-800); }
.wm-testimonial__media { aspect-ratio: 16 / 10; border: 2px solid var(--color-divider); }

/* ---------- Cartes de publications ---------- */
.wm-publications { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); }
.wm-posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: clamp(20px, 2.5vw, 32px); }
.wm-posts-grid--wide { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.wm-post-card { display: flex; flex-direction: column; text-decoration: none; color: var(--color-text); background: var(--color-bg); border: 2px solid var(--color-divider); }
.wm-post-card:hover { border-color: var(--color-accent); color: var(--color-text); }
.wm-post-card__media { aspect-ratio: 16 / 9; display: block; border-bottom: 2px solid var(--color-divider); }
.wm-post-card__body { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.wm-post-card__cat { font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent-2-700); font-weight: 600; }
.wm-post-card__title { font-family: var(--font-heading); font-weight: 700; font-size: 18px; line-height: 1.2; letter-spacing: -0.01em; }
.wm-posts-grid--wide .wm-post-card__title { font-size: 19px; }
.wm-post-card__excerpt { font-size: 13.5px; line-height: 1.55; color: var(--color-neutral-800); }
.wm-post-card__date { margin-top: auto; padding-top: 12px; font-size: 12px; color: var(--color-neutral-600); }

/* ---------- Bandeau d'appel à l'action ---------- */
.wm-band { background: var(--color-accent); color: var(--color-bg); }
.wm-band__inner { padding-top: clamp(40px, 6vw, 80px); padding-bottom: clamp(40px, 6vw, 80px); display: flex; flex-wrap: wrap; gap: 28px 48px; align-items: flex-end; justify-content: space-between; }
.wm-band__text { flex: 1 1 100%; min-width: 0; }
.wm-band__kicker { color: inherit; opacity: 0.85; }
.wm-band__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(28px, 4.2vw, 50px); line-height: 1.04; letter-spacing: -0.03em; margin: 14px 0 0; text-wrap: balance; }
.wm-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Pied de page ---------- */
.wm-footer { background: var(--color-text); color: var(--color-bg); }
.wm-footer__grid { padding-top: clamp(32px, 4.5vw, 56px); padding-bottom: clamp(32px, 4.5vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: clamp(24px, 3vw, 44px); }
.wm-footer__brand { display: flex; align-items: center; gap: 10px; }
.wm-footer__brand .wm-mark { width: 34px; height: 34px; font-size: 14px; }
.wm-footer__brand .wm-brand__logo { max-height: 40px; }
.wm-footer__name { font-family: var(--font-heading); font-weight: 700; font-size: 16px; }
.wm-footer__blurb { margin: 16px 0 0; font-size: 13.5px; line-height: 1.6; opacity: 0.72; max-width: 32ch; }
.wm-footer__head { display: block; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.6; }
.wm-footer__links { display: flex; flex-direction: column; gap: 9px; margin-top: 14px; font-size: 14px; }
.wm-footer__links a, .wm-footer__links span { color: var(--color-bg); text-decoration: none; opacity: 0.85; }
.wm-footer__links a:hover { opacity: 1; color: var(--color-accent-400); }
.wm-footer__links a.wm-break { word-break: break-all; }
.wm-footer__bottom { border-top: 1px solid rgba(243, 242, 242, 0.18); }
.wm-footer__bottom .wm-container { padding-top: 16px; padding-bottom: 16px; font-size: 12px; opacity: 0.6; }

/* ---------- Pages : en-tête de page ---------- */
.wm-page-hero .wm-container { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(36px, 5vw, 72px); }
.wm-page-hero--short .wm-container { padding-top: clamp(36px, 5vw, 64px); padding-bottom: clamp(36px, 5vw, 64px); }
.wm-page-hero__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(30px, 4.6vw, 54px); line-height: 1.04; letter-spacing: -0.03em; margin: 14px 0 0; max-width: 20ch; }
.wm-page-hero__title--18 { max-width: 18ch; }
.wm-page-hero__intro { margin: 20px 0 0; max-width: 62ch; font-size: clamp(15px, 1.4vw, 17.5px); line-height: 1.6; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.wm-filter { font: inherit; font-size: 13.5px; font-weight: 500; padding: 8px 14px; cursor: pointer; border: 1px solid var(--color-divider); background: transparent; color: var(--color-text); text-decoration: none; }
.wm-filter:hover { background: rgba(32, 30, 29, 0.06); color: var(--color-text); }
.wm-filter.is-active { background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent); }
.wm-empty { color: var(--color-neutral-700); }
.wm-pagination { margin-top: clamp(28px, 4vw, 48px); }
.wm-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.wm-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 12px; border: 1px solid var(--color-divider); color: var(--color-text); font-size: 14px; text-decoration: none; }
.wm-pagination .page-numbers.current { background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent); }
.wm-pagination a.page-numbers:hover { background: rgba(32, 30, 29, 0.06); }

/* ---------- Le Cabinet ---------- */
.wm-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.wm-value { padding: clamp(28px, 3.5vw, 44px) clamp(16px, 2.4vw, 32px); border-left: 1px solid var(--color-neutral-300); }
.wm-value__title { font-family: var(--font-heading); font-weight: 700; font-size: 21px; line-height: 1.15; letter-spacing: -0.015em; margin: 12px 0 10px; }
.wm-value__body { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-split { padding-top: clamp(36px, 5vw, 68px); padding-bottom: clamp(36px, 5vw, 68px); display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(24px, 4vw, 56px); align-items: start; }
.wm-split__list { display: grid; gap: 0; }
.wm-split__item { padding: 20px 0; border-top: 1px solid var(--color-neutral-300); }
.wm-split__item:first-child { border-top: 2px solid var(--color-divider); }
.wm-split__item h3 { font-family: var(--font-heading); font-weight: 700; font-size: 17px; letter-spacing: -0.01em; margin: 0 0 8px; }
.wm-split__item .wm-kicker + h3 { margin-top: 8px; }
.wm-split__item p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-media-split { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(40px, 6vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: center; }
.wm-media-split__media { aspect-ratio: 4 / 3; border: 2px solid var(--color-divider); }
.wm-media-split .wm-h2 { margin-top: 0; }
.wm-media-split .wm-lead { margin-bottom: 20px; }

/* ---------- Services (page) ---------- */
.wm-service { scroll-margin-top: 90px; }
.wm-service__grid { padding-top: clamp(32px, 4.5vw, 56px); padding-bottom: clamp(32px, 4.5vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: clamp(20px, 3vw, 48px); align-items: start; }
.wm-service__title { font-family: var(--font-heading); font-weight: 700; font-size: clamp(23px, 2.8vw, 32px); line-height: 1.1; letter-spacing: -0.025em; margin: 12px 0 0; }
.wm-service__long p { margin: 0 0 18px; font-size: 16px; line-height: 1.62; color: var(--color-neutral-800); text-wrap: pretty; }
.wm-points { margin: 0 0 22px; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0 24px; }
.wm-points li { padding: 10px 0; border-top: 1px solid var(--color-neutral-300); font-size: 14.5px; line-height: 1.45; }
.wm-service .btn { min-height: 46px; }

/* ---------- Article ---------- */
.wm-article-head__back { padding-top: clamp(24px, 3vw, 40px); }
.wm-backlink { font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.wm-article-head__main { padding-top: clamp(20px, 3vw, 36px); padding-bottom: clamp(32px, 4vw, 52px); }
.wm-article-head__title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(28px, 4.4vw, 50px); line-height: 1.05; letter-spacing: -0.03em; margin: 14px 0 0; max-width: 22ch; }
.wm-article-meta { margin-top: 20px; padding-top: 16px; border-top: 2px solid var(--color-divider); display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 13px; color: var(--color-neutral-700); }
.wm-article-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 900px) { .wm-article-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 420px); } }
.wm-article { max-width: 68ch; min-width: 0; }
.wm-article__media { aspect-ratio: 16 / 9; border: 2px solid var(--color-divider); margin-bottom: clamp(24px, 3vw, 36px); }
.wm-article-content { font-size: 16.5px; line-height: 1.68; color: var(--color-neutral-900); }
.wm-article-content p, .wm-article-content ul, .wm-article-content ol { margin: 0 0 20px; text-wrap: pretty; }
.wm-article-content h2, .wm-article-content h3, .wm-article-content h4, .wm-article-content h5,
.wm-article-content .elementor-heading-title {
  font-family: var(--font-heading); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; margin: 32px 0 14px; color: var(--color-text);
}
.wm-article-content h2, .wm-article-content .elementor-heading-title { font-size: clamp(20px, 2.2vw, 26px); }
.wm-article-content h3 { font-size: clamp(19px, 2vw, 23px); }
.wm-article-content h4, .wm-article-content h5 { font-size: 18px; }
.wm-article-content > :first-child, .wm-article-content .elementor-element:first-child .elementor-heading-title { margin-top: 0; }
.wm-article-content strong { font-weight: 700; color: var(--color-text); }
.wm-article-content ul, .wm-article-content ol { padding-left: 1.25em; }
.wm-article-content li { margin-bottom: 6px; }
.wm-article-content a { text-decoration: underline; }
.wm-article-content img { border: 2px solid var(--color-divider); margin: 24px 0; }
.wm-article-content blockquote { margin: 24px 0; padding-left: 18px; border-left: 3px solid var(--color-accent); font-family: var(--font-heading); font-weight: 600; }
.wm-article-content .elementor-section.elementor-section-boxed > .elementor-container,
.wm-article-content .e-con { max-width: none; padding-left: 0; padding-right: 0; }
.wm-article-content .elementor-divider-separator { border-color: var(--color-divider); }
.wm-aside { position: sticky; top: 100px; border: 2px solid var(--color-divider); padding: clamp(22px, 2.6vw, 30px); background: var(--color-surface); max-width: 420px; }
.wm-aside__title { font-family: var(--font-heading); font-weight: 700; font-size: 21px; line-height: 1.15; letter-spacing: -0.015em; margin: 0 0 10px; }
.wm-aside__body { margin: 0 0 18px; font-size: 14.5px; line-height: 1.55; color: var(--color-neutral-800); }
.wm-aside .btn-block { min-height: 46px; }
.wm-aside .btn-secondary { color: var(--color-text); }
.wm-page-content { max-width: 68ch; }

/* ---------- Contact ---------- */
.wm-contact-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 900px) { .wm-contact-layout { grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); } }
.wm-form-box { border: 2px solid var(--color-divider); padding: clamp(22px, 3vw, 36px); min-width: 0; }
.wm-form-box form { display: flex; flex-direction: column; gap: 20px; }
.wm-form-box .field { margin: 0; }
.wm-form-box .field > label, .wm-form-label { display: block; font-size: 12px; margin-bottom: 8px; color: var(--color-neutral-700); }
.wm-form-box .input { min-height: 44px; }
.wm-form-box textarea.input { min-height: 120px; }
.wm-form-box .wpcf7-form-control-wrap { display: block; }
.wm-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; }
.wm-seg .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.wm-seg .wpcf7-list-item { margin: 0; }
.wm-seg .wpcf7-list-item label { display: inline-flex; align-items: center; font-size: 13.5px; font-weight: 500; padding: 10px 15px; min-height: 44px; cursor: pointer; border: 1px solid var(--color-divider); background: transparent; color: var(--color-text); }
.wm-seg--sm .wpcf7-list-item label { padding: 9px 14px; min-height: 42px; font-weight: 400; }
.wm-seg .wpcf7-list-item label:hover { background: rgba(32, 30, 29, 0.06); }
.wm-seg .wpcf7-list-item input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.wm-seg .wpcf7-list-item label:has(input:checked) { background: var(--color-accent); color: var(--color-bg); border-color: var(--color-accent); }
.wm-seg--dark .wpcf7-list-item label:has(input:checked) { background: var(--color-text); border-color: var(--color-text); }
.wm-seg .wpcf7-list-item label:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.wm-appt { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; padding: 18px; background: var(--color-accent-100); border: 1px solid var(--color-accent-300); }
.wm-appt[hidden] { display: none; }
.wm-appt .input { background: var(--color-bg); }
.wm-form-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.wm-form-actions .wpcf7-submit { min-height: 48px; padding-inline: 24px; }
.wm-form-note { font-size: 12.5px; color: var(--color-neutral-700); }
.wm-form-box .wpcf7-spinner { margin: 0; }
.wm-form-box .wpcf7-not-valid-tip { font-size: 12px; color: var(--color-accent-700); margin-top: 4px; }
.wm-form-box .wpcf7-response-output { margin: 0; padding: 12px 14px; border: 1px solid var(--color-divider) !important; font-size: 14px; }
.wm-form-box .wpcf7-form.sent .wpcf7-response-output { border-color: var(--color-accent) !important; background: var(--color-accent-100); }
.wm-info-cards { display: flex; flex-direction: column; gap: 2px; background: var(--color-divider); border: 2px solid var(--color-divider); }
.wm-info-card { background: var(--color-surface); padding: clamp(20px, 2.6vw, 28px); }
.wm-info-card__label { display: block; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-neutral-700); font-weight: 600; }
.wm-info-card__value { margin: 10px 0 0; font-family: var(--font-heading); font-weight: 600; font-size: 19px; line-height: 1.3; letter-spacing: -0.01em; }
.wm-info-card__value a { color: var(--color-text); }
.wm-info-card__value a:hover { color: var(--color-accent); }
.wm-info-card__value--email { font-size: 17px; word-break: break-all; }
.wm-info-card__text { margin: 10px 0 0; font-size: 15px; line-height: 1.5; color: var(--color-neutral-800); }

/* ---------- 404 ---------- */
.wm-404__code { display: block; font-family: var(--font-heading); font-weight: 800; font-size: clamp(60px, 12vw, 140px); line-height: 1; letter-spacing: -0.04em; color: var(--color-accent-700); }
.wm-404__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
