/*
Theme Name: Équiper Mieux
Theme URI: https://equipermieux.fr
Author: Équiper Mieux
Description: Thème éditorial léger et accessible pour guider les choix d'équipement du logement.
Version: 2.4.2
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: equiper-mieux
*/

:root {
  --em-ink: #17312b;
  --em-ink-soft: #38514b;
  --em-moss: #496a52;
  --em-moss-dark: #33503c;
  --em-sage: #dfe9df;
  --em-cream: #f7f5ef;
  --em-paper: #fffefb;
  --em-clay: #bd6747;
  --em-sand: #eadfcd;
  --em-line: #d8ded8;
  --em-muted: #66736e;
  --em-shadow: 0 18px 45px rgba(23, 49, 43, .09);
  --em-radius: 22px;
  --em-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
}

html {
  overflow-x: clip;
  scroll-behavior: smooth;
}

body {
  overflow-x: clip;
  background: var(--em-cream);
  color: var(--em-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.admin-bar .em-site-header { top: 32px; }

:where(h1, h2, h3, .wp-block-post-title) {
  font-family: var(--em-serif);
  text-wrap: balance;
}

a { text-underline-offset: .18em; }
a:hover { color: var(--em-clay); }

:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #e4a687;
  outline-offset: 3px;
}

.em-site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  isolation: isolate;
  overflow: visible;
  border-bottom: 1px solid rgba(73, 106, 82, .18);
  background: rgba(247, 245, 239, .94);
  backdrop-filter: blur(16px);
}

.em-header-inner,
.em-footer-inner,
.em-main,
.em-wide {
  width: min(100% - 36px, 1180px);
  margin-inline: auto;
}

.em-site-header > .em-header-inner,
.em-site-footer > .em-footer-inner { max-width: 1180px !important; }
.em-header-inner { position: relative; min-height: 82px; overflow: visible; }

.em-brand-lockup { gap: 12px; }
.em-brand-lockup a { text-decoration: none; }

.em-brand-mark {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: var(--em-moss-dark);
  box-shadow: 0 8px 20px rgba(51, 80, 60, .18);
}

.em-brand-mark svg { width: 25px; height: 25px; }
.em-brand-title { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-weight: 800; letter-spacing: -.035em; white-space: nowrap; }
.em-brand-title a { color: var(--em-ink); }

.em-mega-nav { position: static; display: flex; align-items: center; gap: 4px; font-size: .91rem; font-weight: 720; }
.em-mega-nav > a,
.em-nav-cluster > summary,
.em-mobile-nav > summary {
  padding: 11px 12px;
  border-radius: 999px;
  color: var(--em-ink);
  cursor: pointer;
  list-style: none;
  text-decoration: none;
  transition: color .18s ease, background .18s ease;
}
.em-mega-nav summary::-webkit-details-marker,
.em-mobile-nav summary::-webkit-details-marker { display: none; }
.em-mega-nav > a:hover,
.em-nav-cluster > summary:hover,
.em-nav-cluster[open] > summary { color: var(--em-clay); background: rgba(223,233,223,.72); }
.em-nav-featured { color: #fff !important; background: var(--em-ink); }
.em-nav-tools { border: 1px solid #bcc9bd; }
.em-nav-cluster { position: static; }
.em-nav-cluster > summary::after { margin-left: 6px; content: "⌄"; color: var(--em-muted); font-size: .75rem; }
.em-nav-cluster[open] > summary::after { content: "⌃"; }

.em-mega-panel {
  position: fixed;
  z-index: 120;
  top: 94px;
  right: auto;
  left: 50%;
  width: min(calc(100vw - 36px), 1120px);
  max-height: calc(100vh - 112px);
  padding: 28px;
  overflow-y: auto;
  border: 1px solid var(--em-line);
  border-radius: 24px;
  background: rgba(255,254,251,.985);
  box-shadow: 0 28px 80px rgba(23,49,43,.18);
  transform: translateX(-50%);
}
body.admin-bar .em-mega-panel { top: 126px; }
.em-mega-panel--3 { display: grid; grid-template-columns: .8fr .8fr 1.25fr; gap: 26px; }
.em-mega-panel section { display: flex; flex-direction: column; gap: 3px; }
.em-mega-panel section > a { padding: 7px 9px; border-radius: 9px; color: var(--em-ink); text-decoration: none; }
.em-mega-panel section > a:hover { color: var(--em-clay); background: #f5f0e8; }
.em-mega-kicker { margin: 0 8px 10px; color: var(--em-clay); font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.em-mega-highlight { padding: 22px; border-radius: 18px; background: linear-gradient(135deg, #e8eee6, #f7f0e8); }
.em-mega-highlight strong { color: var(--em-ink); font-family: var(--em-serif); font-size: 1.55rem; line-height: 1.12; }
.em-mega-highlight p { margin: 8px 0; color: var(--em-muted); font-size: .9rem; line-height: 1.55; }
.em-mega-panel--cards { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; }
.em-mega-panel--cards > a { min-height: 116px; padding: 18px; border: 1px solid var(--em-line); border-radius: 16px; color: var(--em-ink); background: #faf9f5; text-decoration: none; }
.em-mega-panel--cards strong,
.em-mega-panel--cards span { display: block; }
.em-mega-panel--cards strong { margin-bottom: 8px; font-family: var(--em-serif); font-size: 1.12rem; }
.em-mega-panel--cards span { color: var(--em-muted); font-size: .82rem; line-height: 1.45; }
.em-mega-panel--cards > a:hover { border-color: #b4c4b4; box-shadow: 0 10px 24px rgba(23,49,43,.07); transform: translateY(-2px); }
.em-mega-panel--links { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 9px; }
.em-mega-panel--links > a { padding: 16px; border-radius: 14px; color: var(--em-ink); background: #f2f5ef; font-family: var(--em-serif); font-size: 1.02rem; font-weight: 700; text-decoration: none; }
.em-mega-panel--links > a:hover { color: #fff; background: var(--em-moss-dark); }
.em-mobile-nav { position: relative; display: none; }
.em-mobile-panel { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.em-mobile-panel section { display: flex; flex-direction: column; gap: 6px; }
.em-mobile-panel strong { margin-bottom: 3px; color: var(--em-clay); font-size: .72rem; letter-spacing: .11em; text-transform: uppercase; }
.em-mobile-panel a { color: var(--em-ink); text-decoration: none; }

@media (max-height: 760px) and (min-width: 961px) {
  .em-mega-panel { max-height: calc(100vh - 102px); padding: 22px; }
}

.em-main { padding-block: clamp(42px, 7vw, 88px); }
.em-main--front { padding-top: 0; }

.em-hero {
  position: relative;
  overflow: hidden;
  margin-inline: calc(50% - 50vw);
  padding: clamp(76px, 10vw, 132px) max(18px, calc((100vw - 1180px) / 2));
  color: var(--em-paper);
  background:
    radial-gradient(circle at 82% 22%, rgba(234, 223, 205, .28), transparent 27%),
    radial-gradient(circle at 72% 90%, rgba(189, 103, 71, .24), transparent 29%),
    linear-gradient(135deg, #19372f 0%, #315742 62%, #496a52 100%);
}

.em-hero::after {
  position: absolute;
  right: clamp(-120px, -5vw, -40px);
  bottom: -190px;
  width: 430px;
  height: 430px;
  content: "";
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 48% 52% 56% 44%;
  transform: rotate(22deg);
}

.em-hero-copy { position: relative; z-index: 2; max-width: 780px; }
.em-eyebrow {
  margin-bottom: 18px !important;
  color: #efd6c9;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.em-hero h1 {
  max-width: 760px;
  margin: 0;
  color: #fffefb;
  font-size: clamp(3rem, 7vw, 6.25rem);
  font-weight: 780;
  line-height: .98;
  letter-spacing: -.06em;
}

.em-hero .em-hero-lead {
  max-width: 670px;
  margin-top: 28px;
  color: rgba(255, 254, 251, .84);
  font-size: clamp(1.08rem, 2vw, 1.32rem);
  line-height: 1.65;
}

.em-hero-actions { gap: 12px; margin-top: 32px; }
.em-hero .wp-block-button__link { border-radius: 999px; font-weight: 750; }
.em-hero .is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.62); }

.em-hero-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}
.em-hero-metrics span {
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: rgba(255,255,255,.82);
  background: rgba(255,255,255,.06);
  font-size: .78rem;
  font-weight: 720;
}

.em-proofbar {
  margin: -28px auto 0;
  padding: 22px 26px;
  border: 1px solid var(--em-line);
  border-radius: 20px;
  background: var(--em-paper);
  box-shadow: var(--em-shadow);
}

.em-proofbar strong { display: block; color: var(--em-ink); font-size: 1.02rem; }
.em-proofbar span { color: var(--em-muted); font-size: .9rem; }

.em-search-panel {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  align-items: end;
  gap: clamp(24px, 5vw, 64px);
  margin-top: 34px;
  padding: clamp(28px, 5vw, 48px);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 26px;
  color: #fff;
  background:
    radial-gradient(circle at 92% 16%, rgba(202,126,84,.26), transparent 27%),
    linear-gradient(132deg, var(--em-ink), #365c49);
  box-shadow: 0 24px 60px rgba(23,49,43,.14);
}
.em-search-panel__copy > * { margin-top: 0; }
.em-search-panel__copy h2 { margin-bottom: 10px; color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.65rem); }
.em-search-panel__copy p:not(.em-eyebrow) { margin-bottom: 0; color: rgba(255,255,255,.72); }
.em-search-panel .em-eyebrow { color: #edb795; }
.em-search-form .wp-block-search__inside-wrapper { gap: 9px; padding: 0; border: 0; background: transparent; }
.em-search-form .wp-block-search__input {
  min-height: 52px;
  padding: 0 18px;
  border: 1px solid var(--em-line);
  border-radius: 999px;
  color: var(--em-ink);
  background: #fff;
  font: inherit;
}
.em-search-form .wp-block-search__button {
  min-height: 52px;
  margin: 0;
  padding: 0 22px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--em-clay);
  font-weight: 800;
  cursor: pointer;
}
.em-search-form .wp-block-search__input:focus-visible,
.em-search-form .wp-block-search__button:focus-visible { outline: 3px solid rgba(202,126,84,.35); outline-offset: 3px; }

/* Magazine rhythm: a few prominent stories break up the catalogue-like grids. */
.em-reading-room { margin-block: clamp(36px, 6vw, 76px); }
.em-reading-room__intro { max-width: 560px; margin-bottom: 18px; }
.em-reading-room__intro h2 { margin: 0 0 8px; font-size: clamp(2rem, 4vw, 3.15rem); letter-spacing: -.045em; }
.em-reading-room__intro p { color: var(--em-muted); }
.em-reading-room__grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 14px; }
.em-feature-story,
.em-side-story { display: flex; min-height: 250px; flex-direction: column; justify-content: flex-end; padding: clamp(24px, 4vw, 38px); border-radius: 24px; color: #fff !important; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.em-feature-story { background: linear-gradient(142deg, #17312b, #355a46 65%, #82936f); }
.em-side-story { min-height: 0; color: var(--em-ink) !important; border: 1px solid var(--em-line); background: linear-gradient(145deg, #fffefb, #eef2eb); }
.em-feature-story:hover,
.em-side-story:hover { transform: translateY(-3px); box-shadow: var(--em-shadow); }
.em-feature-story span,
.em-side-story span { margin-bottom: 11px; font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.em-feature-story span { color: #e4a07e; }
.em-side-story span { color: var(--em-clay); }
.em-feature-story strong { max-width: 460px; font-family: var(--em-serif); font-size: clamp(1.7rem, 3.4vw, 3rem); line-height: 1.02; }
.em-side-story strong { font-family: var(--em-serif); font-size: 1.55rem; line-height: 1.08; }
.em-feature-story small,
.em-side-story small { margin-top: 10px; line-height: 1.45; }
.em-feature-story small { color: rgba(255,255,255,.76); }
.em-side-story small { color: var(--em-muted); }
.em-feature-story b { margin-top: 21px; color: #fff; font-size: .88rem; }

.em-quick-routes {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.em-quick-route {
  display: flex;
  min-height: 78px;
  align-items: flex-end;
  padding: 15px;
  border: 1px solid var(--em-line);
  border-radius: 15px;
  color: var(--em-ink);
  background: var(--em-paper);
  font-family: var(--em-serif);
  font-size: .98rem;
  font-weight: 720;
  line-height: 1.2;
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.em-quick-route:hover { transform: translateY(-2px); border-color: #b7c5b7; box-shadow: 0 10px 26px rgba(23,49,43,.07); }

.em-section { padding-block: clamp(64px, 8vw, 108px); }
.em-section--tint {
  margin-inline: calc(50% - 50vw);
  padding-inline: max(18px, calc((100vw - 1180px) / 2));
  background: #edf1e9;
}

.em-section-heading { max-width: 720px; margin-bottom: 34px; }
.em-section-heading h2 { margin-bottom: 12px; font-size: clamp(2.1rem, 4vw, 3.35rem); letter-spacing: -.045em; }
.em-section-heading p { color: var(--em-muted); font-size: 1.08rem; line-height: 1.7; }

.em-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.em-card,
.em-category-card,
.em-post-card {
  height: 100%;
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--em-line);
  border-radius: var(--em-radius);
  background: var(--em-paper);
  box-shadow: 0 1px 0 rgba(23,49,43,.02);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.em-card:hover,
.em-category-card:hover,
.em-post-card:hover { transform: translateY(-3px); border-color: #b7c5b7; box-shadow: var(--em-shadow); }

.em-card h3,
.em-category-card h3 { margin-top: 12px; margin-bottom: 8px; font-size: 1.35rem; letter-spacing: -.025em; }
.em-card p,
.em-category-card p { color: var(--em-muted); line-height: 1.65; }

.em-icon-chip {
  display: inline-grid;
  min-width: 42px;
  min-height: 42px;
  place-items: center;
  padding: 8px;
  border-radius: 13px;
  color: var(--em-moss-dark);
  background: var(--em-sage);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .06em;
}

.em-link-arrow a { color: var(--em-moss-dark); font-weight: 760; text-decoration: none; }
.em-link-arrow a::after { content: "  →"; color: var(--em-clay); }

.em-manifesto {
  padding: clamp(32px, 5vw, 62px);
  border-radius: 30px;
  color: var(--em-paper);
  background: var(--em-ink);
}

.em-manifesto h2 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); }
.em-manifesto p { color: rgba(255,255,255,.72); }
.em-manifesto .em-quote { color: #fff; font-size: clamp(1.3rem, 2.5vw, 1.85rem); line-height: 1.45; }

.em-process {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--em-line);
  border-radius: 24px;
  background: var(--em-line);
}
.em-process-step { padding: clamp(25px, 4vw, 40px); background: var(--em-paper); }
.em-process-step span { color: var(--em-clay); font-size: .72rem; font-weight: 850; letter-spacing: .14em; }
.em-process-step h3 { margin: 13px 0 8px; font-size: 1.45rem; }
.em-process-step p { margin-bottom: 0; color: var(--em-muted); line-height: 1.65; }

.em-article-header { max-width: 860px; margin-inline: auto; padding-bottom: 34px; }
.em-article-header h1 { font-size: clamp(2.5rem, 6vw, 4.85rem); line-height: 1.04; letter-spacing: -.055em; }
.em-article-kicker { color: var(--em-clay); font-size: .78rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.em-article-deck { color: var(--em-muted); font-size: 1.2rem; line-height: 1.65; }
.em-article-meta { color: var(--em-muted); font-size: .9rem; }
.em-reading-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 19px; color: var(--em-muted); font-size: .88rem; }
.em-reading-meta span + span { position: relative; }
.em-reading-meta span + span::before { position: absolute; left: -10px; content: "·"; color: var(--em-clay); }
.em-reading-meta a { color: inherit; text-decoration-color: #aebdae; text-underline-offset: 3px; }

.em-breadcrumbs { margin-bottom: 28px; color: var(--em-muted); font-size: .85rem; }
.em-breadcrumbs a { color: inherit; text-decoration: none; }
.em-breadcrumbs span { padding-inline: 8px; color: var(--em-clay); }
.em-reading-signals { gap: 8px; margin-top: 20px; }
.em-reading-signals span {
  padding: 7px 11px;
  border: 1px solid var(--em-line);
  border-radius: 999px;
  color: var(--em-muted);
  background: rgba(255,255,255,.5);
  font-size: .78rem;
  font-weight: 700;
}

.em-prose { max-width: 760px; margin-inline: auto; }
.em-prose > * + * { margin-top: 1.1em; }
.em-prose h2 { margin-top: 2.3em; font-size: clamp(1.75rem, 3.5vw, 2.55rem); letter-spacing: -.035em; }
.em-prose h3 { margin-top: 1.8em; font-size: 1.38rem; }
.em-prose p, .em-prose li { line-height: 1.78; }
.em-prose ul, .em-prose ol { padding-left: 1.35rem; }
.em-prose li + li { margin-top: .55rem; }
.em-prose table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--em-line); border-radius: 16px; background: var(--em-paper); }
.em-prose th { color: var(--em-paper); background: var(--em-moss-dark); }
.em-prose th, .em-prose td { padding: 13px 15px; border-bottom: 1px solid var(--em-line); text-align: left; vertical-align: top; }
.em-prose tr:last-child td { border-bottom: 0; }

.em-editorial-state {
  padding: 13px 16px;
  border: 1px dashed #adc0ae;
  border-radius: 13px;
  color: var(--em-ink-soft);
  background: #eff4ed;
  font-size: .86rem;
}

.em-toc {
  margin-block: 30px 42px;
  padding: 23px 26px;
  border: 1px solid var(--em-line);
  border-radius: 18px;
  background: var(--em-paper);
  box-shadow: 0 12px 30px rgba(23,49,43,.055);
}
.em-toc > strong { display: block; margin-bottom: 10px; font-family: var(--em-serif); font-size: 1.25rem; }
.em-toc ol { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 28px; margin: 0; padding-left: 1.25rem; }
.em-toc li + li { margin-top: 0; }
.em-toc a { color: var(--em-ink-soft); text-decoration: none; }

.em-angle-box,
.em-callout,
.em-method-strip,
.em-hub-next {
  margin-block: 34px;
  padding: clamp(23px, 4vw, 38px);
  border-radius: 22px;
}
.em-angle-box { position: relative; overflow: hidden; border: 1px solid var(--em-line); background: linear-gradient(135deg, #fffefb, #edf2ea); }
.em-angle-box::after { position: absolute; right: -52px; top: -68px; width: 160px; height: 160px; content: ""; border: 1px solid #c8d5c7; border-radius: 50%; }
.em-angle-box h2 { margin-top: 0; }
.em-callout { border-left: 5px solid var(--em-clay); background: #f5e9e1; }
.em-callout p:last-child { margin-bottom: 0; }

.em-criteria-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-block: 22px 38px;
}
.em-criteria-grid > div { padding: 21px; border: 1px solid var(--em-line); border-radius: 17px; background: var(--em-paper); }
.em-criteria-grid span { color: var(--em-clay); font-size: .75rem; font-weight: 850; letter-spacing: .12em; }
.em-criteria-grid h3 { margin: 6px 0; }
.em-criteria-grid p { margin: 0; color: var(--em-muted); font-size: .92rem; }

.em-table-scroll { max-width: 100%; overflow-x: auto; border-radius: 16px; }
.em-steps { counter-reset: steps; padding-left: 0 !important; list-style: none; }
.em-steps li { position: relative; min-height: 54px; padding-left: 64px; }
.em-steps li::before { position: absolute; left: 0; top: -4px; display: grid; width: 43px; height: 43px; place-items: center; counter-increment: steps; content: counter(steps); border-radius: 14px; color: #fff; background: var(--em-ink); font-weight: 800; }
.em-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.em-check-grid label { padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.72); font-size: .9rem; }

.em-faq details { padding: 17px 0; border-bottom: 1px solid var(--em-line); }
.em-faq summary { cursor: pointer; color: var(--em-ink); font-family: var(--em-serif); font-size: 1.13rem; font-weight: 700; }
.em-faq details p { color: var(--em-muted); }
.em-related { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--em-line); }

.em-commerce-slot,
.em-ad-slot {
  display: grid;
  gap: 10px;
  margin-block: 32px;
  padding: 23px;
  border: 1px solid #c7d3c6;
  border-radius: 18px;
  background: #f1f5ef;
}
.em-sponsored-label { color: var(--em-clay); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.em-commerce-button { width: fit-content; padding: 10px 16px; border-radius: 999px; color: #fff !important; background: var(--em-ink); font-weight: 750; text-decoration: none; }
.em-commerce-slot small { color: var(--em-muted); }
.em-admin-placeholder { border-style: dashed; opacity: .82; }
.em-admin-placeholder span { color: var(--em-muted); font-size: .87rem; }

.em-method-strip { max-width: 760px; margin-inline: auto; border: 1px solid var(--em-line); background: var(--em-paper); }
.em-method-strip strong { display: block; margin-bottom: 6px; font-family: var(--em-serif); font-size: 1.25rem; }
.em-method-strip p { margin: 0; color: var(--em-muted); }

.em-related-wrap { width: min(100% - 36px, 1050px); margin-block: clamp(54px, 8vw, 88px); }
.em-related-guides .em-section-heading { max-width: 720px; margin-bottom: 24px; }
.em-related-guides .em-editorial-card { min-height: 250px; }

.em-source-note,
.em-verdict,
.em-disclosure {
  margin-block: 28px;
  padding: 20px 22px;
  border-radius: 16px;
  line-height: 1.65;
}

.em-source-note { border: 1px solid var(--em-line); background: var(--em-paper); }
.em-verdict { border-left: 5px solid var(--em-clay); background: #f5e9e1; }
.em-disclosure { border-left: 5px solid var(--em-moss); background: var(--em-sage); font-size: .95rem; }
.em-comparison-block { margin-block: 34px; padding: clamp(22px, 4vw, 36px); border: 1px solid var(--em-line); border-radius: 22px; background: linear-gradient(145deg, #fffefb, #f0f4ee); }
.em-comparison-block h2 { margin-top: 0; }
.em-checklist-block { margin-block: 34px; padding: clamp(22px, 4vw, 34px); border-radius: 22px; background: #edf1e9; }

.em-archive-header { max-width: 760px; margin-bottom: 42px; }
.em-archive-header h1 { font-size: clamp(2.6rem, 6vw, 5rem); letter-spacing: -.055em; }
.em-archive-grid .wp-block-post-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.em-post-card .wp-block-post-title { margin-top: 12px; font-size: 1.35rem; }
.em-post-card .wp-block-post-title a { color: var(--em-ink); text-decoration: none; }
.em-post-card .wp-block-post-excerpt { color: var(--em-muted); }
.em-post-card .wp-block-post-date,
.em-post-card .taxonomy-category { color: var(--em-muted); font-size: .82rem; }

.em-page-header { max-width: 820px; margin-bottom: 34px; }
.em-page-header h1 { font-size: clamp(2.5rem, 5.5vw, 4.5rem); letter-spacing: -.05em; }

.em-site-footer { margin-top: 64px; padding-block: 64px 28px; color: #edf3ee; background: var(--em-ink); }
.em-site-footer a { color: #edf3ee; }
.em-site-footer p { color: rgba(237,243,238,.68); }
.em-footer-grid { gap: 42px; }
.em-footer-title { margin: 0; color: #fff; font-size: 1.35rem; }
.em-footer-links { gap: 8px; }
.em-footer-links a { text-decoration: none; }
.em-footer-meta { margin-top: 42px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.15); font-size: .84rem; }

/* Premium editorial hubs */
.em-hub-page .em-page-header { display: none; }
.em-hub-page .em-main { padding-top: 0; }
.em-hub-page .em-prose { max-width: none; }
.em-hub-page .em-prose > * + * { margin-top: 0; }
.em-hub-page .em-prose > .em-hub-hero {
  max-width: none !important;
  margin-top: -88px !important;
  margin-right: calc(50% - 50vw) !important;
  margin-left: calc(50% - 50vw) !important;
}
.em-hub-hero {
  position: relative;
  overflow: hidden;
  margin-top: -88px;
  margin-right: calc(50% - 50vw);
  margin-bottom: 0;
  margin-left: calc(50% - 50vw);
  padding: clamp(70px, 10vw, 125px) max(18px, calc((100vw - 1050px) / 2));
  color: #fff;
  background:
    radial-gradient(circle at 82% 28%, rgba(234,223,205,.2), transparent 25%),
    linear-gradient(132deg, #142e28, #315742 62%, #6b7860);
}
.em-hub-hero::after { position: absolute; right: 6vw; bottom: -190px; width: 390px; height: 390px; content: ""; border: 1px solid rgba(255,255,255,.18); border-radius: 42% 58% 48% 52%; transform: rotate(29deg); }
.em-hub-hero h1 { position: relative; z-index: 1; max-width: 900px; margin: 0; color: #fff; font-size: clamp(3.1rem, 7.4vw, 6.7rem); line-height: .96; letter-spacing: -.055em; }
.em-hub-hero > p:not(.em-eyebrow) { position: relative; z-index: 1; max-width: 720px; color: rgba(255,255,255,.8); font-size: clamp(1.08rem, 2vw, 1.3rem); }
.em-hub-chips { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.em-hub-chips span { padding: 8px 12px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: #fff; font-size: .8rem; font-weight: 700; }

.em-hub-intro,
.em-hub-guides,
.em-hub-next,
.em-hub-priorities,
.em-directory { width: min(100%, 1050px); margin-inline: auto; }
.em-hub-intro { padding-block: clamp(58px, 8vw, 96px); }
.em-hub-intro > h2 { max-width: 780px; font-size: clamp(2.2rem, 4.5vw, 3.9rem); letter-spacing: -.045em; }
.em-hub-intro > p { max-width: 760px; color: var(--em-muted); font-size: 1.12rem; }
.em-decision-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 34px; overflow: hidden; border: 1px solid var(--em-line); border-radius: 19px; background: var(--em-line); }
.em-decision-strip div { padding: 22px; background: var(--em-paper); }
.em-decision-strip strong, .em-decision-strip span { display: block; }
.em-decision-strip strong { margin-bottom: 5px; color: var(--em-ink); }
.em-decision-strip span { color: var(--em-muted); font-size: .9rem; }
.em-hub-guides { padding-bottom: 72px; }
.em-hub-priorities { padding-bottom: clamp(54px, 7vw, 86px); }
.em-priority-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.em-priority-grid > div { padding: 24px; border: 1px solid var(--em-line); border-radius: 18px; background: linear-gradient(145deg, #fffefb, #f0f3ed); }
.em-priority-grid h3 { margin: 0 0 8px; font-size: 1.35rem; }
.em-priority-grid p { margin: 0; color: var(--em-muted); font-size: .94rem; line-height: 1.65; }
.em-editorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.em-editorial-card { display: flex; min-height: 270px; flex-direction: column; padding: 25px; border: 1px solid var(--em-line); border-radius: 20px; background: var(--em-paper); transition: transform .2s ease, box-shadow .2s ease; }
.em-editorial-card:hover { transform: translateY(-3px); box-shadow: var(--em-shadow); }
.em-editorial-card h3 { margin: 12px 0 9px; font-size: 1.45rem; line-height: 1.14; }
.em-editorial-card h3 a { color: var(--em-ink); text-decoration: none; }
.em-editorial-card p { color: var(--em-muted); font-size: .94rem; }
.em-editorial-card .em-link-arrow { margin-top: auto; color: var(--em-moss-dark); font-weight: 750; text-decoration: none; }
.em-card-kicker { color: var(--em-clay); font-size: .71rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.em-hub-next { border: 1px solid var(--em-line); background: var(--em-paper); }

.em-featured-wrap { max-width: 1180px !important; }
.em-featured-grid { width: 100%; }

.em-directory { padding-bottom: 78px; }
.em-directory-group + .em-directory-group { margin-top: 42px; }
.em-directory-group > h3 { margin-bottom: 15px; color: var(--em-ink); font-size: 1.55rem; }
.em-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.em-directory-card {
  position: relative;
  display: grid;
  min-height: 142px;
  grid-template-columns: 1fr auto;
  align-content: center;
  gap: 7px 18px;
  padding: 22px 58px 22px 23px;
  border: 1px solid var(--em-line);
  border-radius: 17px;
  color: var(--em-ink) !important;
  background: var(--em-paper);
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.em-directory-card:hover { transform: translateY(-2px); border-color: #b7c5b7; box-shadow: var(--em-shadow); }
.em-directory-card span { grid-column: 1; font-family: var(--em-serif); font-size: 1.3rem; font-weight: 700; line-height: 1.15; }
.em-directory-card small { grid-column: 1; color: var(--em-muted); font-size: .88rem; line-height: 1.5; }
.em-directory-card b { position: absolute; right: 22px; top: 50%; color: var(--em-clay); font-size: 1.25rem; transform: translateY(-50%); }

.em-archive-header { position: relative; padding: clamp(32px, 5vw, 58px); border-radius: 28px; background: linear-gradient(135deg, #e9eee6, #f9f7f1); }
.em-archive-header::before { display: block; margin-bottom: 12px; content: "BIBLIOTHÈQUE ÉDITORIALE"; color: var(--em-clay); font-size: .72rem; font-weight: 850; letter-spacing: .16em; }
.em-archive-header h1 { margin-top: 0; }
.em-post-card { position: relative; overflow: hidden; }
.em-post-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: var(--em-sage); transition: background .2s ease; }
.em-post-card:hover::before { background: var(--em-clay); }

.wp-block-button__link { transition: transform .18s ease, background .18s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-query-pagination { margin-top: 36px; }

@media (max-width: 960px) {
  .em-mega-nav { display: none; }
  .em-mobile-nav { display: block; }
  .em-mobile-nav > summary {
    padding: 9px 13px;
    border: 1px solid var(--em-line);
    border-radius: 999px;
    color: var(--em-ink);
    background: var(--em-paper);
    font-size: .86rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
  }
  .em-mobile-nav > summary::-webkit-details-marker { display: none; }
  .em-mobile-nav > summary::after { margin-left: 8px; content: "+"; color: var(--em-clay); }
  .em-mobile-nav[open] > summary { color: #fff; border-color: var(--em-ink); background: var(--em-ink); }
  .em-mobile-nav[open] > summary::after { content: "−"; }
  .em-mobile-panel {
    position: fixed;
    z-index: 130;
    top: 84px;
    right: 18px;
    left: 18px;
    max-height: calc(100vh - 106px);
    padding: 24px;
    overflow-y: auto;
    border: 1px solid var(--em-line);
    border-radius: 20px;
    background: #fffefb;
    box-shadow: 0 24px 70px rgba(23,49,43,.2);
  }
  body.admin-bar .em-mobile-panel { top: 116px; }
  .em-mobile-panel a { padding-block: 3px; }
  .em-archive-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .em-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .em-header-inner { min-height: 70px; }
  .em-editorial-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .em-reading-room__grid { grid-template-columns: 1fr 1fr; }
  .em-feature-story { grid-column: span 2; }
  .em-priority-grid { grid-template-columns: 1fr; }
  .em-hub-page .em-prose > .em-hub-hero { margin-top: -67px !important; }
  .em-search-panel { grid-template-columns: 1fr; align-items: stretch; }
  .em-quick-routes { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 782px) {
  body.admin-bar .em-site-header { top: 46px; }
  .em-site-header { position: relative; }
  body.admin-bar .em-mobile-panel { top: 92px; }
}

@media (max-width: 680px) {
  .em-header-inner,
  .em-footer-inner,
  .em-main,
  .em-wide { width: min(100% - 24px, 1180px); }
  .em-card-grid,
  .em-archive-grid .wp-block-post-template { grid-template-columns: 1fr !important; }
  .em-hero { padding-block: 68px 88px; }
  .em-hero h1 { font-size: clamp(2.8rem, 15vw, 4.4rem); }
  .em-proofbar { margin-top: -20px; }
  .em-proofbar .wp-block-columns { gap: 16px; }
  .em-search-panel { width: min(100% - 24px, 1180px); margin-top: 24px; padding: 26px 22px; border-radius: 22px; }
  .em-search-form .wp-block-search__inside-wrapper { flex-direction: column; }
  .em-search-form .wp-block-search__button { width: 100%; }
  .em-section { padding-block: 58px; }
  .em-quick-routes { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .em-mobile-panel { top: 74px; right: 12px; left: 12px; grid-template-columns: 1fr 1fr; gap: 22px; padding: 22px; }
  .em-process { grid-template-columns: 1fr; }
  .em-prose table { display: block; overflow-x: auto; white-space: nowrap; }
  .em-toc ol,
  .em-criteria-grid,
  .em-check-grid,
  .em-editorial-grid,
  .em-directory-grid,
  .em-decision-strip { grid-template-columns: 1fr; }
  .em-reading-room__grid { grid-template-columns: 1fr; }
  .em-feature-story { grid-column: auto; min-height: 260px; }
  .em-reading-meta { gap: 6px 14px; }
  .em-hub-hero { padding-block: 68px 86px; }
  .em-hub-page .em-prose > .em-hub-hero { margin-top: -48px !important; }
  .em-hub-hero h1 { font-size: clamp(2.8rem, 15vw, 4.6rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
