/* ===================================================================
   HOMVIA — Feuille de style partagée (toutes langues)
   ===================================================================
   Palette :
   --cream / --cream-2 : fonds
   --wood / --wood-dark : bois (Accueil identité fusion via terracotta, textes)
   --sage / --sage-dark : mélèze (immobilier)
   --pistache / --pistache-dark : pistache (rénovation)
   --terracotta : accroche principale + gaieté décorative
   --stone : RAL 7006 (À propos)
   --brun : Contact
   --ink : texte courant
   =================================================================== */

:root{
  --cream: #F0EFEB;
  --cream-2: #E7E5DE;
  --wood: #A9835C;
  --wood-dark: #8A6A47;
  --sage: #979E8C;
  --sage-dark: #767B6D;
  --stone: #756A5E;
  --terracotta: #BD6B48;
  --pistache: #BBC297;
  --pistache-dark: #929776;
  --brun: #948B7B;
  --ink: #362F27;

  --font-display: 'Zilla Slab', serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-anchor: none; }
body{ overflow-anchor: none; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.5;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
:focus-visible{ outline: 2px solid var(--terracotta); outline-offset: 2px; }

.container{ max-width: 1100px; margin:0 auto; padding: 0 24px; }

/* ---------- Skip link (accessibility) ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff;
  padding:10px 16px; z-index:1000; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* ---------- NAV ---------- */
header.site-nav{
  position: sticky; top:0; z-index: 100;
  background: var(--cream);
  border-bottom: 1px solid #E0DDD4;
}
/* Grille : logo à gauche sur 2 rangées, drapeaux en haut à droite,
   menu juste en dessous. Ainsi, quand la fenêtre rétrécit, le menu
   dispose de toute la largeur et reste visible bien plus longtemps. */
.nav-inner{
  position: relative;
  max-width: 948px;      /* 900px de contenu + 2x24px = aligné sur le reste du site */
  margin: 0 auto;
  padding: 8px 24px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "logo flags"
    "logo links";
  align-items: center;
  column-gap: 18px;
  transition: padding .3s ease;
}
.nav-logo{ grid-area: logo; align-self: center; }
.nav-logo img{ transition: height .3s ease; }
.nav-logo .logo-large{ height: 190px; width:auto; display:block; }
.nav-logo .logo-small{ width:auto; display:none; }

/* état réduit : petit logo, drapeaux repliés */
header.site-nav.scrolled .nav-logo .logo-large{ display:none; }
header.site-nav.scrolled .nav-logo .logo-small{ display:block; height: 42px; }
header.site-nav.scrolled .nav-inner{ padding: 4px 24px; }

/* drapeaux : rangée du haut, alignés à droite */
.nav-flags{
  grid-area: flags;
  justify-self: end;
  display: flex; gap: 6px; flex-wrap: nowrap;
  overflow: hidden;
  max-height: 40px; opacity: 1;
  margin-bottom: 4px;
  transition: max-height .28s ease, opacity .22s ease, margin .28s ease;
}
header.site-nav.scrolled .nav-flags{
  max-height: 0; opacity: 0; margin-bottom: 0; pointer-events: none;
}

/* menu : rangée du bas, aligné à droite */
nav[aria-label]{ grid-area: links; justify-self: end; }
.nav-toggle{ grid-area: links; justify-self: end; }

/* En dessous de 900px, le grand logo n'a plus la place : on bascule
   directement sur le logo simplifié, bien plus lisible en petit. */
@media (max-width: 900px){
  .nav-logo .logo-large{ display: none !important; }
  .nav-logo .logo-small{ display: block !important; height: 52px; }
  header.site-nav.scrolled .nav-logo .logo-small{ height: 38px; }
}

/* Largeurs intermédiaires : on resserre le menu pour qu'il tienne
   sur une ligne le plus longtemps possible avant le mode téléphone. */
@media (max-width: 780px){
  .nav-links{ gap: 15px; font-size: 15px; }
}
@media (max-width: 640px){
  .nav-links{ gap: 11px; font-size: 14px; }
}

/* Vrai format téléphone : on passe au menu déroulant */
@media (max-width: 560px){
  /* En mode téléphone, le menu devient un simple bouton : on remet
     tout sur une seule rangée — logo, drapeaux en carré 2x2, bouton —
     pour ne pas gaspiller de la hauteur. */
  .nav-inner{
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "logo flags links";
    column-gap: 12px;
  }
  .nav-logo .logo-small{ height: 48px; }
  header.site-nav.scrolled .nav-logo .logo-small{ height: 40px; }
  /* Les 4 drapeaux sur une seule ligne, plus petits que le logo */
  .nav-flags{
    display: flex;
    flex-wrap: nowrap;
    gap: 3px;
    max-height: 40px;
    margin-bottom: 0;
    justify-self: end;
    align-self: center;
  }
  .nav-flags .flag{ width: 16px; height: 16px; border-radius: 3px; }
  header.site-nav.scrolled .nav-flags{ max-height: 0; opacity: 0; }
  .nav-toggle{ align-self: center; }
}

/* Page contact : en-tête compact en permanence (pas de grand logo,
   pas de drapeaux) — une seule rangée. */
header.site-nav.compact .nav-inner{
  grid-template-areas: "logo links";
  padding: 6px 24px;
}
header.site-nav.compact .nav-logo .logo-small{ display:block; height: 42px; }
@media (max-width: 900px){
  header.site-nav.compact .nav-logo .logo-small{ display:block !important; height: 38px; }
}

header.site-nav.no-transition,
header.site-nav.no-transition *{ transition: none !important; }

.nav-links{
  display:flex; gap: 22px; font-family: var(--font-display); font-weight:600;
  font-size: 16px; list-style:none; margin:0; padding:0; flex-wrap:wrap;
}
.nav-links a{ padding: 4px 2px; border-bottom: 2px solid transparent; }
.nav-links a:hover, .nav-links a:focus-visible{ border-bottom-color: currentColor; }
.nav-links li:nth-child(1) a{ color: var(--terracotta); }
.nav-links li:nth-child(2) a{ color: var(--sage-dark); }
.nav-links li:nth-child(3) a{ color: var(--brun); }
.nav-links li:nth-child(4) a{ color: var(--pistache-dark); }
.nav-links li:nth-child(5) a{ color: var(--stone); }

.flag{ display:inline-block; width: 22px; height: 22px; border-radius: 4px; box-shadow: 0 0 0 1px rgba(0,0,0,0.12); background-size: cover; }
.flag.fr{ background: linear-gradient(to right, #0055A4 0 33%, #FFFFFF 33% 66%, #EF4135 66% 100%); }
.flag.it{ background: linear-gradient(to right, #009246 0 33%, #FFFFFF 33% 66%, #CE2B37 66% 100%); }
.flag.de{ background: linear-gradient(to bottom, #000000 0 33%, #DD0000 33% 66%, #FFCE00 66% 100%); }
.flag.es{ background: linear-gradient(to bottom, #AA151B 0 25%, #F1BF00 25% 75%, #AA151B 75% 100%); }
.flag.gb{
  background-color:#00247D;
  background-image:
    linear-gradient(to right, transparent 42%, #CF142B 42% 58%, transparent 58%),
    linear-gradient(to bottom, transparent 42%, #CF142B 42% 58%, transparent 58%),
    linear-gradient(to right, transparent 38%, #fff 38% 62%, transparent 62%),
    linear-gradient(to bottom, transparent 38%, #fff 38% 62%, transparent 62%),
    linear-gradient(45deg, transparent 46%, #fff 46% 54%, transparent 54%),
    linear-gradient(-45deg, transparent 46%, #fff 46% 54%, transparent 54%);
}
a.flag-link{ display:inline-block; }

/* mobile nav toggle (hamburger) */
.nav-toggle{
  display:none;
  background: var(--cream-2);
  border: 1px solid #DDD3BF;
  border-radius: 10px;
  cursor:pointer;
  width: 42px; height: 42px;
  padding: 0;
  align-items:center; justify-content:center;
  flex-direction: column; gap: 5px;
  transition: background .2s ease, border-color .2s ease;
}
.nav-toggle:hover{ background:#DEDACD; border-color: var(--sage); }
.nav-toggle span{ display:block; width: 20px; height: 2.5px; border-radius: 2px; }
.nav-toggle span:nth-child(1){ background: var(--terracotta); }
.nav-toggle span:nth-child(2){ background: var(--sage-dark); }
.nav-toggle span:nth-child(3){ background: var(--brun); }

/* ---------- HERO ---------- */
.section-services, .section-tarifs, .section-about, .section-contact{
  scroll-margin-top: 90px;
}
.hero{ text-align:center; padding: 56px 24px 40px; }
.hero-line{ width:50px; height:3px; background:var(--terracotta); margin: 20px auto; border-radius:2px; }
.hero-statement{
  font-family: var(--font-display); font-weight:700; font-size: clamp(22px, 4vw, 32px);
  color: var(--sage-dark); max-width: 780px; margin: 0 auto; line-height:1.4;
}

/* ---------- ATOUT / 3 CARDS ---------- */
.section-atout{ padding: 20px 24px 40px; }
.atout-frame{
  max-width: 900px; margin: 0 auto;
  background: var(--cream-2); border-radius: 20px; padding: 34px 28px;
}
.atout-frame h2{
  font-family: var(--font-display); font-weight:700; font-size: clamp(20px, 3vw, 32px);
  color: var(--terracotta); text-align:center; max-width: 820px; margin: 0 auto 28px; line-height:1.35;
}
.cards{ display:flex; flex-wrap:wrap; gap: 20px; justify-content:center; }
.card{
  background:#FAF8F4; border-radius:14px; overflow:hidden; flex:1 1 260px; max-width:340px;
  box-shadow: 0 8px 22px rgba(54,40,20,0.08); display:flex; flex-direction:column;
}
.card-title{ font-family: var(--font-display); font-weight:700; font-size:19px; color:#FBF8F2; text-align:center; padding:14px 10px; }
.card:nth-child(1) .card-title{ background: var(--pistache); }
.card:nth-child(2) .card-title{ background: var(--sage); }
.card:nth-child(3) .card-title{ background: var(--terracotta); }
.card p{ font-size:15px; line-height:1.6; color: var(--ink); padding: 18px 20px; margin:0; }

/* ---------- SERVICES ---------- */
.section-services{ padding: 20px 24px 40px; border-top:1px solid #E6DFD1; }
.section-services .inner{ max-width: 900px; margin:0 auto; }
.section-services h2{ font-family: var(--font-display); font-weight:700; font-size: clamp(20px,3vw,32px); color: var(--sage-dark); text-align:center; margin: 4px 0 26px; }
.services-list{ display:flex; flex-direction:column; gap: 14px; }
.service{ background:#FAF8F4; border:1px solid #E6DFD1; border-radius:12px; padding: 18px 24px; display:flex; gap:18px; align-items:flex-start; }
.service-line{ width:5px; align-self:stretch; border-radius:3px; background: var(--sage); flex-shrink:0; min-height: 40px; }
.service:nth-child(2) .service-line{ background: var(--terracotta); }
.service:nth-child(3) .service-line{ background: var(--pistache); }
.service h3{ font-family: var(--font-display); font-size:18px; margin:0 0 4px; color: var(--ink); }
.service p{ margin:0; font-size:14.5px; line-height:1.55; color:#55493c; }
.no-location{ text-align:center; margin-top:20px; font-family: var(--font-mono); font-size:12.5px; color: var(--stone); }

/* ---------- TARIFS ---------- */
.section-tarifs{ padding: 40px 24px; }
.section-tarifs .inner{ max-width: 900px; margin:0 auto; }
.tarifs-title{ font-family: var(--font-display); font-weight:700; font-size: clamp(26px,4vw,40px); color: var(--brun); text-align:center; margin: 0 0 32px; }
/* --- en-tetes de barème (obligation d'affichage : maximums + qui paie) --- */

/* --- encadre 100 % independant (introduction des tarifs) --- */
.indep-block{
  background:#FAF8F4; border:1px solid #E6DFD1;
  border-left:5px solid var(--terracotta);
  border-radius:12px; padding:22px 26px; margin:0 0 26px;
}
.indep-titre{
  font-family: var(--font-display); font-weight:700; font-size:20px;
  color: var(--terracotta); margin-bottom:8px;
}
.indep-block p{ font-size:15px; line-height:1.7; margin:0; color: var(--ink); }


/* --- bloc des quatre points, a droite du bareme --- */
.modele-box{
  flex:1 1 300px; background:#FAF8F4; border:1px solid #E6DFD1;
  border-top:5px solid var(--pistache); border-radius:12px; padding:20px 22px;
}
.modele-liste{ margin:0 0 12px; padding-left:18px; }
.modele-liste li{ font-size:15px; line-height:1.7; margin-bottom:10px; }
.modele-liste li:last-child{ margin-bottom:0; }
.modele-fin{ margin:14px 0 0 !important; padding-top:12px; border-top:1px dashed #DDD3BF;
  font-family: var(--font-display); font-weight:700; font-size:18px; line-height:1.4;
  color: var(--brun); text-align:center; }
/* --- liste du bloc exclusivite --- */
.excl-liste{ margin:4px 0 0; padding-left:20px; }
.excl-liste li{ font-size:15px; line-height:1.7; margin-bottom:9px; }
.excl-liste li:last-child{ margin-bottom:0; }

.bareme-entete{
  margin: 0 0 16px;
  padding: 10px 16px;
  background: var(--cream-2);
  border-radius: 10px;
  border-left: 5px solid var(--sage);
  display:flex; align-items:baseline; justify-content:space-between;
  flex-wrap: wrap; gap: 6px 18px;
}
.bareme-entete.recherche{ margin-top: 34px; border-left-color: var(--pistache); }
.be-titre{
  font-family: var(--font-display); font-weight:700; font-size:20px;
  color: var(--sage-dark);
}
.bareme-entete.recherche .be-titre{ color: var(--pistache-dark); }
.be-sous{
  font-family: var(--font-mono); font-size:11.5px; letter-spacing:.03em;
  color: var(--stone); text-align:right;
}
/* --- encart mandat de recherche --- */
.recherche-box{
  display:flex; align-items:center; gap:22px;
  background:#FAF8F4; border:1px solid #E6DFD1;
  border-left:5px solid var(--pistache);
  border-radius:12px; padding:22px 26px;
}
.rech-taux{
  font-family: var(--font-display); font-size:44px; font-weight:700;
  color: var(--pistache-dark); line-height:1; flex-shrink:0;
}
.rech-text{ font-size:14.5px; line-height:1.6; }
.rech-text b{ color: var(--sage-dark); display:block; margin-bottom:5px; font-size:15.5px; }
@media (max-width: 560px){
  .recherche-box{ flex-direction:column; align-items:flex-start; gap:12px; }
}

.tarifs-grid{ display:flex; flex-wrap:wrap; gap: 22px; margin-bottom: 34px; }
table.bareme{ flex:1 1 320px; border-collapse:collapse; background:#FAF8F4; border:1px solid #E6DFD1; border-radius:12px; overflow:hidden; }
table.bareme th{ background: var(--cream-2); color: var(--stone); font-family: var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; text-align:left; padding:12px 16px; border-bottom:1px solid #E6DFD1; }
table.bareme td{ padding:12px 16px; font-size:14.5px; border-bottom:1px solid #EFE9DD; }
/* Les tranches de prix restent sur une seule ligne, même sur téléphone */
table.bareme td:first-child{ white-space: nowrap; }
@media (max-width: 420px){
  table.bareme th, table.bareme td{ padding-left:12px; padding-right:12px; font-size:13.5px; }
  table.bareme th{ font-size:10px; }
}
table.bareme td.rate{ font-family: var(--font-display); font-weight:700; font-size:17px; color: var(--sage-dark); text-align:right; }
table.bareme tr:last-child td{ border-bottom:none; }
.bonus-box{ flex:1 1 260px; background:#FAF8F4; border:1px solid #E6DFD1; border-top:5px solid var(--pistache); border-radius:12px; padding:26px; display:flex; flex-direction:column; align-items:center; text-align:center; justify-content:center; gap:10px; }
.bonus-num{ font-family: var(--font-display); font-size: 44px; font-weight:700; color: var(--pistache-dark); line-height:1; }
.bonus-text{ font-size:14px; line-height:1.6; max-width:300px; }
.bonus-text b{ color: var(--sage-dark); display:block; margin-bottom:6px; font-size:15px; }
.section-tarifs h3.sub{ font-family: var(--font-display); font-weight:700; font-size:26px; color: var(--sage-dark); margin: 30px 0 16px; }
.exclusif-block{ background:#FAF8F4; border:1px solid #E6DFD1; border-left:5px solid var(--sage); border-radius:12px; padding:26px 30px; }
.exclusif-block p{ font-size:15px; line-height:1.75; margin: 0 0 14px; }
.exclusif-block p:last-child{ margin-bottom:0; }
.exclusif-block p.exclusif-conclusion{ margin-top:16px !important; padding-top:14px; border-top:1px dashed #DDD3BF; font-weight:700; font-family: var(--font-display); font-size:18px; color: var(--brun); text-align:center; }

/* ---------- À PROPOS ---------- */
.section-about{ padding: 40px 24px; }
.section-about .inner{ max-width: 900px; margin:0 auto; }
.about-banner{ border-radius:14px; overflow:hidden; margin-top:46px; margin-bottom:10px; border-top:5px solid var(--pistache); box-shadow:0 8px 20px rgba(54,40,20,0.12); }
.contact-divider{
  display: block;
  width: 33% !important;
  max-width: 33%;
  height: 3px;
  background-color: #BD6B48 !important;
  background-image: none;
  border: 0 !important;
  border-radius: 2px;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 130px;
  margin-bottom: 80px;
  padding: 0;
  color: #BD6B48;
}
.section-contact .about-banner{ margin-top: 0; }
.about-banner img{ width:100%; height:260px; object-fit:cover; object-position:center 40%; }
.about-header{ text-align:center; margin-bottom:16px; }
.about-header h2{ font-family: var(--font-display); font-size: clamp(24px,3.5vw,34px); font-weight:700; color: var(--pistache-dark); margin:0 0 4px; }
.about-header .role{ font-family: var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color: var(--stone); text-align:left; }
.about-header .role b{ font-weight:700; }
.carte-t{ display:inline-block; font-family: var(--font-mono); font-size:12px; color: var(--stone); background: var(--cream-2); border:1px solid #DDD3BF; border-left:4px solid var(--pistache); border-radius:6px; padding:6px 12px; }
.carte-t b{ color: var(--wood-dark); }
.about-text{ background:#FAF8F4; border:1px solid #E6DFD1; border-left:5px solid var(--pistache); border-right:5px solid var(--sage); border-radius:12px; padding: 24px 28px; }
.about-text p{ font-size:15px; line-height:1.65; margin:0 0 13px; }
.about-text p:last-child{ margin-bottom:0; }
.closing-statement{ max-width:760px; margin: 30px auto 0; padding-top:26px; border-top:1px solid #E6DFD1; text-align:center; }
.closing-statement p{ font-size:16px; line-height:1.7; margin:0; font-style: italic; }

/* ---------- CONTACT ---------- */
.section-contact{ padding: 40px 24px 20px; border-top:1px solid #E6DFD1; }
.section-contact .inner{ max-width: 900px; margin:0 auto; text-align:center; }
.section-contact h2{ font-family: var(--font-display); font-size: clamp(22px,3vw,32px); color: var(--stone); margin: 0 0 6px; }
.section-contact .sub{ font-size:15px; color: var(--stone); margin-bottom: 26px; text-align:left; font-weight:700; }
.contact-row{ display:flex; flex-wrap:wrap; gap:16px; }
.contact-item{ flex:1 1 200px; background:#FAF8F4; border:1px solid #E6DFD1; border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; justify-content:center; }
.contact-item .lbl{ font-family: var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color: var(--sage-dark); margin-bottom:6px; }
.contact-item .val{ font-family: var(--font-display); font-size:18px; color: var(--wood-dark); }
.contact-item a{ display:block; }
.contact-item a:hover{ text-decoration:underline; }
a.contact-item-link{
  text-decoration:none;
  cursor:pointer;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
a.contact-item-link .val{ color: var(--wood-dark); }
a.contact-item-link:hover{
  border-color: var(--sage-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(54,40,20,.10);
}
a.contact-item-link:hover .val{ text-decoration:underline; }

/* ---------- FORMULAIRE DE CONTACT ---------- */
.contact-form{
  max-width: 720px;
  margin: 34px auto 0;
  text-align: left;
}
.hp-field{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }

.form-choice{ border:0; padding:0; margin:0 0 22px; }
.form-choice legend{
  font-family: var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color: var(--sage-dark); margin-bottom:10px; padding:0;
}
.choice-row{ display:flex; gap:12px; flex-wrap:wrap; }
.choice{
  flex:1 1 160px;
  display:flex; align-items:center; gap:10px;
  background:#FAF8F4; border:1px solid #E6DFD1; border-radius:12px;
  padding:14px 18px; cursor:pointer;
  font-family: var(--font-display); font-size:17px; color: var(--ink);
  transition: border-color .2s ease, background .2s ease;
}
.choice input{ accent-color: var(--sage-dark); width:18px; height:18px; cursor:pointer; }
.choice:hover{ border-color: var(--sage); }
.choice:has(input:checked){
  border-color: var(--sage-dark);
  border-left: 5px solid var(--sage-dark);
  background: var(--cream-2);
}
.choice:nth-child(2):has(input:checked){
  border-color: var(--pistache-dark);
  border-left-color: var(--pistache-dark);
}

.form-grid{ display:flex; gap:16px; flex-wrap:wrap; }
.form-grid .form-field{ flex:1 1 240px; }
.form-field{ margin-bottom:18px; }
.form-field label{
  display:block;
  font-family: var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color: var(--sage-dark); margin-bottom:6px;
}
.form-field input,
.form-field textarea{
  width:100%;
  font-family: var(--font-body); font-size:15.5px; color: var(--ink);
  background:#FAF8F4; border:1px solid #E6DFD1; border-radius:10px;
  padding:12px 14px;
  transition: border-color .2s ease;
}
.form-field textarea{ resize: vertical; min-height:130px; line-height:1.55; }
.form-field input:focus,
.form-field textarea:focus{
  outline:none; border-color: var(--sage-dark);
  box-shadow: 0 0 0 3px rgba(151,158,140,.18);
}
.form-submit{
  font-family: var(--font-display); font-weight:700; font-size:17px;
  color:#FBF8F2; background: var(--sage-dark);
  border:none; border-radius:10px; padding:14px 38px; cursor:pointer;
  transition: background .2s ease;
}
.form-submit:hover{ background: var(--stone); }
.page-contact{ padding-top: 60px; border-top:none; min-height: 60vh; }
.page-contact .inner{ text-align:left; }
.page-contact h2{ text-align:left; }
.back-link{ margin-top: 30px; font-family: var(--font-mono); font-size:13px; }
.back-link a{ color: var(--sage-dark); }
.back-link a:hover{ text-decoration:underline; }

.form-status{ margin:14px 0 0; font-size:14.5px; color: var(--stone); min-height:20px; }
.contact-form.highlight .form-choice legend{ color: var(--terracotta); }
.contact-form.highlight .choice{ border-color: var(--sage-dark); }
@media (prefers-reduced-motion: no-preference){
  .contact-form.highlight{ animation: formPulse 1.6s ease; }
  @keyframes formPulse{
    0%   { transform: translateY(0); }
    12%  { transform: translateY(-4px); }
    26%  { transform: translateY(0); }
  }
}

/* ---------- FOOTER ---------- */
footer.site-foot{ text-align:center; padding: 30px 24px 40px; }
footer.site-foot img{
  width: 100%;
  max-width: 1194px; /* résolution native du fichier : au-delà, l'image deviendrait floue */
  margin: 0 auto 14px;
  opacity:.96;
}
footer.site-foot .copy{ font-family: var(--font-mono); font-size:11px; color:#7a7365; letter-spacing:.08em; }
footer.site-foot .legal-titre{
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #6e675a;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #DDD6C8;
  max-width: 820px;
  margin-left: auto; margin-right: auto;
}
footer.site-foot .legal{ margin-top: 8px; }
footer.site-foot .legal.mediateur{ margin-top: 6px; }
footer.site-foot .legal a{ color: inherit; text-decoration: underline; }
footer.site-foot .legal a:hover{ color: var(--sage-dark); }
footer.site-foot .legal{
  font-family: var(--font-mono);
  font-size: 10.5px;
  line-height: 1.65;
  color: #847d6e;
  letter-spacing: .02em;
  max-width: 820px;
  margin: 10px auto 0;
  padding: 0 12px;
}

/* =================== RESPONSIVE =================== */
/* Menu déroulant seulement en dessous de 560px, c'est-à-dire
   sur un vrai téléphone tenu à la verticale. Au-dessus, le menu
   complet reste affiché : plus pratique. */
@media (max-width: 560px){
  .nav-links{
    position:fixed; inset: 0 0 0 auto; width: min(78vw, 320px);
    background: var(--cream); flex-direction:column; padding: 90px 28px 28px;
    transform: translateX(100%); transition: transform .25s ease;
    box-shadow: -8px 0 24px rgba(0,0,0,0.15);
    z-index: 120;
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-links a{ font-size: 20px; display:block; padding: 10px 0; }
  .nav-toggle{ display:flex; width: 38px; height: 38px; gap: 4px; }
  .nav-toggle span{ width: 18px; height: 2.5px; }
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .nav-links{ transition:none; }
}

/* --- alternance des deux logos en pied de page --- */
.logo-alterne{
  position: relative; width: 100%; max-width: 1194px;
  margin: 0 auto; aspect-ratio: 1196 / 630;
}
.logo-alterne img{
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: contain;
  transition: opacity .8s ease-in-out;
}
.logo-alterne .la-2{ opacity: 0; }
.logo-alterne.bascule .la-1{ opacity: 0; }
.logo-alterne.bascule .la-2{ opacity: 1; }
@media (prefers-reduced-motion: reduce){
  .logo-alterne img{ transition: none; }
  .logo-alterne.bascule .la-1{ opacity: 1; }
  .logo-alterne.bascule .la-2{ opacity: 0; }
}

.excl-sep{ border:0; border-top:1px dashed #DDD6C8; margin:18px 0 14px; }
.exclusif-final{ text-align:center; font-family: var(--font-display); font-weight:700;
  font-size:20px; line-height:1.45; color: var(--sage-dark); margin:0 !important; }

/* --- chapeau du tableau des honoraires --- */
.bareme .bareme-chapeau{
  text-align:left; font-family: var(--font-mono); font-size:9.5px; letter-spacing:0; font-weight:600; color:#FFFFFF;
  background: var(--sage-dark); padding:8px 11px; white-space:normal;
}
.bareme .chapeau-mini{
  font-weight:400; font-size:11px; white-space:nowrap; letter-spacing:0; text-transform:none;
  opacity:.95;
}
/* tableau resserre pour aerer les quatre points */
.bareme{ flex:1 1 330px !important; }
.modele-box{ flex:1 1 470px !important; }

@media (max-width: 700px){
  .bareme .bareme-chapeau{ white-space: normal; }
  .bareme .chapeau-mini{ display:block; font-size:12.5px; margin-top:3px; }
}
