/* =========================================================
   Geff-Ways — pages SEO (Apporteur d'affaires, etc.)
   Corps CLAIR (cream) façon geffways.fr · hero + bande vidéo sombres
   Caudex + Mulish · accent caramel
   ========================================================= */
:root{
  --ink:#1a120c;            /* sombre (header, hero, bande, footer) */
  --ink-2:#241a13;
  --cream:#efece4;          /* fond clair du corps */
  --cream-2:#e7e1d6;        /* sections alternées */
  --paper:#fbf9f3;          /* cartes */
  --text:#2c1f16;           /* texte/titres foncés */
  --muted:#6b5a4c;          /* texte secondaire */
  --tan:#c29775; --blush:#dacac3;
  --accent:#a35c22; --accent-2:#b9692c;
  --line:rgba(58,44,34,.14);          /* lignes sur clair */
  --line-dark:rgba(218,202,195,.16);  /* lignes sur sombre */
  --pad:clamp(28px,4vw,72px); --container:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"Mulish",system-ui,sans-serif; color:var(--text);
  background:var(--cream); -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit;text-decoration:none;} ul{list-style:none;} img{display:block;max-width:100%;height:auto;}
.wrap{ max-width:var(--container); margin:0 auto; }

/* ---- header (sombre, sur le hero) ---- */
.phead{
  position:fixed; top:0; left:0; right:0; z-index:30;
  display:flex; align-items:center; gap:40px;
  padding:16px max(var(--pad), calc((100% - var(--container))/2));
  background:rgba(26,18,12,.78); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-dark);
  transition:transform .45s var(--ease);
}
body.nav-hidden .phead{ transform:translateY(-100%); }
.phead__logo{ width:84px; }
.phead__nav{ margin-left:auto; display:flex; align-items:center; gap:32px; }
.phead__nav ul{ display:flex; gap:26px; }
.phead__nav > ul > li > a{
  position:relative; padding-bottom:6px;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
  color:var(--cream); opacity:.78; transition:opacity .3s var(--ease);
}
.phead__nav > ul > li > a::after{ content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--accent); transition:width .35s var(--ease); }
.phead__nav > ul > li > a:hover{opacity:1;} .phead__nav > ul > li > a:hover::after,.phead__nav > ul > li > a.is-active::after{width:100%;}

/* menu déroulant Services */
.phead__nav ul{ position:relative; }
.phead__has-drop{ position:relative; }
.phead__drop-toggle .caret{ display:inline-block; font-size:8px; margin-left:6px; transform:translateY(-1px); opacity:.7; transition:transform .3s var(--ease); }
.phead__has-drop:hover .phead__drop-toggle .caret{ transform:translateY(-1px) rotate(180deg); }
.phead__drop{
  position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(8px);
  min-width:248px; padding:8px; display:flex; flex-direction:column;
  background:rgba(22,15,10,.97); backdrop-filter:blur(14px);
  border:1px solid var(--line-dark); box-shadow:0 26px 56px rgba(0,0,0,.45);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .26s var(--ease), transform .26s var(--ease); z-index:40;
}
.phead__drop::before{ content:""; position:absolute; bottom:100%; left:0; right:0; height:14px; }
.phead__has-drop:hover .phead__drop, .phead__has-drop:focus-within .phead__drop{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.phead__drop a{
  padding:11px 15px; font-size:12.5px; letter-spacing:.02em; font-weight:600;
  color:var(--cream); opacity:.82; white-space:nowrap; border-left:2px solid transparent;
  transition:background .2s, opacity .2s, color .2s, border-color .2s;
}
.phead__drop a:hover{ opacity:1; background:rgba(163,92,34,.16); color:#fff; border-left-color:var(--accent); }

/* ===== PAGE CONTACT ===== */
.contact{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(38px,5vw,82px); align-items:start; }
.cform{ display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.cform .full{ grid-column:1 / -1; }
.cform label{ display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; font-weight:700; }
.cform input,.cform select,.cform textarea{
  width:100%; padding:13px 15px; font-family:"Mulish",sans-serif; font-size:14.5px; color:var(--text);
  background:var(--paper); border:1px solid var(--line); transition:border-color .25s, box-shadow .25s;
}
.cform input:focus,.cform select:focus,.cform textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(163,92,34,.12); }
.cform textarea{ min-height:148px; resize:vertical; }
.cform .btn{ border:none; cursor:pointer; justify-self:start; margin-top:4px; }
.cform__note{ font-size:12px; color:var(--muted); margin-top:6px; }
.cform__ok{ display:none; grid-column:1/-1; padding:16px 18px; background:rgba(85,99,66,.12); border:1px solid rgba(85,99,66,.4); color:#3f4a31; font-size:14px; }
.cform.sent .cform__ok{ display:block; }
.cinfo__item{ padding:22px 0; border-top:1px solid var(--line); }
.cinfo__item:first-child{ border-top:none; padding-top:0; }
.cinfo__item h3{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; }
.cinfo__item p{ font-size:15px; line-height:1.65; color:var(--text); }
.cinfo__item p span{ color:var(--muted); }
.csocial{ display:flex; gap:12px; margin-top:14px; }
.csocial a{ width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); color:var(--text); transition:background .25s, color .25s, border-color .25s, transform .25s; }
.csocial a:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:translateY(-3px); }
.csocial svg{ width:18px; height:18px; }
.cmap{ margin-top:0; height:clamp(280px,42vh,420px); border-top:1px solid var(--line); }
.cmap iframe{ width:100%; height:100%; border:0; filter:grayscale(.3) contrast(1.05); display:block; }
@media(max-width:860px){ .contact{ grid-template-columns:1fr; } .cform{ grid-template-columns:1fr; } }
.phead__cta{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--cream); color:var(--text); padding:11px 24px;
  font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  transition:background .3s var(--ease), color .3s var(--ease), gap .3s var(--ease);
}
.phead__cta::after{content:"→";} .phead__cta:hover{background:var(--accent);color:#fff;gap:14px;}

/* ---- hero (vidéo sombre) ---- */
.phero{ position:relative; min-height:clamp(500px,70vh,700px); display:flex; align-items:flex-end;
  padding-top:128px; padding-bottom:clamp(44px,6vh,76px); overflow:hidden; }
.phero__media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
/* recadrage : amène le sujet (la tasse) vers la droite, à mi-hauteur (page Apporteur) */
.phero__media--right{ object-position:center; transform:scale(1.8); transform-origin:30% 0%; }
@media(max-width:860px){
  .phero{ align-items:center; padding-top:clamp(86px,14vh,116px); padding-bottom:clamp(46px,8vh,70px); }
  .phero__media--right{ transform:scale(1.35); transform-origin:62% 14%; }
}
.phero__veil{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,13,8,.9), rgba(20,13,8,.4) 60%, rgba(20,13,8,.6)); }
.phero__inner{ position:relative; z-index:2; width:100%; padding:0 max(var(--pad), calc((100% - var(--container))/2)); }
.phero .kick{ font-size:12px; letter-spacing:.4em; text-transform:uppercase; color:var(--tan); }
.phero h1{
  font-family:"Caudex",serif; font-weight:400;
  font-size:clamp(34px,4.8vw,68px); line-height:1.02; letter-spacing:.01em;
  margin:18px 0 22px; max-width:15ch; color:#fff;
}
.phero p{ font-size:clamp(15px,1.5vw,18px); line-height:1.6; color:rgba(236,233,228,.82); max-width:54ch; margin-bottom:30px; }

/* boutons */
.btn{
  display:inline-flex; align-items:center; gap:14px;
  background:var(--accent); color:#fff; padding:17px 38px;
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:700;
  transition:gap .3s var(--ease), background .3s var(--ease);
}
.btn::after{ content:"→"; } .btn:hover{ gap:22px; background:var(--accent-2); }

/* ---- sections (CLAIR) ---- */
.sec{ padding:clamp(48px,6.5vh,84px) max(var(--pad), calc((100% - var(--container))/2)); background:var(--cream); }
.sec--alt{ background:var(--cream-2); }

/* transition hero → 1re section : la photo remonte et "coupe" le hero */
.sec--bridge{ position:relative; z-index:3; padding-top:clamp(34px,5vw,64px); }
.sec--bridge .split{ align-items:start; }
.sec--bridge .split__text{ padding-top:clamp(10px,3vw,46px); }
.sec--bridge .split__photo{ margin-top:clamp(-160px,-9vw,-78px); }
.sec--bridge .split__photo img{ box-shadow:0 34px 80px rgba(20,13,8,.5); }
@media(max-width:860px){ .sec--bridge .split__photo{ margin-top:26px; } .sec--bridge .split__text{ padding-top:0; } }
.eyebrow{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.eyebrow::before{ content:""; width:28px; height:1px; background:var(--accent); }
.h2{ font-family:"Caudex",serif; font-weight:400; font-size:clamp(28px,3.6vw,52px); line-height:1.08; color:var(--text); }
.lead{ font-size:clamp(15px,1.5vw,17px); line-height:1.8; color:var(--muted); }

/* split texte / photo — composition éditoriale (photo encadrée + tag + mots-clés) */
.split{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(40px,5.5vw,96px); align-items:center; }
.split__text{ position:relative; padding-left:clamp(18px,2vw,30px); }
.split__text::before{ content:""; position:absolute; left:0; top:4px; bottom:4px; width:2px; background:linear-gradient(180deg, var(--accent), rgba(163,92,34,0)); }
.split__text p{ font-size:14.5px; line-height:1.85; color:var(--muted); margin-top:20px; max-width:54ch; }
.split__keys{ display:flex; flex-wrap:wrap; gap:14px 26px; margin-top:30px; }
.split__keys span{ display:inline-flex; align-items:center; gap:9px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--text); }
.split__keys span::before{ content:"//"; font-family:"Caudex",serif; color:var(--accent); letter-spacing:-.05em; }
.split__photo{ position:relative; }
.split__photo img{ position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:0 24px 60px rgba(40,28,18,.2); }
.split__photo::after{ content:""; position:absolute; right:-20px; bottom:-20px; width:62%; height:58%; border:1px solid rgba(163,92,34,.55); z-index:0; }
.split__tag{ position:absolute; left:-14px; bottom:34px; z-index:2; background:var(--accent); color:#fff; padding:11px 20px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; box-shadow:0 10px 26px rgba(40,28,18,.25); }
@media(max-width:860px){ .split__photo::after{ right:-12px; bottom:-12px; } .split__tag{ left:0; } }

/* section "raisons" — format éditorial 2 colonnes (≠ grille d'avis) */
.reasons{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(34px,5vw,84px); align-items:start; }
.reasons__head{ position:sticky; top:108px; }
.reasons__head .h2{ margin-top:8px; }
.reasons__media{ position:relative; margin-top:clamp(26px,3vw,38px); max-width:340px; }
.reasons__media img{ position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:0 20px 48px rgba(40,28,18,.2); }
.reasons__media::after{ content:""; position:absolute; left:-14px; bottom:-14px; width:58%; height:52%; border:1px solid rgba(163,92,34,.5); z-index:0; }
@media(max-width:860px){ .reasons__media{ max-width:none; } }
.reasons__list{ display:flex; flex-direction:column; }
.reasons__list li{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,2.4vw,38px); align-items:start;
  padding:clamp(26px,3vh,38px) 0; border-top:1px solid rgba(58,44,34,.2);
  transition:padding-left .4s var(--ease);
}
.reasons__list li:last-child{ border-bottom:1px solid rgba(58,44,34,.2); }
.reasons__list li:hover{ padding-left:10px; }
.reasons__n{ font-family:"Caudex",serif; font-size:clamp(28px,3vw,46px); line-height:1; color:rgba(163,92,34,.45); }
.reasons__ic{ width:30px; height:30px; color:var(--accent); margin-bottom:14px; }
.reasons__ic svg{ width:100%; height:100%; display:block; }
.reasons__list h3{ font-size:clamp(16px,1.4vw,21px); text-transform:uppercase; letter-spacing:.03em; color:var(--text); margin-bottom:10px; }
.reasons__list p{ font-size:14px; line-height:1.75; color:var(--muted); max-width:56ch; }
@media(max-width:860px){ .reasons{ grid-template-columns:1fr; } .reasons__head{ position:static; } }

/* bande média (vidéo sombre) */
.mband{ position:relative; height:clamp(240px,40vh,440px); overflow:hidden; }
.mband video,.mband img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.mband__veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,13,8,.5), rgba(20,13,8,.72)); }
.mband__line{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; z-index:2; padding:0 var(--pad); font-family:"Caudex",serif; font-size:clamp(26px,3.6vw,54px); line-height:1.12; color:var(--cream); }
.mband__line em{ font-style:italic; color:var(--tan); }

/* méthode — flux de TEXTE, sans numéro ni photo (≠ section "raisons") */
.flow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:clamp(24px,3vw,46px); margin-top:clamp(38px,4.5vw,60px); }
.flow__item{ padding-top:20px; border-top:2px solid var(--accent); }
.flow__item h3{ font-size:clamp(15px,1.3vw,18px); text-transform:uppercase; letter-spacing:.04em; color:var(--text); margin-bottom:12px; }
.flow__item p{ font-size:14px; line-height:1.75; color:var(--muted); }
@media(max-width:860px){ .flow{ grid-template-columns:1fr 1fr; gap:30px 34px; } }
@media(max-width:520px){ .flow{ grid-template-columns:1fr; } }

/* avis */
.avis{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:48px; }
.avis blockquote{ background:var(--paper); border:1px solid var(--line); padding:30px; }
.avis .stars{ color:var(--accent); font-size:13px; letter-spacing:3px; margin-bottom:14px; }
.avis p{ font-size:14px; line-height:1.7; color:#4a3c30; font-style:italic; }
.avis cite{ display:block; margin-top:18px; font-style:normal; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }

/* FAQ */
.faq{ margin-top:40px; max-width:880px; }
.faq details{ border-top:1px solid rgba(58,44,34,.18); }
.faq details:last-child{ border-bottom:1px solid rgba(58,44,34,.18); }
.faq summary{ list-style:none; cursor:pointer; padding:24px 0; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:clamp(15px,1.4vw,18px); font-weight:600; color:var(--text); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--accent); font-size:24px; line-height:1; transition:transform .3s var(--ease); }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ font-size:14px; line-height:1.75; color:var(--muted); padding:0 0 26px; max-width:72ch; }

/* CTA final (clair) */
.cta{ position:relative; text-align:center; padding:clamp(70px,11vh,140px) var(--pad); background:var(--cream-2); border-top:1px solid var(--line); overflow:hidden; }
.cta h2{ font-family:"Caudex",serif; font-weight:400; font-size:clamp(30px,4.5vw,64px); line-height:1.05; margin-bottom:18px; color:var(--text); }
.cta p{ font-size:15px; color:var(--muted); max-width:46ch; margin:0 auto 34px; line-height:1.7; }

/* CTA habillé d'une photo (finale sombre) */
.cta--media{ border-top:none; background:var(--ink); }
.cta--media .cta__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; z-index:0; }
.cta--media .cta__veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(20,13,8,.74), rgba(20,13,8,.88)); }
.cta--media > h2,.cta--media > p,.cta--media > .btn{ position:relative; z-index:2; }
.cta--media h2{ color:#fff; }
.cta--media p{ color:rgba(236,233,228,.82); }

/* ===== BLOG ===== */
.bloglist{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:clamp(22px,2.6vw,38px); margin-top:clamp(36px,4.5vw,56px); }
.bcard{ position:relative; display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); overflow:hidden; color:inherit; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.bcard:hover{ transform:translateY(-4px); box-shadow:0 24px 50px rgba(40,28,18,.16); }
.bcard__img{ aspect-ratio:16/10; overflow:hidden; }
.bcard__img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.bcard:hover .bcard__img img{ transform:scale(1.05); }
.bcard__body{ padding:24px 24px 28px; display:flex; flex-direction:column; gap:11px; flex:1; }
.bcard__cat{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.bcard__title{ font-family:"Caudex",serif; font-size:clamp(19px,1.6vw,23px); line-height:1.2; color:var(--text); }
.bcard__exc{ font-size:14px; line-height:1.7; color:var(--muted); flex:1; }
.bcard__more{ margin-top:4px; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--accent); display:inline-flex; gap:8px; }
.bcard__more::after{ content:"→"; transition:transform .3s var(--ease); }
.bcard:hover .bcard__more::after{ transform:translateX(5px); }

/* article */
.article{ max-width:760px; margin:0 auto; }
.article__meta{ display:flex; flex-wrap:wrap; gap:10px 20px; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:26px; }
.article__meta .cat{ color:var(--accent); font-weight:700; }
.article .lead{ font-size:clamp(16px,1.7vw,19px); line-height:1.65; color:var(--text); margin-bottom:24px; }
.article h2{ font-family:"Caudex",serif; font-weight:400; font-size:clamp(23px,2.5vw,32px); line-height:1.12; color:var(--text); margin:clamp(32px,4vw,48px) 0 16px; }
.article p{ font-size:16px; line-height:1.8; color:#3a2c22; margin-bottom:18px; }
.article ul{ margin:0 0 20px; padding:0; list-style:none; }
.article li{ font-size:16px; line-height:1.7; color:#3a2c22; padding-left:26px; position:relative; margin-bottom:10px; }
.article li::before{ content:"//"; position:absolute; left:0; color:var(--accent); font-family:"Caudex",serif; letter-spacing:-.05em; }
.article__cta{ margin-top:clamp(34px,4vw,48px); padding:clamp(26px,3vw,38px); background:var(--cream-2); border:1px solid var(--line); text-align:center; }
.article__cta h3{ font-family:"Caudex",serif; font-weight:400; font-size:clamp(20px,2vw,26px); color:var(--text); margin-bottom:14px; }
.article__back{ display:inline-flex; align-items:center; gap:8px; margin-top:8px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--muted); }
.article__back::before{ content:"←"; }

/* maillage villes (SEO local) */
.citylinks{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.citylinks a{ display:inline-flex; align-items:center; padding:11px 22px; border:1px solid var(--line); font-size:13px; font-weight:600; letter-spacing:.03em; color:var(--text); background:var(--paper); transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease); }
.citylinks a:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:translateY(-2px); }
.citylinks a.is-current{ background:var(--ink); color:var(--cream); border-color:var(--ink); pointer-events:none; }
.citylinks a.is-hub{ background:transparent; border-style:dashed; border-color:var(--accent); color:var(--accent); }
.citylinks a.is-hub:hover{ background:var(--accent); color:#fff; }

/* ---- ancrage local (contenu unique par ville) ---- */
.localintro{ background:var(--cream-2); }
.localintro__grid{ display:grid; grid-template-columns:1.55fr .95fr; gap:clamp(28px,4vw,64px); align-items:start; }
.localintro__text .eyebrow{ color:var(--accent); }
.localintro__text h2{ margin:14px 0 18px; }
.localintro__text p{ color:var(--muted); margin-bottom:16px; max-width:60ch; }
.localintro__text p:last-child{ margin-bottom:0; }
.localintro__facts{ background:var(--paper); border:1px solid var(--line); padding:clamp(22px,2.4vw,34px); position:sticky; top:96px; }
.localintro__facts-title{ font-family:"Caudex",serif; font-size:20px; color:var(--text); margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.localintro__facts ul{ display:flex; flex-direction:column; gap:15px; }
.localintro__facts li{ display:flex; flex-direction:column; gap:3px; font-size:15px; font-weight:600; color:var(--text); }
.localintro__facts li span{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.localintro__cta{ display:inline-flex; margin-top:22px; font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--text); border-bottom:2px solid var(--accent); padding-bottom:3px; transition:color .25s var(--ease), gap .25s var(--ease); }
.localintro__cta:hover{ color:var(--accent); }

/* ---- secteurs locaux (chips uniques par ville) ---- */
.localsect__chips{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.localsect__chips span{ display:inline-flex; align-items:center; padding:11px 20px; background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--accent); font-size:14px; font-weight:600; color:var(--text); }

/* ---- lien page pilier (service complet), intégré dans la section villes ---- */
.villes__pillar{ margin-top:34px; padding-top:26px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.villes__pillar a{ color:var(--text); font-weight:700; border-bottom:2px solid var(--accent); padding-bottom:2px; transition:color .25s var(--ease); }
.villes__pillar a:hover{ color:var(--accent); }

/* footer (sombre, multi-colonnes) */
.pfoot{ padding:clamp(48px,7vh,76px) max(var(--pad), calc((100% - var(--container))/2)) 24px; border-top:1px solid var(--line-dark); background:#150e09; color:var(--cream); }
.pfoot__grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.05fr; gap:clamp(28px,4vw,56px); padding-bottom:40px; border-bottom:1px solid var(--line-dark); }
.pfoot__logo img{ width:104px; margin-bottom:18px; }
.pfoot__tag{ font-size:14px; line-height:1.65; color:rgba(236,233,228,.6); max-width:36ch; }
.pfoot__social{ display:flex; gap:11px; margin-top:22px; }
.pfoot__social a{ display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--line-dark); border-radius:50%; color:rgba(236,233,228,.72); transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease); }
.pfoot__social a:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:translateY(-3px); }
.pfoot__social svg{ width:16px; height:16px; }
.pfoot__h{ font-family:"Caudex",serif; font-weight:400; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--tan); margin-bottom:18px; }
.pfoot__col{ display:flex; flex-direction:column; align-items:flex-start; gap:11px; }
.pfoot__col a{ font-size:14px; color:rgba(236,233,228,.72); transition:color .25s var(--ease), transform .25s var(--ease); }
.pfoot__col a:hover{ color:var(--accent); transform:translateX(3px); }
.pfoot__addr{ font-size:14px; line-height:1.7; color:rgba(236,233,228,.6); margin-bottom:6px; }
.pfoot__cta{ color:var(--cream)!important; font-weight:700; border-bottom:2px solid var(--accent); padding-bottom:3px; margin-bottom:4px; }
.pfoot__cta:hover{ color:var(--accent)!important; transform:none!important; }
.pfoot__bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12px; letter-spacing:.06em; color:rgba(236,233,228,.46); }
.pfoot__by strong{ color:rgba(236,233,228,.72); font-weight:700; }

/* reveal */
.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.in{ opacity:1; transform:none; }

/* responsive */
/* ---- bouton burger (mobile) ---- */
.phead__burger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:34px; padding:0; margin-left:auto; background:none; border:none; cursor:pointer; }
.phead__burger span{ display:block; height:2px; width:22px; margin:0 auto; background:var(--cream); border-radius:2px; transition:transform .3s var(--ease), opacity .25s var(--ease); }
.phead.is-open .phead__burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.phead.is-open .phead__burger span:nth-child(2){ opacity:0; }
.phead.is-open .phead__burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media(max-width:860px){
  .phead{ gap:16px; }
  .phead__burger{ display:flex; }
  .phead__nav{
    position:fixed; top:62px; left:0; right:0; margin:0; gap:0;
    flex-direction:column; align-items:stretch;
    background:rgba(20,13,8,.98); backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line-dark);
    padding:8px max(var(--pad),22px) 26px;
    max-height:calc(100vh - 62px); overflow:auto;
    transform:translateY(-14px); opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  }
  .phead.is-open .phead__nav{ opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .phead__nav ul{ display:flex; flex-direction:column; gap:0; width:100%; }
  .phead__nav > ul > li{ border-bottom:1px solid var(--line-dark); position:static; }
  .phead__nav > ul > li > a{ display:block; padding:16px 2px; font-size:14px; opacity:1; }
  .phead__nav > ul > li > a .caret{ display:none; }
  .phead__drop{ position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
    background:none; border:none; box-shadow:none; backdrop-filter:none; min-width:0; padding:2px 0 12px 16px; display:flex; }
  .phead__drop::before{ display:none; }
  .phead__drop a{ padding:9px 0; font-size:13px; opacity:.82; white-space:normal; border-left:none; }
  .phead__nav .phead__cta{ margin-top:20px; align-self:stretch; justify-content:center; }

  .split,.local__row{ grid-template-columns:1fr; }
  .localintro__grid{ grid-template-columns:1fr; }
  .localintro__facts{ position:static; }
  .cards{ grid-template-columns:1fr; }
  .pfoot__grid{ grid-template-columns:1fr 1fr; gap:30px 24px; }
  .pfoot__brand{ grid-column:1 / -1; }
  .mband__line{ font-size:clamp(20px,5.4vw,32px); padding:0 20px; }
  .steps{ grid-template-columns:1fr 1fr; }
  .avis{ grid-template-columns:1fr; }
}
@media(max-width:520px){ .pfoot__grid{ grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important;} html{scroll-behavior:auto;} }


/* ---- liens legaux dans le bas de footer ---- */
.pfoot__legal{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.pfoot__legal a{ font-size:12px; letter-spacing:.05em; color:rgba(236,233,228,.5); text-decoration:none; transition:color .25s var(--ease,ease); }
.pfoot__legal a:hover{ color:var(--accent,#a35c22); }


/* ================= PAGES LEGALES (mentions / confidentialite) ================= */
.legal-head{ background:#150e09; color:var(--cream,#efece4); padding:clamp(96px,15vh,140px) var(--pad,20px) clamp(40px,7vh,64px); text-align:center; }
.legal-head .k{ font-size:11px; letter-spacing:.36em; text-transform:uppercase; color:var(--tan,#c29775); margin-bottom:14px; }
.legal-head h1{ font-family:"Caudex",Georgia,serif; font-weight:400; font-size:clamp(30px,5vw,52px); line-height:1.08; color:#fff; margin:0; }
.legal{ max-width:820px; margin:0 auto; padding:clamp(40px,6vh,64px) var(--pad,20px) clamp(60px,10vh,90px); }
.legal h2{ font-family:"Caudex",Georgia,serif; font-weight:400; font-size:clamp(21px,3vw,29px); color:var(--ink,#1a120c); margin:36px 0 12px; }
.legal > p:first-child, .legal h2:first-child{ margin-top:0; }
.legal p, .legal li{ font-size:15px; line-height:1.75; color:#4a3a2e; }
.legal p{ margin-bottom:14px; }
.legal ul{ margin:0 0 16px; padding-left:20px; }
.legal li{ margin-bottom:7px; }
.legal a{ color:var(--accent,#a35c22); text-decoration:underline; text-underline-offset:2px; }
.legal strong{ color:var(--ink,#1a120c); font-weight:700; }
.legal .todo{ background:#f6e4cf; color:#7a4a12; padding:1px 8px; border-radius:5px; font-weight:600; font-size:13.5px; }
.legal .updated{ display:block; font-size:13px; color:#8a7663; margin-top:40px; font-style:italic; }
