/*
Theme Name: EaseMove
Theme URI: https://easemove.ca/
Author: La rédaction EaseMove
Description: Thème éditorial léger, rapide et accessible pour EaseMove, un magazine santé bilingue (FR/EN) : bouger et garder ses muscles pendant une perte de poids. Accueil éditorial, sommaire automatique, encadrés « En bref », FAQ avec données structurées, fil d'Ariane, sélecteur de langue Polylang, compatible Rank Math.
Version: 1.1.0
Requires at least: 6.4
Tested up to: 6.9
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: easemove
Tags: blog, news, custom-menu, featured-images, translation-ready, accessibility-ready
*/

/* ---------- Fonts (self-hosted, SIL OFL) ---------- */
@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-latin-var.woff2") format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("assets/fonts/inter-latin-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

/* ---------- Tokens (colour palette) ---------- */
:root{
  /* Palette « Bleu roi & cramoisi » / Royal Blue & Crimson — EaseMove 1.1.0 */
  --bg:#f8faff; --surface:#ffffff; --surface-2:#eef3fe; --surface-3:#dfe8fc;
  --primary:#1d4ed8; --primary-2:#1e40af; --primary-3:#2563eb; --primary-soft:#e8eefc; --on-primary:#ffffff;
  --accent:#c8102e; --accent-hover:#a00d25; --accent-strong:#a00d25; --accent-soft:#fde8eb; --accent-line:#f5c2ca;
  --on-accent:#ffffff; --brand-accent:#c8102e;
  --ink:#0f1b3d; --text:#26324d; --muted:#525e78; --line:#e2e8f4;
  --header-bg:#f8fafff2; --hero-eyebrow:#ff9aa6; --overlay-rgb:15,27,61;
  --path-3:#0ea5e9; --path-4:#1e40af;
  --info-bg:#f1f5f9; --info-line:#d9e2ec; --tip-bg:#fff7e6; --tip-line:#f9dfa8;
  --footer-bg:#102a6b; --footer-text:#dbe4fb; --footer-muted:#a9bbe8;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --radius:18px; --radius-sm:10px; --shadow:0 12px 32px -16px rgba(15,27,61,.35);
  --wrap:1180px; --measure:720px; --gap:clamp(1rem,2.5vw,2rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.72 var(--sans);text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--accent-strong)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);line-height:1.16;font-weight:600;letter-spacing:-.01em;margin:1.6em 0 .5em}
h1{font-size:clamp(2rem,4.6vw,3.3rem);font-weight:620}
h2{font-size:clamp(1.55rem,2.8vw,2.1rem)}
h3{font-size:clamp(1.22rem,2.1vw,1.45rem)}
h4{font-size:1.1rem}
p,ul,ol,table,figure{margin:0 0 1.15em}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:6px;z-index:100}
.skip-link:focus{top:1rem;color:#fff}
.wrap{width:min(100% - 2*var(--gap),var(--wrap));margin-inline:auto}
.measure{width:min(100% - 2*var(--gap),var(--measure));margin-inline:auto}
.eyebrow{font:600 .78rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 .6rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.35rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:600;text-decoration:none;border:0;cursor:pointer;font-size:1rem;line-height:1.2}
.btn:hover{background:var(--accent-hover);color:var(--on-accent)}
.btn--ghost{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 2px currentColor}
.btn--ghost:hover{background:var(--primary);color:#fff}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:saturate(1.3) blur(8px);border-bottom:1px solid var(--line)}
.site-header__inner{display:flex;align-items:center;gap:1rem;min-height:66px}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font:640 1.4rem/1 var(--serif);letter-spacing:-.015em;margin-right:auto}
.brand svg{width:32px;height:32px;flex:none}
.brand span em{font-style:normal;color:var(--brand-accent)}
.nav-toggle,.search-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;border-radius:10px;cursor:pointer;color:var(--ink)}
.nav-toggle svg{width:24px;height:24px}.search-toggle svg{width:22px;height:22px}
.primary-nav{position:fixed;inset:66px 0 auto 0;background:var(--surface);border-bottom:1px solid var(--line);padding:1rem var(--gap) 1.5rem;display:none;max-height:calc(100vh - 66px);overflow:auto}
.primary-nav.is-open{display:block}
.primary-nav ul{list-style:none;margin:0;padding:0}
.primary-nav li a{display:block;padding:.75rem 0;color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
.primary-nav li a:hover,.primary-nav .current-menu-item>a{color:var(--accent-strong)}
.header-tools{display:flex;align-items:center;gap:.25rem}
.lang-switch{list-style:none;margin:0;padding:0;display:flex;gap:.15rem}
.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:38px;padding:0 .55rem;border-radius:999px;font:600 .8rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--primary)}
.lang-switch .current-lang a{background:var(--primary);color:#fff}
.lang-switch a:hover{background:var(--primary-soft)}
.header-search{display:none;border-top:1px solid var(--line);padding:1rem 0}
.header-search.is-open{display:block}
@media (min-width:1060px){
  .nav-toggle{display:none}
  .primary-nav{position:static;display:block;background:none;border:0;padding:0;max-height:none;overflow:visible}
  .primary-nav>ul{display:flex;gap:.2rem}
  .primary-nav li a{border:0;padding:.5rem .7rem;border-radius:999px;font-size:.95rem}
  .primary-nav li a:hover,.primary-nav .current-menu-item>a{background:var(--primary-soft);color:var(--primary)}
}
.search-form{display:flex;gap:.5rem}
.search-form input[type=search]{flex:1;min-width:0;padding:.8rem 1rem;border:1px solid var(--line);border-radius:999px;font:inherit;background:#fff}
.search-form button{padding:.8rem 1.2rem;border-radius:999px;border:0;background:var(--primary);color:#fff;font-weight:600;cursor:pointer}

/* ---------- Home ---------- */
.home-hero{position:relative;display:grid;align-items:end;min-height:min(78vh,640px);color:#fff;overflow:hidden;background:var(--primary)}
.home-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--overlay-rgb),.05) 20%,rgba(var(--overlay-rgb),.74) 100%)}
.home-hero__inner{position:relative;z-index:1;padding:clamp(2rem,6vw,4.5rem) 0}
.home-hero h1{color:#fff;margin:0 0 .6rem;max-width:16ch;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.home-hero p{font-size:clamp(1.05rem,1.7vw,1.25rem);max-width:56ch;margin:0 0 1.4rem;text-shadow:0 1px 10px rgba(0,0,0,.3)}
.home-hero .eyebrow{color:var(--hero-eyebrow)}
.home-hero__ctas{display:flex;flex-wrap:wrap;gap:.7rem}
.home-hero .btn--ghost{color:#fff}
.home-hero .btn--ghost:hover{background:#fff;color:var(--ink)}
.section{padding:clamp(2.5rem,6vw,4.5rem) 0}
.section--sand{background:var(--surface-2)}
.section__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}
.section__head h2{margin:0}
.section__head p{margin:.3rem 0 0;color:var(--muted);max-width:60ch}
.paths{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.path{position:relative;display:flex;flex-direction:column;gap:.4rem;padding:1.4rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-decoration:none;color:var(--text);border-top:5px solid var(--primary-3)}
.path:nth-child(2){border-top-color:var(--accent)}.path:nth-child(3){border-top-color:var(--path-3)}.path:nth-child(4){border-top-color:var(--path-4)}
.path strong{font:600 1.2rem/1.25 var(--serif);color:var(--ink)}
.path span{color:var(--muted);font-size:.95rem}
.path em{font-style:normal;font-weight:600;color:var(--accent-strong);margin-top:auto}
.path:hover{transform:translateY(-2px);color:var(--text)}
.promise{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));list-style:none;padding:0;margin:0}
.promise li{padding-left:2.2rem;position:relative}
.promise li::before{content:"";position:absolute;left:0;top:.25rem;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--primary-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%231e40af' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat}
.promise strong{display:block;color:var(--ink)}

/* ---------- Cards ---------- */
.grid{display:grid;gap:clamp(1rem,2.4vw,1.75rem);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.card{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative}
.card__media{aspect-ratio:16/9;background:var(--surface-3);overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.card:hover .card__media img{transform:scale(1.03)}
.card__body{display:flex;flex-direction:column;gap:.45rem;padding:1.1rem 1.25rem 1.3rem;flex:1}
.card__kicker{font:600 .74rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-strong)}
.card__title{font-size:1.2rem;margin:0;line-height:1.25}
.card__title a{color:var(--ink);text-decoration:none}
.card__title a::after{content:"";position:absolute;inset:0}
.card__title a:hover{color:var(--primary)}
.card__excerpt{margin:0;color:var(--muted);font-size:.95rem;line-height:1.55}
.card__meta{margin-top:auto;font-size:.82rem;color:var(--muted)}

/* ---------- Article ---------- */
.article-hero{padding:clamp(1.5rem,4vw,2.5rem) 0 0}
.article-hero h1{margin:.4rem 0 .8rem;max-width:24ch}
.article-hero__lead{font-size:clamp(1.08rem,1.6vw,1.22rem);color:var(--muted);max-width:62ch;margin:0 0 1rem}
.article-hero__figure{margin:1.4rem 0 0}
.article-hero__figure img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius)}
.breadcrumbs ol,.rank-math-breadcrumb p{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.85rem;color:var(--muted)}
.breadcrumbs li+li::before{content:"›";margin-right:.35rem;color:var(--line)}
.breadcrumbs a,.rank-math-breadcrumb a{color:var(--muted)}
.entry-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.88rem;color:var(--muted);margin:0}
.entry-meta span{display:inline-flex;align-items:center;gap:.35rem}
.entry-meta svg{flex:none}
.entry-meta a{color:var(--muted)}
.article-layout{display:grid;gap:2.5rem;padding:2rem 0 3rem}
@media (min-width:1060px){.article-layout{grid-template-columns:minmax(0,var(--measure)) 280px;justify-content:space-between}}
.sidebar{display:none}
@media (min-width:1060px){.sidebar{display:block}.sidebar__sticky{position:sticky;top:6rem;display:grid;gap:1rem}.entry-content>.em-toc{display:none}}
.entry-content{min-width:0}
.entry-content>*:first-child{margin-top:0}
.entry-content h2{scroll-margin-top:5rem}
.entry-content img{border-radius:var(--radius-sm)}
.entry-content ul,.entry-content ol{padding-left:1.25rem}
.entry-content li{margin-bottom:.35em}
.entry-content blockquote{margin:1.5em 0;padding:.5em 1.2em;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.wp-block-table{overflow-x:auto;margin:1.5em 0}
.wp-block-table table{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--surface)}
.wp-block-table th,.wp-block-table td{padding:.65rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.wp-block-table thead th{background:var(--primary-soft);color:var(--ink);font-weight:600}
.em-toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.9rem 1.1rem;font-size:.92rem;margin:0 0 1.5rem}
.em-toc summary{font-weight:600;cursor:pointer;color:var(--ink)}
.em-toc ol{margin:.6rem 0 0;padding-left:1.1rem}
.em-toc li{margin:.3rem 0}
.em-toc a{color:var(--text);text-decoration:none}
.em-toc a:hover,.em-toc a.is-active{color:var(--accent-strong)}
.em-box{border-radius:var(--radius-sm);padding:1.1rem 1.25rem;margin:1.6em 0;background:var(--surface);border:1px solid var(--line)}
.em-box>*:last-child{margin-bottom:0}
.em-box__title{font-weight:700;color:var(--ink);margin:0 0 .4rem!important}
.is-style-em-answer{background:var(--primary-soft);border:0;border-left:5px solid var(--primary-2);font-size:1.05rem}
.is-style-em-info{background:var(--info-bg);border-color:var(--info-line)}
.is-style-em-tip{background:var(--tip-bg);border-color:var(--tip-line)}
.is-style-em-warning{background:var(--accent-soft);border-color:var(--accent-line)}
.is-style-em-check ul{list-style:none;padding-left:0}
.is-style-em-check li{position:relative;padding-left:1.7rem}
.is-style-em-check li::before{content:"✓";position:absolute;left:.2rem;color:var(--primary-2);font-weight:700}
.em-faq-section{margin:1em 0 2em}
.em-faq{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin:.6rem 0;padding:0}
.em-faq summary{cursor:pointer;padding:.9rem 1.1rem;font-weight:600;color:var(--ink);list-style-position:outside}
.em-faq[open] summary{border-bottom:1px solid var(--line)}
.em-faq>p,.em-faq>div{padding:0 1.1rem}
.em-faq>p:first-of-type{padding-top:.8rem}
.em-sources{font-size:.9rem;background:var(--surface-2);border-radius:var(--radius-sm);padding:1rem 1.25rem;margin-top:2em}
.em-sources h2{font-size:1.2rem;margin:0 0 .6rem}
.em-sources ul{margin:0}
.em-sources li{overflow-wrap:anywhere}
.em-translation{display:flex;align-items:center;gap:.5rem;font-size:.9rem;margin:1rem 0 0;color:var(--muted)}
.em-translation a{font-weight:600}
.author-box{display:grid;grid-template-columns:56px 1fr;gap:1rem;align-items:start;margin:2.5rem 0 0;padding:1.25rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.author-box__mark{width:56px;height:56px;border-radius:50%;background:var(--primary-soft);display:grid;place-items:center}
.author-box__mark svg{width:34px;height:34px}
.author-box h2{font-size:1.1rem;margin:0 0 .3rem}
.author-box p{margin:0 0 .5rem;font-size:.93rem;color:var(--muted)}
.health-note{font-size:.88rem;color:var(--muted);border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}
.related{padding:2.5rem 0 3.5rem;background:var(--surface-2)}
.related h2{margin-top:0}

/* ---------- Pages & archives ---------- */
.page-hero{padding:clamp(2rem,5vw,3rem) 0 1rem}
.page-hero h1{margin:.4rem 0 .6rem}
.page-hero p{color:var(--muted);max-width:62ch}
.page-content{padding:1rem 0 3.5rem}
.archive-hero{padding:clamp(2rem,5vw,3rem) 0 1.5rem}
.archive-hero h1{margin:.3rem 0 .5rem}
.archive-hero p{color:var(--muted);max-width:62ch;margin:0}
.pagination{display:flex;gap:.5rem;justify-content:center;margin:2.5rem 0 0}
.pagination .page-numbers{padding:.5rem .9rem;border-radius:999px;background:var(--surface);text-decoration:none;border:1px solid var(--line)}
.pagination .current{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ---------- Footer ---------- */
.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:3rem 0 1.5rem;font-size:.95rem}
.site-footer a{color:#fff}
.site-footer h2{color:#fff;font:600 .8rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .9rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:.35rem 0}
.footer-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.footer-brand .brand{color:#fff;margin-bottom:.8rem}
.footer-brand p{max-width:40ch}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:2.5rem;padding-top:1.2rem;font-size:.85rem;color:var(--footer-muted)}
.footer-bottom p{margin:.3rem 0}
