/* ==========================================================
   ZOULLI ART : couche commune à toutes les pages
   Menu animé, prix mis en avant, animations au défilement.
   Chargée après les styles de chaque page.
   ========================================================== */
:root{
  --z-encre:var(--encre,#15131A);--z-or:var(--or,#A8842F);--z-or-fonce:var(--or-fonce,#8A6D2F);
  --z-gris:var(--gris,#6E6A75);--z-trait:var(--hairline,rgba(21,19,26,.12));--z-creme:var(--creme,#FAF8F3);
  --z-clair:#E5C87B;--z-glisse:cubic-bezier(.2,.7,.2,1);
}
html.menu-ouvert,html.menu-ouvert body{overflow:hidden}

/* ---------- Barre de progression de lecture ---------- */
.z-progres{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--z-or),var(--z-clair));z-index:90;pointer-events:none}

/* ---------- Menu ---------- */
nav#nav{transition:padding .35s ease,box-shadow .35s ease}
nav#nav.compact{padding-top:.5rem;padding-bottom:.5rem;box-shadow:0 12px 32px -20px rgba(21,19,26,.4)}
nav#nav .logo img{transition:height .35s ease}
nav#nav.compact .logo img{height:38px}
nav#nav ul.nav-liens{align-items:center;gap:2rem;margin-left:1.2rem;margin-right:auto}
nav#nav ul.nav-liens>li{position:relative}
nav#nav ul.nav-liens>li>a{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 0;white-space:nowrap}
nav#nav ul.nav-liens>li>a::after{content:'';position:absolute;left:0;right:0;bottom:.5rem;height:1px;background:var(--z-or);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--z-glisse)}
nav#nav ul.nav-liens>li>a:hover::after,nav#nav ul.nav-liens>li>a[aria-current="page"]::after,nav#nav .a-sous-menu:hover>a::after{transform:scaleX(1)}
nav#nav .chevron{width:.4rem;height:.4rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .35s var(--z-glisse)}
nav#nav .a-sous-menu:hover .chevron,nav#nav .a-sous-menu:focus-within .chevron{transform:translateY(1px) rotate(225deg)}

/* le panneau des prestations : il descend, les cartes arrivent une à une */
.sous-menu{position:absolute;top:100%;left:-1.4rem;width:min(760px,84vw);background:#fff;border:1px solid var(--z-trait);box-shadow:0 34px 70px -34px rgba(21,19,26,.45);padding:1.1rem 1.1rem .4rem;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .28s ease,transform .4s var(--z-glisse),visibility .28s;z-index:60}
.sous-menu::before{content:'';position:absolute;left:0;right:0;top:-14px;height:14px}
.a-sous-menu:hover .sous-menu,.a-sous-menu:focus-within .sous-menu{opacity:1;visibility:visible;transform:none}
.sous-menu-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}
nav#nav .sous-menu a.sm-carte{display:block;font-family:'Jost',sans-serif;letter-spacing:0;color:var(--z-encre);opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .5s var(--z-glisse)}
.a-sous-menu:hover .sm-carte,.a-sous-menu:focus-within .sm-carte{opacity:1!important;transform:none!important}
.sm-carte:nth-child(1){transition-delay:.05s!important}.sm-carte:nth-child(2){transition-delay:.11s!important}.sm-carte:nth-child(3){transition-delay:.17s!important}.sm-carte:nth-child(4){transition-delay:.23s!important}
.sm-carte .sm-img{display:block;overflow:hidden;aspect-ratio:1/1;background:var(--z-creme)}
.sm-carte img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--z-glisse)}
.sm-carte:hover img{transform:scale(1.08)}
.sm-carte .sm-nom{display:block;margin-top:.7rem;font-family:'Cormorant Garamond',serif;font-size:1.18rem;line-height:1.15;color:var(--z-encre);text-transform:none}
.sm-carte .sm-prix{display:block;margin-top:.25rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.82rem;color:var(--z-or)}
.sm-pied{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.8rem 0;border-top:1px solid var(--z-trait);font-family:'Bebas Neue',sans-serif;letter-spacing:.2em;font-size:.82rem;color:var(--z-gris)}
nav#nav .sm-pied a{color:var(--z-or);font-size:.82rem;letter-spacing:.2em}

/* le bouton de devis du menu */
nav#nav .nav-cta{display:inline-flex;align-items:center;gap:.6rem;margin-right:1rem;position:relative;overflow:hidden;isolation:isolate;white-space:nowrap}
nav#nav .nav-cta::before{content:'';position:absolute;inset:0;background:var(--z-or);transform:translateY(101%);transition:transform .4s var(--z-glisse);z-index:-1}
nav#nav .nav-cta:hover{background:var(--z-encre)}
nav#nav .nav-cta:hover::before{transform:none}
nav#nav .nav-cta .fleche{display:inline-block;transition:transform .35s var(--z-glisse)}
nav#nav .nav-cta:hover .fleche{transform:translateX(4px)}
@media (max-width:1180px) and (min-width:901px){
  nav#nav ul.nav-liens{gap:1.25rem;margin-left:.4rem}
  nav#nav ul.nav-liens>li>a{font-size:.86rem;letter-spacing:.14em}
  nav#nav .nav-cta{font-size:.86rem;padding:.55rem 1rem;margin-right:0}
}
@media (min-width:901px){nav#nav .nav-cta{margin-right:0}}

/* ---------- Menu mobile : plein écran, entrée en cascade ---------- */
@media (max-width:900px){
  nav#nav .nav-cta{display:inline-flex;font-size:.78rem!important;letter-spacing:.12em;padding:.55rem .85rem;margin-left:auto;margin-right:.6rem!important;color:#fff!important;background:var(--z-encre)}
  nav#nav .menu-mobile{align-items:stretch;justify-content:flex-start;gap:0;padding:4.6rem 7vw 2.6rem;background:#fff;transition:transform .5s var(--z-glisse)}
  nav#nav .menu-mobile>*{opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .5s var(--z-glisse)}
  nav#nav #burger:checked~.menu-mobile>*{opacity:1;transform:none}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(2){transition-delay:.14s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(3){transition-delay:.19s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(4){transition-delay:.24s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(5){transition-delay:.29s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(6){transition-delay:.34s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(7){transition-delay:.39s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(8){transition-delay:.44s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(9){transition-delay:.49s}
  nav#nav .menu-mobile .menu-close{opacity:1;transform:none;color:var(--z-encre)}
  nav#nav .menu-mobile .mm-titre{font-family:'Bebas Neue',sans-serif;letter-spacing:.36em;font-size:.76rem;color:var(--z-or);margin:0 0 .3rem;line-height:1.4}
  nav#nav .menu-mobile a.mm-presta{display:flex;align-items:center;gap:.95rem;padding:.62rem 0;border-bottom:1px solid var(--z-trait);font-family:'Cormorant Garamond',serif;font-size:1.42rem;letter-spacing:0;line-height:1.1;color:var(--z-encre)}
  nav#nav .menu-mobile a.mm-presta img{width:52px;height:52px;object-fit:cover;flex:none}
  nav#nav .menu-mobile a.mm-presta em{margin-left:auto;font-style:normal;font-family:'Bebas Neue',sans-serif;letter-spacing:.12em;font-size:.84rem;color:var(--z-or);white-space:nowrap}
  nav#nav .menu-mobile a.mm-devis{display:block;margin:1.3rem 0 1.5rem;padding:1rem 1rem;text-align:center;background:var(--z-encre);color:#fff!important;font-family:'Bebas Neue',sans-serif;font-size:1rem!important;letter-spacing:.2em;border:0}
  nav#nav .menu-mobile a.mm-devis small{display:block;margin-top:.2rem;font-size:.72rem;letter-spacing:.2em;color:var(--z-clair)}
  nav#nav .menu-mobile .mm-liens{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}
  nav#nav .menu-mobile .mm-liens a{font-family:'Jost',sans-serif;font-size:1.02rem;letter-spacing:.01em;line-height:1.3;padding:.6rem 0;border-bottom:1px solid var(--z-trait);color:var(--z-encre)}
  nav#nav .menu-mobile .mm-liens a[aria-current="page"],nav#nav .menu-mobile a.mm-presta[aria-current="page"]{color:var(--z-or)}
}

/* ---------- Barre de devis fixe sur mobile ---------- */
.z-cta{display:none}
@media (max-width:900px){
  .z-cta{display:flex;align-items:center;justify-content:space-between;gap:.8rem;position:fixed;left:0;right:0;bottom:0;z-index:48;padding:.7rem 5vw calc(.7rem + env(safe-area-inset-bottom));background:var(--z-encre);color:#fff;transform:translateY(105%);transition:transform .45s var(--z-glisse);border-top:1px solid rgba(229,200,123,.45)}
  .z-cta.visible{transform:none}
  .z-cta span{font-family:'Cormorant Garamond',serif;font-size:1.02rem;line-height:1.2;color:#fff}
  .z-cta span b{font-weight:500;color:var(--z-clair)}
  .z-cta strong{flex:none;font-family:'Bebas Neue',sans-serif;font-weight:400;letter-spacing:.16em;font-size:.84rem;background:var(--z-clair);color:var(--z-encre);padding:.6rem .9rem;white-space:nowrap}
  body.z-avec-cta footer{padding-bottom:6.5rem}
}

/* ==========================================================
   Pages galerie (corps .z)
   ========================================================== */
.z{animation:z-entree .7s ease both}
@keyframes z-entree{from{opacity:0}to{opacity:1}}
@keyframes z-monte{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes z-remplit{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* boutons : la flèche avance */
.z a.btn{position:relative}
.z a.btn::after{content:'\2192';display:inline-block;margin-left:.7em;transition:transform .35s var(--z-glisse)}
.z a.btn:hover::after{transform:translateX(5px)}

/* cascade : cartes et photos arrivent l'une après l'autre */
.z .reveal.in .grid-3>*,.z .reveal.in .grid-4>*,.z .reveal.in .etapes>*,.z .reveal.in .presta-grille>*,.z .reveal.in .tarifs-grille>*,.z .reveal.in .deux-colonnes>*{animation:z-monte .85s var(--z-glisse) backwards}
.z .reveal.in :is(.grid-3,.grid-4,.etapes,.presta-grille,.tarifs-grille,.deux-colonnes)>*:nth-child(2){animation-delay:.1s}
.z .reveal.in :is(.grid-3,.grid-4,.etapes,.presta-grille,.tarifs-grille,.deux-colonnes)>*:nth-child(3){animation-delay:.2s}
.z .reveal.in :is(.grid-3,.grid-4,.etapes,.presta-grille,.tarifs-grille,.deux-colonnes)>*:nth-child(4){animation-delay:.3s}
.z .reveal.in :is(.grid-3,.grid-4,.etapes,.presta-grille,.tarifs-grille,.deux-colonnes)>*:nth-child(5){animation-delay:.4s}
.z .reveal.in :is(.grid-3,.grid-4,.etapes,.presta-grille,.tarifs-grille,.deux-colonnes)>*:nth-child(6){animation-delay:.5s}
.z .stats.reveal.in .stat{animation:z-monte .8s var(--z-glisse) backwards}
.z .stats.reveal.in .stat:nth-child(2){animation-delay:.1s}.z .stats.reveal.in .stat:nth-child(3){animation-delay:.2s}.z .stats.reveal.in .stat:nth-child(4){animation-delay:.3s}

/* en-tête de page : le texte monte à l'arrivée */
.z header.hero .hero-txt>*{animation:z-monte .9s var(--z-glisse) backwards}
.z header.hero .hero-txt>*:nth-child(2){animation-delay:.08s}
.z header.hero .hero-txt>*:nth-child(3){animation-delay:.16s}
.z header.hero .hero-txt>*:nth-child(4){animation-delay:.24s}
.z header.hero .hero-txt>*:nth-child(5){animation-delay:.32s}
.z header.hero .hero-txt>*:nth-child(6){animation-delay:.4s}
.z header.hero .hero-img{animation:z-monte 1.1s var(--z-glisse) .2s backwards}
.z header.hero .hero-img.paysage img{aspect-ratio:4/3;object-position:50% 40%}

/* ---------- Le prix, partout ---------- */
.z .prix-ligne{margin:0 0 1.8rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.14em;font-size:1rem;color:var(--z-gris);display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}
.z .prix-ligne strong{color:var(--z-or);font-weight:400;font-size:1.45rem;letter-spacing:.08em}
.z .prix-ligne .pastille{display:inline-flex;align-items:center;gap:.5rem}
.z .prix-ligne .pastille::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--z-or);animation:z-pouls 2s infinite}
@keyframes z-pouls{0%{box-shadow:0 0 0 0 rgba(168,132,47,.55)}70%{box-shadow:0 0 0 9px rgba(168,132,47,0)}100%{box-shadow:0 0 0 0 rgba(168,132,47,0)}}
.z .hero-preuves{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--z-trait);font-family:'Bebas Neue',sans-serif;letter-spacing:.2em;font-size:.8rem;color:var(--z-gris)}
.z .hero-preuves li:first-child{color:var(--z-or)}

/* ---------- Accueil : diaporama des quatre prestations ---------- */
.z .diapo{position:relative}
.z .diapo-cadre{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--z-creme)}
.z .diapo-vue{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;pointer-events:none}
.z .diapo-vue.actif{opacity:1;pointer-events:auto}
.z .diapo-vue img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;transform:scale(1.12);transition:transform 6s ease-out}
.z .diapo-vue.actif img{transform:scale(1)}
.z .diapo-etiquette{position:absolute;left:0;bottom:0;background:#fff;padding:.9rem 1.3rem .8rem;display:flex;flex-direction:column;gap:.1rem;transform:translateY(100%);transition:transform .7s var(--z-glisse) .25s}
.z .diapo-vue.actif .diapo-etiquette{transform:none}
.z .diapo-etiquette strong{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.35rem;line-height:1.1;color:var(--z-encre)}
.z .diapo-etiquette span{font-family:'Bebas Neue',sans-serif;letter-spacing:.18em;font-size:.86rem;color:var(--z-or)}
.z .diapo-points{display:flex;gap:.5rem;margin-top:1.9rem}
.z .diapo-point{flex:1;height:3px;background:var(--z-trait);border:0;padding:0;cursor:pointer;position:relative;overflow:hidden}
.z .diapo-point::after{content:'';position:absolute;inset:0;background:var(--z-or);transform:scaleX(0);transform-origin:0 50%}
.z .diapo-point.actif::after{animation:z-remplit 4.4s linear forwards}

/* ---------- Bandeau défilant des références ---------- */
.z .marquee{padding:.95rem 0}
.z .marquee:hover .marquee-track{animation-play-state:paused}

/* ---------- Cartes de prestation avec photo ---------- */
.z .presta-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;margin-top:3rem}
.z a.presta{display:flex;flex-direction:column;background:#fff;border:1px solid var(--z-trait);transition:border-color .35s,box-shadow .35s,transform .45s var(--z-glisse)}
.z a.presta:hover{border-color:var(--z-or);box-shadow:0 26px 50px -30px rgba(21,19,26,.4);transform:translateY(-6px)}
.z .presta-img{display:block;overflow:hidden;aspect-ratio:4/5;background:var(--z-creme);position:relative}
.z .presta-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--z-glisse)}
.z a.presta:hover .presta-img img{transform:scale(1.07)}
.z .presta-img .pastille-prix{position:absolute;left:0;top:1rem;background:var(--z-encre);color:#fff;font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.82rem;padding:.45rem .8rem}
.z .presta-img .pastille-prix b{font-weight:400;color:var(--z-clair)}
.z .presta-corps{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.3rem 1.4rem}
.z .presta-corps .tag{font-family:'Bebas Neue',sans-serif;letter-spacing:.3em;font-size:.74rem;color:var(--z-or)}
.z .presta-nom{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.7rem;line-height:1.1;margin:.5rem 0 .6rem;color:var(--z-encre)}
.z .presta-txt{color:var(--z-gris);font-size:.95rem;flex:1}
.z .presta-prix{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--z-trait);font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.82rem;color:var(--z-gris)}
.z .presta-prix b{display:block;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:2rem;letter-spacing:0;line-height:1.1;color:var(--z-or-fonce)}
.z .presta-lien{margin-top:.9rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.22em;font-size:.86rem;color:var(--z-encre)}
.z .presta-lien i{font-style:normal;display:inline-block;margin-left:.4em;transition:transform .35s var(--z-glisse)}
.z a.presta:hover .presta-lien i{transform:translateX(5px)}
.z a.presta:hover .presta-lien{color:var(--z-or)}

/* ---------- Bande des tarifs ---------- */
.z .tarifs{background:var(--z-encre);color:#fff}
.z .tarifs .inner{max-width:1280px;margin:0 auto;padding:6rem 6vw}
.z .tarifs h2{color:#fff}
.z .tarifs h2 em{color:var(--z-clair)}
.z .tarifs .lede{color:rgba(255,255,255,.7)}
.z .tarifs-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);margin:3rem 0 2.6rem}
.z a.tarif{display:flex;flex-direction:column;gap:.3rem;background:var(--z-encre);padding:2.1rem 1.5rem 1.9rem;transition:background .35s}
.z a.tarif:hover{background:#221f2a}
.z .tarif .t-nom{font-family:'Bebas Neue',sans-serif;letter-spacing:.24em;font-size:.86rem;color:rgba(255,255,255,.75)}
.z .tarif .t-des{font-family:'Jost',sans-serif;font-size:.82rem;letter-spacing:.08em;color:rgba(255,255,255,.5);margin-top:1rem}
.z .tarif .t-prix{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,3.4vw,3rem);line-height:1;color:var(--z-clair);font-variant-numeric:tabular-nums;white-space:nowrap}
.z .tarif .t-lien{margin-top:1.2rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.22em;font-size:.8rem;color:#fff}
.z .tarif .t-lien i{font-style:normal;display:inline-block;margin-left:.4em;transition:transform .35s var(--z-glisse)}
.z a.tarif:hover .t-lien i{transform:translateX(5px)}
.z .tarifs a.btn{border-color:var(--z-clair);color:var(--z-encre);background:var(--z-clair)}
.z .tarifs a.btn:hover{background:#fff;border-color:#fff}
.z .tarifs .note{margin-top:1.2rem;font-size:.9rem;color:rgba(255,255,255,.55)}

/* ---------- Ligne de vente sous chaque galerie ---------- */
.z .vente{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--z-trait)}
.z .vente p{font-family:'Cormorant Garamond',serif;font-size:1.5rem;line-height:1.2;color:var(--z-encre);margin-right:auto}
.z .vente p b{font-weight:500;color:var(--z-or-fonce)}
.z .vente p small{display:block;font-family:'Bebas Neue',sans-serif;letter-spacing:.2em;font-size:.78rem;color:var(--z-gris);margin-top:.3rem}
.z .vente .lien-or{margin-top:0}

/* ---------- Étapes ---------- */
.z .etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.4rem;margin-top:2.6rem;counter-reset:etape;text-align:left}
.z .etape{counter-increment:etape;border-top:1px solid var(--hairline-or,rgba(168,132,47,.4));padding-top:1.1rem}
.z .etape::before{content:counter(etape,decimal-leading-zero);font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.5rem;color:var(--z-or)}
.z .etape h3{font-size:1.35rem;margin:.35rem 0 .4rem}
.z .etape p{color:var(--z-gris);font-size:.95rem}

/* ---------- Appel final ---------- */
.z .appel{background:var(--z-encre);color:#fff;text-align:center}
.z .appel .inner{max-width:820px;margin:0 auto;padding:6.5rem 6vw}
.z .appel h2{color:#fff}
.z .appel h2 em{color:var(--z-clair)}
.z .appel p{color:rgba(255,255,255,.7);margin:1.3rem auto 2.4rem;max-width:56ch}
.z .appel a.btn{background:var(--z-clair);border-color:var(--z-clair);color:var(--z-encre)}
.z .appel a.btn:hover{background:#fff;border-color:#fff}
.z .appel .prix-rappel{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.6rem;margin:0 auto 2.2rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.86rem;color:rgba(255,255,255,.6)}
.z .appel .prix-rappel b{font-weight:400;color:var(--z-clair)}
.z .cercle-discret{text-align:center}
.z .cercle-discret .lede{margin:1rem auto 1.8rem}

/* autres prestations, en bas de chaque page de prestation */
.z .autres-prestas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.6rem;text-align:left}
.z a.autre{display:flex;gap:1rem;align-items:center;border:1px solid var(--z-trait);background:#fff;padding:.8rem;transition:border-color .3s,transform .4s var(--z-glisse)}
.z a.autre:hover{border-color:var(--z-or);transform:translateY(-3px)}
.z a.autre img{width:76px;height:76px;object-fit:cover;flex:none}
.z a.autre strong{display:block;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.25rem;line-height:1.15}
.z a.autre span{font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.8rem;color:var(--z-or)}

@media (max-width:1100px){
  .z .presta-grille{grid-template-columns:repeat(2,1fr)}
  .z .tarifs-grille{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .z .autres-prestas{grid-template-columns:1fr}
  .z .tarifs .inner,.z .appel .inner{padding:4.2rem 6vw}
}
@media (max-width:760px){
  .z .presta-grille{gap:.7rem;margin-top:2rem}
  .z .presta-corps{padding:.9rem .8rem 1rem}
  .z .presta-corps .tag{font-size:.64rem;letter-spacing:.2em}
  .z .presta-nom{font-size:1.25rem;margin:.3rem 0 .2rem}
  .z .presta-txt{display:none}
  .z .presta-prix{margin-top:.6rem;padding-top:.6rem;font-size:.68rem;letter-spacing:.12em}
  .z .presta-prix b{font-size:1.5rem}
  .z .presta-lien{font-size:.74rem;letter-spacing:.16em;margin-top:.6rem}
  .z .presta-img .pastille-prix{font-size:.7rem;padding:.35rem .55rem;top:.6rem}
  .z .tarifs-grille{margin:2rem 0 2rem}
  .z a.tarif{padding:1.3rem .9rem 1.2rem}
  .z .tarif .t-nom{font-size:.72rem;letter-spacing:.16em}
  .z .tarif .t-des{font-size:.72rem;margin-top:.6rem}
  .z .tarif .t-prix{font-size:1.9rem}
  .z .tarif .t-lien{font-size:.7rem;letter-spacing:.14em;margin-top:.8rem}
  .z .tarifs a.btn,.z .appel a.btn,.z .vente a.btn{width:100%;text-align:center}
  .z .vente{margin-top:1.8rem;padding-top:1.3rem}
  .z .vente p{font-size:1.3rem;margin-right:0;width:100%}
  .z .hero-preuves{margin-top:1.5rem;padding-top:1rem;font-size:.72rem;gap:.3rem 1rem}
  .z .diapo-etiquette{padding:.7rem 1rem .6rem}
  .z .diapo-etiquette strong{font-size:1.15rem}
  .z .etapes{grid-template-columns:1fr 1fr;gap:1.1rem}
  .z header.hero .hero-img.paysage{max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .z,.z *{animation:none!important}
  .z .diapo-vue img{transform:none!important;transition:none}
  .z .diapo-vue,.z .diapo-etiquette{transition:none}
  nav#nav .menu-mobile>*,.sm-carte{transition:none!important}
}

/* ---------- Occasions, contact, compléments (02/10/2026) ---------- */
.sm-occasions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.3rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--z-trait)}
.sm-occasions span{font-family:'Bebas Neue',sans-serif;letter-spacing:.24em;font-size:.74rem;color:var(--z-or)}
nav#nav .sm-occasions a{font-family:'Jost',sans-serif;font-size:.92rem;letter-spacing:.01em;text-transform:none;color:var(--z-encre);border-bottom:1px solid transparent;transition:border-color .25s,color .25s}
nav#nav .sm-occasions a:hover{color:var(--z-or);border-color:var(--z-or)}
.sm-pied{margin-top:.8rem}
.z a.card.occasion{color:inherit}
.z a.card.occasion .presta-lien{margin-top:.2rem}
.z a.card.occasion:hover .presta-lien{color:var(--z-or)}
.z a.card.occasion:hover .presta-lien i{transform:translateX(5px)}
.z .grand-prix{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.4rem;margin-top:1.6rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.2em;font-size:.95rem;color:var(--z-gris)}
.z .grand-prix b{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(3.4rem,8vw,5.6rem);letter-spacing:0;line-height:1;color:var(--z-or-fonce);font-variant-numeric:tabular-nums;white-space:nowrap}
.z .prix-liste{list-style:none;margin:1.6rem 0 0;border-top:1px solid var(--z-trait);max-width:30rem}
.z .prix-liste a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--z-trait);font-family:'Cormorant Garamond',serif;font-size:1.22rem;line-height:1.2;color:var(--z-encre);transition:color .25s,padding .35s var(--z-glisse)}
.z .prix-liste a:hover{color:var(--z-or);padding-left:.4rem}
.z .prix-liste b{font-family:'Bebas Neue',sans-serif;font-weight:400;letter-spacing:.14em;font-size:.92rem;color:var(--z-or);white-space:nowrap}
.z .prix-objet{min-height:1.2rem;margin:.5rem 0 .2rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.16em;font-size:.86rem;color:var(--z-or)}
.z .prix-objet:empty{display:none}

/* ---------- Le mot de l'artiste : sa phrase, sa signature ---------- */
.z .mot{background:var(--z-encre);color:#fff;text-align:center}
.z .mot .inner{max-width:900px;margin:0 auto;padding:5.5rem 6vw}
.z .mot .eyebrow{color:var(--z-clair)}
.z .mot blockquote{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:1.2;margin:1.4rem 0 2rem;color:#fff}
.z .mot blockquote em{font-style:italic;color:var(--z-clair)}
.z .mot-signature{display:block;margin:0 auto;height:74px;width:auto;filter:invert(1);opacity:.95}
.z .mot-nom{margin-top:.9rem;font-family:'Bebas Neue',sans-serif;letter-spacing:.3em;font-size:.78rem;color:rgba(255,255,255,.6)}
@media (max-width:760px){.z .mot .inner{padding:3.8rem 6vw}.z .mot-signature{height:60px}}

/* ---------- Les occasions, plus visibles sans charger ---------- */
.z .ligne-occasions{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.6rem;margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--z-trait)}
.z .ligne-occasions span{font-family:'Bebas Neue',sans-serif;letter-spacing:.26em;font-size:.8rem;color:var(--z-or)}
.z .ligne-occasions a{font-family:'Cormorant Garamond',serif;font-size:1.3rem;line-height:1.2;color:var(--z-encre);border-bottom:1px solid var(--hairline-or,rgba(168,132,47,.4));transition:color .25s,border-color .25s}
.z .ligne-occasions a:hover{color:var(--z-or);border-color:var(--z-or)}
.z .ligne-occasions + .lien-or{margin-top:1.6rem}
nav#nav .mm-occasions{display:none}
@media (max-width:900px){
  nav#nav .menu-mobile .mm-occasions{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.1rem;margin:.9rem 0 0}
  nav#nav .menu-mobile .mm-occasions span{width:100%;font-family:'Bebas Neue',sans-serif;letter-spacing:.3em;font-size:.72rem;color:var(--z-or)}
  nav#nav .menu-mobile .mm-occasions a{font-family:'Jost',sans-serif;font-size:.98rem;letter-spacing:.01em;line-height:1.3;color:var(--z-encre);border-bottom:1px solid var(--z-trait);padding-bottom:.1rem}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(10){transition-delay:.54s}
  nav#nav #burger:checked~.menu-mobile>*:nth-child(11){transition-delay:.59s}
  .z .ligne-occasions{margin-top:1.6rem;padding-top:1.1rem;gap:.4rem 1.2rem}
  .z .ligne-occasions span{width:100%}
  .z .ligne-occasions a{font-size:1.15rem}
}
.z .prix-liste .pl-titre{padding:1.1rem 0 .45rem;border-bottom:1px solid var(--z-trait);font-family:'Bebas Neue',sans-serif;letter-spacing:.26em;font-size:.76rem;color:var(--z-or)}

/* ==========================================================
   TÉLÉPHONE : pages plus courtes, titres plus fins, lecture fluide
   ========================================================== */
.z details.repli>summary{list-style:none;cursor:default;pointer-events:none}
.z details.repli>summary::-webkit-details-marker{display:none}
.z details.repli>summary h3{display:inline}
footer .col.large{min-width:0}

@media (max-width:760px){
  /* --- titres et textes : plus fins --- */
  .z header.hero h1,.z .hero h1,.z h1.display-xl{font-size:clamp(1.75rem,7.6vw,2.05rem)!important;line-height:1.12!important}
  .z h2,.z .section h2,.z .inner h2,.z .band-inner h2,.z .cercle h2{font-size:clamp(1.45rem,6.3vw,1.72rem)!important;line-height:1.16!important;margin-top:.45rem}
  .z .eyebrow{font-size:.72rem!important;letter-spacing:.28em!important}
  .z .lede{font-size:.97rem!important;line-height:1.62}
  .z .card h3{font-size:1.28rem!important;margin:.5rem 0 .35rem!important}
  .z .card p{font-size:.9rem}
  .z a.btn,.z .btn{font-size:.84rem!important;letter-spacing:.17em!important;padding:.82rem 1.1rem!important}

  /* --- respiration : moins de vide entre les blocs --- */
  .z .section{padding:2.5rem 6vw!important}
  .z .section--creme>.inner{padding:0}
  .z .grid-3,.z .grid-4{margin-top:1.3rem!important}
  .z .lien-or{margin-top:1.2rem;font-size:.84rem}
  .z .cercle .inner,.z .tarifs .inner,.z .appel .inner{padding:2.8rem 6vw!important}

  /* --- en-tête de page : l'essentiel sur le premier écran --- */
  .z header.hero{padding:5.4rem 6vw 1.8rem!important;gap:1.5rem!important;min-height:0!important}
  .z header.hero.accueil{padding-top:1.1rem!important}
  .z header.hero .hero-txt .lede,.z header.hero .hero-txt p.lede{margin:.8rem 0 1rem!important}
  .z .hero-txt .signature{height:44px!important;margin-bottom:.8rem!important}
  .z .prix-ligne{margin:0 0 1rem!important;font-size:.84rem;gap:.2rem .8rem}
  .z .prix-ligne strong{font-size:1.2rem}
  .z .hero-ctas{gap:.55rem!important;margin-top:0!important}
  .z .hero-preuves{margin-top:1rem!important;padding-top:.75rem!important;font-size:.64rem!important;gap:.2rem .8rem!important;letter-spacing:.16em}
  .z header.hero .hero-img{max-width:none!important}
  .z header.hero .hero-img img{aspect-ratio:1/1!important}
  .z header.hero .hero-img.paysage img{aspect-ratio:3/2!important}
  .z .diapo-cadre{aspect-ratio:1/1}
  .z .diapo-points{margin-top:1.2rem}
  .z .hero-img .cartel{margin-top:.7rem}
  .z .marquee{padding:.7rem 0}
  .z .marquee span{font-size:.8rem;margin:0 1.6rem}

  /* --- les quatre prestations : photo carrée, carte serrée --- */
  .z .presta-img{aspect-ratio:1/1}
  .z .presta-corps .tag{display:none}
  .z .presta-nom{font-size:1.16rem;margin:0 0 .1rem}
  .z .presta-prix{margin-top:.45rem;padding-top:.45rem}
  .z .presta-prix b{font-size:1.32rem}
  .z .presta-lien{margin-top:.45rem}
  .z .ligne-occasions{margin-top:1.2rem;padding-top:.9rem}
  .z .ligne-occasions a{font-size:1.05rem}

  /* --- chiffres : une seule ligne --- */
  .z .stats{grid-template-columns:repeat(4,1fr)!important}
  .z .stat{padding:1rem .25rem!important}
  .z .stat .n{font-size:1.32rem!important}
  .z .stat .l{font-size:.5rem!important;letter-spacing:.1em!important;margin-top:.35rem}

  /* --- galeries : trois vignettes, un nom, un prix, un bouton --- */
  .z .grid-3{gap:.45rem!important}
  .z .grid-3 .cartel{font-size:0!important;line-height:0;padding-left:.45rem;margin-top:.45rem}
  .z .grid-3 .cartel strong{font-size:.6rem!important;line-height:1.25;letter-spacing:.08em}
  .z .vente{margin-top:1.2rem;padding-top:1rem;gap:.7rem 1rem}
  .z .vente p{font-size:1.08rem;line-height:1.25}
  .z .vente p small{font-size:.66rem;margin-top:.2rem}
  .z .vente .lien-or{font-size:.76rem}

  /* --- « Pour quelle occasion ? » : trois lignes au lieu de trois cartes --- */
  .z #occasions a.card.occasion{flex-direction:row;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:.8rem;padding:.95rem 1rem!important;min-height:0!important}
  .z #occasions a.card.occasion .tag,.z #occasions a.card.occasion p:not(.prix),.z #occasions a.card.occasion .presta-lien{display:none}
  .z #occasions a.card.occasion h3{margin:0!important;font-size:1.18rem!important}
  .z #occasions a.card.occasion .prix{margin:0;font-size:1rem;white-space:nowrap;flex:none}
  .z #occasions .grid-3{grid-template-columns:1fr!important;gap:.5rem!important}
  /* sur l'accueil, la ligne « Pour votre entreprise » et les prix des galeries suffisent */
  .z.page-index #occasions,.z.page-index #tarifs{display:none}

  /* --- tarifs, étapes, mot de l'artiste, questions --- */
  .z .tarifs .lede{display:none}
  .z .tarifs-grille{margin:1.4rem 0 1.5rem}
  .z a.tarif{padding:1rem .8rem .95rem}
  .z .tarif .t-des{margin-top:.35rem}
  .z .tarif .t-prix{font-size:1.5rem}
  .z .tarif .t-lien{margin-top:.5rem}
  .z .etapes{margin-top:1.4rem;gap:.9rem}
  .z .etape{padding-top:.7rem}
  .z .etape::before{font-size:1.2rem}
  .z .etape h3{font-size:1.1rem;margin:.15rem 0 .2rem}
  .z .etape p{font-size:.86rem;line-height:1.5}
  .z .mot .inner{padding:2.6rem 6vw!important}
  .z .mot blockquote{font-size:1.42rem!important;margin:.9rem 0 1.2rem}
  .z .mot-signature{height:46px}
  .z .grand-prix{margin-top:1rem;font-size:.8rem}
  .z .grand-prix b{font-size:2.5rem}
  .z .deux-colonnes{gap:1rem!important;margin:1.2rem 0 .2rem!important}
  .z .deux-colonnes h3{font-size:1.22rem!important;margin-bottom:.3rem}
  .z .liste-check li{padding:.5rem 0 .5rem 1.3rem;font-size:.92rem;line-height:1.5}
  .z .liste-check li::before{top:1rem}
  .z details.repli{border-top:1px solid var(--z-trait);border-bottom:1px solid var(--z-trait)}
  .z details.repli>summary{pointer-events:auto;cursor:pointer;position:relative;padding:.85rem 2rem .85rem 0}
  .z details.repli>summary::after{content:'+';position:absolute;right:.2rem;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--z-or);transition:transform .3s}
  .z details.repli[open]>summary::after{transform:translateY(-50%) rotate(45deg)}
  .z .faq{margin-top:1.2rem}
  .z .faq summary{font-size:1.04rem!important;padding:.85rem 2rem .85rem 0}
  .z .grid-4 .card{padding:1.1rem 1.1rem 1rem!important;min-height:0!important}
  .z .grid-4{gap:.6rem!important}

  /* --- avis et presse : on fait défiler du doigt, on ne les empile plus --- */
  .z .grid-3:has(.avis){display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:.7rem!important;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .z .grid-3:has(.avis)::-webkit-scrollbar{display:none}
  .z .avis{flex:0 0 84%;scroll-snap-align:start;padding:1.3rem 1.1rem}
  .z .avis blockquote{font-size:1.08rem;margin:.7rem 0 .8rem}
  .z .media-chips{flex-wrap:nowrap!important;overflow-x:auto;justify-content:flex-start!important;gap:.5rem!important;padding:0 0 .5rem;margin-top:1rem!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .z .media-chips::-webkit-scrollbar{display:none}
  .z .media-chip{flex:none}
  .z .appel p{margin:.9rem auto 1.3rem;font-size:.95rem}
  .z .appel .prix-rappel{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .8rem;margin-bottom:1.4rem;font-size:.72rem;letter-spacing:.1em;text-align:left}
  .z .cercle-discret .lede{margin:.7rem auto 1.1rem}
  .z .autres-prestas{margin-top:1.2rem;gap:.5rem}
  .z a.autre{padding:.55rem}
  .z a.autre img{width:58px;height:58px}
  .z a.autre strong{font-size:1.08rem}
  .z .prix-liste{margin-top:1rem}
  .z .prix-liste a{padding:.5rem 0;font-size:1.05rem}
  .z .prix-liste b{font-size:.8rem}
  .z .prix-liste .pl-titre{padding:.8rem 0 .35rem}

  /* --- bas de page : deux colonnes au lieu d'une longue liste --- */
  footer{display:grid!important;grid-template-columns:1fr 1fr;gap:1.4rem 1.2rem!important;padding:2.2rem 6vw 2rem!important}
  footer .col:first-child{grid-column:1/-1}
  footer .col h4{margin-bottom:.5rem!important;font-size:.76rem!important}
  footer .col a{font-size:.84rem!important;margin-bottom:.32rem!important;line-height:1.35}
  footer .legal{grid-column:1/-1;margin-top:.4rem!important;padding-top:1rem!important}
  body.z-avec-cta footer{padding-bottom:5.6rem!important}
}

/* ---------- Pastilles presse (elles n'avaient aucun style) ---------- */
.z .media-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1.6rem}
.z .media-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border:1px solid var(--z-trait);background:#fff;font-family:'Jost',sans-serif;font-size:.88rem;line-height:1.2;color:var(--z-encre);white-space:nowrap;transition:border-color .25s,color .25s}
.z .media-chip img{width:18px;height:18px;border-radius:3px;flex:none}
.z .media-chip:hover{border-color:var(--z-or);color:var(--z-or)}

@media (max-width:760px){
  /* --- accueil : encore plus court --- */
  .z .heritage-home .inner{padding:2.4rem 6vw 2.2rem!important;gap:1rem!important}
  .z .heritage-home .visuel img{width:min(46%,185px)!important}
  .z .heritage-home h2{font-size:2.5rem!important;line-height:1!important}
  .z .heritage-home .sous{font-size:1.1rem;margin-top:.4rem}
  .z .heritage-home .lede{margin-top:.8rem}
  .z .heritage-home .hero-ctas{margin-top:1.2rem}
  .z .heritage-home .note{margin-top:.6rem;font-size:.76rem}
  .z.page-index :is(#live,#portraits,#fresques,#vehicules) .lede{display:none}
  .z.page-index .etape p{display:none}
  .z.page-index .etapes{margin-top:1rem}
  .z .presta-lien{display:none}

  /* --- cartes « pour qui » : deux colonnes --- */
  .z .grid-4:not(:has(.avis)){grid-template-columns:1fr 1fr!important}
  .z .grid-4 .card .tag{display:none}
  .z .grid-4 .card h3{font-size:1.08rem!important;margin:0 0 .3rem!important}
  .z .grid-4 .card p{font-size:.82rem;line-height:1.45}
  .z .grid-4 .card{padding:.9rem .85rem!important}

  /* --- revue de presse, références et bénéfices : on fait défiler du doigt --- */
  .z .presse-grid,.z .refs-grid,.z .benefits-grid{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:.7rem!important;margin-top:1.3rem!important;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .z .presse-grid::-webkit-scrollbar,.z .refs-grid::-webkit-scrollbar,.z .benefits-grid::-webkit-scrollbar{display:none}
  .z .presse-grid>*,.z .refs-grid>*,.z .benefits-grid>*{flex:0 0 80%;scroll-snap-align:start}
  .z .benefit{padding:1.3rem 1.1rem!important}
  .z .benefit h3{font-size:1.3rem!important}
  .z .benefit .b-ico{font-size:1.5rem!important;margin-bottom:.4rem!important}
  .z .ref-info{padding:1rem 1.1rem!important}
  .z .ref-info h3{font-size:1.25rem!important}
  .z .logos-line{margin-top:1.4rem!important;gap:.4rem!important}
  .z .logo-chip{font-size:.74rem!important;padding:.4rem .7rem!important}
  .z .concept-grid,.z .presta-grille{margin-top:1.3rem}

  /* --- contact : le formulaire arrive plus vite --- */
  .z.page-contact header.hero .hero-img{display:none}
  .z.page-contact header.hero{padding-bottom:.6rem!important}
}
.z .repli-prix>summary h3{font-family:'Bebas Neue',sans-serif;font-weight:400;letter-spacing:.26em;font-size:.8rem;color:var(--z-or)}
.z .repli-prix{margin-top:1.4rem}
.z .repli-prix .prix-liste{margin-top:.5rem}
@media (max-width:760px){
  .z .repli-prix{margin-top:1rem}
  .z .repli-prix .prix-liste{margin-top:0;border-top:0}
}
@media (max-width:760px){
  /* en-tête toujours sur une colonne au téléphone, sur toutes les pages */
  .z header.hero{grid-template-columns:1fr!important}
}

/* ---------- Lien de langue dans le menu ---------- */
nav#nav .nav-langue{font-family:'Bebas Neue',sans-serif;letter-spacing:.2em;font-size:.86rem;color:var(--z-gris);margin-right:1rem;padding:.4rem .2rem;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
nav#nav .nav-langue:hover{color:var(--z-or);border-color:var(--z-or)}
@media (max-width:900px){nav#nav .nav-langue{display:none}}
@media (max-width:760px){
  footer{gap:1.1rem 1.2rem!important}
  footer .col a{font-size:.8rem!important;margin-bottom:.24rem!important}
  .z .grand-prix span{width:100%}
}

/* ---------- Menu mobile simplifié : les pages d'abord, les prestations ensuite ---------- */
nav#nav .mm-principal,nav#nav .mm-bas{display:none}
@media (max-width:900px){
  nav#nav .menu-mobile .mm-principal{display:block;margin-bottom:1.5rem}
  nav#nav .menu-mobile .mm-principal a{display:block;font-family:'Cormorant Garamond',serif;font-size:1.72rem;letter-spacing:0;line-height:1.1;padding:.6rem 0;border-bottom:1px solid var(--z-trait);color:var(--z-encre)}
  nav#nav .menu-mobile .mm-principal a[aria-current="page"]{color:var(--z-or)}
  nav#nav .menu-mobile a.mm-presta{font-size:1.18rem;padding:.5rem 0}
  nav#nav .menu-mobile a.mm-presta img{width:42px;height:42px}
  nav#nav .menu-mobile a.mm-devis{margin:1.2rem 0 1.1rem}
  nav#nav .menu-mobile .mm-bas{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1.6rem;margin:0}
  nav#nav .menu-mobile .mm-bas a{font-family:'Bebas Neue',sans-serif;font-size:.82rem;letter-spacing:.2em;line-height:1.6;color:var(--z-gris)}
  nav#nav .menu-mobile .mm-bas a[aria-current="page"]{color:var(--z-or)}
}
