/* style.css */
 .mage-editor-page .mage-hero-block{min-height:760px;padding:210px 10vw 100px;color:#fff;background:linear-gradient(90deg,rgba(16,30,26,.78),rgba(16,30,26,.12)),url('assets/images/atelier.jpg') center/cover}.mage-editor-page h1,.mage-editor-page h2{font:500 clamp(48px,7vw,105px)/.94 var(--serif);letter-spacing:-.06em}.mage-editor-page h1 em,.mage-editor-page h2 em{font-style:italic}.mage-editor-page .mage-intro{max-width:480px;font-size:17px;line-height:1.65}.mage-editor-page .mage-statement-block{padding:120px 10vw 90px}.mage-editor-page .mage-columns{max-width:680px;margin:55px 0 0 auto;gap:45px}.mage-editor-page .mage-columns p{color:#536158}.mage-editor-page .mage-gallery-block{padding:110px 10vw;background:#20332e;color:#f7f0e5}.mage-editor-page .mage-gallery{margin-top:48px}.mage-editor-page .mage-gallery .wp-block-image{height:330px}.mage-editor-page .mage-gallery img{width:100%;height:100%;object-fit:cover}.mage-editor-page .mage-contact-block{padding:105px 10vw;background:#20332e;color:#f7f0e5}.mage-editor-page .mage-contact-block h3{font:500 30px var(--serif)}.mage-editor-page .mage-contact-details{padding:45px;background:#dfe3d7;color:var(--ink)}.mage-map{width:100%;height:260px;border:0;outline:1px dashed currentColor;outline-offset:7px}.mage-editor-page .mage-button .wp-block-button__link{background:#efe9df;color:var(--ink);border-radius:0;padding:15px 18px;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.1em}.mage-editor-page .mage-button .wp-block-button__link:hover{background:#fff;transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--clay)}@media(max-width:760px){.mage-editor-page .mage-hero-block{min-height:650px;padding:170px 7vw 70px}.mage-editor-page .mage-statement-block,.mage-editor-page .mage-gallery-block,.mage-editor-page .mage-contact-block{padding:70px 7vw}.mage-editor-page .mage-columns{margin-top:35px}.mage-editor-page .mage-gallery .wp-block-image{height:280px}.mage-editor-page .mage-contact-details{padding:28px}}
 .legal-page{max-width:900px;margin:0 auto;padding:180px 7vw 100px}.legal-page h1{font:500 clamp(48px,6vw,82px)/1 var(--serif);letter-spacing:-.05em}.legal-content{max-width:720px;margin-top:50px}.legal-content h2{font-size:34px;line-height:1.1;margin-top:45px}.legal-content p,.legal-content li{color:#536158;line-height:1.7}
/*
Theme Name: Mage Tapisserie
Theme URI: https://mage-tapisserie.fr/
Description: Thème sur mesure de Mage Tapisserie.
Version: 1.24.0
Text Domain: mage-tapisserie
*/
/* Polices chargées par functions.php pour garder un ordre de chargement fiable. */
:root{--ink:#172a25;--paper:#f6f3ed;--sage:#dfe3d7;--clay:#c97859;--serif:'Playfair Display',serif;--sans:'DM Sans',sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}a{color:inherit}.site-header{position:absolute;z-index:5;width:100%;padding:24px 5vw;display:flex;align-items:center;justify-content:space-between;color:#fff}.logo img{display:block;width:190px;height:auto;filter:brightness(0) invert(1)}.menu{display:flex;gap:28px;align-items:center;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.1em}.menu a{text-decoration:none}.menu .button{padding:12px 16px}.button{display:inline-flex;align-items:center;gap:30px;background:#efe9df;color:var(--ink);padding:15px 18px;text-decoration:none;border:0;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}.button:hover{background:#fff;transform:translate(-4px,-4px);box-shadow:5px 5px 0 var(--clay)}.hero{height:min(880px,100vh);min-height:680px;background:#20332e;color:#fff;position:relative;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,30,26,.78),rgba(16,30,26,.12)),url('assets/images/atelier.jpg') center/cover;animation:zoom 14s ease-out both}.hero-copy{position:absolute;top:25%;left:10vw;max-width:650px}.eyebrow{font:500 11px var(--mono);letter-spacing:.13em;text-transform:uppercase;margin:0 0 22px}.hero h1,h2{font:500 clamp(54px,7vw,112px)/.94 var(--serif);letter-spacing:-.06em;margin:0}.hero em,h2 em{font-style:italic}.intro{max-width:480px;font-size:17px;line-height:1.65;margin:30px 0}.dotted{position:relative}.dotted:after{content:'';position:absolute;inset:14px -14px -14px 14px;border:1px dashed currentColor;opacity:.45;pointer-events:none}.intro,.hero .button{position:relative;z-index:1}.statement{padding:130px 10vw 100px}.statement h2{font-size:clamp(48px,6vw,92px)}.cols{max-width:670px;margin:60px 0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:45px;color:#536158}.services{padding:100px 5vw;background:var(--sage)}.section-head{margin:0 5vw 60px;display:flex;justify-content:space-between}.section-head h2{font-size:clamp(48px,6vw,92px)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#b8c1b6}.card{background:var(--paper);padding:32px;min-height:400px;display:flex;flex-direction:column;position:relative;overflow:hidden}.card:before{content:'';position:absolute;inset:0;background:center/cover;opacity:0;transition:opacity .55s}.card:hover:before{opacity:.16}.card:nth-child(1):before{background-image:url('assets/images/fauteuil.jpg')}.card:nth-child(2):before{background-image:url('assets/images/rideaux.jpg')}.card:nth-child(3):before{background-image:url('assets/images/lampe.jpg')}.card>*{position:relative}.card span{font:11px var(--mono)}.card h3{font:500 39px var(--serif);letter-spacing:-.04em;margin:auto 0 10px}.card p{max-width:250px}.gallery{padding:120px 5vw;background:#20332e;color:#f7f0e5}.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-auto-rows:280px;gap:16px}.gallery figure{margin:0;position:relative;overflow:hidden}.gallery figure:first-child{grid-row:span 2}.gallery figure:nth-child(4){grid-column:span 2}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.gallery figure:hover img{transform:scale(1.08)}figcaption{position:absolute;inset:auto 0 0;padding:45px 20px 18px;background:linear-gradient(transparent,rgba(0,0,0,.75));font:500 18px var(--serif);display:flex;justify-content:space-between}.contact{display:grid;grid-template-columns:1fr 1fr;background:#20332e;color:#f7f0e5}.contact-main{padding:100px 8vw}.contact-main h2{font-size:clamp(43px,5vw,78px)}.contact-main>p{max-width:470px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:35px}.form-grid label{font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em}.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:7px;padding:12px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;font:14px var(--sans)}.form-grid option{color:var(--ink)}.form-grid .wide{grid-column:1/-1}.form-grid textarea{min-height:115px;resize:vertical}.form-grid input[type=file]{border:0;padding-left:0}.form-note{font-size:12px}.contact-aside{background:#dfe3d7;color:var(--ink);padding:100px 7vw;display:flex;flex-direction:column;justify-content:center}.contact-aside h3{font:500 30px var(--serif);margin:0 0 15px}.contact-aside a{display:block;margin:7px 0}.map{margin-top:30px;height:260px;border:12px solid var(--paper);outline:1px dashed var(--ink);outline-offset:7px}.map iframe{border:0;width:100%;height:100%;filter:saturate(.65)}.success{padding:14px;background:#dfe3d7;color:var(--ink)}footer{padding:65px 5vw 25px;background:#172a25;color:#f5f0e5;display:flex;justify-content:space-between;gap:30px;font-size:14px}footer .logo img{width:155px}footer p{margin:14px 0}@keyframes zoom{from{transform:scale(1.08)}to{transform:scale(1)}}@media(max-width:760px){.site-header{padding:18px 6vw}.logo img{width:145px}.menu{gap:12px;font-size:9px}.menu a:not(.button){display:none}.hero-copy{left:7vw;right:7vw;top:24%}.hero h1{font-size:58px}.statement,.services,.gallery{padding:70px 7vw}.section-head{display:block;margin:0 0 40px}.cols,.cards,.contact{grid-template-columns:1fr}.cols{gap:20px;margin-top:35px}.cards{display:block}.card{min-height:290px;border-bottom:1px solid #bbc4b8}.gallery-grid{display:flex;overflow:auto;padding:0 0 14px;scroll-snap-type:x mandatory}.gallery figure,.gallery figure:first-child,.gallery figure:nth-child(4){min-width:78vw;height:400px;scroll-snap-align:start}.contact-main,.contact-aside{padding:70px 7vw}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}footer{display:block;padding:50px 7vw}.dotted:after{inset:9px -9px -9px 9px}}

/* assets/exact-home.css */
/* Rendu de l'accueil : reprise fidèle de la maquette statique d'origine. */
.site-header .logo img{width:300px;max-width:52vw;height:auto}
.hero{height:min(850px,100vh)}
.hero:before{background-image:linear-gradient(90deg,rgba(16,30,26,.78),rgba(16,30,26,.12)),var(--mage-image)!important}
.services{padding:8rem 5vw}
.card{min-height:450px;padding:2rem}
.card:before{background-image:var(--mage-image)!important}
.card h3{font:500 2.5rem var(--serif);margin:auto 0 1rem}
.gallery{padding:9rem 5vw}

/* Savoir-faire : une image d'ambiance discrète derrière le titre et les cartes. */
.services{
  position:relative;
  isolation:isolate;
  background-color:#dfe3d7;
  background-image:
    linear-gradient(to bottom,rgba(223,227,215,.56) 0%,rgba(223,227,215,.90) 100%),
    var(--mage-services-image);
  background-position:center;
  background-size:cover;
}
.services .cards{background:rgba(184,193,182,.72)}
.services .card{background:rgba(246,243,237,.90)}

/* Le formulaire remplace l'ancienne section « Votre projet, pas à pas ». */
.contact-main h2{font:500 clamp(3.2rem,4.6vw,5rem)/.96 var(--serif);letter-spacing:-.055em}
.contact-main .eyebrow{margin-bottom:1.5rem}
.contact-main .button{width:100%;justify-content:space-between;margin-top:8px}
.contact-aside{
  position:relative;
  background-color:#dfe3d7;
  background-image:linear-gradient(to bottom,rgba(223,227,215,.58) 0%,rgba(223,227,215,.96) 100%),var(--mage-contact-image);
  background-position:center;
  background-size:cover;
}
.mage-footer-widget{padding:52px 5vw;background:#dfe3d7;color:#172a25}
.mage-footer-widget__inner{max-width:1180px;margin:0 auto}

@media(max-width:760px){
  .site-header .logo img{width:min(300px,84vw)}
  .site-header .menu{display:none}
  .hero{height:auto;min-height:680px}
  .services,.gallery{padding:5rem 0}
  .card{min-height:330px;padding:2rem 7vw}
  .card h3{font-size:2.5rem}
  .contact-main h2{font-size:3.2rem}
}

/* Finition atelier : détails de matière, de lumière et de couture. */
body{overflow-x:hidden}

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.13;
  background-image:radial-gradient(rgba(255,255,255,.34) .55px,transparent .7px);
  background-size:5px 5px;
  mix-blend-mode:soft-light;
}
.hero-copy{z-index:1}

.menu a:not(.button){position:relative}
.menu a:not(.button)::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-7px;
  left:0;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .32s ease;
}
.menu a:not(.button):hover::after{transform:scaleX(1);transform-origin:left}

.section-head h2,.statement h2,.contact h2,.card h3{text-wrap:balance}

.card{
  transition:transform .42s cubic-bezier(.22,.8,.25,1),box-shadow .42s ease;
}
.card::after{
  content:"";
  position:absolute;
  inset:14px;
  border:1px dashed rgba(23,42,37,.52);
  opacity:0;
  pointer-events:none;
  transform:translate(8px,8px);
  transition:opacity .36s ease,transform .36s ease;
}
.card:hover{
  z-index:1;
  transform:translateY(-7px);
  box-shadow:0 16px 32px rgba(23,42,37,.13);
}
.card:hover::after{opacity:1;transform:translate(0)}
.card:hover:before{opacity:.24}
.card h3 em{font-style:italic}
.card a{transition:opacity .25s ease,transform .25s ease}
.card a:hover{opacity:.65;transform:translateX(5px)}

.gallery figure{background:#172a25;transition:transform .45s cubic-bezier(.22,.8,.25,1),box-shadow .45s ease}
.gallery figure::after{
  content:"";
  position:absolute;
  inset:11px;
  border:1px dashed rgba(245,240,229,.7);
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
}
.gallery figure:hover{z-index:1;transform:translateY(-6px);box-shadow:0 18px 36px rgba(0,0,0,.26)}
.gallery figure:hover::after{opacity:1}
.gallery figure:hover img{transform:scale(1.08)}

.contact-main .form-grid input:focus,
.contact-main .form-grid select:focus,
.contact-main .form-grid textarea:focus{
  outline:0;
  border-color:#f5f0e5;
  box-shadow:0 0 0 3px rgba(245,240,229,.13);
}
.contact-aside .map{transition:transform .45s ease,box-shadow .45s ease}
.contact-aside .map:hover{transform:translate(-4px,-4px);box-shadow:7px 7px 0 #c97859}

/* Empêche l'encadré Artisan de se comprimer et de déborder à mi-largeur. */
.certification{position:relative;overflow:hidden}
.certification::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.10) 50%,transparent 65%);
  transform:translateX(-55%);
  transition:transform 1.2s ease;
}
.certification:hover::before{transform:translateX(55%)}
.certification>*{position:relative;z-index:1}
.seal{transition:transform .45s cubic-bezier(.22,.8,.25,1),background .35s ease}
.seal:hover{transform:rotate(6deg) scale(1.06);background:rgba(255,255,255,.08)}

/* Avis Google : un écrin calme avant le pied de page. */
.mage-footer-widget{
  position:relative;
  overflow:hidden;
  padding:clamp(3.5rem,7vw,6.5rem) 5vw;
  background:linear-gradient(135deg,#dfe3d7,#cbd2c4);
}
.mage-footer-widget::before{
  content:"Ils nous font confiance";
  display:block;
  max-width:1180px;
  margin:0 auto 2rem;
  font:500 .69rem var(--mono);
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#526057;
}
.mage-footer-widget__inner{position:relative}

footer a{transition:opacity .25s ease}
footer a:hover{opacity:.65}

@media(max-width:1050px){
  .certification{
    grid-template-columns:1fr;
    gap:2rem;
    padding:5rem 7vw;
  }
  .certification .seal{justify-self:start}
}

@media(max-width:760px){
  .hero::after{opacity:.1}
  .card:hover{transform:none;box-shadow:none}
  .card::after{opacity:.4;transform:translate(5px,5px)}
  .gallery figure:hover{transform:none;box-shadow:none}
  .gallery figure::after{opacity:.45}
  .mage-footer-widget{padding:4.5rem 7vw}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Pages portfolio : première déclinaison Sièges & mobilier. */
body:not(.home) .site-header{
  position:relative;
  background:#172a25;
  color:#f5f0e5;
}
body:not(.home) .site-header .logo img{filter:brightness(0) invert(1)}
body:not(.home) .site-header .menu .button{background:#f5f0e5;color:#172a25}

.portfolio-page{background:#f6f3ed;color:#172a25}
.portfolio-hero{
  min-height:700px;
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:clamp(5rem,10vw,10rem) 10vw;
  overflow:hidden;
  color:#f7f0e5;
  background:#172a25;
}
.portfolio-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(18,37,32,.91) 0%,rgba(18,37,32,.57) 48%,rgba(18,37,32,.14) 100%),var(--mage-portfolio-image) center/cover;
  animation:mage-portfolio-zoom 14s ease-out both;
}
.portfolio-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:radial-gradient(rgba(255,255,255,.38) .55px,transparent .7px);
  background-size:5px 5px;
}
.portfolio-hero__copy{position:relative;z-index:1;max-width:650px}
.portfolio-hero h1,.portfolio-page h2{font:500 clamp(3.9rem,7.6vw,7.5rem)/.9 var(--serif);letter-spacing:-.065em;margin:0}
.portfolio-hero h1 em,.portfolio-page h2 em{font-style:italic}
.portfolio-hero__copy>p:not(.eyebrow){max-width:510px;font-size:1.08rem;line-height:1.65;margin:2rem 0}

.portfolio-gallery{padding:clamp(5.5rem,10vw,10rem) 5vw;background:#dfe3d7}
.portfolio-gallery__head{max-width:1180px;margin:0 auto clamp(3.5rem,7vw,6.5rem)}
.portfolio-gallery__head>p:not(.eyebrow){max-width:430px;margin:2rem 0 0 auto;color:#536158;line-height:1.65}
.portfolio-gallery__content{max-width:1180px;margin:0 auto}
.portfolio-grid,.portfolio-gallery__editor-content .wp-block-gallery{
  display:grid!important;
  grid-template-columns:1.15fr 1fr 1fr!important;
  grid-auto-rows:280px;
  gap:16px!important;
  margin:0!important;
}
.portfolio-grid--compact,
.portfolio-gallery__editor-content .wp-block-gallery:not(:has(.wp-block-image:nth-child(4))){
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important;
  grid-auto-rows:400px;
}
.portfolio-grid figure,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image{
  position:relative;
  min-width:0!important;
  width:auto!important;
  margin:0!important;
  overflow:hidden;
  background:#172a25;
}
.portfolio-grid figure:first-child,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:first-child{grid-row:span 2}
.portfolio-grid figure:nth-child(4),.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:nth-child(4){grid-column:span 2}
.portfolio-grid--compact figure:first-child,
.portfolio-gallery__editor-content .wp-block-gallery:not(:has(.wp-block-image:nth-child(4))) .wp-block-image:first-child{grid-row:auto}
.portfolio-grid figure::after,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image::after{
  content:"";
  position:absolute;
  inset:12px;
  z-index:2;
  border:1px dashed rgba(245,240,229,.78);
  opacity:0;
  pointer-events:none;
  transform:translate(7px,7px);
  transition:opacity .35s ease,transform .35s ease;
}
.portfolio-grid img,.portfolio-gallery__editor-content .wp-block-gallery img{
  display:block;
  width:100%!important;
  height:100%!important;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.22,.8,.25,1),filter .45s ease;
}
.portfolio-grid figure:hover img,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:hover img{transform:scale(1.07);filter:brightness(1.06) saturate(1.06)}
.portfolio-grid figure:hover::after,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:hover::after{opacity:1;transform:translate(0)}
.portfolio-grid figcaption{
  position:absolute;
  z-index:1;
  inset:auto 0 0;
  padding:4rem 1.25rem 1.1rem;
  display:flex;
  justify-content:space-between;
  background:linear-gradient(transparent,rgba(8,19,16,.8));
  color:#f7f0e5;
  font:500 1.15rem var(--serif);
}
.portfolio-grid figcaption span{font-family:var(--mono);font-size:.8rem}
.portfolio-gallery__editor-content>p{max-width:620px;margin:0 0 2.5rem;font-size:1.08rem;line-height:1.65}
.portfolio-gallery__editor-content .wp-block-gallery .wp-element-caption{display:none}
.portfolio-cta{padding:clamp(5.5rem,9vw,9rem) 10vw;background:#561628;color:#fbf3e8}
.portfolio-cta h2{margin-bottom:2.5rem}
.portfolio-page .button:hover{box-shadow:5px 5px 0 #561628}
.portfolio-cta .button:hover{box-shadow:5px 5px 0 #dfe3d7}

/* Deux univers voisins, présentés comme des échantillons de matière. */
.portfolio-related{padding:clamp(5rem,9vw,8rem) 5vw;background:#f6f3ed}
.portfolio-related__inner{max-width:1180px;margin:0 auto}
.portfolio-related h2{font-size:clamp(3.5rem,6vw,6rem);margin:0 0 clamp(2.5rem,5vw,4.5rem)}
.portfolio-related__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.portfolio-related__link{
  position:relative;
  min-height:260px;
  overflow:hidden;
  padding:2rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:#dfe3d7;
  color:#172a25;
  text-decoration:none;
  transition:transform .4s cubic-bezier(.22,.8,.25,1),box-shadow .4s ease;
}
.portfolio-related__link::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(to bottom,rgba(246,243,237,.86),rgba(246,243,237,.72)),var(--mage-related-image);
  background-size:cover;
  background-position:center;
  transition:filter .45s ease,transform .7s ease;
}
.portfolio-related__link::after{
  content:"";
  position:absolute;
  inset:13px;
  border:1px dashed rgba(23,42,37,.55);
  opacity:0;
  transform:translate(7px,7px);
  pointer-events:none;
  transition:opacity .35s ease,transform .35s ease;
}
.portfolio-related__link>*{position:relative;z-index:1}
.portfolio-related__number{font:500 .7rem var(--mono);letter-spacing:.13em}
.portfolio-related__bottom{display:flex;justify-content:space-between;align-items:end;gap:1.5rem}
.portfolio-related__bottom strong{font:500 clamp(2rem,3.2vw,3.35rem)/1 var(--serif);letter-spacing:-.05em}
.portfolio-related__bottom>span{font:1.5rem var(--sans);transition:transform .3s ease}
.portfolio-related__link:hover,.portfolio-related__link:focus-visible{transform:translateY(-5px);box-shadow:0 15px 32px rgba(23,42,37,.12)}
.portfolio-related__link:hover::before,.portfolio-related__link:focus-visible::before{filter:saturate(1.12);transform:scale(1.05)}
.portfolio-related__link:hover::after,.portfolio-related__link:focus-visible::after{opacity:1;transform:translate(0)}
.portfolio-related__link:hover .portfolio-related__bottom>span{transform:translate(3px,-3px)}

/* Visionneuse plein écran des photos de réalisation. */
.portfolio-gallery__content figure img.mage-lightbox__trigger,
.portfolio-gallery__content figure a.mage-lightbox__trigger{cursor:zoom-in}
.portfolio-gallery__content figure img.mage-lightbox__trigger:focus-visible,
.portfolio-gallery__content figure a.mage-lightbox__trigger:focus-visible{outline:2px solid #172a25;outline-offset:-5px}
body.mage-lightbox-open{overflow:hidden}
.mage-lightbox{
  width:100vw;
  max-width:none;
  height:100vh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:rgba(15,29,25,.97);
  color:#f7f0e5;
}
.mage-lightbox::backdrop{background:rgba(15,29,25,.94)}
.mage-lightbox__frame{position:relative;width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;padding:clamp(1rem,3vw,2rem)}
.mage-lightbox__image{grid-row:1;max-width:min(88vw,1600px);max-height:calc(100vh - 7rem);width:auto;height:auto;object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.mage-lightbox__close,.mage-lightbox__prev,.mage-lightbox__next{position:absolute;z-index:2;display:grid;place-items:center;width:3rem;height:3rem;border:1px solid rgba(247,240,229,.6);border-radius:50%;background:rgba(15,29,25,.45);color:#f7f0e5;font:1.5rem var(--sans);cursor:pointer;transition:background .25s ease,transform .25s ease}
.mage-lightbox__close:hover,.mage-lightbox__prev:hover,.mage-lightbox__next:hover{background:#561628;transform:scale(1.06)}
.mage-lightbox__close{top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}
.mage-lightbox__prev{top:50%;left:clamp(1rem,3vw,2rem);transform:translateY(-50%)}
.mage-lightbox__next{top:50%;right:clamp(1rem,3vw,2rem);transform:translateY(-50%)}
.mage-lightbox__prev:hover,.mage-lightbox__next:hover{transform:translateY(-50%) scale(1.06)}
.mage-lightbox__footer{grid-row:2;display:flex;gap:2rem;justify-content:center;align-items:center;width:100%;min-height:3rem;text-align:center}
.mage-lightbox__caption{font:500 1rem var(--serif)}
.mage-lightbox__counter{font:.72rem var(--mono);letter-spacing:.12em;white-space:nowrap}
@media(max-width:760px){
  .mage-lightbox__image{max-width:96vw;max-height:calc(100vh - 9rem)}
  .mage-lightbox__prev,.mage-lightbox__next{top:auto;bottom:1.1rem}
  .mage-lightbox__prev{left:1rem}
  .mage-lightbox__next{right:1rem}
  .mage-lightbox__footer{margin-bottom:3.8rem}
}

@keyframes mage-portfolio-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}
@media(max-width:760px){
  .portfolio-hero{min-height:610px;padding:5rem 7vw}
  .portfolio-hero h1,.portfolio-page h2{font-size:clamp(3.7rem,15vw,5.4rem)}
  .portfolio-gallery{padding:5rem 7vw}
  .portfolio-gallery__head>p:not(.eyebrow){margin:1.75rem 0 0}
  .portfolio-related{padding:5rem 7vw}
  .portfolio-related h2{font-size:clamp(3.5rem,14vw,5.4rem)}
  .portfolio-related__grid{grid-template-columns:1fr}
  .portfolio-related__link{min-height:220px;padding:1.6rem}
  .portfolio-grid,.portfolio-gallery__editor-content .wp-block-gallery{
    display:flex!important;
    overflow-x:auto;
    padding:0 0 1rem!important;
    scroll-snap-type:x mandatory;
  }
  .portfolio-grid figure,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image,.portfolio-grid figure:first-child,.portfolio-grid figure:nth-child(4),.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:first-child,.portfolio-gallery__editor-content .wp-block-gallery .wp-block-image:nth-child(4){
    min-width:78vw!important;
    height:390px;
    grid-column:auto;
    grid-row:auto;
    scroll-snap-align:start;
  }
  .portfolio-cta{padding:5rem 7vw}
}

/* assets/v1.13.css */
/* Version 1.13 — navigation, catalogue, formulaires et lisibilité. */
:root{--clay:#561628;--wine:#561628;--cream:#fbf3e8}
.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;background:#fff;color:#172a25;padding:.8rem 1rem}
.skip-link:focus{top:1rem}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #caa98c;outline-offset:3px}
.site-header{gap:2rem}
.site-header .menu{gap:clamp(1rem,1.65vw,1.8rem)}
.menu-contact{display:flex;align-items:center;gap:.35rem;margin-right:.2rem}
.menu-contact a{display:grid;place-items:center;width:2.3rem;height:2.3rem;border:1px solid rgba(255,255,255,.5);border-radius:50%;transition:background .25s ease,transform .25s ease}
.menu-contact a:hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.menu-contact svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.menu-contact__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header .menu-contact a::after{display:none}
.menu-toggle{display:none}

.legal-page{min-height:60vh}
.legal-page .legal-content{max-width:780px}
.legal-content a{text-underline-offset:.18em}
.legal-content h2{font:500 clamp(1.8rem,3vw,2.4rem)/1.1 var(--serif);letter-spacing:-.04em}
.legal-content ul{padding-left:1.2rem}
.legal-warning{border-left:4px solid var(--wine);padding:1.2rem 1.4rem;background:#f0e4de;color:#172a25!important}

/* Catalogue : cartes comme des échantillons, sans système d'achat en ligne. */
.shop-page,.shop-single{background:#f6f3ed;color:#172a25}
.shop-hero{position:relative;min-height:650px;padding:clamp(5rem,9vw,9rem) 10vw;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(3rem,6vw,7rem);align-items:center;background:#dfe3d7;overflow:hidden}
.shop-hero::before{content:"";position:absolute;inset:0;opacity:.17;background-image:radial-gradient(#172a25 .5px,transparent .7px);background-size:6px 6px;pointer-events:none}
.shop-hero__copy{position:relative;z-index:1;max-width:650px}
.shop-hero h1,.shop-collection h2,.shop-visit h2,.shop-single h1{font:500 clamp(4rem,7.5vw,8rem)/.9 var(--serif);letter-spacing:-.065em;margin:0}
.shop-hero h1 em,.shop-collection h2 em,.shop-visit h2 em,.shop-empty h3 em{font-style:italic}
.shop-hero__intro{max-width:520px;margin:2rem 0 2.5rem;font-size:1.08rem;line-height:1.7;color:#45564d}
.shop-hero__image{position:relative;min-height:430px;background:var(--mage-shop-image) center/cover;box-shadow:18px 18px 0 #c8d0c4}
.shop-hero__image::after{content:"";position:absolute;inset:18px;border:1px dashed rgba(255,255,255,.9)}
.shop-collection{padding:clamp(5rem,9vw,9rem) 5vw}
.shop-collection__head{max-width:1180px;margin:0 auto clamp(3rem,5vw,5rem);display:grid;grid-template-columns:1.4fr .6fr;gap:1rem 3rem;align-items:end}
.shop-collection__head .eyebrow{grid-column:1/-1;margin-bottom:.5rem}
.shop-collection h2{font-size:clamp(3.5rem,6vw,6.2rem)}
.shop-collection__head>p:last-child{max-width:340px;line-height:1.7;color:#536158;margin:0}
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem;max-width:1180px;margin:auto}
.shop-card{min-width:0;background:#fffdf9;box-shadow:0 1px 0 #d1d6cb;transition:transform .4s cubic-bezier(.22,.8,.25,1),box-shadow .4s ease}
.shop-card:hover{transform:translateY(-7px);box-shadow:0 18px 35px rgba(23,42,37,.12)}
.shop-card__image{position:relative;display:block;aspect-ratio:4/4.6;overflow:hidden;background:#c5cec2}
.shop-card__image::after{content:"";position:absolute;inset:13px;border:1px dashed rgba(255,255,255,.85);opacity:0;transform:translate(6px,6px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.shop-card:hover .shop-card__image::after,.shop-card:focus-within .shop-card__image::after{opacity:1;transform:translate(0)}
.shop-card__image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .4s ease}
.shop-card:hover .shop-card__image img{transform:scale(1.055);filter:saturate(1.06)}
.shop-card--sold .shop-card__image img{filter:saturate(.75)}
.shop-card__status,.shop-single__status{display:inline-block;background:#f6f3ed;color:#172a25;padding:.65rem .8rem;font:500 .65rem var(--mono);letter-spacing:.1em;text-transform:uppercase}
.shop-card__status{position:absolute;z-index:1;top:1.4rem;left:1.4rem}
.shop-card--sold .shop-card__status{background:#efe9df}
.shop-card__body{padding:1.6rem 1.65rem 1.8rem}
.shop-card__type{font:500 .65rem var(--mono);letter-spacing:.13em;text-transform:uppercase;color:#7a867e;margin:0 0 1rem}
.shop-card h3{font:500 clamp(1.9rem,2.7vw,2.7rem)/1.08 var(--serif);letter-spacing:-.045em;margin:0 0 1rem}
.shop-card h3 a{text-decoration:none}
.shop-card__description{min-height:4.7em;color:#536158;line-height:1.6;margin:0 0 1.4rem}
.shop-card__foot{border-top:1px solid #d7ddd2;padding-top:1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.shop-card__foot strong{font:500 1.05rem var(--mono)}
.shop-card__foot a{font:500 .65rem var(--mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.shop-card__foot a span{font-size:1rem;margin-left:.4rem}
.shop-pagination{display:flex;justify-content:center;gap:.45rem;flex-wrap:wrap;margin:3rem auto 0;font:.72rem var(--mono)}
.shop-pagination .page-numbers{display:inline-flex;min-width:2.4rem;height:2.4rem;align-items:center;justify-content:center;padding:0 .75rem;border:1px solid #b8c1b6;text-decoration:none}
.shop-pagination .page-numbers.current,.shop-pagination .page-numbers:hover{background:#172a25;color:#fff}
.shop-empty{max-width:1180px;margin:auto;padding:4rem;background:#e3e7dc}
.shop-empty h3{font:500 clamp(2.9rem,5vw,5rem)/1 var(--serif);letter-spacing:-.055em;margin:0 0 1rem}
.shop-empty p:not(.eyebrow){max-width:460px;line-height:1.7}
.shop-visit{padding:clamp(5rem,9vw,9rem) 10vw;background:#561628;color:#fbf3e8}
.shop-visit h2{font-size:clamp(3.5rem,6vw,6.5rem)}
.shop-visit>p:not(.eyebrow){max-width:600px;font-size:1.08rem;line-height:1.7;margin:2rem 0}
.shop-visit .button:hover{box-shadow:5px 5px 0 #dfe3d7}

.shop-single{padding:3rem 8vw 7rem}
.shop-single__breadcrumb{display:flex;flex-wrap:wrap;gap:.7rem;margin:0 auto 3rem;max-width:1280px;font:.7rem var(--mono);text-transform:uppercase;letter-spacing:.08em}
.shop-single__breadcrumb a{text-underline-offset:.3em}
.shop-single__grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(3rem,7vw,8rem);align-items:center}
.shop-single__visual{background:#dfe3d7;min-height:400px;position:relative}
.shop-single__visual::after{content:"";position:absolute;inset:15px;border:1px dashed rgba(255,255,255,.9);pointer-events:none}
.shop-single__visual img{display:block;width:100%;max-height:760px;object-fit:contain}
.shop-single h1{font-size:clamp(3.5rem,6vw,6.5rem);margin:1.5rem 0}
.shop-single__price{font:500 1.45rem var(--mono);color:#561628}
.shop-single__description{font-size:1.08rem;line-height:1.75;color:#45564d;margin:2rem 0}
.shop-single__description p{margin:0 0 1rem}
.shop-single__note{max-width:480px;margin-top:2rem;color:#66736a;font-size:.86rem;line-height:1.6}
.shop-single__back{display:block;max-width:1280px;margin:4rem auto 0;font:.72rem var(--mono);text-transform:uppercase;letter-spacing:.08em;text-underline-offset:.3em}

/* Validation accessible et fichier aligné au reste du formulaire. */
.mage-contact-form .mage-field{min-width:0}
.mage-contact-form .mage-field>label{display:block}
.mage-contact-form .mage-field input,.mage-contact-form .mage-field select,.mage-contact-form .mage-field textarea{border-radius:0;transition:border-color .2s ease,box-shadow .2s ease}
.mage-contact-form .mage-field.is-invalid input,.mage-contact-form .mage-field.is-invalid select,.mage-contact-form .mage-field.is-invalid textarea{border-color:#ffb0b6!important;box-shadow:0 0 0 2px rgba(255,176,182,.18)}
.mage-field-error{display:block;min-height:0;margin-top:.3rem;color:#ffd4d6;font:400 .78rem/1.4 var(--sans);letter-spacing:0;text-transform:none}
.mage-field-error:empty{display:none}
.mage-field-hint,.mage-form-privacy{display:block;margin-top:.5rem;color:#d6e0d9;font:400 .75rem/1.5 var(--sans);letter-spacing:0;text-transform:none}
.mage-form-privacy{margin:.2rem 0 0!important}
.mage-form-product{margin:0;padding:.85rem 1rem;border-left:2px solid #efe9df;background:rgba(255,255,255,.09);font-size:.9rem}
.mage-form-privacy a{text-decoration:underline;text-underline-offset:.2em}
.mage-optional{font-weight:400;opacity:.8;text-transform:none;letter-spacing:0}
.mage-contact-form input[type=file]{padding:0;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.04);font-size:.85rem}
.mage-contact-form input[type=file]::file-selector-button{margin-right:1rem;padding:.95rem 1.1rem;border:0;border-right:1px solid rgba(255,255,255,.5);background:#efe9df;color:#172a25;font:500 .68rem var(--mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s ease}
.mage-contact-form input[type=file]::file-selector-button:hover{background:#fff}
.mage-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.mage-form-feedback{padding:.85rem 1rem;border-left:3px solid #ffd4d6;background:rgba(86,22,40,.55);color:#fff;font-size:.88rem}
.mage-form-feedback[hidden]{display:none}
.mage-contact-form button[disabled]{opacity:.65;cursor:wait}

@media(max-width:1100px){
  .site-header{align-items:center}
  .site-header .logo img{width:min(260px,58vw)!important;max-width:58vw}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;align-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid rgba(255,255,255,.65);background:rgba(23,42,37,.24);color:#fff;cursor:pointer}
  .menu-toggle span{display:block;width:19px;height:1px;background:currentColor;transition:transform .25s ease,opacity .25s ease}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-6px) rotate(-45deg)}
  .site-header .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:1rem 6vw 2rem;background:#172a25;color:#fbf3e8;box-shadow:0 16px 25px rgba(0,0,0,.2)}
  .site-header .menu.is-open{display:flex}
  .site-header .menu>a:not(.button){display:block;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:.82rem}
  .site-header .menu>.button{align-self:flex-start;margin-top:1.4rem}
  .menu-contact{gap:.8rem;padding:.7rem 0 1.2rem;margin:0;border-bottom:1px solid rgba(255,255,255,.2)}
  .site-header .menu .menu-contact a{display:flex;width:auto;height:auto;gap:.55rem;padding:.5rem .9rem;border-radius:0;text-decoration:none}
  .menu-contact__label{position:static;width:auto;height:auto;overflow:visible;clip:auto;font-size:.68rem}
}
@media(max-width:900px){
  .shop-hero{grid-template-columns:1fr;padding:7rem 7vw 5rem}
  .shop-hero__image{min-height:360px}
  .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-collection__head{grid-template-columns:1fr}
  .shop-collection__head>p:last-child{max-width:500px}
}
@media(max-width:760px){
  .site-header .logo img{width:min(225px,62vw)!important;max-width:62vw}
  .shop-hero{min-height:0;padding:7rem 7vw 4rem;gap:3rem}
  .shop-hero h1,.shop-collection h2,.shop-visit h2{font-size:clamp(3.5rem,14vw,5.6rem)}
  .shop-hero__image{min-height:300px;box-shadow:10px 10px 0 #c8d0c4}
  .shop-collection{padding:5rem 7vw}
  .shop-grid{grid-template-columns:1fr;gap:1.5rem}
  .shop-card__image{aspect-ratio:4/3.6}
  .shop-card__description{min-height:0}
  .shop-visit{padding:5rem 7vw}
  .shop-single{padding:2rem 7vw 5rem}
  .shop-single__grid{grid-template-columns:1fr;gap:2.5rem}
  .shop-single__visual{min-height:0}
  .shop-single h1{font-size:clamp(3.2rem,13vw,5.5rem)}
  .legal-page{padding-top:5rem}
}
@media(prefers-reduced-motion:reduce){.shop-card,.shop-card__image img,.shop-card__image::after,.menu-toggle span{transition:none!important}}

/* assets/v1.14.css */
/* Version 1.14 — boutique éditoriale et coordonnées du pied de page. */
.site-footer__identity{min-width:220px}
.site-footer__contact{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed rgba(245,240,229,.35)}
.site-footer__contact a{display:inline-block;text-decoration:none;text-underline-offset:.25em;transition:color .25s ease,transform .25s ease}
.site-footer__contact a:hover{color:#e2c3a8;transform:translateX(3px)}

.shop-page{overflow:hidden}
.shop-hero{min-height:620px;background:#e5e9df}
.shop-hero__copy .eyebrow{color:#561628}
.shop-hero__image{transform:rotate(1deg);transition:transform .65s cubic-bezier(.22,.8,.25,1),box-shadow .65s ease}
.shop-hero__image:hover{transform:rotate(0) translateY(-5px);box-shadow:22px 22px 0 #c8d0c4}
.shop-collection{background:#f8f6f0}
.shop-collection__head{position:relative;padding-bottom:2.3rem;border-bottom:1px solid #bfc9bb}
.shop-collection__head::after{content:"";position:absolute;bottom:-1px;left:0;width:5rem;border-bottom:2px solid #561628}
.shop-card{display:flex;flex-direction:column;border:1px solid #d9ded4;background:#fffcf7;box-shadow:none}
.shop-card:hover{box-shadow:0 20px 38px rgba(23,42,37,.11)}
.shop-card__image{aspect-ratio:4/4.45;background:#e4e7db}
.shop-card__image::after{opacity:.5;transform:none;border-color:rgba(255,255,255,.92);inset:14px}
.shop-card:hover .shop-card__image::after,.shop-card:focus-within .shop-card__image::after{opacity:1;inset:18px;transform:none}
.shop-card__image img{object-position:center}
.shop-card__body{display:flex;flex:1;flex-direction:column;padding:1.8rem clamp(1.3rem,2vw,2rem) 1.7rem}
.shop-card__type{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#6a776c}
.shop-card__type span{color:#561628}
.shop-card h3{font-size:clamp(2rem,2.6vw,3rem);line-height:1.02;margin:.35rem 0 1.1rem}
.shop-card h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.shop-card__description{min-height:0;margin:0 0 1.8rem;line-height:1.65}
.shop-card__foot{margin-top:auto;border-top:1px solid #d4dbcf}
.shop-card__foot strong{font-size:.9rem;color:#561628}
.shop-card__foot a{transition:transform .25s ease}
.shop-card__foot a:hover{transform:translate(3px,-3px)}
.shop-card--sold .shop-card__image img{filter:saturate(.82)}
.shop-card--sold .shop-card__status{background:#561628;color:#fff}

.shop-single__grid{align-items:start}
.shop-single__visual{min-height:0;background:transparent}
.shop-single__visual::after{display:none}
.shop-single__visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.shop-single__visual-grid figure{position:relative;min-width:0;margin:0;overflow:hidden;background:#e5e9df}
.shop-single__visual-grid figure:first-child{grid-column:1/-1}
.shop-single__visual-grid figure::after{content:"";position:absolute;inset:14px;border:1px dashed rgba(255,255,255,.9);pointer-events:none;transition:inset .35s ease}
.shop-single__visual-grid figure:hover::after{inset:20px}
.shop-single__visual-grid a{display:grid;place-items:center;width:100%;min-height:220px;cursor:zoom-in}
.shop-single__visual-grid figure:first-child a{min-height:360px}
.shop-single__visual-grid img{display:block;width:100%;height:100%;max-height:720px;object-fit:contain;transition:transform .55s ease}
.shop-single__visual-grid figure:not(:first-child) img{height:250px;object-fit:cover}
.shop-single__visual-grid a:hover img{transform:scale(1.035)}
.shop-single__photo-hint{margin:1rem 0 0;color:#59685f;font:500 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.shop-single__copy{padding-top:1rem}
.shop-single__description{padding-top:1.5rem;border-top:1px solid #cbd4c9}
.shop-single__description h2,.shop-single__description h3{font:500 clamp(1.4rem,2.3vw,2rem)/1.2 var(--serif);letter-spacing:-.035em;margin:1.3rem 0 .6rem}
.shop-single__description p{margin:0 0 1rem}
.shop-single__description p:empty{display:none}
.shop-single__price{margin:1.4rem 0 0}
.shop-single__status{background:#561628;color:#fff}
.shop-single__note{border-left:2px solid #c5cdc1;padding-left:1rem}

@media(max-width:760px){
  .shop-hero{min-height:0}
  .shop-hero__image{transform:none}
  .shop-card__image{aspect-ratio:4/3.8}
  .shop-single__visual-grid figure:first-child a{min-height:260px}
  .shop-single__visual-grid figure:not(:first-child) img{height:160px}
  .site-footer__contact{max-width:290px}
}
@media(prefers-reduced-motion:reduce){
  .shop-hero__image,.shop-single__visual-grid img,.shop-single__visual-grid figure::after,.site-footer__contact a{transition:none!important}
}

/* assets/v1.15.css */
/* Version 1.15 — finitions autrefois stockées dans « CSS additionnel ».
 * Ce fichier est chargé après les autres styles du thème afin de conserver
 * leur ordre de priorité quand le champ WordPress sera vidé. */

/* Le sceau et la typographie de la section artisan restent inchangés. */
.certification {
  box-sizing: border-box;
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 1fr 120px;
  gap: 4rem;
  align-items: center;
  overflow: hidden;
  padding: 7rem 10vw;
  background: #561628;
  color: #fbf3e8;
}
.certification .eyebrow {
  margin: 0 0 1.5rem;
  font: 500 .69rem/1.2 "DM Mono", monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.certification h2 {
  margin: 0;
  font: 500 clamp(3.5rem, 5vw, 5.5rem)/.96 "Playfair Display", Georgia, serif;
  letter-spacing: -.055em;
}
.certification h2 em { font-style: italic; }
.certification > p {
  margin: 0;
  font: 400 1.05rem/1.55 "DM Sans", Arial, sans-serif;
}
.certification .seal {
  box-sizing: border-box;
  display: grid;
  place-content: center;
  width: 110px;
  height: 110px;
  border: 1px solid #fbf3e8;
  border-radius: 50%;
  text-align: center;
  font: 500 2.5rem/.6 "Playfair Display", Georgia, serif;
  transition: transform .45s cubic-bezier(.22,.8,.25,1), background .35s ease, box-shadow .35s ease;
}
.certification .seal span {
  display: block;
  margin-top: 1rem;
  font: 400 .48rem/1.15 "DM Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.certification .seal:hover {
  transform: rotate(6deg) scale(1.06);
  background: rgba(255,255,255,.08);
  box-shadow: 0 10px 24px rgba(74,36,24,.16);
}
.certification::before {
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(115deg,transparent 35%,rgba(255,255,255,.10) 50%,transparent 65%);
  transform: translateX(-35%) skewX(-12deg);
  animation: certification-sheen 8s ease-in-out infinite;
  pointer-events: none;
}
.certification > * {
  position: relative;
  z-index: 1;
  opacity: 0;
  animation: certification-reveal .9s cubic-bezier(.22,.8,.25,1) forwards;
}
.certification > :nth-child(2) { animation-delay: .16s; }
.certification > :nth-child(3) { animation-delay: .32s; }
@keyframes certification-reveal {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes certification-sheen {
  0%,55%,100% { transform: translateX(-35%) skewX(-12deg); }
  75% { transform: translateX(35%) skewX(-12deg); }
}

/* Finitions d'accueil. La photo du héros reste réglable dans WordPress. */
.card:hover::before { opacity: .40; }
.hero::before { animation: zoom 5s ease-out both; }
.services, .gallery { padding: 70px 7vw; }
.form-grid option { color: #e5e5e5; }
.site-header .logo img { width: 300px; max-width: 90vw; height: auto; }

/* Pied de page et module d'avis. */
.mage-footer-widget { background: #172a25; }
.mage-footer-widget::before {
  content: "Merci pour votre confiance";
  display: block;
  max-width: 1180px;
  margin: 0 auto 2rem;
  color: #e2c2b6;
  font: 500 .99rem var(--mono);
  letter-spacing: .13em;
  text-transform: uppercase;
}
footer .logo img { width: 250px; }

/* Champ photo harmonisé avec le formulaire de contact. */
.form-grid input[type="file"] {
  width: 100%;
  margin-top: 7px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.5);
  background: transparent;
  color: #f5f0e5;
  font: 400 .88rem "DM Sans", Arial, sans-serif;
  cursor: pointer;
}
.form-grid input[type="file"]::file-selector-button,
.form-grid input[type="file"]::-webkit-file-upload-button {
  margin-right: 12px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.55);
  background: #efe9df;
  color: #172a25;
  font: 500 .65rem "DM Mono", monospace;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .25s ease, transform .25s ease;
}
.form-grid input[type="file"]::file-selector-button:hover { background: #fff; transform: translateY(-2px); }

/* En-tête contrasté sur toutes les pages secondaires. */
body:not(.home) .site-header { position: relative; background: #172a25; color: #f5f0e5; }
body:not(.home) .site-header .logo img { filter: brightness(0) invert(1); }
body:not(.home) .site-header .menu .button { background: #f5f0e5; color: #172a25; }

@media (max-width: 1050px) {
  .certification .seal { justify-self: center; margin: .5rem auto 0; }
}
@media (max-width: 760px) {
  .certification { display: block; padding: 5rem 7vw; text-align: center; }
  .certification > p { margin: 2rem auto; }
  .certification .eyebrow { margin-left: auto; margin-right: auto; }
  .certification .seal { justify-self: center; margin: .5rem auto 0; }
}
@media (prefers-reduced-motion: reduce) {
  .certification::before, .certification > * { animation: none; opacity: 1; transform: none; }
  .certification .seal { transition: none; }
}

/* assets/v1.16.css */
/* Version 1.16 — récit d'atelier, galeries cliquables et boutique ordonnée. */
.atelier-note {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 7rem);
  padding: 0 7vw clamp(6rem, 9vw, 9rem);
  background: #f6f3ed;
}
.atelier-note__visual {
  position: relative;
  min-width: 0;
  min-height: 520px;
  margin: 0;
  background: #dfe3d7;
}
.atelier-note__visual::after {
  content: "";
  position: absolute;
  inset: 17px;
  border: 1px dashed rgba(245, 240, 229, .86);
  pointer-events: none;
}
.atelier-note__visual img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  object-position: center;
}
.atelier-note__visual figcaption {
  position: absolute;
  inset: auto auto 0 0;
  display: block;
  padding: 1rem 1.3rem;
  background: rgba(23, 42, 37, .86);
  color: #f7f0e5;
  font: 500 .62rem var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.atelier-note__copy { max-width: 590px; }
.atelier-note__copy .eyebrow { color: #561628; }
.atelier-note__copy h2 {
  margin: 0 0 2.2rem;
  font: 500 clamp(3.6rem, 5.3vw, 6rem)/.95 var(--serif);
  letter-spacing: -.065em;
  text-wrap: balance;
}
.atelier-note__copy h2 em { font-style: italic; }
.atelier-note__copy > p:not(.eyebrow) {
  max-width: 440px;
  margin: 0 0 2rem;
  color: #45564d;
  font-size: 1.08rem;
  line-height: 1.75;
}
.atelier-note__copy > a {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid #561628;
  font: 500 .7rem var(--mono);
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}
.atelier-note__copy > a span,
.gallery figcaption span,
.button span,
.card a b,
.shop-card__foot a span {
  display: inline-block;
  transition: transform .3s cubic-bezier(.22, .8, .25, 1);
}
.atelier-note__copy > a:hover span,
.atelier-note__copy > a:focus-visible span,
.gallery figure:hover figcaption span,
.gallery figure:focus-within figcaption span,
.button:hover span,
.button:focus-visible span,
.card a:hover b,
.card a:focus-visible b,
.shop-card__foot a:hover span,
.shop-card__foot a:focus-visible span { transform: translate(3px, -3px); }

/* Toute la photo d'accueil mène désormais à la galerie correspondante. */
.gallery figure > a { position: absolute; z-index: 4; inset: 0; display: block; }
.gallery figure > a:focus-visible { outline: 2px solid #f7f0e5; outline-offset: -6px; }
.gallery figure:focus-within { z-index: 1; }
.gallery figure:focus-within::after { opacity: 1; }

/* Légendes rédigées dans Gutenberg : visibles et utilisées dans la visionneuse. */
.portfolio-gallery__editor-content .wp-block-gallery .wp-element-caption {
  display: block;
  position: absolute;
  z-index: 3;
  inset: auto 0 0;
  margin: 0;
  padding: 3rem 1.1rem 1rem;
  background: linear-gradient(transparent, rgba(8, 19, 16, .84));
  color: #f7f0e5;
  font: 500 1rem/1.35 var(--serif);
  text-align: left;
  pointer-events: none;
}

/* Histoire facultative d'une réalisation : une image ou un vrai avant/après. */
.project-story { padding: clamp(5rem, 9vw, 9rem) 7vw; background: #f8f6f0; }
.project-story__inner {
  max-width: 1180px;
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: center;
}
.project-story__copy .eyebrow { color: #561628; }
.project-story__copy h2 { margin: 0 0 2rem; font-size: clamp(3.2rem, 5vw, 5.8rem); text-wrap: balance; }
.project-story__copy > p:not(.eyebrow) { max-width: 480px; font-size: 1.08rem; line-height: 1.7; }
.project-story__materials { padding-top: 1.2rem; border-top: 1px dashed #b8c1b6; color: #536158; }
.project-story__materials span { display: block; margin-bottom: .7rem; color: #561628; font: 500 .66rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.project-story__images { display: grid; gap: 12px; min-width: 0; }
.project-story__images--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-story__images figure { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #dfe3d7; }
.project-story__images figure::after { content: ""; position: absolute; inset: 12px; border: 1px dashed rgba(245, 240, 229, .78); pointer-events: none; }
.project-story__images img { display: block; width: 100%; height: clamp(340px, 40vw, 530px); object-fit: cover; cursor: zoom-in; }
.project-story__images figcaption { position: absolute; inset: auto 0 0; display: block; padding: 2.8rem 1rem .9rem; background: linear-gradient(transparent, rgba(8, 19, 16, .75)); color: #fff; font: 500 .72rem var(--mono); letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.project-story__images .mage-lightbox__trigger:focus-visible { outline: 2px solid #172a25; outline-offset: -5px; }

/* La boutique met les pièces disponibles avant les archives. */
.shop-grid__group-title { grid-column: 1 / -1; padding: .25rem 0 1.2rem; border-bottom: 1px dashed #b8c1b6; }
.shop-grid__group-title .eyebrow { margin: 0 0 .6rem; color: #561628; }
.shop-grid__group-title h3 { margin: 0; font: 500 clamp(2.3rem, 3.4vw, 3.8rem)/1 var(--serif); letter-spacing: -.055em; }
.shop-card h4 { font: 500 clamp(2rem, 2.6vw, 3rem)/1.02 var(--serif); letter-spacing: -.045em; margin: .35rem 0 1.1rem; }
.shop-card h4 a { text-decoration: none; }
.shop-card h4 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }

/* Une lecture plus nette des horaires, sans modifier les heures annoncées. */
.site-footer__hours { padding-left: 1.4rem; border-left: 1px dashed rgba(245, 240, 229, .35); }
.contact-aside__hours { padding-left: 1.2rem; border-left: 2px solid #561628; }

/* Apparition progressive : activée uniquement si le script et l'observateur fonctionnent. */
.mage-motion-ready .mage-reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s cubic-bezier(.22, .8, .25, 1); }
.mage-motion-ready .mage-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1050px) {
  .atelier-note { grid-template-columns: 1fr 1fr; gap: 3rem; }
  .atelier-note__visual, .atelier-note__visual img { min-height: 410px; }
  .project-story__inner { gap: 3rem; }
}
@media (max-width: 760px) {
  .atelier-note { grid-template-columns: 1fr; gap: 2.5rem; padding: 0 7vw 5rem; }
  .atelier-note__visual, .atelier-note__visual img { min-height: 0; aspect-ratio: 4 / 3; }
  .atelier-note__copy h2 { font-size: clamp(3.2rem, 12vw, 4.6rem); }
  .project-story { padding: 5rem 7vw; }
  .project-story__inner { grid-template-columns: 1fr; }
  .project-story__images img { height: 360px; }
  .project-story__images--pair img { height: 270px; }
  .site-footer__hours { margin-top: 2rem; padding: 1.2rem 0 0; border-left: 0; border-top: 1px dashed rgba(245, 240, 229, .35); }
}
@media (max-width: 440px) {
  .project-story__images--pair { grid-template-columns: 1fr; }
  .project-story__images--pair img { height: 330px; }
}
@media (prefers-reduced-motion: reduce) {
  .mage-motion-ready .mage-reveal { opacity: 1; transform: none; transition: none; }
  .atelier-note__copy > a span, .gallery figcaption span, .button span, .card a b, .shop-card__foot a span { transition: none; }
}

/* assets/v1.17.css */
/* Version 1.17 — cadres cousus et comparaison avant/après. */
.atelier-note__visual { overflow: hidden; }
.atelier-note__visual img { transition: transform .85s cubic-bezier(.22, .8, .25, 1); }
.atelier-note__visual::after {
  z-index: 2;
  opacity: .75;
  transform: translate(4px, 4px);
  animation: mage-stitch-breathe 7s ease-in-out infinite alternate;
  transition: inset .55s ease, opacity .55s ease, transform .55s ease;
}
.atelier-note__visual:hover img { transform: scale(1.035); }
.atelier-note__visual:hover::after { inset: 20px; opacity: 1; transform: translate(0); animation: none; }

/* La photo unique des pages textiles et abat-jours conserve le cadre pointillé. */
.project-story__images figure::after {
  z-index: 2;
  opacity: .78;
  transform: translate(4px, 4px);
  animation: mage-stitch-breathe 7s ease-in-out infinite alternate;
  transition: inset .5s ease, opacity .5s ease, transform .5s ease;
}
.project-story__images figure img { transition: transform .8s cubic-bezier(.22, .8, .25, 1); }
.project-story__images figure:hover img,
.project-story__images figure:focus-within img { transform: scale(1.045); }
.project-story__images figure:hover::after,
.project-story__images figure:focus-within::after { inset: 16px; opacity: 1; transform: none; animation: none; }
.project-story__images figure:focus-within { outline: 2px solid #561628; outline-offset: 3px; }

/* Deux photos superposées : le curseur révèle l'avant sur l'après. */
.project-compare {
  --split: 50%;
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  isolation: isolate;
  background: #dfe3d7;
}
.project-compare__photo,
.project-compare__photo img { position: absolute; inset: 0; width: 100%; height: 100%; }
.project-compare__photo img { display: block; object-fit: cover; object-position: center; }
.project-compare__photo--after { z-index: 1; }
.project-compare__photo--before { z-index: 2; clip-path: inset(0 calc(100% - var(--split)) 0 0); }
.project-compare__label {
  position: absolute;
  z-index: 3;
  top: 1.8rem;
  padding: .65rem .8rem;
  background: rgba(23, 42, 37, .84);
  color: #f7f0e5;
  font: 500 .66rem var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  pointer-events: none;
}
.project-compare__label--before { left: 1.8rem; }
.project-compare__label--after { right: 1.8rem; }
.project-compare__frame {
  position: absolute;
  z-index: 4;
  inset: 16px;
  border: 1px dashed rgba(247, 240, 229, .9);
  pointer-events: none;
  opacity: .8;
  transform: translate(4px, 4px);
  animation: mage-stitch-breathe 7s ease-in-out infinite alternate;
  transition: opacity .45s ease, transform .45s ease;
}
.project-compare:hover .project-compare__frame,
.project-compare:focus-within .project-compare__frame { opacity: 1; transform: none; animation: none; }
.project-compare__divider {
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  left: var(--split);
  width: 2px;
  transform: translateX(-50%);
  background: #f7f0e5;
  box-shadow: 0 0 10px rgba(0, 0, 0, .27);
  pointer-events: none;
}
.project-compare__handle {
  position: absolute;
  z-index: 5;
  top: 50%;
  left: clamp(26px, var(--split), calc(100% - 26px));
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid #f7f0e5;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: #561628;
  color: #fff;
  box-shadow: 0 7px 22px rgba(23, 42, 37, .25);
  font: 500 1.45rem var(--sans);
  pointer-events: none;
}
.project-compare input[type="range"] {
  position: absolute;
  z-index: 6;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
  touch-action: none;
}
.project-compare:focus-within { outline: 3px solid #561628; outline-offset: 4px; }
.project-compare .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.project-compare__hint {
  margin: .8rem 0 0;
  color: #536158;
  font: 500 .68rem/1.5 var(--mono);
  letter-spacing: .04em;
  text-align: center;
}
@keyframes mage-stitch-breathe {
  from { opacity: .55; transform: translate(4px, 4px); }
  to { opacity: .92; transform: translate(0, 0); }
}
@media (max-width: 760px) {
  .project-compare { aspect-ratio: 4 / 5; }
  .project-compare__label { top: 1.4rem; }
  .project-compare__label--before { left: 1.4rem; }
  .project-compare__label--after { right: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .atelier-note__visual img,
  .atelier-note__visual::after,
  .project-story__images figure img,
  .project-story__images figure::after,
  .project-compare__frame { animation: none; transition: none; transform: none; }
}

/* assets/v1.18.css */
/* Version 1.18 — images adaptées aux petits écrans, sans modifier la composition. */
@media (max-width: 760px) {
  .hero::before {
    background-image: linear-gradient(90deg, rgba(16,30,26,.78), rgba(16,30,26,.12)), var(--mage-image-mobile, var(--mage-image)) !important;
  }

  .services {
    background-image: linear-gradient(to bottom, rgba(223,227,215,.56) 0%, rgba(223,227,215,.90) 100%), var(--mage-services-image-mobile, var(--mage-services-image));
  }

  .card::before {
    background-image: var(--mage-image-mobile, var(--mage-image)) !important;
  }

  .contact-aside {
    background-image: linear-gradient(to bottom, rgba(223,227,215,.58) 0%, rgba(223,227,215,.96) 100%), var(--mage-contact-image-mobile, var(--mage-contact-image));
  }

  .portfolio-hero::before {
    background: linear-gradient(90deg, rgba(18,37,32,.91) 0%, rgba(18,37,32,.57) 48%, rgba(18,37,32,.14) 100%), var(--mage-portfolio-image-mobile, var(--mage-portfolio-image)) center/cover;
  }

  .portfolio-related__link::before {
    background-image: linear-gradient(to bottom, rgba(246,243,237,.86), rgba(246,243,237,.72)), var(--mage-related-image-mobile, var(--mage-related-image));
  }

  .shop-hero__image {
    background-image: var(--mage-shop-image-mobile, var(--mage-shop-image));
  }
}

/* assets/v1.19.css */
/* Version 1.19 — parcours contact/réalisations et portes d'entrée SEO. */
.menu-portfolio{position:relative}
.menu-portfolio>a{display:inline-flex;align-items:center;gap:.45rem}
.menu-portfolio>a::after{content:"⌄";font-size:1rem;line-height:0;transform:translateY(-2px)}
.menu-portfolio__links{position:absolute;top:100%;left:-1rem;min-width:15rem;padding:1rem 0;background:#172a25;color:#fbf3e8;box-shadow:0 14px 28px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(.5rem);transition:opacity .25s ease,transform .25s ease,visibility .25s ease}
.menu-portfolio:hover .menu-portfolio__links,.menu-portfolio:focus-within .menu-portfolio__links{opacity:1;visibility:visible;transform:none}
.site-header .menu-portfolio__links a{display:block;padding:.7rem 1rem;white-space:nowrap;transition:background .2s ease}
.site-header .menu-portfolio__links a:hover,.site-header .menu-portfolio__links a:focus-visible{background:rgba(255,255,255,.12)}
.site-footer__explore a{text-underline-offset:.22em}

.contact-page__hero{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,6vw,7rem);align-items:center;min-height:590px;padding:6rem 10vw 7rem;background:#dfe3d7;overflow:hidden}
.contact-page__hero::before,.realisations-page__hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(#172a25 .5px,transparent .7px);background-size:7px 7px;opacity:.11;pointer-events:none}
.contact-page__hero-copy{position:relative;z-index:1}
.contact-page__hero h1,.realisations-page__hero h1{font:500 clamp(4rem,7vw,7.5rem)/.91 var(--serif);letter-spacing:-.065em;margin:0}
.contact-page__hero h1 em,.realisations-page__hero h1 em{font-style:italic}
.contact-page__hero-copy>p:not(.eyebrow),.realisations-page__hero>p:not(.eyebrow){max-width:32rem;margin:2rem 0;font-size:1.07rem;line-height:1.7;color:#45564d}
.contact-page__hero-copy>a{font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.45rem;display:inline-flex;gap:1.5rem;align-items:center}
.contact-page__hero-copy>a span{font-size:1.1rem;transition:transform .3s ease}
.contact-page__hero-copy>a:hover span{transform:translate(3px,3px)}
.contact-page__hero-image{position:relative;min-width:0;aspect-ratio:5/4;background:#c8d0c4;box-shadow:16px 16px 0 #bbc5b6}
.contact-page__hero-image::after{content:"";position:absolute;inset:16px;border:1px dashed rgba(255,255,255,.85);pointer-events:none}
.contact-page__hero-image img{display:block;width:100%;height:100%;object-fit:cover}
.contact-page__details{scroll-margin-top:1rem}
.contact-page__details .contact-main{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}

.realisations-page__hero{position:relative;padding:clamp(6rem,10vw,10rem) 10vw 6rem;background:#dfe3d7;overflow:hidden}
.realisations-page__hero>*{position:relative}
.realisations-page__galleries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#b8c1b6;padding:0 5vw 6rem;background-color:#dfe3d7}
.realisations-page__card{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(380px,38vw,590px);padding:2rem;overflow:hidden;color:#fff;text-decoration:none;background:#172a25}
.realisations-page__card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,42,37,.18) 0%,rgba(23,42,37,.10) 35%,rgba(23,42,37,.83) 100%),var(--mage-gallery-image) center/cover;transition:transform .7s ease,filter .5s ease}
.realisations-page__card::after{content:"";position:absolute;inset:16px;border:1px dashed rgba(255,255,255,.8);opacity:0;transform:translate(6px,6px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.realisations-page__card:hover::before,.realisations-page__card:focus-visible::before{transform:scale(1.05);filter:saturate(1.08)}
.realisations-page__card:hover::after,.realisations-page__card:focus-visible::after{opacity:1;transform:none}
.realisations-page__number,.realisations-page__card-copy{position:relative;z-index:1}
.realisations-page__number{font:.72rem var(--mono)}
.realisations-page__card-copy{display:flex;flex-direction:column;gap:1.4rem}
.realisations-page__card-copy strong{font:500 clamp(2.4rem,3.5vw,4.1rem)/1.02 var(--serif);letter-spacing:-.05em}
.realisations-page__card-copy>span{font:500 .7rem var(--mono);text-transform:uppercase;letter-spacing:.1em}
.realisations-page__card-copy>span span{margin-left:.7rem;font-size:1.1rem}
.realisations-page__cta{padding:clamp(5rem,9vw,9rem) 10vw;background:#561628;color:#fbf3e8}
.realisations-page__cta h2{font-size:clamp(3.5rem,6vw,6.5rem);margin-bottom:2.5rem}

@media(max-width:1100px){
  .site-header .menu .menu-portfolio{display:block;border-bottom:1px solid rgba(255,255,255,.2)}
  .site-header .menu .menu-portfolio>a{display:flex;padding:1rem 0;font-size:.82rem}
  .menu-portfolio>a::after{display:none}
  .menu-portfolio__links{position:static;display:flex;flex-direction:column;min-width:0;padding:0 0 .8rem .9rem;background:transparent;box-shadow:none;opacity:1;visibility:visible;transform:none}
  .site-header .menu .menu-portfolio__links a{display:block;padding:.55rem 0;font-size:.72rem;white-space:normal;color:#dfe3d7}
}
@media(max-width:760px){
  .contact-page__hero{grid-template-columns:1fr;gap:2.5rem;padding:5rem 7vw 5rem}
  .contact-page__hero-image{aspect-ratio:5/3}
  .realisations-page__hero{padding:5rem 7vw 4rem}
  .realisations-page__galleries{grid-template-columns:1fr;gap:1px;padding:0 7vw 5rem}
  .realisations-page__card{min-height:370px}
  .realisations-page__cta{padding:5rem 7vw}
}
@media(prefers-reduced-motion:reduce){
  .menu-portfolio__links,.contact-page__hero-copy>a span,.realisations-page__card::before,.realisations-page__card::after{transition:none}
}

/* Version 1.23 — page introuvable, dans le langage visuel de l’atelier. */
.not-found-page__hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: center;
  min-height: min(850px, 90vh);
  padding: clamp(160px, 15vw, 210px) 10vw 8rem;
  overflow: hidden;
  background: #172a25;
  color: #fbf3e8;
}
.not-found-page__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(rgba(251, 243, 232, .5) .5px, transparent .7px) 0 0 / 8px 8px;
  opacity: .14;
  pointer-events: none;
}
.not-found-page__copy { position: relative; z-index: 1; }
.not-found-page__copy .eyebrow { color: #d6b8aa; }
.not-found-page__copy h1 {
  margin: 0;
  font: 500 clamp(4.2rem, 8vw, 8rem)/.93 var(--serif);
  letter-spacing: -.065em;
}
.not-found-page__copy h1 em { font-style: italic; }
.not-found-page__intro {
  max-width: 34rem;
  margin: 2.5rem 0;
  color: #d8ded6;
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  line-height: 1.7;
}
.not-found-page__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem 2.25rem; }
.not-found-page__text-link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: .7rem 0;
  border-bottom: 1px solid rgba(251, 243, 232, .7);
  font: 500 .7rem var(--mono);
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: gap .3s ease, border-color .3s ease;
}
.not-found-page__text-link:hover,
.not-found-page__text-link:focus-visible { gap: 1.35rem; border-color: #fbf3e8; }
.not-found-page__visual {
  position: relative;
  align-self: stretch;
  min-height: 450px;
  isolation: isolate;
  background: #59685d;
  box-shadow: 18px 18px 0 rgba(223, 227, 215, .16);
}
.not-found-page__visual::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 17px;
  border: 1px dashed rgba(251, 243, 232, .82);
  pointer-events: none;
  animation: mage-stitch-breathe 7s ease-in-out infinite alternate;
}
.not-found-page__visual img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.not-found-page__visual span {
  position: absolute;
  z-index: 1;
  inset: auto 0 0;
  padding: 4rem 2.2rem 2.2rem;
  background: linear-gradient(transparent, rgba(13, 29, 24, .78));
  font: 500 clamp(1.2rem, 2vw, 1.8rem)/1.25 var(--serif);
}
.not-found-page__paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  padding: 0 5vw 6rem;
  background: #dfe3d7;
}
.not-found-page__paths a {
  display: grid;
  grid-template-columns: 1fr auto;
  align-content: space-between;
  min-height: 230px;
  padding: 2.25rem;
  background: #f6f3ed;
  color: #172a25;
  text-decoration: none;
  transition: background .3s ease, transform .3s ease;
}
.not-found-page__paths a:hover,
.not-found-page__paths a:focus-visible { background: #fbf3e8; transform: translateY(-5px); }
.not-found-page__paths a:focus-visible,
.not-found-page__actions a:focus-visible { outline: 2px dashed currentColor; outline-offset: 5px; }
.not-found-page__paths small {
  grid-column: 1 / -1;
  font: 500 .68rem var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.not-found-page__paths strong {
  align-self: end;
  font: 500 clamp(2rem, 2.8vw, 3rem)/1 var(--serif);
  letter-spacing: -.05em;
}
.not-found-page__paths a > span { align-self: end; font-size: 1.4rem; }
@media (max-width: 900px) {
  .not-found-page__hero { grid-template-columns: 1fr; padding: 150px 7vw 6rem; }
  .not-found-page__visual { width: min(100%, 560px); min-height: 360px; aspect-ratio: 5 / 3; }
  .not-found-page__paths { padding: 0 7vw 5rem; }
}
@media (max-width: 760px) {
  .not-found-page__hero { gap: 3rem; padding-top: 135px; }
  .not-found-page__copy h1 { font-size: clamp(3.8rem, 13vw, 6rem); }
  .not-found-page__visual { min-height: 300px; }
  .not-found-page__paths { grid-template-columns: 1fr; }
  .not-found-page__paths a { min-height: 145px; padding: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .not-found-page__visual::after { animation: none; transform: none; }
  .not-found-page__paths a,
  .not-found-page__text-link { transition: none; }
}
