/* =========================================================
   Solenn Bastard — Ergothérapeute
   Feuille de styles principale
   ========================================================= */

/* ---------- Polices auto-hébergées ---------- */
@font-face {
  font-family: 'Kumbh Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/kumbhsans-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Kumbh Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/kumbhsans-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/roboto-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/roboto-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/roboto-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/roboto-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Design tokens ---------- */
:root{
  /* palette brute */
  --gold-100:#F5E6C8;
  --gold-300:#E0BC7E;
  --gold-500:#D4A45A;
  --gold-600:#C08F42;
  --gold-700:#A87834;
  --ink-900:#262626;
  --ink-700:#3D3D3D;
  --gray-600:#6B6B6B;
  --gray-400:#9A9A9A;
  --gray-200:#E5E5E0;
  --gray-100:#F8F8F8;
  --white:#FFFFFF;

  /* alias sémantiques */
  --color-primary:var(--gold-500);
  --color-primary-hover:var(--gold-600);
  --color-primary-tint:var(--gold-100);
  --color-text-heading:var(--ink-900);
  --color-text-body:var(--gray-600);
  --color-text-on-primary:var(--white);
  --color-text-eyebrow:var(--gold-500);
  --surface-page:var(--white);
  --surface-alt:var(--gray-100);
  --surface-card:var(--white);
  --surface-card-alt:var(--gray-100);
  --border-subtle:var(--gray-200);
  --border-focus:var(--gold-500);

  /* typographie */
  --font-display:'Kumbh Sans', ui-rounded, 'Segoe UI', sans-serif;
  --font-body:'Roboto', 'Segoe UI', system-ui, sans-serif;

  --text-eyebrow-size:13px;
  --text-eyebrow-tracking:0.12em;
  --text-eyebrow-weight:700;

  --text-h1-size:56px;
  --text-h1-weight:700;
  --text-h1-line:1.05;

  --text-h2-size:34px;
  --text-h2-weight:700;
  --text-h2-line:1.15;

  --text-h3-size:22px;
  --text-h3-weight:700;
  --text-h3-line:1.3;

  --text-body-size:17px;
  --text-body-weight:400;
  --text-body-line:1.7;

  --text-small-size:14px;
  --text-small-weight:400;

  /* espacements */
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --space-10:128px;
  --container-max:1140px;
  --container-pad:24px;

  /* effets */
  --radius-sm:0px;
  --radius-circle:50%;
  --shadow-card-hover:0 12px 24px rgba(38,38,38,.1);
  --ease-standard:cubic-bezier(.4,0,.2,1);
  --duration-fast:150ms;
  --duration-standard:250ms;
}

/* ---------- Reset / base ---------- */
*, *::before, *::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--surface-page);
  font-family:var(--font-body);
  color:var(--color-text-body);
  font-size:var(--text-body-size);
  line-height:var(--text-body-line);
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--color-primary); text-decoration:none; }
a:hover{ color:var(--color-primary-hover); }
h1,h2,h3,p,ul,figure{ margin:0; }
button{ font:inherit; }
table{ border-collapse:collapse; }

.icon{ width:1em; height:1em; fill:currentColor; display:inline-block; }

.skip-link{
  position:absolute;
  left:var(--space-4);
  top:-60px;
  background:var(--ink-900);
  color:#fff;
  padding:12px 20px;
  z-index:100;
  transition:top var(--duration-fast) var(--ease-standard);
  font-size:14px;
  font-weight:700;
}
.skip-link:focus{ top:var(--space-4); color:#fff; }

.container{
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 var(--container-pad);
}

/* ---------- Utilitaires de section ---------- */
.section{ padding-top:var(--space-9); padding-bottom:var(--space-9); }
.section--tight{ padding-top:var(--space-8); padding-bottom:var(--space-8); }
.section--primary{ background:var(--color-primary); }
.section--alt{ background:var(--surface-alt); }
.section--page{ background:var(--surface-page); }
.section--narrow .container{ max-width:820px; }

.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-8);
  align-items:start;
}
.grid-2--wide-left{ grid-template-columns:1.2fr 1fr; }
.grid-2--wide-left-alt{ grid-template-columns:1.1fr 1fr; }
.grid-2--portrait{ grid-template-columns:340px 1fr; }

/* ---------- En-tête / navigation ---------- */
.site-header{
  border-bottom:1px solid var(--border-subtle);
  position:sticky;
  top:0;
  background:#fff;
  z-index:20;
}
.site-header__bar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--space-7);
  padding-top:var(--space-4);
  padding-bottom:var(--space-4);
}
.nav-desktop{
  display:flex;
  align-items:center;
  gap:var(--space-6);
  flex-wrap:wrap;
}
.navlink{
  font-family:var(--font-body);
  font-size:14px;
  font-weight:300;
  color:var(--color-text-heading);
  white-space:nowrap;
  padding-bottom:4px;
  border-bottom:2px solid transparent;
}
.navlink:hover{ color:var(--color-primary); }
.navlink[aria-current="page"]{
  font-weight:600;
  border-bottom:2px solid var(--color-primary);
  color:var(--color-text-heading);
}
.burger-btn{
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:6px;
  color:var(--color-text-heading);
  font-size:22px;
  line-height:1;
}
.burger-btn .icon{ width:22px; height:22px; }
@media (max-width:860px){
  .nav-desktop{ display:none; }
  .burger-btn{ display:flex; align-items:center; justify-content:center; }
}
.mobile-nav-panel{
  background:#fff;
  border-top:1px solid transparent;
  max-height:0;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transition:max-height .35s var(--ease-standard), opacity .25s ease, border-color .35s ease, visibility 0s linear .35s;
}
.mobile-nav-panel.is-open{
  max-height:320px;
  opacity:1;
  visibility:visible;
  border-top-color:var(--border-subtle);
  transition:max-height .35s var(--ease-standard), opacity .3s ease .05s, border-color 0s, visibility 0s;
}
@media (prefers-reduced-motion: reduce){
  .mobile-nav-panel{ transition:opacity .01ms, visibility .01ms; }
}
.mobile-nav-panel a{
  display:block;
  padding:16px var(--container-pad);
  border-bottom:1px solid var(--border-subtle);
  font-size:16px;
  font-weight:500;
  color:var(--color-text-heading);
}
.mobile-nav-panel a[aria-current="page"]{ font-weight:600; color:var(--color-primary); }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--font-body);
  font-weight:700;
  font-size:14px;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:14px 28px;
  border-radius:var(--radius-sm);
  border:2px solid transparent;
  cursor:pointer;
  background:var(--color-primary);
  color:var(--color-text-on-primary);
  transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
  text-decoration:none;
}
.btn:hover{ background:var(--color-primary-hover); color:var(--color-text-on-primary); }
.btn--sm{ padding:10px 20px; font-size:13px; }
.btn--lg{ padding:18px 36px; font-size:14px; }
.btn--outline{ background:transparent; color:var(--color-primary); border-color:var(--color-primary); }
.btn--outline:hover{ background:var(--color-primary); color:#fff; }
.btn--ghost{ background:transparent; color:var(--color-text-heading); }
.btn--ghost:hover{ background:transparent; color:var(--color-primary); }
.btn:disabled{ cursor:not-allowed; opacity:.5; }

/* ---------- Eyebrow + titres de section ---------- */
.eyebrow{ display:flex; align-items:center; gap:10px; }
.eyebrow--center{ justify-content:center; }
.eyebrow__bar{ width:3px; height:16px; background:var(--color-primary); flex-shrink:0; }
.eyebrow__label{
  font-family:var(--font-body);
  font-size:var(--text-eyebrow-size);
  font-weight:var(--text-eyebrow-weight);
  letter-spacing:var(--text-eyebrow-tracking);
  text-transform:uppercase;
  color:var(--color-text-eyebrow);
}
.section-heading{ text-align:left; }
.section-heading--center{ text-align:center; }
.section-heading__eyebrow{ margin-bottom:14px; display:flex; }
.section-heading--center .section-heading__eyebrow{ justify-content:center; }
.section-heading__title{
  font-family:var(--font-display);
  font-size:var(--text-h2-size);
  font-weight:var(--text-h2-weight);
  line-height:var(--text-h2-line);
  color:var(--color-text-heading);
}
.section-heading--on-primary .eyebrow__bar{ background:#fff; }
.section-heading--on-primary .eyebrow__label{ color:var(--gold-100); }

/* ---------- Héros de page ---------- */
.hero{ background:var(--color-primary); }
.hero__kicker{
  font-family:var(--font-body);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
  margin-bottom:var(--space-3);
}
.hero__title{
  font-family:var(--font-display);
  font-size:var(--text-h1-size);
  font-weight:var(--text-h1-weight);
  line-height:var(--text-h1-line);
  color:#fff;
}
.hero__title--md{
  font-size:var(--text-h2-size);
  line-height:var(--text-h2-line);
}
.hero__lead{
  font-size:19px;
  line-height:1.6;
  color:var(--gold-100);
  margin-top:var(--space-4);
  max-width:680px;
}
.hero--home{ position:relative; overflow:hidden; }
.hero-flex{
  display:flex;
  align-items:center;
  gap:var(--space-8);
  padding-top:var(--space-10);
  padding-bottom:var(--space-10);
}
.hero-flex__text{ flex:1 1 560px; max-width:640px; }
.hero-flex__image{
  flex:0 1 320px;
  max-width:320px;
  width:100%;
  aspect-ratio:1/1;
  align-self:center;
}
.hero-flex__image img{ width:100%; height:100%; object-fit:contain; }

/* ---------- Cartes d'accompagnement (liens) ---------- */
.card-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-6); }
.card-link{
  text-decoration:none;
  display:block;
  flex:1 1 300px;
  max-width:346px;
  background:var(--surface-card-alt);
  padding:var(--space-6);
  border-radius:var(--radius-sm);
  transition:box-shadow .25s ease;
}
.card-link:hover{ box-shadow:var(--shadow-card-hover); }
.card-link__icon{
  font-size:40px;
  width:40px;
  height:40px;
  color:var(--color-primary);
  margin-bottom:var(--space-4);
  display:block;
}
.card-link__title{
  font-family:var(--font-display);
  font-size:var(--text-h3-size);
  font-weight:var(--text-h3-weight);
  color:var(--color-text-heading);
  margin:0 0 var(--space-3) 0;
  padding-bottom:var(--space-3);
  border-bottom:1px solid var(--border-subtle);
}
.card-link__text{
  font-size:var(--text-body-size);
  line-height:var(--text-body-line);
  color:var(--color-text-body);
  margin:0 0 var(--space-3) 0;
}
.card-link__cta{ font-size:14px; font-weight:700; color:var(--color-primary); }

/* animation d'apparition au scroll */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.stagger > *:nth-child(1){ transition-delay:0s; }
.stagger > *:nth-child(2){ transition-delay:.06s; }
.stagger > *:nth-child(3){ transition-delay:.12s; }
.stagger > *:nth-child(4){ transition-delay:.18s; }
.stagger > *:nth-child(5){ transition-delay:.24s; }
.stagger > *:nth-child(6){ transition-delay:.3s; }

/* ---------- Contenu texte générique ---------- */
.lead{ font-size:19px; line-height:1.6; color:var(--color-text-body); }
.prose, .prose p{ font-size:var(--text-body-size); line-height:var(--text-body-line); }
.prose p + p{ margin-top:var(--space-4); }
.prose strong{ color:var(--color-text-heading); }
.prose ul{ padding-left:20px; font-size:var(--text-body-size); line-height:var(--text-body-line); }
.prose ul li + li{ margin-top:4px; }

.check-list, .aid-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-4); }
.aid-list{ gap:10px; }
.check-list li, .aid-list li{
  font-size:var(--text-body-size);
  line-height:var(--text-body-line);
  color:var(--color-text-body);
  padding-left:20px;
  position:relative;
}
.aid-list li{ font-size:15px; line-height:1.6; padding-left:18px; }
.check-list li::before, .aid-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  width:6px;
  height:6px;
  background:var(--color-primary);
}
.src-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.src-list a{ font-size:15px; font-weight:700; }

.info-callout{
  background:#fff;
  border-left:3px solid var(--color-primary);
  padding:var(--space-6);
  border-radius:var(--radius-sm);
}
.info-callout__label{
  font-size:14px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-primary);
  margin-bottom:var(--space-3);
}
.info-callout__text{ font-size:15px; line-height:1.7; color:var(--color-text-body); }

/* ---------- Déroulement / étapes ---------- */
.process-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:var(--space-6);
}
.process-step__badge-wrap{ position:relative; width:96px; height:96px; margin-bottom:var(--space-4); }
.process-step__circle{
  width:96px; height:96px; border-radius:50%;
  background:var(--gold-100);
  display:flex; align-items:center; justify-content:center;
}
.process-step__circle .icon{ width:36px; height:36px; color:var(--color-primary); }
.process-step__number{
  position:absolute; bottom:-6px; left:-6px;
  width:32px; height:32px; border-radius:50%;
  background:var(--color-primary); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:14px;
}
.process-step__title{ font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--color-text-heading); margin-bottom:8px; }
.process-step__text{ font-size:15px; line-height:1.6; color:var(--color-text-body); }

/* ---------- Portrait / à propos ---------- */
.portrait{
  width:100%;
  aspect-ratio:4/5;
  border-radius:var(--radius-sm);
  overflow:hidden;
}
.portrait img{ width:100%; height:100%; object-fit:cover; }
.plain-list{ list-style:none; margin:0; padding:0; font-size:15px; line-height:1.9; color:var(--color-text-body); }

/* ---------- Carte (image contenue) ---------- */
.figure-contain{
  width:100%; aspect-ratio:4/3;
  margin-bottom:var(--space-5);
  display:flex; align-items:center; justify-content:center;
}
.figure-contain img{ width:100%; height:100%; object-fit:contain; }

/* ---------- FAQ ---------- */
.faq{ display:flex; flex-direction:column; font-family:var(--font-body); }
.faq__item{ background:transparent; border-bottom:1px solid var(--border-subtle); }
.faq__item.is-open{ border-bottom:none; }
.faq__question{
  width:100%;
  text-align:left;
  border:none;
  cursor:pointer;
  padding:var(--space-4) var(--space-5);
  font-family:var(--font-body);
  font-weight:700;
  font-size:15px;
  background:none;
  color:var(--color-text-heading);
  transition:background var(--duration-standard) var(--ease-standard), color var(--duration-standard) var(--ease-standard);
  display:block;
}
.faq__item.is-open .faq__question{ background:var(--color-primary); color:#fff; }
.faq__answer{
  padding:var(--space-4) var(--space-5);
  background:#fff;
  color:var(--color-text-body);
  font-size:15px;
  line-height:1.6;
  border:1px solid var(--border-subtle);
  border-top:none;
}
.faq__answer[hidden]{ display:none; }

/* ---------- Formulaire ---------- */
.field{
  width:100%;
  box-sizing:border-box;
  font-family:var(--font-body);
  font-size:15px;
  color:var(--color-text-heading);
  background:var(--surface-alt);
  border:1px solid transparent;
  border-radius:var(--radius-sm);
  padding:16px 18px;
  outline:none;
  transition:border-color var(--duration-fast) var(--ease-standard);
}
.field:focus{ border-color:var(--border-focus); }
textarea.field{ background:#fff; border-color:var(--border-subtle); resize:vertical; }
textarea.field:focus{ border-color:var(--border-focus); }
.contact-form .field{ background:#fff; }

.form-card{
  background:var(--surface-card-alt);
  padding:var(--space-6);
  border-radius:var(--radius-sm);
  display:flex;
  flex-direction:column;
  gap:var(--space-4);
}
.form-card--on-primary{ background:#fff; }

.consent{ display:flex; align-items:flex-start; gap:10px; }
.consent input{ width:16px; height:16px; margin-top:3px; accent-color:var(--color-primary); flex-shrink:0; }
.consent label{ font-size:13px; line-height:1.6; color:var(--color-text-body); }

.form-note{ font-size:13px; line-height:1.6; color:var(--color-text-body); font-style:italic; margin:0; }

.form-alert{
  padding:var(--space-4) var(--space-5);
  border-radius:var(--radius-sm);
  font-size:15px;
  line-height:1.6;
  margin-bottom:var(--space-5);
}
.form-alert--success{ background:#EAF3EC; color:#1E3A32; border:1px solid #bcdcc4; }
.form-alert--error{ background:#FBEAEA; color:#7a1f1f; border:1px solid #f0bcbc; }
.form-alert ul{ margin:8px 0 0; padding-left:18px; }

/* honeypot (piège à robots, invisible pour les humains) */
.hp-field{
  position:absolute !important;
  left:-9999px !important;
  top:-9999px !important;
  width:1px; height:1px;
  overflow:hidden;
}

/* ---------- Contact / coordonnées ---------- */
.contact-detail{ display:flex; flex-direction:column; gap:var(--space-6); }
.contact-detail__label{
  font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--color-primary); margin-bottom:var(--space-2);
}
.contact-phone{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-display); font-size:24px; font-weight:700;
  color:var(--color-text-heading);
}
.contact-phone .icon{ width:22px; height:22px; color:var(--color-primary); }
.contact-phone--on-primary{ color:#fff; }
.contact-phone--on-primary .icon{ color:#fff; }
.contact-email{ font-size:17px; color:var(--color-text-heading); }
.contact-plain{ font-size:17px; color:var(--color-text-heading); }

/* ---------- Carte (iframe) ---------- */
.map-frame{ border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:4/3; }
.map-frame iframe{ width:100%; height:100%; border:0; }
.map-frame--gate{
  background:var(--surface-alt);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3);
  padding:var(--space-6); text-align:center;
}
.map-frame__button{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-weight:700; font-size:14px;
  letter-spacing:.04em; color:var(--color-text-heading);
  background:#fff; border:1px solid var(--border-subtle);
  padding:12px 20px; border-radius:var(--radius-sm); cursor:pointer;
}
.map-frame__button .icon{ width:18px; height:18px; color:var(--color-primary); }
.map-frame__button:hover{ border-color:var(--color-primary); color:var(--color-primary); }
.map-frame__hint{ font-size:12px; color:var(--gray-400); margin:0; }

/* ---------- Table des tarifs ---------- */
.price-table{ width:100%; border-collapse:collapse; }
.price-table th{
  text-align:left; font-family:var(--font-body); font-size:13px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--color-text-heading);
  padding:0 var(--space-5) var(--space-3) 0; border-bottom:1px solid var(--border-subtle);
}
.price-table td{
  font-size:var(--text-body-size); line-height:var(--text-body-line); color:var(--color-text-body);
  padding:var(--space-4) var(--space-5) var(--space-4) 0; border-bottom:1px solid var(--border-subtle);
}
.price-table tr:last-child td{ border-bottom:none; }
.price-table td:last-child, .price-table th:last-child{
  padding-right:0; font-family:var(--font-display); font-weight:700; color:var(--color-text-heading); white-space:nowrap;
}
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* ---------- Grille d'aides / financement ---------- */
.aid-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-7); }
.aid-card{ background:#fff; padding:var(--space-6); border-radius:var(--radius-sm); }
.aid-card__title{
  font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--color-text-heading);
  margin:0 0 var(--space-4) 0; padding-bottom:var(--space-3); border-bottom:1px solid var(--border-subtle);
}

/* ---------- Pied de page ---------- */
.site-footer{ background-color:var(--ink-900); }
.footer-top{
  padding-top:var(--space-8); padding-bottom:var(--space-7);
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--space-6);
}
.footer-brand__name{
  font-family:var(--font-display); font-weight:700; font-size:20px; color:#fff; margin:0 0 var(--space-3) 0;
}
.footer-brand__tag{ font-size:12px; font-weight:400; color:var(--gray-400); letter-spacing:.04em; }
.footer-brand__desc{ font-size:14px; line-height:1.7; color:var(--gray-400); }
.footer-col{ display:flex; flex-direction:column; gap:10px; }
.footer-col__title{
  font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--color-primary); margin:0 0 4px 0;
}
.footlink{ font-family:var(--font-body); font-size:14px; color:var(--gray-400); }
.footlink:hover{ color:var(--gold-300); }
.footer-bottom{
  border-top:1px solid var(--ink-700); padding-top:var(--space-4); padding-bottom:var(--space-5);
  display:flex; flex-wrap:wrap; gap:var(--space-3) var(--space-5); align-items:center; justify-content:space-between;
}
.footer-bottom p{ font-size:13px; color:var(--gray-400); margin:0; }
.footer-legal{ display:flex; gap:var(--space-5); flex-wrap:wrap; }
.footer-legal a{ font-size:13px; color:var(--gray-400); }
.footer-legal a:hover{ color:var(--gold-300); }

/* ---------- Utilitaires d'espacement (chargés en dernier pour toujours l'emporter) ---------- */
.mb-3{ margin-bottom:var(--space-3) !important; }
.mb-4{ margin-bottom:var(--space-4) !important; }
.mb-5{ margin-bottom:var(--space-5) !important; }
.mb-6{ margin-bottom:var(--space-6) !important; }
.mb-7{ margin-bottom:var(--space-7) !important; }
.mb-8{ margin-bottom:var(--space-8) !important; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:960px){
  .hero__title{ font-size:44px; }
}

@media (max-width:768px){
  .grid-2,
  .grid-2--wide-left,
  .grid-2--wide-left-alt,
  .grid-2--portrait,
  .aid-grid{
    grid-template-columns:1fr !important;
  }
  .price-table{ font-size:14px; }
  .hero-flex{
    flex-direction:column;
    text-align:center;
    gap:var(--space-5);
    padding-top:var(--space-8);
    padding-bottom:var(--space-8);
  }
  .hero-flex__text{ flex:0 0 auto; max-width:100%; }
  .hero-flex__image{ width:160px; max-width:160px; }
  .hero__title{ font-size:36px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .section{ padding-top:var(--space-7); padding-bottom:var(--space-7); }
  .section--tight{ padding-top:var(--space-6); padding-bottom:var(--space-6); }
}

@media (max-width:600px){
  .card-link{ flex:1 1 100%; max-width:100%; }
  .process-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:480px){
  :root{ --container-pad:18px; }
  .footer-top{ grid-template-columns:1fr; }
  .hero__title{ font-size:30px; }
  .section-heading__title{ font-size:26px; }
  .process-grid{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}
