/* ============================================================
   CHARTE 2026 — L'atelier Contemporain
   Refonte visuelle éditoriale (magazine d'architecture).
   Feuille isolée : chargée APRÈS les 5 feuilles existantes.
   Classes préfixées .ac-  → aucune collision avec l'existant.
   ============================================================ */

/* ---------- Polices display : Cormorant Garamond (auto-hébergé, latin) ---------- */
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:400;src:url(../fonts/cormorant-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:400;src:url(../fonts/cormorant-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:500;src:url(../fonts/cormorant-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:500;src:url(../fonts/cormorant-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:600;src:url(../fonts/cormorant-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:normal;font-weight:600;src:url(../fonts/cormorant-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:italic;font-weight:400;src:url(../fonts/cormorant-400-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+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-display:swap;font-family:'Cormorant Garamond';font-style:italic;font-weight:400;src:url(../fonts/cormorant-400-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- TOKENS ---------- */
.ac{
  /* couleurs — noir brun / charbon / pierre / beige / ivoire */
  --k-noir:        #1a1512;
  --k-noir-2:      #211b17;
  --k-charbon:     #26201b;
  --k-charbon-3:   #2f2822;
  --k-ivoire:      #f1ede4;
  --k-ivoire-2:    #e9e3d6;
  --k-blanc:       #f7f4ee;
  --k-ink:         #262019;   /* texte sur clair */
  --k-ink-soft:    #4c443a;
  --k-pierre:      #8b8375;   /* labels/légendes muets */
  --k-pierre-clr:  #b7ab99;
  --k-beige:       #c9b6a0;   /* accent chaud / remplissage bouton */
  --k-beige-hi:    #d8c8b4;
  --k-line-dark:   rgba(247,244,238,.18);  /* filet sur sombre */
  --k-line-light:  rgba(38,32,25,.16);     /* filet sur clair */
  --k-line-mute:   rgba(139,131,117,.4);

  /* typo */
  --k-serif: "Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --k-sans:  "Inter","Helvetica Neue",Arial,system-ui,sans-serif;

  /* échelle fluide */
  --k-display: clamp(2.2rem, 4.6vw, 4.4rem);
  --k-h1:      clamp(2rem, 4vw, 3.6rem);
  --k-h2:      clamp(1.7rem, 2.8vw, 2.5rem);
  --k-h3:      clamp(1.3rem, 2vw, 1.7rem);
  --k-lede:    clamp(1rem, 1.15vw, 1.18rem);
  --k-label:   .72rem;
  --k-tick:    .68rem;

  /* espacements / conteneur */
  --k-pad:     clamp(1.5rem, 5.5vw, 7rem);   /* marge latérale généreuse */
  --k-max:     1560px;
  --k-sec:     clamp(4.5rem, 9vw, 9rem);       /* rythme vertical des sections */
  --k-gap:     clamp(1.5rem, 3vw, 3rem);

  /* divers */
  --k-header-h: 132px;
  --k-ease:    cubic-bezier(.22,.61,.36,1);
  --k-ease-io: cubic-bezier(.65,.05,.36,1);
  --k-dur:     .5s;
  --k-track:   .22em;   /* interlettrage capitales */
}

/* ---------- Base scope ---------- */
.ac{ background:var(--k-ivoire); color:var(--k-ink); font-family:var(--k-sans);
     font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
.ac *{ box-sizing:border-box; }
.ac img{ display:block; max-width:100%; height:auto; }
.ac ::selection{ background:var(--k-beige); color:var(--k-noir); }

.ac-wrap{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad); }

/* Sur-titre à filet (signature) */
.ac-eyebrow{ display:flex; align-items:center; gap:1rem; margin:0 0 1.4rem; text-shadow:0 1px 12px rgba(20,16,13,.5);
  font-family:var(--k-sans); font-size:var(--k-label); font-weight:500;
  letter-spacing:var(--k-track); text-transform:uppercase; color:var(--k-pierre); }
.ac-eyebrow::before,
.ac-eyebrow::after{ content:""; width:clamp(28px,4vw,56px); height:1px; background:currentColor; opacity:.7; flex:none; }
.ac-eyebrow--center{ justify-content:center; }

/* sur-titre DANS un hero : le gris pierre disparaît sur les photos claires */
.ac-hero .ac-eyebrow,.ac .hero-slider__eyebrow{ color:rgba(247,244,238,.94);
  text-shadow:0 1px 14px rgba(20,16,13,.6), 0 1px 2px rgba(20,16,13,.4); }
.ac-hero .ac-eyebrow::before,.ac-hero .ac-eyebrow::after{ opacity:.55; }

/* Composition : lignes de titre équilibrées, pas de mot seul en fin de paragraphe.
   C'est ce qui sépare une page « propre » d'une page composée comme un magazine. */
.ac-display,.ac-h2,.ac-h3,.ac-artitle,
.ac .editorial-heading h2,.ac .editorial-heading h3,
.ac .hero-slider__title,.ac-hero__title{ text-wrap:balance; }
.ac-lede,.ac-prose p,.ac-presse__corps p,.ac-lecture p,
.ac .editorial-heading__lede,.ac .editorial-split__body p{ text-wrap:pretty; }

/* Titres éditoriaux — color:inherit pour battre le h1/h2 de base.css */
.ac-display{ font-family:var(--k-serif); font-weight:500; font-size:var(--k-display);
  line-height:1.1; letter-spacing:.005em; margin:0; color:inherit; }
.ac-h2{ font-family:var(--k-serif); font-weight:500; font-size:var(--k-h2);
  line-height:1.18; letter-spacing:.005em; margin:0; color:inherit; }
.ac-h3{ font-family:var(--k-serif); font-weight:500; font-size:var(--k-h3);
  line-height:1.25; margin:0; color:inherit; }
.ac-lede{ font-size:var(--k-lede); line-height:1.7; max-width:56ch; color:var(--k-ink-soft); }

/* CTA texte + flèche (signature, pas de pilule) */
.ac-cta{ --c:currentColor; display:inline-flex; align-items:center; gap:.85rem;
  font-family:var(--k-sans); font-size:.78rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:inherit; text-decoration:none; padding-bottom:.35rem;
  position:relative; }
.ac-cta::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; opacity:.28; transform-origin:left; transition:opacity var(--k-dur) var(--k-ease); }
.ac-cta .ac-arw{ display:inline-block; transition:transform var(--k-dur) var(--k-ease); }
.ac-cta:hover .ac-arw{ transform:translateX(8px); }
.ac-cta:hover::after{ opacity:.7; }

/* Indicateur de rubrique active : filet beige sous l'entrée courante.
   Il apparaît aussi sur les SOUS-PAGES (fiche marque, article, réalisation…). */
.ac-nav__link.is-current,.ac-topbar__links a.is-current{ opacity:1; color:var(--k-blanc); }
.ac-nav__link.is-current::after,.ac-topbar__links a.is-current::after{
  content:""; position:absolute; left:0; right:0; bottom:-.55rem; height:2px;
  background:var(--k-beige); border-radius:2px; }
.ac-nav__link,.ac-topbar__links a{ position:relative; }
.ac-topbar__links a.is-current::after{ bottom:-.35rem; height:1px; }
.ac-sub a.is-current{ color:var(--k-beige); }
.ac-mnav a.is-current{ color:var(--k-beige); }

/* ============================================================
   HEADER  — barre utilitaire haute + nav principale (style accueil)
   ============================================================ */
/* conteneur sticky : fixe en haut, transparent sur le hero, sombre au scroll */
.ac-topnav{ position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .45s var(--k-ease); }
.ac-topnav.ac-scrolled{ background:var(--k-noir); box-shadow:0 1px 0 var(--k-line-dark); }
/* on garde TOUS les menus visibles au scroll — on resserre juste un peu */
.ac-topnav.ac-scrolled .ac-topbar{ padding-top:.5rem; padding-bottom:.5rem; }
.ac-topnav.ac-scrolled .ac-header{ padding-top:.9rem; padding-bottom:.9rem; }

.ac-topbar{ position:relative; z-index:60; display:flex; justify-content:space-between;
  align-items:center; gap:1rem; padding:.7rem var(--k-pad);
  border-bottom:1px solid var(--k-line-dark); }
.ac-topbar__tag{ font-size:var(--k-tick); letter-spacing:.2em; text-transform:uppercase;
  color:var(--k-pierre-clr); }
.ac-topbar__links{ display:flex; gap:2rem; }
.ac-topbar__links a{ font-size:var(--k-tick); letter-spacing:.18em; text-transform:uppercase;
  color:var(--k-blanc); opacity:.8; text-decoration:none; transition:opacity .3s var(--k-ease); }
.ac-topbar__links a:hover{ opacity:1; }

.ac-header{ position:relative; z-index:60; display:flex; align-items:center;
  justify-content:space-between; gap:2rem; padding:1.4rem var(--k-pad);
  transition:padding .45s var(--k-ease); }
/* logo wordmark en texte */
.ac-brand{ text-decoration:none; color:var(--k-blanc); line-height:1; flex:none; }
.ac-brand__name{ display:block; font-family:var(--k-serif); font-weight:500;
  font-size:clamp(1.35rem,1.8vw,1.7rem); letter-spacing:.06em; text-transform:uppercase; }
.ac-brand__sub{ display:flex; align-items:center; gap:.6rem; margin-top:.35rem;
  font-size:.58rem; letter-spacing:.34em; text-transform:uppercase; color:var(--k-pierre-clr); }
.ac-brand__sub::before,.ac-brand__sub::after{ content:""; height:1px; flex:1; background:var(--k-line-dark); }

.ac-nav{ display:flex; align-items:center; gap:clamp(1rem,2vw,2.1rem); }
.ac-nav__item{ position:relative; }
.ac-nav__link{ display:inline-flex; align-items:center; gap:.4rem; background:none; border:0;
  cursor:pointer; font-family:var(--k-sans); font-size:.76rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--k-blanc); opacity:.86;
  text-decoration:none; padding:.4rem 0; transition:opacity .3s var(--k-ease); }
.ac-nav__link:hover,.ac-nav__item:focus-within .ac-nav__link{ opacity:1; }
.ac-nav__link[aria-current="page"]{ opacity:1; }
.ac-nav__link[aria-current="page"]::after{ content:""; position:absolute; left:0; right:0;
  bottom:.1rem; height:1px; background:var(--k-beige); }
.ac-caret{ font-size:.6em; opacity:.7; }

/* sous-menus */
.ac-sub{ position:absolute; top:100%; left:-1rem; min-width:250px;
  background:var(--k-charbon); border:1px solid var(--k-line-dark); padding:.85rem .6rem;
  display:grid; gap:.1rem; opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .28s var(--k-ease),transform .28s var(--k-ease),visibility .28s;
  box-shadow:0 24px 48px rgba(0,0,0,.4); }
/* pont invisible : le survol reste continu du bouton vers le menu (plus de coupure) */
.ac-sub::before{ content:""; position:absolute; top:-14px; left:0; right:0; height:14px; }
.ac-nav__item:hover .ac-sub,
.ac-nav__item:focus-within .ac-sub,
.ac-nav__item.ac-open .ac-sub{ opacity:1; visibility:visible; transform:none; }
.ac-sub a{ display:block; padding:.6rem .8rem; font-size:.82rem; letter-spacing:.02em;
  color:var(--k-blanc); opacity:.82; text-decoration:none; transition:.25s var(--k-ease); }
.ac-sub a:hover{ opacity:1; background:rgba(247,244,238,.06); }

.ac-header__cta{ display:inline-flex; align-items:center; gap:.7rem; font-size:.72rem;
  font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--k-blanc);
  text-decoration:none; padding:.7rem 1.4rem; border:1px solid var(--k-line-dark);
  border-radius:2px; transition:.3s var(--k-ease); }
.ac-header__cta:hover{ background:var(--k-blanc); color:var(--k-noir); border-color:var(--k-blanc); }

.ac-burger{ display:none; }

/* ============================================================
   HERO ÉDITORIAL SOMBRE
   ============================================================ */
.ac-hero{ position:relative; min-height:100svh; display:flex; flex-direction:column;
  color:var(--k-blanc); background:var(--k-noir); overflow:hidden; padding:var(--k-header-h) 0 0; }
.ac-hero__bg{ position:absolute; inset:0; z-index:0; }
/* le <picture> doit porter la hauteur, sinon le height:100% de l'image se résout en auto
   (l'image ne remplissait pas le hero sur mobile / hero court) */
.ac-hero__bg picture{ display:block; width:100%; height:100%; }
.ac-hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.ac-hero__bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(20,16,13,.52) 0%, rgba(20,16,13,.24) 34%, rgba(20,16,13,0) 58%, rgba(20,16,13,.14) 100%),
             linear-gradient(180deg, rgba(20,16,13,.34) 0%, rgba(20,16,13,0) 26%, rgba(20,16,13,0) 62%, rgba(20,16,13,.42) 100%); }
.ac-hero__head{ position:relative; z-index:50; }
.ac-hero__body{ position:relative; z-index:40; flex:1; display:flex; align-items:center;
  padding:clamp(2rem,5vw,4rem) var(--k-pad); }
.ac-hero__grid{ width:100%; max-width:var(--k-max); margin-inline:auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px); gap:var(--k-gap); align-items:end; }
.ac-hero__grid:not(:has(.ac-hero__aside)){ grid-template-columns:minmax(0,1fr); }
.ac-hero__main{ max-width:none; }
.ac-hero__title{ text-shadow:0 2px 30px rgba(20,16,13,.7), 0 1px 3px rgba(20,16,13,.45); margin:.2rem 0 1.6rem; text-transform:uppercase; letter-spacing:.01em;
  max-width:26ch; font-size:clamp(1.8rem,3.1vw,2.9rem); line-height:1.12; }
/* titre long : en bas de casse, plus lisible et plus proche du gabarit d'article */
.ac-hero__title--long{ text-transform:none; letter-spacing:.005em; max-width:32ch;
  font-size:clamp(1.8rem,3.1vw,3rem); line-height:1.14; }
.ac-hero__lede{ text-shadow:0 1px 22px rgba(20,16,13,.75), 0 1px 2px rgba(20,16,13,.5); color:rgba(247,244,238,.95); max-width:52ch; margin:0 0 2rem; }
.ac-hero__lede strong,.ac-hero__lede em{ color:var(--k-blanc); font-weight:600; }
.ac-hero__aside{ padding-bottom:.5rem; border-left:1px solid var(--k-line-dark); padding-left:1.6rem; }
.ac-hero__aside p{ font-family:var(--k-serif); font-size:1.28rem; line-height:1.32;
  color:rgba(247,244,238,.9); margin:0 0 1.4rem; }

/* axes éditoriaux numérotés (signature) */
.ac-axes{ position:relative; z-index:40; border-top:1px solid var(--k-line-dark);
  padding:1.6rem var(--k-pad) 2rem; }
.ac-axes__grid{ max-width:var(--k-max); margin-inline:auto; display:grid;
  grid-template-columns:repeat(4,1fr); gap:var(--k-gap); }
/* menu sur deux rangées (5 ou 6 entrées) : on resserre l'interligne, sinon le bandeau
   mange le hero. Depuis le 2026-08-01 le menu liste jusqu'à 6 temps forts — à 4, il
   laissait 45 % des blocs de la page invisibles (mesuré). */
.ac-axes__grid--3{ row-gap:clamp(.8rem,1.4vw,1.2rem); }
.ac-axis{ display:flex; gap:1rem; align-items:baseline; }
.ac-axis__n{ font-family:var(--k-serif); font-size:1.5rem; color:var(--k-pierre-clr); line-height:1; }
.ac-axis__t{ font-size:.72rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(247,244,238,.78); line-height:1.5; }

/* Arrivée sur une ancre : sans cela, la section vient se coller tout en haut et son
   titre disparaît sous le menu fixe. On réserve la hauteur réelle du menu, plus un peu
   d'air, pour que le chapitre s'ouvre avec son sur-titre et son titre visibles. */
.ac section[id],.ac [id].ac-sec{ scroll-margin-top:calc(var(--k-header-h) + 1.2rem); }

/* Hero à vues des fiches marque (Tafaruci, Knikerboker) : les vues sont en position
   absolue, le menu rapide doit donc être calé lui-même au bas du hero, avec un voile
   qui garantit la lisibilité quelle que soit la photo de la vue affichée. */
/* Un seul modèle de bas de hero sur tout le site : le bandeau reste transparent,
   posé sur le voile de la photo, comme sur les pages au hero standard. Ici les vues
   sont en position absolue, donc seul le calage change — jamais l'habillage. */
.ac .hero-slider .ac-axes{ position:absolute; left:0; right:0; bottom:0; z-index:5; }
.ac .hero-slider .hero-full__scroll{ bottom:clamp(7.5rem,13vh,9.5rem); }
/* Bas de ce hero, de bas en haut : menu rapide · puces de navigation · texte de la vue.
   Sans cela les puces se posaient sur le menu, puis sur le titre. */
.ac .hero-slider:has(.ac-axes) .hero-slider__dots{ bottom:calc(clamp(2rem,4vh,3rem) + 4.4rem); }
.ac .hero-slider:has(.ac-axes) .hero-slider__content{ bottom:calc(clamp(5rem,10vh,8rem) + 5.6rem); }

/* bande 3 features (hero showroom) */
.ac-axes__grid--3{ grid-template-columns:repeat(3,1fr); }
.ac-feat{ display:flex; flex-direction:column; gap:.45rem; }
.ac-feat__t{ font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,244,238,.86); }
.ac-feat__d{ font-size:.86rem; color:rgba(247,244,238,.6); line-height:1.5; }

/* Galerie masonry + lightbox */
.ac-gallery{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  columns:3 300px; column-gap:clamp(.8rem,1.4vw,1.4rem); }
.ac-gallery__item{ display:block; width:100%; margin:0 0 clamp(.8rem,1.4vw,1.4rem); padding:0;
  border:0; background:var(--k-ivoire-2); cursor:zoom-in; overflow:hidden; break-inside:avoid; }
.ac-gallery__item img{ width:100%; height:auto; display:block; transition:transform 1s var(--k-ease); }
.ac-gallery__item:hover img{ transform:scale(1.04); }
@media (max-width:700px){ .ac-gallery{ columns:2 150px; } }

.ac-lb{ position:fixed; inset:0; z-index:300; background:rgba(20,16,13,.95);
  display:none; align-items:center; justify-content:center; padding:2rem; }
.ac-lb.open{ display:flex; }
.ac-lb img{ max-width:92vw; max-height:88vh; object-fit:contain; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.ac-lb__btn{ position:absolute; background:none; border:1px solid var(--k-line-dark); color:var(--k-blanc);
  width:52px; height:52px; border-radius:50%; cursor:pointer; font-size:1.4rem; line-height:1;
  display:flex; align-items:center; justify-content:center; transition:.3s var(--k-ease); }
.ac-lb__btn:hover{ background:var(--k-blanc); color:var(--k-noir); }
.ac-lb__close{ top:1.5rem; right:1.5rem; }
.ac-lb__prev{ left:1.5rem; top:50%; transform:translateY(-50%); }
.ac-lb__next{ right:1.5rem; top:50%; transform:translateY(-50%); }
.ac-lb__count{ position:absolute; bottom:1.4rem; left:50%; transform:translateX(-50%);
  color:var(--k-pierre-clr); font-size:.8rem; letter-spacing:.14em; }

/* indice de scroll — placé AU-DESSUS du bandeau d'axes (flux flex + order),
   sinon il se superposait au texte du bandeau en bas de hero. */
.ac-hero__scroll{ position:relative; z-index:45; order:0; align-self:center; margin-bottom:1rem;
  font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(247,244,238,.7);
  text-decoration:none; display:flex; flex-direction:column; align-items:center; gap:.5rem; }
.ac-axes{ order:1; }
.ac-hero__scroll::after{ content:""; width:1px; height:26px; background:rgba(247,244,238,.5); }

/* ============================================================
   SECTIONS  (alternance ivoire / sombre)
   ============================================================ */
.ac-sec{ padding-block:var(--k-sec); }
.ac-sec--ivory{ background:var(--k-ivoire); color:var(--k-ink); }
.ac-sec--ivory-2{ background:var(--k-ivoire-2); color:var(--k-ink); }
.ac-sec--dark{ background:var(--k-noir); color:var(--k-blanc); }
.ac-sec--dark .ac-lede{ color:rgba(247,244,238,.78); }
.ac-sec--dark .ac-eyebrow{ color:var(--k-pierre-clr); }

.ac-sec__head{ max-width:var(--k-max); margin:0 auto clamp(2.5rem,4vw,4rem);
  padding-inline:var(--k-pad); display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  column-gap:clamp(2rem,5vw,5.5rem); align-items:start; }
.ac-sec__head > .ac-lede{ margin-top:.35rem; }
.ac-sec__head > .ac-cta{ align-self:end; justify-self:start; }
/* en-tête sans second bloc : le titre prend toute la largeur */
.ac-sec__head:not(:has(> *:nth-child(2))){ display:block; }
.ac-sec__head-l{ max-width:50ch; }
.ac-sec__head .ac-h2{ margin-top:.35rem; }
.ac .editorial-heading h2{ margin-bottom:0; }

/* BLOC PRESSE — titre à gauche, colonne de texte justifiée à droite (mise en page magazine).
   La césure est indispensable en justifié français, sinon des « rivières » blanches apparaissent. */
.ac-presse{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem,5vw,5.5rem);
  align-items:start; }
.ac-presse__head{ position:sticky; top:calc(var(--k-header-h) + 1.5rem); }
.ac-presse__head .ac-h2{ margin-top:.35rem; }
.ac-presse__corps{ min-width:0; }
.ac-presse__corps p{ text-align:justify; text-justify:inter-word; hyphens:auto; -webkit-hyphens:auto;
  font-size:1.02rem; line-height:1.8; color:var(--k-ink-soft); margin:0 0 1.5rem; }
.ac-presse__corps p:last-child{ margin-bottom:0; }
.ac-presse__corps strong{ color:var(--k-ink); font-weight:600; }
/* première ligne mise en valeur, comme dans un chapô de presse */
.ac-presse__corps > p:first-child{ font-size:1.12rem; line-height:1.72; color:var(--k-ink); }
.ac-sec--dark .ac-presse__corps p{ color:rgba(247,244,238,.78); }
.ac-sec--dark .ac-presse__corps > p:first-child{ color:var(--k-blanc); }
@media (max-width:900px){
  .ac .editorial-heading{ display:block; }
  .ac .editorial-heading > .editorial-heading__lede{ margin-top:1.2rem; }
  .ac-presse{ grid-template-columns:1fr; gap:1.6rem; }
  .ac-presse__head{ position:static; }
  .ac-presse__corps p{ text-align:left; }   /* justifié illisible sur colonne étroite */
}

/* Colonne de lecture : alignée à gauche sur la grille de la page, mesure confortable.
   (un bloc de texte centré sous un titre aligné à gauche casse le rythme de lecture) */
.ac-lecture{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad); }
.ac-lecture > *{ max-width:68ch; }
.ac-lecture p{ font-size:1.02rem; line-height:1.8; color:var(--k-ink-soft); margin:0 0 1.5rem; }
.ac-lecture p:last-child{ margin-bottom:0; }
.ac-lecture strong{ color:var(--k-ink); font-weight:600; }
.ac-sec--dark .ac-lecture p{ color:rgba(247,244,238,.78); }

/* Grille éditoriale de cartes */
.ac-grid{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; gap:clamp(1.4rem,2.4vw,2.4rem); }
.ac-grid--3{ grid-template-columns:repeat(3,1fr); }
.ac-grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1100px){ .ac-grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* trois cartes + un panneau : c'était un style écrit dans la page, donc plus fort que
   toute règle mobile — la grille restait à 4 colonnes sur téléphone et faisait déborder
   l'accueil de 149 px. Devenu une classe, il suit les paliers comme le reste. */
.ac-grid--3plus{ grid-template-columns:repeat(3,1fr) .9fr; }
@media (max-width:1100px){ .ac-grid--3plus{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .ac-grid--3plus{ grid-template-columns:1fr; } }
.ac-grid--2{ grid-template-columns:repeat(2,1fr); }

/* Carte éditoriale (espace / article / réalisation) */
.ac-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; group:card; }
.ac-card__media{ display:block; position:relative; overflow:hidden; aspect-ratio:4/5; background:var(--k-ivoire-2); }
.ac-card__media img{ width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--k-ease); }
.ac-card:hover .ac-card__media img{ transform:scale(1.05); }
.ac-card__cat{ display:block; margin:1.1rem 0 .5rem; font-size:var(--k-label); font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--k-pierre); }
.ac-card__title{ display:block; font-family:var(--k-serif); font-weight:500; font-size:clamp(1.35rem,1.8vw,1.7rem);
  line-height:1.15; margin:0 0 .5rem; }
.ac-card__desc{ display:block; font-size:.92rem; line-height:1.6; color:var(--k-ink-soft); margin:0; }
.ac-card__more{ margin-top:auto; padding-top:1rem; font-size:.72rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--k-ink);
  display:inline-flex; align-items:center; gap:.6rem; }
.ac-card__more .ac-arw{ transition:transform .5s var(--k-ease); }
.ac-card:hover .ac-card__more .ac-arw{ transform:translateX(7px); }
.ac-sec--dark .ac-card__more{ color:var(--k-blanc); }
.ac-sec--dark .ac-cta{ color:var(--k-blanc); }
.ac-sec--dark strong,.ac-adr__avis strong,.ac-footer strong{ color:var(--k-blanc); }
.ac-sec--dark .ac-card__desc{ color:rgba(247,244,238,.72); }
.ac-sec--dark .ac-card__cat{ color:var(--k-pierre-clr); }

/* Carte espace (ratio portrait + libellé en overlay bas) */
.ac-space{ position:relative; aspect-ratio:3/4; overflow:hidden; text-decoration:none; color:var(--k-blanc); display:block; }
.ac-space img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--k-ease); }
.ac-space::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,16,13,0) 40%,rgba(20,16,13,.78) 100%); }
.ac-space:hover img{ transform:scale(1.06); }
.ac-space__cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:1.4rem 1.5rem; }
.ac-space__n{ display:block; font-size:var(--k-tick); letter-spacing:.2em; color:var(--k-pierre-clr); }
.ac-space__d{ display:block; margin-top:.5rem; font-family:var(--k-sans); font-size:.82rem;
  line-height:1.55; color:rgba(247,244,238,.82); max-width:34ch; }
.ac-space__t{ display:block; font-family:var(--k-serif); font-size:1.5rem; font-weight:500; line-height:1.1; margin-top:.25rem; }

/* Réalisation (ville en exergue) */
.ac-real__media{ aspect-ratio:3/2; }
.ac-real .ac-card__cat{ color:var(--k-pierre); }

/* Panneau latéral sombre (catalogues / showroom) */
.ac-panel{ background:var(--k-noir); color:var(--k-blanc); padding:clamp(2rem,3vw,3rem);
  display:flex; flex-direction:column; justify-content:center; }
.ac-panel .ac-h3{ margin:1rem 0 1rem; }
.ac-panel p{ color:rgba(247,244,238,.74); font-size:.94rem; line-height:1.65; margin:0 0 1.8rem; max-width:34ch; }
.ac-panel__ico{ width:38px; height:38px; opacity:.9; }

/* Citation éditoriale (pull quote) */
.ac-quote{ font-family:var(--k-serif); font-weight:500; font-size:clamp(1.5rem,2.4vw,2.2rem);
  line-height:1.24; text-align:center; max-width:26ch; margin:0 auto; color:inherit; }
.ac-quote__cite{ display:block; margin-top:1.6rem; font-family:var(--k-sans); font-size:.76rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--k-pierre); }

/* Lecteur vidéo */
.ac-video{ max-width:1180px; margin:0 auto; overflow:hidden; background:#000; }
.ac-video video{ display:block; width:100%; height:auto; }

/* Grille de cartes marque (concept) */
.ac-brandgrid{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,1.6vw,1.6rem); }
.ac-bcard{ text-decoration:none; color:inherit; display:block; }
.ac-bcard__media{ display:block; aspect-ratio:522/704; overflow:hidden; background:var(--k-charbon); }
.ac-bcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--k-ease); }
.ac-bcard:hover .ac-bcard__media img{ transform:scale(1.04); }
/* les libellés sont des <span> : sans display:block ils se collent sur une seule ligne */
.ac-bcard__name{ display:block; font-family:var(--k-serif); font-weight:500; font-size:1.35rem;
  line-height:1.2; margin:1rem 0 .35rem; }
.ac-bcard__cat{ display:block; font-size:var(--k-label); letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); }
@media (max-width:900px){ .ac-brandgrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .ac-brandgrid{ grid-template-columns:1fr; } }

/* Split : contenu + média (concept, showroom) */
.ac-split{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,4.5rem); align-items:center; }
.ac-split--media-first .ac-split__media{ order:-1; }
.ac-split__media{ aspect-ratio:4/3; overflow:hidden; }
.ac-split__media img{ width:100%; height:100%; object-fit:cover; }
.ac-split__body .ac-lede{ margin:1.4rem 0 2rem; }

/* Bandeau coordonnées showroom (dans section sombre) */
.ac-facts{ display:flex; flex-wrap:wrap; gap:2.5rem 3.5rem; margin-top:1.8rem; }
.ac-fact__k{ font-size:var(--k-label); letter-spacing:.16em; text-transform:uppercase; color:var(--k-pierre-clr); margin-bottom:.4rem; }
.ac-fact__v{ display:block; font-family:var(--k-serif); font-size:1.15rem; color:var(--k-blanc); }

/* ============================================================
   FOOTER
   ============================================================ */
.ac-footer{ background:var(--k-noir); color:var(--k-blanc); padding:clamp(3.5rem,6vw,6rem) 0 2.5rem; }
.ac-footer__top{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; }
.ac-footer__wordmark{ display:inline-block; text-decoration:none; margin-bottom:1.6rem; line-height:1; }
.ac-footer__wordmark .ac-brand__name{ color:var(--k-blanc); font-size:clamp(1.15rem,1.7vw,1.6rem); white-space:nowrap; letter-spacing:.04em; }
/* sous-titre footer : centré sous le nom, filets de part et d'autre,
   l'ensemble tenant exactement la largeur de « L'atelier Contemporain » */
.ac-footer__wordmark{ display:inline-flex; flex-direction:column; align-items:stretch; width:max-content; }
.ac-footer__wordmark .ac-brand__sub{ justify-content:center; color:var(--k-pierre-clr); margin-top:.55rem; }
.ac-footer__wordmark .ac-brand__sub::before,
.ac-footer__wordmark .ac-brand__sub::after{ display:block; flex:1; height:1px; background:var(--k-line-dark); }
.ac-footer__brand p{ color:rgba(247,244,238,.66); font-size:.9rem; line-height:1.65; margin:0; max-width:34ch; }
.ac-footer__reviews{ display:inline-flex; align-items:center; gap:.6rem; margin-top:1.3rem;
  color:var(--k-blanc); text-decoration:none; font-size:.98rem; }
.ac-footer__reviews:hover{ color:var(--k-beige); }
.ac-stars{ color:#f6b01e; letter-spacing:2px; font-size:1rem; }
.ac-footer__reviews strong{ color:var(--k-blanc); }
.ac-social{ display:flex; gap:.9rem; margin-top:1.6rem; }
.ac-social a{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border:1px solid var(--k-line-dark); border-radius:50%; color:var(--k-blanc); transition:.3s var(--k-ease); }
.ac-social a:hover{ background:var(--k-blanc); color:var(--k-noir); border-color:var(--k-blanc); }
.ac-social svg{ width:17px; height:17px; fill:currentColor; }
.ac-fcol h4{ font-size:var(--k-label); letter-spacing:.18em; text-transform:uppercase; color:var(--k-pierre-clr); margin:0 0 1.1rem; font-weight:500; }
.ac-fcol a{ display:block; color:rgba(247,244,238,.8); text-decoration:none; font-size:.9rem; padding:.35rem 0; transition:.25s var(--k-ease); }
.ac-fcol a:hover{ color:var(--k-beige); }
.ac-footer__bottom{ max-width:var(--k-max); margin:clamp(3rem,5vw,4.5rem) auto 0; padding:1.6rem var(--k-pad) 0;
  border-top:1px solid var(--k-line-dark); display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem;
  font-size:.72rem; letter-spacing:.06em; color:var(--k-pierre); }
.ac-footer__bottom a{ color:var(--k-pierre-clr); text-decoration:none; }

/* ============================================================
   CATALOGUES — bandeau maisons + couvertures traitées en objets
   ============================================================ */

/* Bandeau « Nos maisons partenaires » : colonnes séparées par un filet fin */
.ac-maisons{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(6,1fr); }
.ac-maison{ display:flex; flex-direction:column; text-decoration:none; color:inherit;
  padding:.2rem clamp(.9rem,1.6vw,2rem); border-left:1px solid var(--k-line-light); }
.ac-maison:first-child{ border-left:0; padding-left:0; }
.ac-maison__name{ display:block; font-family:var(--k-serif); font-weight:500; font-size:clamp(1.5rem,2.2vw,2.1rem);
  line-height:1.1; margin:0 0 1.1rem; }
.ac-maison__cat{ display:block; font-size:var(--k-tick); font-weight:500; letter-spacing:.18em;
  text-transform:uppercase; color:var(--k-pierre); margin:0 0 .35rem; }
.ac-maison__count{ display:block; font-size:.88rem; color:var(--k-ink-soft); margin:0; }
.ac-maison__arw{ display:block; margin-top:1.5rem; font-size:1rem; color:var(--k-ink);
  transition:transform .45s var(--k-ease); }
.ac-maison:hover .ac-maison__arw{ transform:translateX(8px); }
.ac-maison:hover .ac-maison__name{ color:var(--k-ink-soft); }

/* En-tête de chapitre en ligne fine (marque — univers … voir tout) */
.ac-chap{ max-width:var(--k-max); margin:0 auto clamp(1.8rem,3vw,2.6rem);
  padding-inline:var(--k-pad); display:flex; flex-wrap:wrap; align-items:baseline;
  justify-content:space-between; gap:1rem; }
.ac-chap__l{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
  font-size:var(--k-label); font-weight:500; letter-spacing:var(--k-track);
  text-transform:uppercase; color:var(--k-ink); }
.ac-chap__l em{ font-style:normal; color:var(--k-pierre); }
.ac-chap__l::after{ content:""; width:clamp(24px,3vw,48px); height:1px; background:var(--k-line-mute); order:1; }
.ac-chap__l span{ order:2; }
.ac-chap__more{ font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--k-ink); text-decoration:none; display:inline-flex; align-items:center; gap:.6rem; }
.ac-chap__more .ac-arw{ transition:transform .45s var(--k-ease); }
.ac-chap__more:hover .ac-arw{ transform:translateX(7px); }

/* Grille de couvertures */
.ac-cats{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.4rem,2.4vw,2.6rem) clamp(1.4rem,2.2vw,2.4rem); }
.ac-cat{ display:flex; flex-direction:column; text-decoration:none; color:inherit; }
/* la couverture garde SES proportions (object-fit:contain) : aucune déformation,
   aucun rognage du titre imprimé ; le cadre donne la ligne commune de la grille. */
.ac-cat__cover{ position:relative; overflow:hidden; background:rgba(38,32,25,.05);
  aspect-ratio:3/4; border:1px solid var(--k-line-light); display:grid; place-items:center;
  padding:clamp(.7rem,1vw,1.1rem); }
.ac-cat__cover img{ width:100%; height:100%; object-fit:contain;
  transition:transform 1s var(--k-ease); }
.ac-cat:hover .ac-cat__cover img{ transform:scale(1.03); }
.ac-cat__chap{ display:block; margin:1.1rem 0 .45rem; font-size:var(--k-tick); font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--k-pierre); }
.ac-cat__title{ display:block; font-family:var(--k-serif); font-weight:500; font-size:clamp(1.25rem,1.6vw,1.6rem);
  line-height:1.15; margin:0 0 .45rem; }
.ac-cat__meta{ display:block; font-size:.86rem; color:var(--k-ink-soft); margin:0; }
.ac-cat__more{ margin-top:1rem; padding-top:.9rem; border-top:1px solid var(--k-line-light);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.6rem; align-self:flex-start; }
.ac-cat__more .ac-arw{ transition:transform .45s var(--k-ease); }
.ac-cat:hover .ac-cat__more .ac-arw{ transform:translateX(7px); }

/* variantes sur fond sombre */
.ac-sec--dark .ac-cat__cover{ border-color:var(--k-line-dark); background:rgba(247,244,238,.05); }
.ac-sec--dark .ac-cat__meta{ color:rgba(247,244,238,.72); }
.ac-sec--dark .ac-cat__chap{ color:var(--k-pierre-clr); }
.ac-sec--dark .ac-cat__more{ border-top-color:var(--k-line-dark); color:var(--k-blanc); }
.ac-sec--dark .ac-chap__l,
.ac-sec--dark .ac-chap__more{ color:var(--k-blanc); }

/* ============================================================
   CONTACT — bloc coordonnées clair + formulaire sombre (2 colonnes pleine largeur)
   ============================================================ */
.ac-contact{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); }
.ac-contact__l{ background:var(--k-ivoire); color:var(--k-ink);
  padding:clamp(3rem,6vw,6rem) clamp(1.25rem,4vw,4.5rem); }
.ac-contact__r{ background:var(--k-noir); color:var(--k-blanc);
  padding:clamp(3rem,6vw,6rem) clamp(1.25rem,4vw,4.5rem); }
/* le panneau sombre n'est pas une .ac-sec--dark : on lui donne les mêmes contrastes */
.ac-contact__r .ac-lede{ color:rgba(247,244,238,.78); }
.ac-contact__r .ac-eyebrow{ color:var(--k-pierre-clr); }
.ac-contact__r .ac-cta{ color:var(--k-blanc); }

.ac-coord{ display:flex; gap:1.4rem; align-items:flex-start; padding:1.6rem 0;
  border-top:1px solid var(--k-line-light); }
.ac-coord:first-of-type{ border-top:0; padding-top:0; }
.ac-coord__ico{ flex:none; width:44px; height:44px; border-radius:50%; background:var(--k-noir);
  color:var(--k-blanc); display:grid; place-items:center; }
.ac-coord__ico svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.4; }
.ac-coord__k{ display:block; font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-ink); margin-bottom:.4rem; }
.ac-coord__v{ display:block; font-size:.95rem; line-height:1.65; color:var(--k-ink-soft); margin:0; }
.ac-coord__v a{ color:inherit; text-decoration:none; border-bottom:1px solid var(--k-line-light); }
.ac-coord__v a:hover{ color:var(--k-ink); border-bottom-color:currentColor; }

/* Formulaire sombre */
.ac-form{ display:grid; gap:1rem; }
.ac-form__2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.ac-form label{ display:block; font-size:var(--k-tick); font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:var(--k-pierre-clr); margin-bottom:.5rem; }
.ac-form input[type=text],.ac-form input[type=email],.ac-form input[type=tel],
.ac-form select,.ac-form textarea{
  width:100%; background:rgba(247,244,238,.04); color:var(--k-blanc);
  border:1px solid var(--k-line-dark); border-radius:0; padding:.95rem 1.05rem;
  font-family:var(--k-sans); font-size:.95rem; line-height:1.4;
  transition:border-color .3s var(--k-ease), background .3s var(--k-ease); }
.ac-form textarea{ min-height:150px; resize:vertical; }
.ac-form select{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--k-pierre-clr) 50%),linear-gradient(135deg,var(--k-pierre-clr) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%; background-size:6px 6px,6px 6px;
  background-repeat:no-repeat; padding-right:2.6rem; }
.ac-form select option{ background:var(--k-noir); color:var(--k-blanc); }
.ac-form :is(input,select,textarea):focus{ outline:none; border-color:var(--k-beige);
  background:rgba(247,244,238,.07); }
.ac-form ::placeholder{ color:rgba(247,244,238,.35); }
.ac-form fieldset{ border:0; padding:0; margin:0; display:grid; gap:1rem; }
.ac-form legend{ font-size:var(--k-label); font-weight:500; letter-spacing:var(--k-track);
  text-transform:uppercase; color:var(--k-pierre-clr); padding:0 0 .9rem; }
.ac-form__consent{ display:flex; align-items:flex-start; gap:.8rem; margin-top:.4rem; }
.ac-form__consent input{ margin-top:.25em; width:auto; accent-color:var(--k-beige); }
.ac-form__consent span{ font-size:.86rem; line-height:1.6; letter-spacing:0; text-transform:none;
  color:rgba(247,244,238,.75); }
.ac-form__foot{ display:flex; flex-wrap:wrap; align-items:center; gap:1.6rem; margin-top:1.4rem; }
.ac-form__note{ font-size:.82rem; color:rgba(247,244,238,.55); }

/* Bouton plein (usage rare : validation d'un formulaire) */
.ac-btn{ display:inline-flex; align-items:center; gap:1.2rem; justify-content:center;
  background:var(--k-beige); color:var(--k-noir); border:0; cursor:pointer;
  padding:1.05rem 2.2rem; font-family:var(--k-sans); font-size:var(--k-tick); font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
  transition:background .35s var(--k-ease), transform .35s var(--k-ease); }
.ac-btn:hover{ background:var(--k-beige-hi); }
.ac-btn .ac-arw{ transition:transform .45s var(--k-ease); }
.ac-btn:hover .ac-arw{ transform:translateX(7px); }

/* Plan d'accès */
.ac-map{ aspect-ratio:16/10; border:1px solid var(--k-line-light); background:var(--k-ivoire-2); }
.ac-map iframe{ width:100%; height:100%; border:0; display:block; }

/* ============================================================
   INSPIRATIONS — hero court + galerie filtrée + carnet ancré à droite
   Réutilise le DOM et le JS existants (mb-*, carnet-fav) : on ne restyle QUE l'apparence.
   ============================================================ */

/* Hero éditorial court (l'image reste visible, la galerie commence tout de suite) */
.ac-hero--short{ min-height:0; height:clamp(420px,58svh,620px); }
.ac-hero--short .ac-hero__body{ align-items:flex-end; padding-bottom:clamp(2rem,4vw,3.5rem); }
.ac-hero--short .ac-hero__title{ margin-bottom:1.1rem; }
.ac-hero--short .ac-hero__lede{ margin-bottom:0; }
.ac-hero--short .ac-hero__bg::after{
  background:linear-gradient(90deg, rgba(20,16,13,.80) 0%, rgba(20,16,13,.60) 26%, rgba(20,16,13,.30) 48%, rgba(20,16,13,.06) 68%),
             linear-gradient(180deg, rgba(20,16,13,.62) 0%, rgba(20,16,13,.22) 22%, rgba(20,16,13,.04) 55%, rgba(20,16,13,.22) 100%); }

/* Zone galerie : contenu + colonne carnet */
.ac-mb{ background:var(--k-ivoire); }
.ac-mb__grid{ display:grid; grid-template-columns:minmax(0,1fr) 372px; align-items:start; }
.ac-mb__main{ padding:clamp(1.6rem,3vw,2.6rem) clamp(1.25rem,3.5vw,3rem) clamp(4rem,7vw,7rem); min-width:0; }

/* Barre de filtres (puces) */
.ac .mb-controls{ background:none; border:0; padding:0; position:static;
  backdrop-filter:none; -webkit-backdrop-filter:none; }
.ac .mb-controls .container{ max-width:none; padding:0; }
.ac .mb-tabs{ display:flex; flex-wrap:wrap; justify-content:flex-start; gap:.6rem;
  border:0; padding:0; margin:0 0 .8rem; }
.ac .mb-tab{ display:inline-flex; align-items:center; gap:.7rem; border:1px solid var(--k-line-light);
  background:none; color:var(--k-ink); border-radius:999px; padding:.62rem 1.15rem; cursor:pointer;
  font-family:var(--k-sans); font-size:var(--k-tick); font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; transition:.3s var(--k-ease); }
.ac .mb-tab .n{ font-weight:500; letter-spacing:.04em; color:var(--k-pierre); }
.ac .mb-tab:hover{ border-color:var(--k-ink); }
.ac .mb-tab[aria-selected="true"]{ background:var(--k-noir); color:var(--k-blanc); border-color:var(--k-noir); }
.ac .mb-tab[aria-selected="true"] .n{ color:var(--k-pierre-clr); }
.ac .mb-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1.8rem; }
.ac .mb-chip{ border:1px solid var(--k-line-light); background:none; color:var(--k-ink-soft);
  border-radius:999px; padding:.42rem 1rem; cursor:pointer; font-family:var(--k-sans);
  font-size:.78rem; letter-spacing:.02em; transition:.3s var(--k-ease); }
.ac .mb-chip:hover{ border-color:var(--k-ink); color:var(--k-ink); }
.ac .mb-chip[aria-pressed="true"]{ background:var(--k-ink); color:var(--k-blanc); border-color:var(--k-ink); }

/* Filtres collants sous le menu : on garde les univers accessibles pendant tout le défilement */
@media (min-width:901px){
  .ac .ac-mb__main .mb-controls{ position:sticky; top:var(--k-header-h); z-index:60;
    background:var(--k-ivoire); padding:.9rem 0 .8rem;
    box-shadow:0 12px 18px -14px rgba(20,16,13,.35); }
  .ac .ac-mb__main .mb-chips{ margin-bottom:.2rem; }
}

/* Grille d'images */
.ac .mb-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(.7rem,1.1vw,1.1rem);
  max-width:none; padding:0; margin:0; }
.ac .mb-card{ position:relative; margin:0; overflow:hidden; background:var(--k-ivoire-2);
  aspect-ratio:4/3; border-radius:0; box-shadow:none; opacity:0; transition:opacity .7s var(--k-ease); }
.ac .mb-card.in{ opacity:1; }
.ac .mb-card img{ width:100%; height:100%; object-fit:cover; cursor:zoom-in; border-radius:0;
  transition:transform 1.1s var(--k-ease); }
.ac .mb-card:hover img{ transform:scale(1.04); }
.ac .mb-card__cap{ position:absolute; left:0; right:0; bottom:0; padding:2.4rem .9rem .8rem;
  font-size:.72rem; letter-spacing:.04em; color:var(--k-blanc); background:none;
  background-image:linear-gradient(180deg,rgba(20,16,13,0),rgba(20,16,13,.7));
  opacity:0; transition:opacity .4s var(--k-ease); }
.ac .mb-card:hover .mb-card__cap,
.ac .mb-card:focus-within .mb-card__cap{ opacity:1; }
.ac .mb-empty{ padding:3rem 0; color:var(--k-ink-soft); }

/* Cœur d'ajout au carnet — TOUJOURS visible (l'ancien thème le révélait au survol seulement) */
.ac .carnet-fav{ opacity:1; transform:none;
  position:absolute; top:.7rem; right:.7rem; width:38px; height:38px; border-radius:50%;
  border:0; background:rgba(247,244,238,.9); color:var(--k-ink); cursor:pointer;
  display:grid; place-items:center; transition:.3s var(--k-ease); box-shadow:none; }
.ac .carnet-fav:hover{ background:var(--k-blanc); transform:scale(1.06); }
.ac .carnet-fav svg{ width:18px; height:18px; }
.ac .carnet-fav[aria-pressed="true"]{ background:var(--k-noir); color:var(--k-blanc); }
.ac .carnet-fav[aria-pressed="true"] svg{ fill:currentColor; }

/* Film en iframe (showroom, témoignages) : collé sous le menu, sans marge parasite */
.ac-film{ padding:0; scroll-margin-top:var(--k-header-h); background:var(--k-ivoire); }
.ac-film iframe{ display:block; width:100%; aspect-ratio:16/9; border:0;
  max-height:calc(100svh - var(--k-header-h) - 2.5rem); }
.ac-film .film-intro{ display:flex; align-items:center; justify-content:center; gap:1.2rem;
  margin:0; padding:clamp(1.6rem,3vw,2.6rem) var(--k-pad) clamp(1rem,2vw,1.6rem);
  font-size:var(--k-label); font-weight:500; letter-spacing:var(--k-track);
  text-transform:uppercase; color:var(--k-pierre); }
.ac-film .film-intro::before,.ac-film .film-intro::after{ content:""; width:clamp(28px,4vw,56px);
  height:1px; background:currentColor; opacity:.7; flex:none; }
@media (max-width:560px){ .ac-film .film-intro::before,.ac-film .film-intro::after{ display:none; } }

/* Diaporama des univers (page showroom) — repris de l'ancienne page, habillé charte */
.ac .univ{ position:relative; max-width:var(--k-max); margin-inline:auto; }
.ac .univ__frame{ position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--k-charbon); }
.ac .univ__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.2s var(--k-ease); }
.ac .univ__img.is-active{ opacity:1; }
.ac .univ__btn{ position:absolute; left:50%; bottom:clamp(1.2rem,3vw,2.4rem); transform:translateX(-50%);
  z-index:2; display:inline-flex; align-items:center; gap:.9rem; background:var(--k-blanc); color:var(--k-noir);
  border-radius:999px; padding:.95rem 1.7rem; text-decoration:none; font-family:var(--k-sans);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  transition:background .3s var(--k-ease); white-space:nowrap; }
.ac .univ__btn:hover{ background:var(--k-beige-hi); }
@media (max-width:640px){ .ac .univ__frame{ aspect-ratio:4/5; } }

/* Bouton flottant « Votre carnet d'inspirations » (pages catalogues, nuancier, visionneuse) */
.ac .mb-toggle{ position:fixed; right:clamp(1rem,2vw,2rem); bottom:clamp(1rem,2vw,2rem); z-index:230;
  display:inline-flex; align-items:center; gap:.9rem; background:var(--k-noir); color:var(--k-blanc);
  border:0; border-radius:999px; padding:.95rem 1.4rem; cursor:pointer; font-family:var(--k-sans);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  box-shadow:0 12px 30px rgba(20,16,13,.28); transition:background .3s var(--k-ease); }
.ac .mb-toggle:hover{ background:var(--k-charbon); }
.ac .mb-toggle__count{ display:grid; place-items:center; min-width:22px; height:22px; padding:0 .35rem;
  border-radius:999px; background:var(--k-beige); color:var(--k-noir); font-size:.72rem; letter-spacing:0; }
.ac .mb-panel{ z-index:240; }

/* Visionneuse d'image de la galerie : AU-DESSUS du header fixe (sinon le bouton
   de fermeture passe dessous et devient inatteignable). Habillage charte. */
.ac .mb-lightbox{ z-index:400; background:rgba(20,16,13,.96); padding:clamp(1rem,4vw,3rem); }
.ac .mb-lightbox img{ border-radius:0; box-shadow:0 30px 80px rgba(0,0,0,.6); max-height:84vh; }
.ac .mb-lb__close,.ac .mb-lb__nav{ background:rgba(247,244,238,.12); color:var(--k-blanc);
  border:1px solid var(--k-line-dark); border-radius:50%; width:52px; height:52px;
  display:grid; place-items:center; cursor:pointer; transition:.3s var(--k-ease); z-index:2; }
.ac .mb-lb__close:hover,.ac .mb-lb__nav:hover{ background:var(--k-blanc); color:var(--k-noir);
  border-color:var(--k-blanc); }
/* le bouton de fermeture reste sous la zone du header, jamais masqué */
.ac .mb-lb__close{ position:absolute; top:clamp(1rem,2vw,1.6rem); right:clamp(1rem,2vw,1.6rem);
  font-size:1.5rem; line-height:1; }
.ac .mb-lb__cap{ font-family:var(--k-serif); color:rgba(247,244,238,.85); letter-spacing:.02em; }
/* pendant la lecture d'une image, le header s'efface */
.ac:has(.mb-lightbox.open) .ac-topnav{ opacity:0; pointer-events:none; transition:opacity .3s var(--k-ease); }

/* Carnet ancré (desktop) : même DOM, même JS — seul l'habillage change */
@media (min-width:1101px){
  .ac .ac-mb__grid > .mb-panel{ position:sticky; top:var(--k-header-h); right:auto; bottom:auto; width:auto;
    height:calc(100svh - var(--k-header-h));
    transform:none; box-shadow:none; background:var(--k-ivoire);
    border-left:1px solid var(--k-line-light); z-index:1; }
  .ac:has(.ac-mb__grid > .mb-panel) .mb-toggle{ display:none; }
  .ac .ac-mb__grid > .mb-panel .mb-panel__close{ display:none; }
}
.ac .mb-panel__header{ padding:clamp(1.6rem,2.4vw,2.4rem) clamp(1.3rem,2vw,2rem) 1rem; border-bottom:0; background:none; }
.ac .mb-panel__title{ font-family:var(--k-serif); font-weight:500; font-size:1.5rem; line-height:1.15;
  letter-spacing:0; text-transform:none; color:var(--k-ink); }
.ac .mb-panel__hint{ margin:0; padding:0 clamp(1.3rem,2vw,2rem) 1.4rem;
  font-size:.86rem; line-height:1.6; color:var(--k-ink-soft); }
.ac .mb-panel__body{ padding:0 clamp(1.3rem,2vw,2rem); }
.ac .mb-panel__empty{ text-align:center; padding:2.6rem 0; color:var(--k-pierre);
  font-size:.92rem; font-style:normal; letter-spacing:.04em; }
.ac .mb-panel__empty::before{ content:"♡"; display:block; font-size:2rem; line-height:1;
  margin-bottom:.9rem; color:var(--k-pierre-clr); }
.ac .mb-panel__footer{ padding:1.2rem clamp(1.3rem,2vw,2rem) clamp(1.6rem,2.4vw,2.2rem);
  border-top:1px solid var(--k-line-light); background:none; display:grid; gap:1rem; justify-items:center; }
.ac .mb-stats{ font-size:var(--k-tick); letter-spacing:.14em; text-transform:uppercase; color:var(--k-pierre); }
.ac .mb-panel__footer .btn{ width:100%; justify-content:center; display:inline-flex; align-items:center;
  gap:1rem; background:var(--k-noir); color:var(--k-blanc); border:0; border-radius:0;
  padding:1.05rem 1.6rem; font-family:var(--k-sans); font-size:var(--k-tick); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; cursor:pointer; transition:background .3s var(--k-ease); }
.ac .mb-panel__footer .btn:hover{ background:var(--k-charbon); }
.ac .mb-clear{ background:none; border:0; cursor:pointer; font-family:var(--k-sans);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--k-pierre); text-decoration:none; }
.ac .mb-clear:hover{ color:var(--k-ink); }

/* ============================================================
   GUIDES & CONSEILS — filtres en ligne + grille d'articles
   ============================================================ */
.ac-fils{ display:flex; flex-wrap:wrap; gap:clamp(1.2rem,2.4vw,2.6rem); align-items:center;
  border-bottom:1px solid var(--k-line-light); padding-bottom:1rem; }
.ac-fil{ background:none; border:0; padding:0 0 .5rem; cursor:pointer; position:relative;
  font-family:var(--k-sans); font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); transition:color .3s var(--k-ease); }
.ac-fil .n{ font-weight:500; letter-spacing:.04em; margin-left:.45rem; opacity:.7; }
.ac-fil::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:var(--k-ink); transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--k-ease); }
.ac-fil:hover{ color:var(--k-ink); }
.ac-fil.is-on{ color:var(--k-ink); }
.ac-fil.is-on::after{ transform:scaleX(1); }
.ac-fils__count{ margin:1.1rem 0 0; font-size:var(--k-tick); letter-spacing:.14em;
  text-transform:uppercase; color:var(--k-pierre); }

/* Filtres collants sous le menu : les thèmes restent visibles pendant toute la lecture
   de la grille (même recette que le carnet d'inspirations). La hauteur réelle du menu,
   qui se resserre au défilement, est publiée par charte-nav.js dans --k-header-h. */
@media (min-width:901px){
  .ac-fils-bar{ position:sticky; top:var(--k-header-h); z-index:60; background:var(--k-ivoire);
    padding-top:.9rem; padding-bottom:.2rem;
    box-shadow:0 14px 20px -16px rgba(20,16,13,.45); }
  .ac-fils-bar .ac-fils{ padding-bottom:.7rem; }
  /* le compteur a été retiré (l'info est dans « Tout 37 ») : la barre est d'autant plus fine */
}

.ac-arts{ max-width:var(--k-max); margin:clamp(2rem,3.5vw,3rem) auto 0; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,2.6vw,2.8rem); align-items:stretch; }
.ac-art{ display:flex; flex-direction:column; text-decoration:none; color:inherit;
  border:1px solid var(--k-line-light); background:var(--k-blanc); }
/* sans cette règle, display:flex l'emporte sur l'attribut hidden → le filtre ne masque rien */
.ac-art[hidden]{ display:none; }
.ac-art__media{ display:block; overflow:hidden; aspect-ratio:16/10; background:var(--k-ivoire-2); }
.ac-art__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--k-ease); }
.ac-art:hover .ac-art__media img{ transform:scale(1.04); }
.ac-art__meta{ display:flex; justify-content:space-between; gap:1rem; padding:1.2rem 1.3rem .6rem;
  font-size:var(--k-tick); font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--k-pierre); }
.ac-art__title{ display:block; font-family:var(--k-serif); font-weight:500; font-size:clamp(1.25rem,1.5vw,1.5rem);
  line-height:1.2; margin:0; padding:0 1.3rem .7rem; }
.ac-art__desc{ display:block; font-size:.9rem; line-height:1.65; color:var(--k-ink-soft); margin:0;
  padding:0 1.3rem 1.3rem; }
.ac-art__more{ margin-top:auto; padding:1rem 1.3rem 1.3rem; border-top:1px solid var(--k-line-light);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.6rem; }
.ac-art__more .ac-arw{ transition:transform .45s var(--k-ease); }
.ac-art:hover .ac-art__more .ac-arw{ transform:translateX(7px); }
/* carte « guide » (pas de photo dans le site) : plus sobre, fond ivoire */
.ac-art--texte{ background:var(--k-ivoire-2); }
.ac-art--texte .ac-art__meta{ padding-top:1.5rem; }
.ac-art--texte .ac-art__title{ font-size:clamp(1.35rem,1.7vw,1.7rem); }

/* ============================================================
   ARTICLE — hero titre, barre méta, sommaire ancré, corps de texte
   ============================================================ */
/* hero de la page Contact : photo déjà sombre → voile minimal, juste ce qu'il faut
   pour tenir le menu et le texte de gauche. */
.ac-hero--contact .ac-hero__bg::after{
  background:linear-gradient(90deg, rgba(20,16,13,.46) 0%, rgba(20,16,13,.20) 34%, rgba(20,16,13,0) 62%),
             linear-gradient(180deg, rgba(20,16,13,.34) 0%, rgba(20,16,13,0) 28%, rgba(20,16,13,0) 70%, rgba(20,16,13,.30) 100%); }

/* hero d'article : la hauteur suit le contenu (titre long + chapeau), jamais de texte coupé */
.ac-hero--art{ height:auto; min-height:clamp(430px,58svh,640px); }
.ac-hero--art .ac-hero__body{ padding-block:clamp(2.5rem,5vw,4rem) clamp(2.5rem,4vw,3.5rem); }
.ac-hero--art .ac-hero__title{ max-width:30ch; }
.ac-hero--art .ac-hero__lede{ margin-bottom:0; }
.ac-artitle{ font-family:var(--k-serif); font-weight:500; font-size:clamp(1.75rem,2.8vw,2.7rem);
  line-height:1.14; letter-spacing:.005em; margin:0 0 1.1rem; text-transform:none; color:inherit; }

/* Barre méta (lecture / mise à jour / partage) */
/* Barre méta des articles : collante sous le menu, pour rester à portée pendant toute
   la lecture (temps de lecture, date, partage). Resserrée en conséquence — sur deux
   lignes elle prenait trop de hauteur une fois figée en haut de l'écran. */
.ac-meta{ position:sticky; top:var(--k-header-h); z-index:60;
  background:var(--k-ivoire); border-bottom:1px solid var(--k-line-light);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:.6rem 1.5rem; padding:.62rem var(--k-pad);
  box-shadow:0 12px 18px -16px rgba(20,16,13,.45); }
.ac-meta__l{ display:flex; flex-wrap:wrap; gap:clamp(1.1rem,3vw,2.6rem); }
/* libellé et valeur côte à côte : deux fois moins haut qu'empilés */
.ac-meta__item{ display:flex; flex-direction:row; align-items:baseline; gap:.55rem; }
.ac-meta__k{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); }
.ac-meta__v{ font-size:.92rem; color:var(--k-ink); }
.ac-meta__share{ display:flex; align-items:center; gap:.9rem; }
.ac-meta__share a,.ac-meta__share button{ width:32px; height:32px; border-radius:50%;
  border:1px solid var(--k-line-light); background:none; color:var(--k-ink); cursor:pointer;
  display:grid; place-items:center; transition:.3s var(--k-ease); }
.ac-meta__share a:hover,.ac-meta__share button:hover{ background:var(--k-noir); color:var(--k-blanc);
  border-color:var(--k-noir); }
.ac-meta__share svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.3; }
.ac-meta__share button.is-ok{ background:var(--k-beige); border-color:var(--k-beige); }

/* Fil d'Ariane */
.ac-fil-ariane{ background:var(--k-blanc); padding:1.1rem var(--k-pad) 0; }
.ac-fil-ariane .breadcrumb{ max-width:var(--k-max); margin-inline:auto; font-size:var(--k-tick);
  letter-spacing:.06em; color:var(--k-pierre); }
.ac-fil-ariane a{ color:inherit; text-decoration:none; }
.ac-fil-ariane a:hover{ color:var(--k-ink); }

/* Corps : sommaire ancré + colonne de lecture */
.ac-art-page{ background:var(--k-blanc); padding-block:clamp(2.5rem,5vw,5rem); }
.ac-art-page__grid{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
/* le sommaire se cale sous le menu ET sous la barre méta collante (≈3,3 rem),
   sinon son premier lien passe dessous */
.ac-somm{ position:sticky; top:calc(var(--k-header-h) + var(--k-meta-h, 0px) + 1rem); }
body:has(.ac-meta){ --k-meta-h:3.3rem; }
.ac-somm__nav{ display:grid; gap:.1rem; border-top:1px solid var(--k-line-light); padding-top:.6rem; }
.ac-somm__nav a{ display:grid; grid-template-columns:2.2rem 1fr; gap:.4rem; align-items:baseline;
  padding:.55rem 0; font-size:.88rem; line-height:1.4; color:var(--k-ink-soft);
  text-decoration:none; transition:color .3s var(--k-ease); }
.ac-somm__n{ font-family:var(--k-serif); font-size:.95rem; color:var(--k-pierre); }
.ac-somm__nav a:hover{ color:var(--k-ink); }
.ac-somm__nav a.is-on{ color:var(--k-ink); font-weight:600; }
.ac-somm__nav a.is-on .ac-somm__n{ color:var(--k-ink); }
.ac-somm__rdv{ margin-top:2.2rem; border:1px solid var(--k-line-light); padding:1.4rem 1.3rem; }
.ac-somm__rdvk{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-ink); margin:0 0 .7rem; }
.ac-somm__rdv p{ font-size:.86rem; line-height:1.6; color:var(--k-ink-soft); margin:0 0 1.2rem; }

.ac-artsec{ padding-block:clamp(1.8rem,3vw,2.6rem); border-top:1px solid var(--k-line-light); }
.ac-artsec:first-child{ border-top:0; padding-top:0; }
.ac-artsec__n{ font-family:var(--k-serif); font-size:1rem; color:var(--k-pierre); margin:0 0 .5rem; }
.ac-artsec__kick{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); margin:0 0 .7rem; }
.ac-artsec .ac-h2{ margin-bottom:1.4rem; }

/* Typographie du corps d'article */
.ac-prose{ max-width:74ch; font-size:1rem; line-height:1.78; color:var(--k-ink-soft); }
.ac-prose > *:first-child{ margin-top:0; }
.ac-prose p{ margin:0 0 1.2rem; }
.ac-prose strong{ color:var(--k-ink); font-weight:600; }
.ac-prose a{ color:var(--k-ink); text-decoration:none; border-bottom:1px solid var(--k-line-light); }
.ac-prose a:hover{ border-bottom-color:var(--k-ink); }
.ac-prose ul,.ac-prose ol{ margin:0 0 1.4rem; padding-left:1.1rem; }
.ac-prose li{ margin-bottom:.6rem; }
.ac-prose li::marker{ color:var(--k-pierre); }
.ac-prose h3{ font-family:var(--k-serif); font-weight:500; font-size:1.25rem; line-height:1.25;
  color:var(--k-ink); margin:2rem 0 .6rem; }
.ac-prose table{ width:100%; border-collapse:collapse; font-size:.92rem; margin:0 0 1rem; }
.ac-prose th,.ac-prose td{ text-align:left; padding:.85rem .6rem; border-bottom:1px solid var(--k-line-light); }
.ac-prose thead th{ font-size:var(--k-tick); font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--k-pierre); border-bottom:1px solid var(--k-ink); }
.ac-prose tbody th{ color:var(--k-ink); font-weight:600; }

/* Encart « L'avis de L'atelier » */
.ac-avis{ background:var(--k-ivoire-2); padding:clamp(1.6rem,3vw,2.6rem); margin:1rem 0 2rem; }
.ac-avis .avis-atelier__label{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); margin:0 0 .7rem; }
.ac-avis .avis-atelier__title{ font-family:var(--k-serif); font-weight:500;
  font-size:clamp(1.4rem,2vw,1.9rem); line-height:1.15; color:var(--k-ink); margin:0 0 1rem; }
.ac-avis .avis-atelier__sign{ font-size:.82rem; color:var(--k-pierre); margin-top:1.2rem; }

/* Questions fréquentes reprises dans le corps */
.ac-prose .faq__item{ border-top:1px solid var(--k-line-light); padding:1.2rem 0; }
.ac-prose .faq__q{ font-family:var(--k-serif); font-weight:500; font-size:1.15rem;
  color:var(--k-ink); margin:0 0 .5rem; }
.ac-prose .faq__a{ margin:0; }
/* Cartes de maillage en fin d'article */
.ac-prose .maillage__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1.2rem; margin-top:.6rem; }
.ac-prose .maillage__card{ display:flex; flex-direction:column; gap:.4rem; border:1px solid var(--k-line-light);
  padding:1.2rem; text-decoration:none; color:inherit; }
.ac-prose .maillage__card:hover{ border-color:var(--k-ink); }
.ac-prose .maillage__eyebrow{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); }
.ac-prose .maillage__title{ font-family:var(--k-serif); font-size:1.2rem; color:var(--k-ink); line-height:1.2; }
.ac-prose .maillage__desc{ font-size:.88rem; }
.ac-prose .maillage__arrow{ font-size:var(--k-tick); font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--k-ink); margin-top:.3rem; }
.ac-back{ margin-top:2.5rem; padding-top:1.6rem; border-top:1px solid var(--k-line-light); }

/* ---------- Hero à slider (pages marques Tafaruci / Knikerboker) ----------
   Le slider existant est CONSERVÉ (4 slides de contenu réel) : seul l'habillage change. */
.ac .hero-slider{ position:relative; min-height:100svh; overflow:hidden; background:var(--k-noir);
  color:var(--k-blanc); display:flex; flex-direction:column; justify-content:flex-end;
  padding:var(--k-header-h) 0 0; }
.ac .hero-slider__track{ position:absolute; inset:0; }
.ac .hero-slider__slide{ position:absolute; inset:0; opacity:0; transition:opacity 1.2s cubic-bezier(.37,0,.28,1); }
.ac .hero-slider__slide.is-active{ opacity:1; }
.ac .hero-slider__img{ width:100%; height:100%; object-fit:cover; }
.ac .hero-slider__overlay{ position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(20,16,13,.52) 0%, rgba(20,16,13,.22) 38%, rgba(20,16,13,0) 62%),
             linear-gradient(180deg, rgba(20,16,13,.34) 0%, rgba(20,16,13,0) 26%, rgba(20,16,13,0) 62%, rgba(20,16,13,.42) 100%); }
.ac .hero-slider__content{ position:absolute; left:0; right:0; bottom:clamp(5rem,10vh,8rem);
  z-index:3; max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad); }
.ac .hero-slider__eyebrow{ display:flex; align-items:center; gap:1rem; margin:0 0 1.4rem;
  font-size:var(--k-label); font-weight:500; letter-spacing:var(--k-track); text-transform:uppercase;
  color:var(--k-pierre-clr); }
.ac .hero-slider__eyebrow::before,
.ac .hero-slider__eyebrow::after{ content:""; width:clamp(28px,4vw,56px); height:1px;
  background:currentColor; opacity:.7; flex:none; }
.ac .hero-slider__title{ text-shadow:0 2px 24px rgba(20,16,13,.45); font-family:var(--k-serif); font-weight:500;
  font-size:clamp(2rem,3.8vw,3.6rem); line-height:1.08; letter-spacing:.005em;
  margin:0 0 1.2rem; color:var(--k-blanc); max-width:24ch; }
.ac .hero-slider__lede{ font-size:var(--k-lede); line-height:1.68; max-width:44ch;
  color:rgba(247,244,238,.82); }
/* contrôles visibles (exigence d'accessibilité) */
.ac .hero-slider--brand .hero-slider__dots,
.ac .hero-slider__dots{ display:flex; gap:.7rem; position:absolute; z-index:4;
  left:var(--k-pad); bottom:clamp(2rem,4vh,3rem); }
.ac .hero-slider__dot{ width:34px; height:2px; border:0; padding:0; cursor:pointer;
  background:rgba(247,244,238,.35); transition:background .35s var(--k-ease); }
.ac .hero-slider__dot.is-active{ background:var(--k-blanc); }
.ac .hero-slider__dot:focus-visible{ outline:2px solid var(--k-beige); outline-offset:4px; }

/* En-tête sobre des pages sans photo (mentions, visionneuse, hub d'articles) */
.ac-sec--entete{ padding-top:calc(var(--k-header-h) + clamp(2rem,4vw,4rem)); }
.ac-sec--entete h1{ font-family:var(--k-serif); font-weight:500; font-size:var(--k-h1);
  line-height:1.06; margin:0; color:var(--k-blanc); }
.ac-sec--entete .editorial-heading__lede,
.ac-sec--entete p{ color:rgba(247,244,238,.78); }
.ac-sec--entete .section-number,.ac-sec--entete .eyebrow{ color:var(--k-pierre-clr); }

/* ============================================================
   COMPATIBILITÉ — composants historiques rhabillés en charte 2026
   (pages espaces, marques, réalisations, articles : le HTML de contenu
    n'est PAS réécrit, seul son habillage change. Portée : .ac uniquement.)
   ============================================================ */

/* En-tête de chapitre : mise en page PRESSE — sur-titre + titre à gauche, chapeau à droite.
   (empilés, ils laissaient un grand vide à droite et cassaient le rythme de lecture) */
.ac .editorial-heading{ max-width:var(--k-max); margin:0 auto clamp(2rem,3.5vw,3.2rem);
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  column-gap:clamp(2rem,5vw,5.5rem); align-items:start; }
.ac .editorial-heading > .section-number,
.ac .editorial-heading > .eyebrow{ grid-column:1; grid-row:1; }
.ac .editorial-heading > h2,
.ac .editorial-heading > h3{ grid-column:1; grid-row:2; }
.ac .editorial-heading > .editorial-heading__lede{ grid-column:2; grid-row:1 / span 2;
  margin:.35rem 0 0; align-self:start; }
/* pas de chapeau → le titre garde toute la largeur, sans colonne fantôme */
.ac .editorial-heading:not(:has(.editorial-heading__lede)){ display:block; }
/* certains blocs ont d'autres éléments (chiffre de chapitre, liens) : ils suivent en pleine largeur */
.ac .editorial-heading > .chapter-count{ grid-column:1; grid-row:3; margin-top:.9rem; }
.ac .section-number,.ac .eyebrow{ display:flex; align-items:center; gap:1rem; margin:0 0 1.2rem;
  font-family:var(--k-sans); font-size:var(--k-label); font-weight:500; letter-spacing:var(--k-track);
  text-transform:uppercase; color:var(--k-pierre); }
.ac .section-number::before,.ac .eyebrow::before,
.ac .section-number::after,.ac .eyebrow::after{ content:""; width:clamp(28px,4vw,56px); height:1px;
  background:currentColor; opacity:.7; flex:none; }
.ac .editorial-heading h2,.ac .editorial-heading h3{ font-family:var(--k-serif); font-weight:500;
  font-size:var(--k-h2); line-height:1.18; letter-spacing:.005em; margin:0; color:inherit; }
.ac .editorial-heading__lede{ font-size:var(--k-lede); line-height:1.75; max-width:62ch;
  color:var(--k-ink-soft); margin:1.5rem 0 0; }
.ac .section--dark .editorial-heading__lede,
.ac .ac-sec--dark .editorial-heading__lede{ color:rgba(247,244,238,.78); }

/* Duo image + texte */
.ac .editorial-split{ max-width:var(--k-max); margin-inline:auto; display:grid;
  grid-template-columns:1fr 1fr; gap:clamp(1.8rem,4vw,4.5rem); align-items:center; }
.ac .editorial-split__media{ overflow:hidden; background:var(--k-ivoire-2); aspect-ratio:4/5; }
.ac .editorial-split__media img{ width:100%; height:100%; object-fit:cover; }
/* image paysage : on garde un cadre plus large pour ne pas la rogner exagérément */
.ac .editorial-split--paysage .editorial-split__media{ aspect-ratio:3/2; }
/* ============================================================
   PASSERELLES DE FIN DE CHAPITRE
   Depuis le chapitre qu'on vient de lire, rejoindre le showroom, le bon catalogue,
   les réalisations ou les inspirations — sans remonter au menu.
   ============================================================ */
.ac .ac-liens-wrap{ margin-top:clamp(2.2rem,3.6vw,3.4rem); }
.ac .ac-liens{ display:flex; flex-wrap:wrap; gap:clamp(1.2rem,3vw,3rem);
  border-top:1px solid var(--k-line-light); padding-top:1.15rem; }
.ac .ac-lien{ position:relative; display:inline-flex; align-items:baseline; gap:.6rem;
  text-decoration:none; color:var(--k-ink); font-family:var(--k-sans); font-size:var(--k-tick);
  font-weight:600; letter-spacing:.16em; text-transform:uppercase; padding-bottom:.4rem; }
.ac .ac-lien::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--k-ease); }
.ac .ac-lien:hover::after{ transform:scaleX(1); }
.ac .ac-lien__f{ transition:transform .45s var(--k-ease); }
.ac .ac-lien:hover .ac-lien__f{ transform:translateX(.3rem); }
.ac .ac-sec--dark .ac-liens{ border-top-color:var(--k-line-dark); }
.ac .ac-sec--dark .ac-lien{ color:var(--k-blanc); }
/* variante en colonne de texte : le bloc prolonge le paragraphe, gouttière resserrée */
.ac .ac-liens--duo{ margin-top:1.8rem; gap:1rem 2rem; }
@media (max-width:560px){ .ac .ac-liens{ flex-direction:column; gap:.9rem; } }

/* Sur fond sombre, le titre du duo héritait de l'encre foncée de l'ancien thème :
   il devenait illisible (repéré sur le chapitre 04 de Zecchinon). */
.ac .ac-sec--dark .editorial-split__body h2,
.ac .section--dark .editorial-split__body h2{ color:var(--k-pierre-clr); }
.ac .editorial-split__body h3{ font-family:var(--k-serif); font-weight:500;
  font-size:clamp(1.4rem,2.2vw,2rem); line-height:1.15; color:inherit; margin:0 0 1rem; }
.ac .editorial-split__body p{ font-size:1rem; line-height:1.75; color:var(--k-ink-soft); margin:0 0 1rem; }
.ac .ac-sec--dark .editorial-split__body p{ color:rgba(247,244,238,.76); }
.ac .editorial-split__body strong{ color:inherit; font-weight:600; }

/* Filets décoratifs de l'ancien thème : neutralisés (la charte a ses propres filets) */
.ac .hairline{ display:block; width:64px; height:1px; background:var(--k-line-light);
  margin:1.4rem 0; border:0; }
.ac .ac-sec--dark .hairline{ background:var(--k-line-dark); }

/* Grilles et figures */
.ac .grid{ max-width:var(--k-max); margin-inline:auto; display:grid;
  grid-template-columns:repeat(2,1fr); gap:clamp(1.2rem,2.2vw,2.2rem); }
.ac .grid--auto{ grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.ac figure{ margin:0; }
.ac figure img{ width:100%; height:auto; }
.ac figcaption{ margin-top:.7rem; font-size:var(--k-tick); letter-spacing:.1em;
  text-transform:uppercase; color:var(--k-pierre); }

/* Tuiles matières */
.ac .material-tile{ display:block; text-decoration:none; color:inherit; }
.ac .material-tile__media{ overflow:hidden; aspect-ratio:4/3; background:var(--k-ivoire-2); }
.ac .material-tile__media img{ width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--k-ease); }
.ac .material-tile:hover .material-tile__media img{ transform:scale(1.05); }
.ac .material-tile__label{ display:block; margin-top:.9rem; font-size:var(--k-tick); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--k-pierre); }

/* Cartes catalogue historiques → même traitement que .ac-cat */
.ac .catalog-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.ac .catalog-card__cover{ display:grid; place-items:center; overflow:hidden; aspect-ratio:3/4;
  background:rgba(38,32,25,.05); border:1px solid var(--k-line-light); padding:clamp(.7rem,1vw,1.1rem); }
.ac .catalog-card__cover img{ width:100%; height:100%; object-fit:contain;
  transition:transform 1s var(--k-ease); }
.ac .catalog-card:hover .catalog-card__cover img{ transform:scale(1.03); }
.ac .catalog-card__title{ font-family:var(--k-serif); font-weight:500; font-size:1.25rem;
  line-height:1.2; margin:1rem 0 .3rem; }
.ac .catalog-card__meta{ font-size:.85rem; color:var(--k-ink-soft); }
.ac .ac-sec--dark .catalog-card__cover{ border-color:var(--k-line-dark); background:rgba(247,244,238,.05); }
.ac .ac-sec--dark .catalog-card__meta{ color:rgba(247,244,238,.7); }

/* Cartes de maillage interne */
.ac .maillage__grid{ max-width:var(--k-max); margin-inline:auto; display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:clamp(1.2rem,2vw,2rem); }
.ac .maillage__card{ display:flex; flex-direction:column; gap:.5rem; text-decoration:none; color:inherit;
  border:1px solid var(--k-line-light); padding:clamp(1.2rem,2vw,1.8rem);
  transition:border-color .35s var(--k-ease), background .35s var(--k-ease); }
.ac .maillage__card:hover{ border-color:currentColor; }
.ac .maillage__eyebrow{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); }
.ac .maillage__title{ font-family:var(--k-serif); font-weight:500; font-size:1.3rem; line-height:1.2; }
.ac .maillage__desc{ font-size:.9rem; line-height:1.6; color:var(--k-ink-soft); }
.ac .maillage__arrow{ margin-top:.4rem; font-size:var(--k-tick); font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; }
.ac .ac-sec--dark .maillage__card{ border-color:var(--k-line-dark); }
.ac .ac-sec--dark .maillage__desc{ color:rgba(247,244,238,.72); }
.ac .ac-sec--dark .maillage__eyebrow{ color:var(--k-pierre-clr); }

/* Double page magazine */
.ac .magazine-spread{ max-width:var(--k-max); margin-inline:auto; display:grid;
  grid-template-columns:1.35fr 1fr; gap:clamp(1.2rem,2.2vw,2rem); align-items:stretch; }
.ac .magazine-spread img{ width:100%; height:100%; object-fit:cover; }
.ac .magazine-spread__a,.ac .magazine-spread__b{ overflow:hidden; background:var(--k-ivoire-2); }

/* Boutons historiques → CTA texte + flèche (la charte n'a pas de pilule) */
.ac .btn{ display:inline-flex; align-items:center; gap:.85rem; background:none; border:0;
  border-radius:0; padding:0 0 .35rem; position:relative; cursor:pointer; color:inherit;
  font-family:var(--k-sans); font-size:.78rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; text-decoration:none; box-shadow:none; }
.ac .btn::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:currentColor; opacity:.28; transition:opacity var(--k-dur) var(--k-ease); }
.ac .btn:hover::after{ opacity:.7; }
.ac .btn .arrow{ display:inline-block; transition:transform var(--k-dur) var(--k-ease); }
.ac .btn:hover .arrow{ transform:translateX(8px); }
/* seul le bouton d'envoi d'un formulaire reste plein */
.ac form .btn[type=submit],.ac .mb-panel__footer .btn{ background:var(--k-noir); color:var(--k-blanc);
  padding:1.05rem 1.6rem; justify-content:center; }
.ac form .btn[type=submit]::after{ display:none; }

/* Puces / chips */
.ac .chip-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.ac .chip{ display:inline-flex; align-items:center; border:1px solid var(--k-line-light);
  border-radius:999px; padding:.42rem 1rem; font-size:.78rem; color:var(--k-ink-soft); background:none; }
.ac .ac-sec--dark .chip{ border-color:var(--k-line-dark); color:rgba(247,244,238,.8); }

/* Citation */
.ac .pull-quote{ max-width:34ch; margin-inline:auto; text-align:center; font-family:var(--k-serif);
  font-weight:500; font-size:clamp(1.5rem,2.4vw,2.2rem); line-height:1.42; color:inherit;
  text-wrap:pretty; hyphens:none; }
.ac .pull-quote__cite,.ac-quote__cite{ margin-top:2rem; }
/* la signature commence par un tiret dans le texte : on ajoute son pendant à droite */
.ac .pull-quote__cite::after,.ac-quote__cite::after{ content:" —"; }
.ac .pull-quote__cite{ display:block; margin-top:1.4rem; font-family:var(--k-sans);
  font-size:var(--k-tick); letter-spacing:.16em; text-transform:uppercase; color:var(--k-pierre); }

/* Conteneurs de l'ancien thème : la charte gère les marges */
.ac .container,.ac .container--lecture,.ac .container--large{ max-width:var(--k-max);
  margin-inline:auto; padding-inline:var(--k-pad); width:100%; }
.ac .paper-grain{ background-image:none; }
/* pas d'animation d'apparition héritée : les blocs doivent être visibles d'emblée */
.ac .reveal-magazine,.ac .stagger-children > *,.ac .reveal{ opacity:1 !important; transform:none !important; }

/* Règle générale : un élément masqué doit l'être, quelle que soit sa classe */
.ac [hidden]{ display:none !important; }

/* Hub « Conseils & inspirations » (page héritée) : mêmes cartes que le hub principal.
   Ses classes .ci-* vivaient dans l'ancienne feuille ; sans habillage, les images sortaient en pleine taille. */
.ac .ci-toolbar{ display:flex; flex-wrap:wrap; gap:clamp(1.2rem,2.4vw,2.6rem); align-items:center;
  border-bottom:1px solid var(--k-line-light); padding-bottom:1rem; margin-bottom:clamp(2rem,3.5vw,3rem); }
.ac .ci-chip{ background:none; border:0; padding:0 0 .5rem; cursor:pointer; position:relative;
  font-family:var(--k-sans); font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre); transition:color .3s var(--k-ease); }
.ac .ci-chip::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:var(--k-ink); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--k-ease); }
.ac .ci-chip:hover{ color:var(--k-ink); }
.ac .ci-chip.is-active{ color:var(--k-ink); }
.ac .ci-chip.is-active::after{ transform:scaleX(1); }

.ac .ci-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,2.6vw,2.8rem); align-items:stretch; }
.ac .ci-card{ display:flex; flex-direction:column; text-decoration:none; color:inherit;
  border:1px solid var(--k-line-light); background:var(--k-blanc); }
.ac .ci-card[hidden],.ac .ci-card.is-hidden{ display:none; }   /* le script hérité utilise .is-hidden */
.ac .ci-card__media{ position:relative; display:block; overflow:hidden; aspect-ratio:16/10; background:var(--k-ivoire-2); }
.ac .ci-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--k-ease); }
.ac .ci-card:hover .ci-card__media img{ transform:scale(1.04); }
.ac .ci-card__cat{ position:absolute; left:0; bottom:0; padding:.5rem .9rem; background:var(--k-noir);
  color:var(--k-blanc); font-size:var(--k-tick); font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.ac .ci-card__body{ display:flex; flex-direction:column; gap:.6rem; padding:1.2rem 1.3rem 1.3rem; flex:1; }
.ac .ci-card__title{ font-family:var(--k-serif); font-weight:500; font-size:clamp(1.2rem,1.5vw,1.45rem);
  line-height:1.2; margin:0; color:var(--k-ink); }
.ac .ci-card__excerpt{ font-size:.9rem; line-height:1.65; color:var(--k-ink-soft); margin:0; }
.ac .ci-card__cta{ margin-top:auto; padding-top:.9rem; border-top:1px solid var(--k-line-light);
  font-size:var(--k-tick); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--k-ink); }
@media (max-width:1100px){ .ac .ci-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .ac .ci-grid{ grid-template-columns:1fr; } .ac .ci-toolbar{ gap:1rem 1.4rem; } }

/* Hero en slider (accueil) : la 1re vue est le hero de la charte, les suivantes les univers */
.ac-hslider__vues{ position:absolute; inset:0; }
.ac-hvue{ position:absolute; inset:0; opacity:0; transition:opacity 1.2s cubic-bezier(.37,0,.28,1); pointer-events:none;
  display:flex; flex-direction:column; padding:var(--k-header-h) 0 0; }
.ac-hvue.is-active{ opacity:1; pointer-events:auto; }
.ac-hvue .ac-hero__body{ flex:1; }
.ac-hslider .ac-axes,.ac-hslider .ac-hero__scroll{ position:relative; z-index:46; }
/* seul le premier élément du flux pousse vers le bas : sinon le « Découvrir » flotte au milieu */
.ac-hslider .ac-hero__scroll{ margin-top:auto; }
.ac-hslider .ac-axes{ margin-top:0; }
.ac-hslider__puces{ position:absolute; left:var(--k-pad); bottom:calc(var(--k-pad) + 5.5rem); z-index:47;
  display:flex; gap:.6rem; }
.ac-hslider__puce{ width:30px; height:2px; border:0; padding:0; cursor:pointer;
  background:rgba(247,244,238,.35); transition:background .35s var(--k-ease); }
.ac-hslider__puce.is-on{ background:var(--k-blanc); }
.ac-hslider__puce:focus-visible{ outline:2px solid var(--k-beige); outline-offset:4px; }
@media (prefers-reduced-motion:reduce){ .ac-hvue{ transition:none; } }

/* Carrousel de réalisations (accueil) — défilement horizontal, sans dépendance */
.ac-carrousel{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad); position:relative; }
.ac-carrousel__piste{ display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding-bottom:.5rem; }
.ac-carrousel__piste::-webkit-scrollbar{ display:none; }
.ac-carrousel__vue{ flex:0 0 clamp(240px,32vw,420px); scroll-snap-align:start; background:var(--k-ivoire); }
.ac-carrousel__vue img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.ac-carrousel__cmd{ display:flex; justify-content:center; gap:.8rem; margin-top:1.6rem; }
.ac-carrousel__btn{ width:48px; height:48px; border-radius:50%; border:1px solid var(--k-line-light);
  background:none; color:var(--k-ink); font-size:1.3rem; line-height:1; cursor:pointer;
  transition:.3s var(--k-ease); }
.ac-carrousel__btn:hover{ background:var(--k-noir); color:var(--k-blanc); border-color:var(--k-noir); }

/* Bloc adresse de l'accueil : informations à gauche, plan à droite */
.ac-adr{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.ac-adr__liste{ margin:1.8rem 0 0; display:grid; gap:1.1rem; }
.ac-adr__liste div{ display:grid; gap:.25rem; }
.ac-adr__liste dt{ font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-pierre-clr); }
.ac-adr__liste dd{ margin:0; font-size:.95rem; line-height:1.65; color:rgba(247,244,238,.86); }
.ac-adr__liste a{ color:inherit; text-decoration:none; border-bottom:1px solid var(--k-line-dark); }
.ac-adr__liste a:hover{ color:var(--k-beige); }
.ac-adr__actions{ display:flex; flex-wrap:wrap; gap:clamp(1.4rem,3vw,2.6rem); margin-top:2rem; }
.ac-adr__avis{ display:inline-flex; align-items:center; gap:.7rem; margin-top:1.8rem;
  color:var(--k-blanc); text-decoration:none; font-size:.95rem; }
.ac-adr__avis em{ font-style:normal; border-bottom:1px solid var(--k-beige); color:var(--k-beige); }
.ac-adr__avis:hover em{ color:var(--k-beige-hi); }
.ac-adr__plan{ aspect-ratio:16/11; border:1px solid var(--k-line-dark); background:var(--k-charbon); }
.ac-adr__plan iframe{ width:100%; height:100%; border:0; display:block; }
@media (max-width:900px){ .ac-adr{ grid-template-columns:1fr; } }

/* Processus en étapes (accueil) */
.ac-etapes{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(1.2rem,2.2vw,2.4rem); }
.ac-etape{ border-top:1px solid var(--k-line-light); padding-top:1.2rem; }
.ac-etape__n{ display:block; font-family:var(--k-serif); font-size:1.6rem; color:var(--k-pierre); line-height:1; }
.ac-etape__menu{ margin:.9rem 0 .3rem; font-size:var(--k-tick); font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--k-beige); }
.ac-etape__t{ font-family:var(--k-serif); font-weight:500; font-size:1.25rem; line-height:1.2;
  margin:0 0 .7rem; color:var(--k-ink); }
.ac-etape__d{ font-size:.9rem; line-height:1.65; color:var(--k-ink-soft); margin:0; }

/* Questions fréquentes */
.ac-faq{ max-width:var(--k-max); margin-inline:auto; padding-inline:var(--k-pad);
  display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(2rem,5vw,5rem); }
.ac-faq__item{ border-top:1px solid var(--k-line-light); padding:1.4rem 0; }
.ac-faq__q{ font-family:var(--k-serif); font-weight:500; font-size:1.2rem; line-height:1.25;
  margin:0 0 .5rem; color:var(--k-ink); }
.ac-faq__a{ font-size:.94rem; line-height:1.7; color:var(--k-ink-soft); margin:0; }

/* Adresse mise en exergue */
.ac-adresse{ font-family:var(--k-serif); font-size:clamp(1.2rem,1.8vw,1.6rem); line-height:1.6;
  color:var(--k-blanc); margin:0; }

@media (max-width:1100px){ .ac-etapes{ grid-template-columns:repeat(3,1fr); row-gap:2rem; } }
@media (max-width:760px){ .ac-etapes{ grid-template-columns:1fr 1fr; } .ac-faq{ grid-template-columns:1fr; } }
@media (max-width:480px){ .ac-etapes{ grid-template-columns:1fr; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1400px){
  .ac .mb-gallery{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:1100px){
  .ac-mb__grid{ grid-template-columns:1fr; }   /* le carnet redevient un tiroir + son bouton */
}
@media (max-width:1240px){
  .ac-maisons{ grid-template-columns:repeat(3,1fr); row-gap:2.4rem; }
  .ac-maison:nth-child(3n+1){ border-left:0; padding-left:0; }
}
@media (max-width:1100px){
  .ac-grid--3{ grid-template-columns:repeat(2,1fr); }
  .ac-art-page__grid{ grid-template-columns:1fr; }
  .ac-somm{ position:static; }
  /* sur petit écran la barre méta passe sur 3 lignes : collée, elle mangeait 23 % de
     l'écran en plus du menu. Elle reste donc en haut de l'article, sans suivre. */
  .ac-meta{ position:static; box-shadow:none; }
  .ac-somm__rdv{ margin-top:1.6rem; }
  .ac-cats{ grid-template-columns:repeat(3,1fr); }
  .ac-arts{ grid-template-columns:repeat(2,1fr); }
  .ac-axes__grid{ grid-template-columns:repeat(2,1fr); gap:1.4rem; }
  .ac-hero__grid{ grid-template-columns:1fr; }
  .ac-hero__aside{ display:none; }
  .ac-footer__top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .ac-topbar{ display:none; }
  .ac-nav{ display:none; }
  .ac-burger{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
    background:none; border:0; cursor:pointer; color:var(--k-blanc); }
  .ac-burger span{ display:block; width:24px; height:1.5px; background:currentColor; position:relative; }
  .ac-burger span::before,.ac-burger span::after{ content:""; position:absolute; left:0; width:24px; height:1.5px; background:currentColor; }
  .ac-burger span::before{ top:-7px; } .ac-burger span::after{ top:7px; }
  .ac-split{ grid-template-columns:1fr; gap:2rem; }
  .ac-split--media-first .ac-split__media{ order:0; }
  .ac-header__cta{ display:none; }
}
@media (max-width:960px){
  .ac-contact{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  .ac-cats{ grid-template-columns:repeat(2,1fr); }
  .ac-form__2{ grid-template-columns:1fr; }
  .ac-maisons{ grid-template-columns:repeat(2,1fr); }
  .ac-maison:nth-child(3n+1){ border-left:1px solid var(--k-line-light); padding-left:clamp(.9rem,1.6vw,2rem); }
  .ac-maison:nth-child(odd){ border-left:0; padding-left:0; }
}
@media (max-width:860px){
  .ac .mb-gallery{ grid-template-columns:repeat(2,1fr); }
  .ac .editorial-split,.ac .magazine-spread{ grid-template-columns:1fr; }
  .ac .grid{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .ac-grid--3,.ac-grid--2{ grid-template-columns:1fr; }
  .ac-arts{ grid-template-columns:1fr; }
  .ac-fils{ gap:1rem 1.4rem; }
  .ac-axes__grid{ grid-template-columns:1fr 1fr; }
  .ac-footer__top{ grid-template-columns:1fr; }
  .ac-sec__head{ flex-direction:column; align-items:flex-start; }
}

/* Menu mobile (panneau) */
.ac-mnav{ position:fixed; inset:0; z-index:200; background:var(--k-noir); color:var(--k-blanc);
  transform:translateX(100%); transition:transform .5s var(--k-ease-io); overflow-y:auto;
  padding:2rem var(--k-pad); display:none; }
.ac-mnav.open{ display:block; transform:none; }
.ac-mnav__close{ position:absolute; top:1.4rem; right:var(--k-pad); background:none; border:0;
  color:var(--k-blanc); font-size:1.6rem; cursor:pointer; width:44px; height:44px; }
.ac-mnav a{ display:block; padding:.9rem 0; border-bottom:1px solid var(--k-line-dark);
  font-family:var(--k-serif); font-size:1.5rem; color:var(--k-blanc); text-decoration:none; }
/* sous-menu du panneau mobile : retrait et filet plus discrets que les rubriques */
.ac-mnav__sub{ border-bottom:1px solid var(--k-line-dark); padding:.2rem 0 .6rem; }
.ac-mnav__sub a{ font-family:var(--k-sans); font-size:.95rem; letter-spacing:.02em;
  padding:.55rem 0 .55rem 1.2rem; color:rgba(247,244,238,.72); border-bottom:0; }
.ac-mnav__sub a:hover,.ac-mnav__sub a.is-current{ color:var(--k-beige); }

/* ============================================================
   A11Y : focus visible + reduced motion
   ============================================================ */
.ac a:focus-visible,.ac button:focus-visible{ outline:2px solid var(--k-beige); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){
  .ac *{ animation:none !important; transition:none !important; }
  .ac-card:hover .ac-card__media img,.ac-space:hover img{ transform:none; }
}

/* ============================================================
   TÉLÉPHONE (≤ 560 px) — l'échelle fluide tombait sur son plancher et les titres
   devenaient trop petits pour un magazine ; le sur-titre à filets et le menu rapide
   débordaient à droite. On remonte l'échelle et on laisse tout passer à la ligne.
   ============================================================ */
@media (max-width:560px){
  .ac{
    --k-display: 2.75rem;
    --k-h1:      2.45rem;
    --k-h2:      2.05rem;
    --k-h3:      1.45rem;
    --k-lede:    1.06rem;
    --k-label:   .74rem;
  }
  .ac-hero__title{ font-size:2.3rem; line-height:1.1; max-width:none; }
  .ac-hero__title--long{ font-size:2.2rem; }
  .ac .hero-slider__title{ font-size:2.2rem; line-height:1.12; }
  .ac-hero__lede,.ac .hero-slider__lede{ font-size:1.04rem; line-height:1.6; max-width:none; }

  /* sur-titre : les deux filets sont de largeur fixe et poussaient le texte hors écran */
  .ac-eyebrow,.ac .hero-slider__eyebrow{ flex-wrap:wrap; gap:.7rem; }
  .ac-eyebrow::after,.ac .hero-slider__eyebrow::after{ display:none; }

  /* rien ne doit dépasser la largeur de l'écran */
  .ac-hero__grid,.ac-hero__main{ min-width:0; max-width:100%; }
  .ac-axis__t{ font-size:.7rem; letter-spacing:.1em; }
  .ac-axes{ padding-left:1.2rem; padding-right:1.2rem; }
}

/* En-tête de chapitre sur petit écran : la règle qui le remettait en une colonne était
   déclarée AVANT la grille (ligne ~970) — à spécificité égale, c'est la dernière qui
   gagne, donc les deux colonnes restaient en place et hachaient le titre. Reposée ici. */
@media (max-width:900px){
  .ac .editorial-heading{ display:block; }
  .ac .editorial-heading > .editorial-heading__lede{ margin-top:1.2rem; }
  .ac .ac-presse{ grid-template-columns:1fr; gap:1.6rem; }
  .ac .ac-presse__head{ position:static; }
  .ac .ac-presse__corps p{ text-align:left; }
}

/* Hero de l'accueil, vues des univers : « Bienvenue à » sur la première ligne et
   « L'atelier Contemporain » d'un seul tenant sur la seconde (l'équilibrage automatique
   des lignes le coupait en trois), puis « Docks de Biarritz » entre filets, comme le logo. */
.ac .ac-hero__title--maison{ text-wrap:initial; max-width:none; }
.ac .ac-hero__maison{ white-space:nowrap; }
/* le bloc titre + sous-titre prend exactement la largeur de « L'atelier Contemporain » :
   les filets se calent donc au millimètre sur les bords du titre */
.ac .ac-hero__marque{ display:inline-flex; flex-direction:column; align-items:stretch;
  width:max-content; max-width:100%; }
.ac .ac-hero__sub{ justify-content:center; margin:.35rem 0 1.7rem;
  font-size:.92rem; letter-spacing:.28em; gap:1rem;
  text-shadow:0 1px 14px rgba(20,16,13,.6); }
.ac .ac-hero__sub::before,.ac .ac-hero__sub::after{ background:rgba(247,244,238,.5); }
.ac .ac-hero__sub .ac-brand__subtxt{ background:var(--k-beige-hi); color:var(--k-noir);
  padding:.3em .85em .24em; flex:none; }
@media (max-width:560px){
  .ac .ac-hero__maison{ white-space:normal; }   /* sur téléphone, la ligne peut se plier */
  /* l'alignement au millimètre des filets n'a de sens qu'en grand écran : sur téléphone
     « max-content » imposerait la largeur du titre non replié et ferait déborder la page */
  .ac .ac-hero__marque{ width:auto; }
  .ac .ac-hero__sub{ font-size:.76rem; letter-spacing:.2em; gap:.7rem; }
}

/* Logo du menu mis en avant : le nom et « Docks de Biarritz » posés sur un aplat beige,
   texte en encre foncée. Réservé au menu du haut — le pied de page réutilise les mêmes
   classes et garde, lui, sa signature sobre sur fond sombre. */
.ac .ac-header .ac-brand__name{ display:inline-block; background:var(--k-beige-hi);
  color:var(--k-noir); padding:.1em .44em .16em; }
.ac .ac-header .ac-brand__sub{ font-size:.7rem; letter-spacing:.3em; gap:.7rem; margin-top:.42rem; }
.ac .ac-header .ac-brand__subtxt{ background:var(--k-beige-hi); color:var(--k-noir);
  padding:.28em .6em .2em; flex:none; }
.ac .ac-header .ac-brand__sub::before,
.ac .ac-header .ac-brand__sub::after{ background:rgba(247,244,238,.45); }
@media (max-width:560px){
  .ac .ac-header .ac-brand__sub{ font-size:.62rem; letter-spacing:.22em; }
}

/* Paragraphe sans classe dans une section sombre : il gardait l'encre foncée de l'ancien
   thème et devenait quasi invisible (repéré sur l'appel final de BMT). 43 paragraphes,
   12 pages. Les paragraphes déjà traités par une règle plus précise ne bougent pas. */
.ac .ac-sec--dark p:not([class]),
.ac .section--dark p:not([class]){ color:rgba(247,244,238,.78); }

/* ============================================================
   TÉLÉPHONE — CADRAGE (≤ 640 px)
   Tout passait en une seule colonne : l'accueil faisait 21 écrans de haut, les guides 23.
   On remet deux colonnes partout où le contenu s'y prête, on resserre les visuels et les
   respirations. Aucun texte, aucune image n'est touché — uniquement la mise en page.
   ============================================================ */
@media (max-width:640px){
  /* — Grilles de cartes : deux colonnes — */
  /* minmax(0,1fr) et non 1fr : sinon une colonne refuse de descendre sous la largeur
     de son contenu et la page déborde (constaté sur les guides : 428 px pour 390) */
  .ac .ac-grid,
  .ac .ac-grid--2,
  .ac .ac-grid--3,
  .ac .ac-grid--3plus,
  .ac .ac-arts,
  .ac .ac-cats,
  .ac .ac-brandgrid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem 1rem; }
  .ac .ac-etapes{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:1.6rem; }
  .ac .ac-maisons{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:1.8rem; }
  .ac .ac-grid > *,.ac .ac-arts > *,.ac .ac-cats > *,.ac .ac-brandgrid > *,
  .ac .ac-etapes > *,.ac .ac-maisons > *{ min-width:0; }
  /* césure française propre : on ne coupe un mot que s'il ne tient pas, et au bon endroit
     (« anywhere » découpait « aménagement » en « aménageme / nt ») */
  .ac .ac-art__titre,.ac .ac-art h3,.ac .ac-card__title,.ac .ac-art__desc,
  .ac .ac-art p,.ac .ac-card__desc{ overflow-wrap:break-word; hyphens:auto; -webkit-hyphens:auto; }

  /* — Cartes : proportions et typographie resserrées pour tenir sur une demi-largeur — */
  .ac .ac-card__media{ aspect-ratio:1/1; }
  .ac .ac-card__cat{ margin:.7rem 0 .3rem; font-size:.6rem; letter-spacing:.14em; }
  .ac .ac-card__title{ font-size:1.08rem; line-height:1.2; }
  .ac .ac-card__desc{ font-size:.82rem; line-height:1.5; }
  .ac .ac-card__more{ padding-top:.6rem; font-size:.64rem; letter-spacing:.1em; }

  /* — Cartes d'article — */
  .ac .ac-art__titre,.ac .ac-art h3{ font-size:1.05rem; line-height:1.22; }
  .ac .ac-art__desc,.ac .ac-art p{ font-size:.82rem; line-height:1.5; }
  .ac .ac-art__meta{ font-size:.6rem; letter-spacing:.1em; }

  /* — Respirations : les sections et les en-têtes prenaient un écran à elles seules — */
  .ac .ac-sec{ padding-block:clamp(2.4rem,7vw,3.4rem); }
  .ac .ac-sec__head{ margin-bottom:1.4rem; }
  .ac .editorial-heading{ margin-bottom:1.4rem; }
  .ac .ac-liens-wrap{ margin-top:1.4rem; }
}
