/*
Theme Name: MÃ©gane Perrin Photographe
Theme URI: https://meganeperrin.fr/
Author: MÃ©gane Perrin
Description: ThÃ¨me bloc sur mesure, construit depuis la maquette validÃ©e (mÃ©thode Claude to WordPress).
Version: 1.0.22
Requires at least: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: meganeperrin
*/
/* Polices (licence OFL), hÃ©bergÃ©es dans assets/fonts */
@font-face { font-family: 'Allura'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/allura-400-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Allura'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/allura-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url('assets/fonts/jost-300-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 300; font-display: swap; src: url('assets/fonts/jost-300-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/jost-400-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/jost-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/jost-500-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/jost-500-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/marcellus-400-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/marcellus-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Mégane Perrin Photographe — maquette (phase 2) */
:root {
  --vert: #4C5D4D;
  --vert-fonce: #3A483B;
  --creme: #EFEDE7;
  --papier: #F7F5F0;
  --noir: #000000;
  --encre: #1E211E;
  --gris: #5F625E;
  --serif: "Marcellus", "Times New Roman", serif;
  --sans: "Jost", "Helvetica Neue", Arial, sans-serif;
  --script: "Allura", cursive;
  --gutter: clamp(16px, 4vw, 64px);
  --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.25  0 0 0 0 0.24  0 0 0 0 0.2  0 0 0 .10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--creme) var(--grain);
  color: var(--encre);
  font: 300 17px/1.75 var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, :root :where(.is-layout-flow > :is(h1, h2, h3)) { font-family: var(--serif); font-weight: 400; line-height: 1.15; margin: 0 0 .6em; color: var(--vert); }
h2 { font-size: clamp(30px, 3.6vw, 48px); }
p, :root :where(.is-layout-flow > p) { margin: 0 0 1.1em; }
:root :where(.is-layout-flow > :is(ul, ol)) { margin: 0 0 1.1em; }
.wp-block-image { margin: 0; }
strong { font-weight: 500; }

.script { font-family: var(--script); font-weight: 400; color: var(--vert); line-height: 1; margin: 0; }
.eyebrow { font: 400 12px/1.4 var(--sans); letter-spacing: .32em; text-transform: uppercase; margin: 0 0 18px; }
.kicker { font: 400 13px/1.6 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--encre); max-width: 34em; margin: 0 auto 28px; }

.ornament { width: 66px; height: auto; margin: 0 auto 30px; }
.ornament-light { filter: brightness(0) invert(.94); opacity: .9; }

.btn {
  display: inline-block; padding: 15px 38px; background: var(--vert); color: var(--creme);
  font: 400 12px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; text-decoration: none;
  border: 1px solid var(--vert); transition: background .3s, color .3s;
}
.btn:hover { background: var(--vert-fonce); }
.btn-ghost { background: transparent; color: var(--vert); }
.btn-ghost:hover { background: var(--vert); color: var(--creme); }
.btn-light { background: var(--creme); color: var(--vert); border-color: var(--creme); }
.btn-light:hover { background: transparent; color: var(--creme); }

/* ---------- Header ---------- */
.site-header {
  position: absolute; inset: 0 0 auto 0; z-index: 10;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 32px;
  padding: 26px var(--gutter);
  color: var(--creme);
}
.nav { display: flex; gap: clamp(18px, 2.4vw, 40px); padding-top: 16px; border-top: 1px solid rgba(239, 237, 231, .45); }
.nav-left { justify-content: flex-start; }
.nav-right { justify-content: flex-end; }
.nav a, .nav a:visited {
  font: 400 12px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; text-decoration: none;
  padding: 8px 0; background: linear-gradient(transparent, transparent);
}
.nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.nav, .brand { position: relative; }
.nav-left::before, .nav-right::before { content: none; }
.brand { padding: 0 22px; }
.brand img { width: clamp(200px, 20vw, 290px); }
.menu-toggle { display: none; }

/* ---------- Hero ---------- */
.hero { position: relative; height: 100vh; min-height: 640px; max-height: 1100px; overflow: hidden; color: var(--creme); }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,0) 55%),
    linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,.55) 100%);
}
.hero-content { position: absolute; z-index: 2; left: var(--gutter); bottom: 200px; max-width: 980px; }
.hero-content .eyebrow { color: var(--creme); }
.hero-title { color: var(--creme); font-size: clamp(40px, 5vw, 76px); line-height: 1.04; margin: 0; max-width: 13em; text-shadow: 0 2px 30px rgba(0,0,0,.3); }
.hero-script { color: var(--creme); font-size: clamp(32px, 3.6vw, 54px); margin: 14px 0 0 clamp(30px, 8vw, 160px); white-space: nowrap; }
.hero-foot {
  position: absolute; z-index: 2; left: var(--gutter); right: var(--gutter); bottom: 120px;
  display: flex; justify-content: space-between; border-top: 1px solid rgba(239,237,231,.5); padding-top: 14px;
  font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase;
}
.tear { position: absolute; z-index: 3; left: 0; bottom: -1px; width: 100%; height: 90px; }
.tear-back { fill: #FBFAF7; filter: drop-shadow(0 -2px 3px rgba(0,0,0,.25)); }
.tear-front { fill: var(--creme); }

/* ---------- Intro ---------- */
.intro { text-align: center; padding: 110px var(--gutter) 90px; }
.lead { font: 400 clamp(22px, 2.2vw, 30px)/1.5 var(--serif); color: var(--encre); max-width: 900px; margin: 0 auto 34px; }
.intro-script { font-size: clamp(40px, 4.5vw, 62px); margin-bottom: 36px; }

/* ---------- Triptyque ---------- */
.triptych {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px;
  max-width: 1180px; margin: 0 auto; padding: 0 var(--gutter);
}
.triptych img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }

/* ---------- Qui je suis ---------- */
.about {
  display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(40px, 7vw, 120px); align-items: center;
  max-width: 1240px; margin: 0 auto; padding: 150px var(--gutter) 140px;
}
.about-photos { position: relative; min-height: 600px; }
.polaroid { margin: 0; background: #FBFAF7; padding: 14px 14px 0; box-shadow: 0 18px 40px -18px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.08); position: relative; }
.polaroid img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.polaroid figcaption { font: 400 13px/1 var(--serif); letter-spacing: .2em; text-transform: uppercase; text-align: center; padding: 20px 6px 22px; color: var(--encre); }
.polaroid:not(:has(figcaption)) { padding-bottom: 44px; }
.tape {
  position: absolute; z-index: 2; top: -16px; left: 50%; width: 120px; height: 32px; margin-left: -60px;
  background: rgba(218, 205, 178, .78); transform: rotate(-4deg);
  clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 2% 96%, 0 50%);
}
.about-photos .polaroid { position: absolute; }
.about-photos .tilt-l { width: 74%; left: 0; top: 0; transform: rotate(-3deg); }
.about-photos .tilt-l img { aspect-ratio: 4 / 5; }
.about-photos .tilt-r { width: 46%; right: 0; bottom: -40px; transform: rotate(5deg); }
.about-photos .tilt-r img { aspect-ratio: 3 / 4; }
.about-text .script { font-size: clamp(38px, 3.8vw, 56px); margin-bottom: 8px; }

/* ---------- Histoires (tableau de polaroids) ---------- */
.stories { text-align: center; padding: 120px var(--gutter) 130px; background: var(--papier) var(--grain); }
.stories-script { font-size: clamp(46px, 5vw, 76px); margin-bottom: 14px; }
.board {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 70px 56px;
  max-width: 1100px; margin: 70px auto 80px; align-items: start;
}
.board .polaroid img { aspect-ratio: 5 / 4; }
.board .p2 img, .board .p5 img, .board .p6 img { aspect-ratio: 4 / 5; }
.board .p1 { transform: rotate(-3deg); margin-top: 20px; }
.board .p2 { transform: rotate(1.5deg); margin-top: 60px; }
.board .p3 { transform: rotate(3deg); }
.board .p4 { transform: rotate(2deg); margin-top: -40px; }
.board .p5 { transform: rotate(-2deg); }
.board .p6 { transform: rotate(-3.5deg); margin-top: -50px; }
.board .polaroid { transition: transform .4s ease; }
.board .polaroid:hover { transform: rotate(0) scale(1.03); z-index: 3; }

/* ---------- Destination ---------- */
.destination { position: relative; min-height: 760px; display: flex; align-items: center; justify-content: flex-end; padding: 100px var(--gutter); overflow: hidden; }
.destination-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.destination-card {
  position: relative; max-width: 500px; background: var(--vert); color: var(--creme);
  padding: clamp(36px, 4vw, 60px); margin-right: clamp(0px, 4vw, 80px);
  box-shadow: 0 30px 60px -30px rgba(0,0,0,.6);
}
.destination-card h2 { color: var(--creme); }
.destination-card p { color: rgba(239,237,231,.9); }
.destination-card .btn { margin-top: 10px; }

/* ---------- Carnet ---------- */
.carnet {
  display: grid; grid-template-columns: .9fr 1fr; gap: clamp(40px, 7vw, 110px); align-items: center;
  max-width: 1180px; margin: 0 auto; padding: 150px var(--gutter);
}
.carnet-img img { width: 100%; max-width: 480px; margin: 0 auto; aspect-ratio: 2 / 3; object-fit: cover; }
.ticks { list-style: none; padding: 0; margin: 0 0 34px; }
.ticks li { padding: 12px 0 12px 34px; border-top: 1px solid rgba(76,93,77,.25); position: relative; }
.ticks li:last-child { border-bottom: 1px solid rgba(76,93,77,.25); }
.ticks li::before { content: ""; position: absolute; left: 4px; top: 50%; width: 14px; height: 1px; background: var(--vert); }

/* ---------- Presse ---------- */
.press { background: var(--vert) var(--grain); color: var(--creme); text-align: center; padding: 80px var(--gutter); }
.press-script { color: var(--creme); font-size: clamp(42px, 4.4vw, 64px); margin-bottom: 30px; }
.press-list { list-style: none; padding: 0; margin: 0 auto 30px; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 0; max-width: 1100px; }
.press-list li + li::before { content: "·"; margin: 0 22px; opacity: .6; }
.press-list a { font: 400 clamp(17px, 1.6vw, 22px)/1.4 var(--serif); text-decoration: none; }
.press-list a:hover { text-decoration: underline; text-underline-offset: 6px; }
.press-reviews { font: 400 12px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid rgba(239,237,231,.6); padding-bottom: 6px; }

/* ---------- FAQ ---------- */
.faq { max-width: 860px; margin: 0 auto; padding: 140px var(--gutter) 120px; text-align: center; }
.faq h2 { margin-bottom: 50px; }
.faq details { text-align: left; border-top: 1px solid rgba(76,93,77,.3); }
.faq details:last-of-type { border-bottom: 1px solid rgba(76,93,77,.3); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 50px 24px 0; font: 400 clamp(19px, 1.7vw, 23px)/1.35 var(--serif); color: var(--encre); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font: 300 28px/1 var(--sans); color: var(--vert); transition: transform .3s; }
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details p { padding: 0 0 26px; margin: 0; color: var(--gris); }
.faq-more { display: inline-block; margin-top: 40px; font: 400 12px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; text-decoration: none; color: var(--vert); border-bottom: 1px solid var(--vert); padding-bottom: 6px; }

/* ---------- CTA final (collage) ---------- */
.final { position: relative; display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: center; gap: 0; padding: 120px var(--gutter) 150px; max-width: 1400px; margin: 0 auto; }
.final-card { position: relative; z-index: 2; background: #FBFAF7; text-align: center; padding: clamp(50px, 6vw, 90px) clamp(26px, 4vw, 60px); box-shadow: 0 30px 60px -36px rgba(0,0,0,.45); }
.final-script { font-size: clamp(46px, 4.6vw, 72px); margin-bottom: 26px; }
.final .polaroid { z-index: 1; }
.final .f1 { grid-column: 1; grid-row: 1; transform: rotate(-5deg) translateX(30px); width: 78%; justify-self: end; }
.final .f1 img { aspect-ratio: 3 / 4; }
.final .f2 { grid-column: 1; grid-row: 1; transform: rotate(4deg) translate(-10px, 190px); width: 62%; justify-self: start; z-index: 2; }
.final .f2 img { aspect-ratio: 4 / 3; }
.final-card { grid-column: 2; grid-row: 1; }
.final .f3 { grid-column: 3; grid-row: 1; transform: rotate(4deg) translate(-30px, -60px); width: 90%; }
.final .f3 img { aspect-ratio: 4 / 3; }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--noir); color: var(--creme);
  display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 40px; padding: 80px var(--gutter) 30px; text-align: center;
}
.foot-col { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.foot-col .script { color: var(--creme); font-size: 40px; margin-bottom: 10px; }
.foot-col a { font: 400 11px/1.6 var(--sans); letter-spacing: .24em; text-transform: uppercase; text-decoration: none; opacity: .85; }
.foot-col a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.foot-center { border-left: 1px solid rgba(239,237,231,.25); border-right: 1px solid rgba(239,237,231,.25); padding: 0 30px; }
.foot-center img { width: 260px; margin-bottom: 14px; }
.foot-zones { font-size: 14px; opacity: .75; max-width: 30em; }
.social { display: flex; gap: 26px; }
.copyright { grid-column: 1 / -1; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; opacity: .5; margin: 40px 0 0; padding-top: 24px; border-top: 1px solid rgba(239,237,231,.15); }

/* =========================================================
   Pages internes
   ========================================================= */

/* En-tête plein (pages sans photo d'ouverture) */
.page-solid .site-header { position: relative; background: var(--vert) var(--grain); }

/* Ouverture de page sur photo */
.hero-page { height: 78vh; min-height: 560px; max-height: 860px; }
.hero-page .hero-content { bottom: 150px; }
.hero-page .hero-title { font-size: clamp(38px, 4.6vw, 68px); }

/* Ouverture sans photo */
.page-intro { text-align: center; padding: 100px var(--gutter) 70px; max-width: 980px; margin: 0 auto; }
.page-intro h1 { font-size: clamp(38px, 4.6vw, 64px); margin-bottom: 22px; }
.page-intro .script { font-size: clamp(40px, 4vw, 60px); margin-bottom: 10px; }
.page-intro .lead { margin-bottom: 0; }

/* Carrousel de photos (inspiration « page mariage ») */
.carousel {
  display: flex; gap: 6px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0; margin: 0; background: var(--noir);
}
.carousel::-webkit-scrollbar { display: none; }
.carousel img { height: clamp(380px, 62vh, 680px); width: auto; flex: none; scroll-snap-align: start; object-fit: cover; }
.carousel-wrap { position: relative; }
.carousel-wrap .tear { bottom: -1px; }
.carousel-hint { position: absolute; z-index: 4; right: var(--gutter); bottom: 70px; color: var(--creme); font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; }

/* Bandeau vert en collage (inspiration Emilia) */
.band { background: var(--vert) var(--grain); color: var(--creme); position: relative; overflow: hidden; }
.band h2, .band h3 { color: var(--creme); }
.band .script { color: var(--creme); }
.band p { color: rgba(239,237,231,.9); }
.collage {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: center;
  max-width: 1360px; margin: 0 auto; padding: 130px var(--gutter);
}
.collage-photos { position: relative; min-height: 700px; }
.collage-photos > * { position: absolute; margin: 0; }
.collage-photos .c-main { left: 0; top: 0; width: 64%; }
.collage-photos .c-main img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.collage-photos .c-oval { right: 2%; top: 14%; width: 38%; }
.collage-photos .c-oval img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; border-radius: 50%; border: 6px solid var(--creme); }
.collage-photos .c-pola { right: 10%; bottom: 0; width: 42%; transform: rotate(4deg); }
.collage-photos .c-pola img { aspect-ratio: 4 / 3; }
.collage-text .script { font-size: clamp(40px, 4vw, 60px); margin-bottom: 10px; }
.band h1 { color: var(--creme); }
.collage-hero { max-width: 1480px; grid-template-columns: 1.25fr 1fr; padding-top: 50px; padding-bottom: 150px; }
.collage-hero .collage-photos { min-height: min(84vh, 860px); }
.collage-hero .c-main { width: 66%; }
.collage-hero .c-oval { width: 36%; top: 10%; }
.collage-hero .c-pola { width: 46%; right: 4%; bottom: -30px; }
.collage-hero h1 { font-size: clamp(42px, 4.4vw, 70px); margin-bottom: 30px; }
.collage-hero .script { font-size: clamp(50px, 5vw, 80px); }
.collage-hero p { font-size: clamp(17px, 1.35vw, 20px); }
.quote { font: 400 clamp(20px, 1.9vw, 26px)/1.55 var(--serif); }

/* Texte + image côte à côte */
.split {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 120px); align-items: center;
  max-width: 1180px; margin: 0 auto; padding: 90px var(--gutter);
}
.split + .split, .centered + .split, .split + .centered { padding-top: 10px; }
.split + .values, .split + .steps, .split + .offers, .split + .faq { padding-top: 30px; }
.page-intro + .split { padding-top: 30px; }
.steps + .offers, .offers + .faq, .offers + .split, .club-section + .split, .club-section + .club-section { padding-top: 30px; }
.club-nav + .club-section { padding-top: 20px; }
.band + .split, .band + .centered { padding-top: 70px; }
.split.reverse .split-media { order: 2; }
.split-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.split-media.oval img { border-radius: 50% / 42%; }
.split-media.arch img { border-radius: 999px 999px 0 0; }
.split-media.arch.landscape img { aspect-ratio: 4 / 3; border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.split .script { font-size: clamp(38px, 3.8vw, 56px); margin-bottom: 8px; }

/* Bloc centré */
.centered { text-align: center; max-width: 860px; margin: 0 auto; padding: 90px var(--gutter); }
.centered .script { font-size: clamp(40px, 4.2vw, 62px); margin-bottom: 14px; }

/* Prix d'appel */
.price-note { display: inline-block; margin: 10px 0 28px; padding: 18px 30px; border: 1px solid rgba(76,93,77,.4); font: 400 clamp(19px, 1.8vw, 24px)/1.4 var(--serif); color: var(--vert); }
.band .price-note { border-color: rgba(239,237,231,.45); color: var(--creme); }

/* Frise « comment ça se passe » */
.steps { max-width: 1000px; margin: 0 auto; padding: 120px var(--gutter); }
.steps h2 { text-align: center; margin-bottom: 70px; }
.steps ol { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 50px 90px; }
.steps ol::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px solid rgba(76,93,77,.35); }
.steps li { position: relative; padding-left: 76px; }
.steps li:nth-child(even) { margin-top: 90px; }
.steps .num { position: absolute; left: 0; top: -6px; font: 400 48px/1 var(--serif); color: rgba(76,93,77,.45); }
.steps h3 { font: 400 12px/1.5 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--encre); margin-bottom: 10px; }
.steps p { margin: 0; font-size: 16px; color: var(--gris); }

/* Formules */
.offers { max-width: 1240px; margin: 0 auto; padding: 120px var(--gutter); }
.offers > h2 { text-align: center; margin-bottom: 18px; }
.offers > .lead { text-align: center; margin: 0 auto 60px; font-size: clamp(19px, 1.7vw, 23px); }
.offer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.offer-grid.offer-duo { grid-template-columns: 1fr 1fr; max-width: 1000px; margin: 0 auto; gap: 30px; }
.offer-duo .offer { padding: 50px 44px 40px; }
.offer-duo .offer p { font-size: 16px; }
.offer { background: #FBFAF7; padding: 40px 30px 36px; display: flex; flex-direction: column; box-shadow: 0 20px 40px -32px rgba(0,0,0,.45); }
.offer.featured { background: var(--vert); color: var(--creme); }
.offer.featured h3, .offer.featured p.offer-price { color: var(--creme); }
.offer h3 { font: 400 13px/1 var(--sans); letter-spacing: .4em; text-transform: uppercase; color: var(--vert); margin: 0 0 14px; }
.offer p.offer-tag { font: 400 20px/1.3 var(--serif); margin: 0 0 16px; }
.offer p { font-size: 15px; }
.offer p.offer-price { font: 400 44px/1 var(--serif); color: var(--vert); margin: 6px 0 20px; }
.offer ul { list-style: none; padding: 0; margin: 0 0 6px; font-size: 14px; }
.offer li { padding: 9px 0; border-top: 1px solid rgba(76,93,77,.2); }
.offer.featured li { border-color: rgba(239,237,231,.25); }
.options { max-width: 640px; margin: 60px auto 0; text-align: center; }
.options h3 { font: 400 12px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--encre); margin-bottom: 18px; }
.options p { margin: 0; color: var(--gris); }

/* Valeurs */
.values { max-width: 1180px; margin: 0 auto; padding: 120px var(--gutter); text-align: center; }
.values h2 { margin-bottom: 60px; }
.values-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; text-align: left; }
.value { padding: 0 26px; border-left: 1px solid rgba(76,93,77,.3); }
.value:first-child { border-left: 0; }
.value h3 { font: 400 22px/1.25 var(--serif); margin-bottom: 14px; }
.value p { font-size: 15px; color: var(--gris); margin: 0; }
.values > .lead { max-width: 40em; margin: -30px auto 50px; }
.values-grid.values-trio { grid-template-columns: repeat(3, 1fr); }
.values + .centered { padding-top: 0; }
.values-note { margin: 50px auto 0; font: 400 clamp(19px, 1.7vw, 23px)/1.5 var(--serif); color: var(--encre); }

/* Symboles */
.symbols { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; max-width: 1000px; margin: 0 auto; padding: 0 var(--gutter); }
.symbol h3 { font-size: clamp(24px, 2.2vw, 30px); }
.band .symbols { padding-bottom: 50px; }
.ornament-xl { width: clamp(130px, 13vw, 190px); margin-bottom: 34px; }
.symbols-band .centered { padding-bottom: 50px; }
.symbols-end { max-width: 860px; margin: 0 auto; padding: 0 var(--gutter) 110px; text-align: center; }
.symbols-end p { font: 400 clamp(19px, 1.6vw, 22px)/1.6 var(--serif); color: var(--creme); }

/* Contact */
.contact { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(40px, 6vw, 100px); max-width: 1180px; margin: 0 auto; padding: 110px var(--gutter) 130px; }
.contact-info h2 { font-size: clamp(26px, 2.6vw, 36px); }
.contact-line { display: block; font: 400 clamp(20px, 1.9vw, 26px)/1.4 var(--serif); color: var(--encre); text-decoration: none; margin-bottom: 6px; }
.contact-label { font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--vert); margin: 34px 0 10px; }
.zones { list-style: none; padding: 0; margin: 0; }
.zones li { padding: 10px 0; border-top: 1px solid rgba(76,93,77,.25); }
.contact-photo { margin-top: 54px; transform: rotate(-2deg); }
.contact-photo img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* Formulaire de contact WPForms (id 2967) : surcharge de son style par défaut */
.contact-form { background: #FBFAF7; padding: clamp(32px, 4vw, 56px); box-shadow: 0 30px 60px -40px rgba(0,0,0,.5); align-self: start; }
.contact-form div.wpforms-container-full, .contact-form .wpforms-container { margin: 0 !important; }
.contact-form .wpforms-form .wpforms-field { padding: 0 0 26px !important; margin: 0 !important; }
.contact-form .wpforms-form .wpforms-field-label {
  display: block; font: 400 11px/1.4 var(--sans) !important; letter-spacing: .26em; text-transform: uppercase; color: var(--vert) !important; margin: 0 0 10px !important;
}
.contact-form .wpforms-form .wpforms-required-label { color: var(--vert) !important; font-weight: 400; }
.contact-form .wpforms-form .wpforms-field-row { display: flex; gap: 24px; max-width: none !important; }
.contact-form .wpforms-form .wpforms-field-row-block { flex: 1; padding: 0 !important; width: auto !important; }
.contact-form .wpforms-form .wpforms-field-sublabel { display: block; font: 300 13px/1.4 var(--sans) !important; color: var(--gris) !important; margin-top: 6px !important; }
.contact-form .wpforms-form input[type=text], .contact-form .wpforms-form input[type=email], .contact-form .wpforms-form input[type=tel],
.contact-form .wpforms-form input[type=number], .contact-form .wpforms-form select, .contact-form .wpforms-form textarea {
  width: 100% !important; max-width: none !important; height: auto !important; box-sizing: border-box;
  padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid rgba(76,93,77,.5) !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; font: 300 17px/1.4 var(--sans) !important; color: var(--encre) !important;
}
.contact-form .wpforms-form select { appearance: none; background: transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%234C5D4D' stroke-width='1.2'/></svg>") no-repeat right 4px center !important; cursor: pointer; }
.contact-form .wpforms-form textarea { min-height: 150px; border: 1px solid rgba(76,93,77,.4) !important; padding: 14px !important; resize: vertical; }
.contact-form .wpforms-form input:focus, .contact-form .wpforms-form select:focus, .contact-form .wpforms-form textarea:focus { outline: none; border-color: var(--vert) !important; }
.contact-form .wpforms-form .wpforms-submit-container { padding: 6px 0 0 !important; }
.contact-form .wpforms-form button.wpforms-submit {
  display: inline-block; padding: 16px 44px !important; background: var(--vert) !important; color: var(--creme) !important; border: 1px solid var(--vert) !important; border-radius: 0 !important;
  font: 400 12px/1 var(--sans) !important; letter-spacing: .3em; text-transform: uppercase; cursor: pointer; height: auto !important; box-shadow: none !important;
}
.contact-form .wpforms-form button.wpforms-submit:hover { background: var(--vert-fonce) !important; }
.contact-form .wpforms-form label.wpforms-error { font: 400 13px/1.4 var(--sans) !important; color: #9B3B2E !important; margin-top: 6px; }

/* Emplacement d'intégration (formulaire, galerie) */
.embed-slot {
  border: 1px dashed rgba(76,93,77,.55); background: rgba(251,250,247,.7); min-height: 460px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px;
}
.embed-slot strong { font: 400 22px/1.3 var(--serif); color: var(--vert); margin-bottom: 10px; display: block; }
.embed-slot span { font-size: 14px; color: var(--gris); max-width: 30em; }

/* FAQ complète */
.faq-page { padding-top: 40px; }
.faq-group + .faq-group { margin-top: 90px; }
.faq-group > h2 { font-size: clamp(28px, 3vw, 40px); }
.faq-group > p { color: var(--gris); margin-bottom: 40px; }

/* Texte long (CGV, mentions) */
.prose { max-width: 780px; margin: 0 auto; padding: 40px var(--gutter) 130px; }
.prose h2 { font-size: clamp(22px, 2.2vw, 28px); margin: 54px 0 16px; padding-top: 30px; border-top: 1px solid rgba(76,93,77,.25); }
.prose h3 { font: 400 12px/1.5 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--encre); margin: 26px 0 10px; }
.prose ul { padding-left: 20px; }
.prose li { margin-bottom: 6px; }
.prose .meta { color: var(--gris); font-size: 15px; }

/* Blog */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 60px 40px; max-width: 1240px; margin: 0 auto; padding: 20px var(--gutter) 140px; }
.post-card { text-decoration: none; display: block; }
.post-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; margin-bottom: 22px; transition: opacity .3s; }
.post-card:hover img { opacity: .88; }
.post-cat { font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--vert); margin: 0 0 12px; }
.post-card h2 { font-size: clamp(22px, 2vw, 27px); color: var(--encre); margin-bottom: 10px; }
.post-card p { font-size: 15px; color: var(--gris); margin: 0; }

/* Bon cadeau */
.gift-list { list-style: none; padding: 0; margin: 26px 0 34px; }
.gift-list li { padding: 14px 0 14px 34px; border-top: 1px solid rgba(76,93,77,.25); position: relative; }
.gift-list li:last-child { border-bottom: 1px solid rgba(76,93,77,.25); }
.gift-list li::before { content: ""; position: absolute; left: 4px; top: 50%; width: 14px; height: 1px; background: var(--vert); }

/* Iris */
.iris-hero { background: var(--noir); color: var(--creme); }
.iris-hero .split { padding-top: 160px; }
.iris-hero h1 { color: var(--creme); font-size: clamp(38px, 4.4vw, 62px); }
.iris-hero p { color: rgba(239,237,231,.88); }
.iris-hero .split-media img { aspect-ratio: 1 / 1; border-radius: 50%; }
.iris-strip { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 6px; background: var(--noir); padding: 0 0 6px; }
.iris-strip img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.iris-strip img:nth-child(2) { aspect-ratio: auto; }

/* Hello (page de liens) */
.page-bare { background: var(--vert) var(--grain); color: var(--creme); }
.links { max-width: 460px; margin: 0 auto; padding: 60px 16px 80px; text-align: center; }
.links-logo { width: 240px; margin: 0 auto 30px; }
.links-photo { width: 150px; height: 150px; border-radius: 50%; object-fit: cover; margin: 0 auto 20px; border: 4px solid var(--creme); }
.links .script { color: var(--creme); font-size: 40px; margin-bottom: 30px; }
.links a.link-btn {
  display: block; padding: 17px 20px; margin-bottom: 12px; border: 1px solid rgba(239,237,231,.6); text-decoration: none;
  font: 400 12px/1.3 var(--sans); letter-spacing: .26em; text-transform: uppercase; transition: background .3s, color .3s;
}
.links a.link-btn:hover, .links a.link-btn.primary { background: var(--creme); color: var(--vert); }
.links a.link-btn.primary:hover { background: transparent; color: var(--creme); }
.links-foot { margin-top: 34px; font-size: 13px; opacity: .7; }

/* Club privé : page publique */
.club-hero .centered { padding: 110px var(--gutter) 120px; }
.lock-icon { width: 46px; height: 46px; margin: 0 auto 26px; display: block; fill: none; stroke: var(--creme); stroke-width: 1.4; }
.club-teaser { display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; max-width: 1320px; margin: -60px auto 0; padding: 0 var(--gutter) 110px; position: relative; z-index: 2; }
.locked { background: #FBFAF7; padding: 14px 14px 30px; box-shadow: 0 24px 50px -34px rgba(0,0,0,.55); }
.locked:nth-child(odd) { transform: rotate(-1.5deg); }
.locked:nth-child(even) { transform: rotate(1.5deg) translateY(24px); }
.locked-media { position: relative; overflow: hidden; margin-bottom: 22px; }
.locked-media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: blur(9px) saturate(.7); transform: scale(1.12); }
.locked-media::after { content: ""; position: absolute; inset: 0; background: rgba(76,93,77,.35); }
.locked-badge { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 10px 18px; border: 1px solid var(--creme); color: var(--creme); font: 400 11px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase; white-space: nowrap; }
.locked h2 { font-size: clamp(20px, 1.7vw, 24px); padding: 0 8px; margin-bottom: 10px; }
.locked p { font-size: 15px; color: var(--gris); padding: 0 8px; margin: 0; }
.club-access { display: grid; grid-template-columns: 1fr 1fr; max-width: 1180px; margin: 0 auto; padding: 40px var(--gutter) 140px; gap: 0; }
.club-login { background: #FBFAF7; padding: clamp(36px, 4vw, 60px); box-shadow: 0 30px 60px -40px rgba(0,0,0,.5); }
.club-join { background: var(--vert) var(--grain); color: var(--creme); padding: clamp(36px, 4vw, 60px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.club-join .script { color: var(--creme); font-size: clamp(40px, 4vw, 58px); margin-bottom: 16px; }
.club-join p { color: rgba(239,237,231,.9); }
.login-form label { display: block; font: 400 11px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--vert); margin-bottom: 20px; }
.login-form input { display: block; width: 100%; margin-top: 10px; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(76,93,77,.5); background: transparent; font: 300 17px/1.4 var(--sans); color: var(--encre); }
.login-form input:focus { outline: none; border-bottom-color: var(--vert); }
.login-form .btn { margin: 10px 0 24px; cursor: pointer; }
.small { font-size: 14px; color: var(--gris); }

/* Club privé : espace membre */
.club-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 34px; padding: 0 var(--gutter) 60px; }
.club-nav a { font: 400 12px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; text-decoration: none; color: var(--vert); border-bottom: 1px solid rgba(76,93,77,.4); padding-bottom: 6px; }
.club-section { max-width: 1180px; margin: 0 auto; padding: 100px var(--gutter); }
.club-section > h2 { max-width: 20em; }
.advice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.advice { background: #FBFAF7; padding: 32px 30px; border-top: 2px solid var(--vert); }
.advice h3 { font-size: 22px; margin-bottom: 10px; }
.advice p { font-size: 15px; color: var(--gris); margin: 0; }
.advice-intro { max-width: 46em; font-size: 18px; }
.advice-dark .advice { background: rgba(0,0,0,.12); border-top-color: var(--creme); }
.advice-dark .advice h3 { color: var(--creme); }
.advice-dark .advice p { color: rgba(239,237,231,.85); }
.club-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; padding-top: 0; }
.tip-box { background: #FBFAF7; padding: clamp(32px, 3.5vw, 50px); box-shadow: 0 24px 50px -40px rgba(0,0,0,.5); }
.tip-box h3 { font-size: clamp(24px, 2.2vw, 30px); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips span { border: 1px solid rgba(76,93,77,.4); padding: 7px 14px; font-size: 14px; color: var(--vert); }
.retro { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 40px; border-top: 1px solid rgba(76,93,77,.35); }
.retro > div { padding: 26px 22px 30px 0; border-bottom: 1px solid rgba(76,93,77,.2); }
.retro h3 { font: 400 22px/1.2 var(--serif); color: var(--vert); margin-bottom: 12px; }
.retro ul { list-style: none; padding: 0; margin: 0; font-size: 15px; color: var(--gris); }
.retro li { padding: 4px 0; }
.form-list { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 40px; }
.form-card { background: rgba(0,0,0,.12); border: 1px solid rgba(239,237,231,.3); padding: clamp(28px, 3vw, 44px); display: flex; flex-direction: column; align-items: flex-start; }
.form-card h3 { font-size: clamp(22px, 2vw, 28px); color: var(--creme); margin-bottom: 12px; }
.form-card p { font-size: 15px; flex: 1; }
.form-card .btn { margin-top: 8px; }
.form-card-actions { display: flex; flex-wrap: wrap; gap: 12px; flex: 0 0 auto !important; margin: 0; }
.contact-actions { justify-content: center; }
.btn-outline-light { background: transparent; color: var(--creme); }
.btn-outline-light:hover { background: var(--creme); color: var(--vert); }
.form-list:has(.form-card) { grid-template-columns: repeat(3, 1fr); }
.form-card-soon { font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: rgba(239,237,231,.6); border: 1px dashed rgba(239,237,231,.45); padding: 14px 20px; margin-top: 8px; }
.embed-slot.embed-dark { background: rgba(0,0,0,.12); border-color: rgba(239,237,231,.45); min-height: 220px; }
.embed-slot.embed-dark strong { color: var(--creme); }
.embed-slot.embed-dark span { color: rgba(239,237,231,.8); }
.address-book { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 34px; margin-top: 44px; }
.address-cat h3 { font: 400 12px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--vert); padding-bottom: 12px; border-bottom: 1px solid rgba(76,93,77,.35); }
.address-cat ul { list-style: none; padding: 0; margin: 0; font-size: 15px; }
.address-cat li { padding: 8px 0; font: 400 18px/1.35 var(--serif); color: var(--encre); }
.addr-links { display: block; font: 400 11px/1.6 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gris); margin-top: 2px; }
.addr-links a { color: var(--vert); text-decoration: none; border-bottom: 1px solid rgba(76,93,77,.35); }
.addr-links a:hover { border-bottom-color: var(--vert); }
.address-note { font: 400 clamp(30px, 3vw, 42px)/1.2 var(--script); color: var(--vert); margin: 18px 0 0; }

/* Fil d'Ariane */
.crumbs { font: 400 11px/1.6 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gris); text-align: center; padding: 26px var(--gutter) 0; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .site-header { grid-template-columns: auto 1fr; padding: 18px var(--gutter); }
  .site-header::after { display: none; }
  .brand { grid-column: 1; grid-row: 1; padding: 0; }
  .brand img { width: 190px; }
  .menu-toggle {
    display: block; grid-column: 2; justify-self: end; z-index: 12; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; position: relative;
  }
  .menu-toggle span { position: absolute; left: 10px; right: 10px; height: 1px; background: currentColor; transition: transform .3s; color: var(--creme); }
  .menu-toggle span:first-child { top: 18px; }
  .menu-toggle span:last-child { top: 26px; }
  .menu-open .menu-toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .nav { display: none; }
  .menu-open .site-header { position: fixed; inset: 0; background: var(--vert) var(--grain); align-content: start; }
  .menu-open .nav { border-top: 0; padding-top: 0; display: flex; flex-direction: column; grid-column: 1 / -1; gap: 6px; text-align: center; align-items: center; }
  .menu-open .nav-left { margin-top: 60px; }
  .menu-open .nav a { font-size: 15px; padding: 14px 0; }

  .hero { min-height: 600px; height: 92vh; }
  .hero-img { object-position: 38% 50%; }
  .hero-content { bottom: 150px; right: var(--gutter); }
  .hero-script { margin-left: 20px; }
  .hero-foot { bottom: 92px; flex-direction: column; gap: 8px; }
  .tear { height: 50px; }

  .intro { padding: 80px var(--gutter) 70px; }
  .triptych { grid-template-columns: 1fr 1fr; }
  .triptych img:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 5; }

  .about { grid-template-columns: 1fr; padding: 90px var(--gutter) 90px; }
  .about-photos { min-height: 0; height: 118vw; max-height: 640px; }

  .stories { padding: 90px var(--gutter); }
  .board { grid-template-columns: 1fr 1fr; gap: 40px 22px; margin: 50px auto 60px; }
  .board .polaroid { padding: 8px 8px 0; margin-top: 0 !important; }
  .board .polaroid figcaption { font-size: 10px; letter-spacing: .12em; padding: 12px 2px 14px; }
  .tape { width: 80px; margin-left: -40px; height: 24px; top: -12px; }

  .destination { min-height: 0; padding: 0; display: block; }
  .destination-img { position: relative; height: 70vw; }
  .destination-card { margin: -60px var(--gutter) 0; max-width: none; }

  .carnet { grid-template-columns: 1fr; padding: 100px var(--gutter); }
  .press-list { flex-direction: column; gap: 12px; }
  .press-list li + li::before { content: none; }

  .faq { padding: 100px var(--gutter) 80px; }

  .final { grid-template-columns: 1fr 1fr; padding: 90px var(--gutter) 100px; gap: 0 16px; }
  .final-card { grid-column: 1 / -1; grid-row: 2; margin-top: -30px; }
  .final .f1 { grid-column: 1; grid-row: 1; width: 100%; transform: rotate(-4deg); }
  .final .f2 { display: none; }
  .final .f3 { grid-column: 2; grid-row: 1; width: 100%; transform: rotate(4deg) translateY(30px); }

  .site-footer { grid-template-columns: 1fr; }
  .foot-center { border: 0; border-top: 1px solid rgba(239,237,231,.25); border-bottom: 1px solid rgba(239,237,231,.25); padding: 40px 0; order: -1; }
}

/* ---------- Responsive · pages internes ---------- */
@media (max-width: 1100px) {
  .hero-page { height: 80vh; min-height: 520px; }
  .hero-page .hero-content { bottom: 110px; }
  .page-intro { padding: 70px var(--gutter) 50px; }
  .carousel img { height: 58vh; max-height: 460px; }
  .carousel-hint { bottom: 50px; }
  .collage, .split { grid-template-columns: 1fr; padding: 90px var(--gutter); }
  .split.reverse .split-media { order: 0; }
  .collage-photos { min-height: 0; height: 112vw; max-height: 640px; }
  .steps { padding: 90px var(--gutter); }
  .steps ol { grid-template-columns: 1fr; gap: 40px; }
  .steps ol::before { left: 22px; }
  .steps li { padding-left: 70px; }
  .steps li:nth-child(even) { margin-top: 0; }
  .steps .num { font-size: 38px; left: 0; background: var(--creme); padding: 4px 0; }
  .offers { padding: 90px var(--gutter); }
  .offer-grid { grid-template-columns: 1fr 1fr; }
  .values { padding: 90px var(--gutter); }
  .values-grid, .values-grid.values-trio { grid-template-columns: 1fr; gap: 0; }
  .value { border-left: 0; border-top: 1px solid rgba(76,93,77,.3); padding: 24px 0; }
  .symbols { grid-template-columns: 1fr; gap: 20px; }
  .contact { grid-template-columns: 1fr; padding: 70px var(--gutter) 90px; }
  .blog-grid { grid-template-columns: 1fr 1fr; gap: 40px 18px; }
  .iris-hero .split { padding-top: 130px; }
  .iris-strip { grid-template-columns: 1fr 1fr; }
  .iris-strip img:nth-child(2) { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 16 / 9; }
}
@media (max-width: 600px) {
  .offer-grid, .blog-grid { grid-template-columns: 1fr; }
}@media (max-width: 1100px) {
  .split-media { max-width: 520px; width: 100%; margin: 0 auto; }
}
@media (max-width: 1100px) {
  .collage-hero { grid-template-columns: 1fr; padding-top: 30px; padding-bottom: 90px; }
  .collage-hero .collage-photos { min-height: 0; height: 118vw; max-height: 680px; }
  .collage-hero .c-pola { bottom: 0; }
}
@media (max-width: 1100px) {
  .collage-photos, .collage-hero .collage-photos { height: 92vw; max-height: none; min-height: 0; }
  .collage-photos .c-main, .collage-hero .c-main { width: 62%; }
}
@media (max-width: 1100px) {
  .club-teaser { grid-template-columns: 1fr 1fr; gap: 26px 18px; margin-top: -40px; }
  .locked:nth-child(even) { transform: rotate(1.5deg); }
  .club-access { grid-template-columns: 1fr; padding-bottom: 90px; }
  .club-section { padding: 70px var(--gutter); }
  .advice-grid { grid-template-columns: 1fr 1fr; }
  .form-list { grid-template-columns: 1fr; }
  .address-book { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .club-teaser, .advice-grid, .address-book { grid-template-columns: 1fr; }
  .locked { transform: none !important; }
}
@media (max-width: 760px) {
  .offer-grid.offer-duo { grid-template-columns: 1fr; }
  .offer-duo .offer { padding: 40px 28px 32px; }
}
@media (max-width: 1100px) {
  .club-duo { grid-template-columns: 1fr; }
  .retro { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .retro { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .form-list:has(.form-card) { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .contact-form .wpforms-form .wpforms-field-row { flex-direction: column; gap: 18px; }
}
/* =========================================================
   Adaptation WordPress (phase 4)
   Le DOM des blocs natifs diffère de la maquette : figures autour des images,
   paragraphes autour des liens, groupes à la place des listes à étapes.
   ========================================================= */

img { height: auto; }
/* spécificité nulle : les composants (.ornament, .contact-photo, .links-logo…) gardent leurs marges */
:where(figure.wp-block-image) { margin: 0; }
:where(.wp-block-group) > :where(*) { margin-block: 0; }
.wp-site-blocks { padding: 0; }
.site-main { overflow-x: clip; }

/* ---------- En-tête : plein par défaut, transparent au-dessus d'une photo d'ouverture ---------- */
.wp-site-blocks > header.wp-block-template-part { position: relative; z-index: 10; }
.site-header { position: relative; inset: auto; background: var(--vert) var(--grain); }
body:has(.top-photo) .site-header { position: absolute; inset: 0 0 auto 0; background: none; }
.site-header .wp-block-navigation { padding-top: 16px; border-top: 1px solid rgba(239, 237, 231, .45); }
.site-header .wp-block-navigation__container { gap: clamp(18px, 2.4vw, 40px); }
.site-header .wp-block-navigation-item__content {
  font: 400 12px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; text-decoration: none; padding: 8px 0; color: inherit;
}
.site-header .wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 6px; }
.site-header .brand { padding: 0 22px; }
.site-header .brand img { width: clamp(200px, 20vw, 290px); height: auto; }
.site-header .menu-toggle { display: none; }

/* ---------- Boutons natifs ---------- */
.wp-block-buttons { gap: 12px; }
/* la classe .btn atterrit sur le conteneur : on le neutralise, seul le lien porte le style */
.wp-block-button.btn, .wp-block-button.btn:hover {
  display: inline-block; background: none; border: 0; padding: 0; border-radius: 0; margin: 0;
}
.wp-block-button.btn .wp-block-button__link {
  display: inline-block; padding: 15px 38px; background: var(--vert); color: var(--creme);
  font: 400 12px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; text-decoration: none;
  border: 1px solid var(--vert); border-radius: 0; transition: background .3s, color .3s;
}
.wp-block-button.btn .wp-block-button__link:hover { background: var(--vert-fonce); }
.wp-block-button.btn-ghost .wp-block-button__link { background: transparent; color: var(--vert); }
.wp-block-button.btn-ghost .wp-block-button__link:hover { background: var(--vert); color: var(--creme); }
.wp-block-button.btn-light .wp-block-button__link { background: var(--creme); color: var(--vert); border-color: var(--creme); }
.wp-block-button.btn-light .wp-block-button__link:hover { background: transparent; color: var(--creme); }
.wp-block-button.btn-outline-light .wp-block-button__link { background: transparent; color: var(--creme); border-color: var(--creme); }
.wp-block-button.btn-outline-light .wp-block-button__link:hover { background: var(--creme); color: var(--vert); }
:is(.intro, .centered, .stories, .final-card, .page-intro, .offers, .faq, .press, .club-hero, .links) .wp-block-buttons,
.wp-block-buttons.contact-actions { justify-content: center; }
/* dans la maquette le bouton était en ligne : sa marge ne fusionnait pas avec celle du paragraphe */
.destination-card .wp-block-buttons, .form-card .wp-block-buttons { margin-top: 0; padding-top: 10px; }
.login-form .btn { margin: 0; }

/* ---------- Images : la classe est sur la figure ---------- */
.hero-img { position: absolute; inset: 0; }
.hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.destination-img { position: absolute; inset: 0; }
.destination-img img { width: 100%; height: 100%; object-fit: cover; }
.ornament img { width: 100%; height: auto; }
.links-logo img { width: 100%; }
.links-photo { overflow: hidden; }
.links-photo img { width: 100%; height: 100%; object-fit: cover; }
.carousel figure { flex: none; scroll-snap-align: start; }
.iris-strip figure, .iris-strip img { height: 100%; }
.iris-strip figure:nth-child(2) img { aspect-ratio: auto; }
.polaroid figcaption { margin: 0; }
.polaroid figcaption, .wp-element-caption { font: 400 13px/1 var(--serif); }

/* Ruban adhésif des polaroids */
.taped::before {
  content: ""; position: absolute; z-index: 2; top: -16px; left: 50%; width: 120px; height: 32px; margin-left: -60px;
  background: rgba(218, 205, 178, .78); transform: rotate(-4deg);
  clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 2% 96%, 0 50%);
}

/* Papier déchiré sous les photos d'ouverture */
.torn::after {
  content: ""; position: absolute; z-index: 3; left: 0; right: 0; bottom: -1px; height: 90px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='o' x='-5%25' y='-50%25' width='110%25' height='200%25'%3E%3CfeDropShadow dx='0' dy='-2' stdDeviation='1.5' flood-opacity='.25'/%3E%3C/filter%3E%3C/defs%3E%3Cpath filter='url(%23o)' fill='%23FBFAF7' d='M0 40 L64 47.9 L128 42.9 L205 37.6 L283 46 L361 30.4 L452 27.3 L530 43.7 L603 47.4 L674 51.6 L757 45.1 L834 41.9 L909 35.2 L995 27 L1071 36.3 L1149 46.2 L1234 47.5 L1314 39.4 L1380 35.2 L1440 43.3 L1440 90 L0 90 Z'/%3E%3Cpath fill='%23EFEDE7' d='M0 54 L53 61.3 L114 62.7 L194 59 L265 52.2 L331 51.9 L410 46.1 L490 51.5 L572 58.4 L650 59.8 L730 62.8 L810 60.5 L896 47 L970 47.1 L1056 44.6 L1132 58.1 L1210 56.6 L1287 63.9 L1368 53.9 L1440 48.3 L1440 90 L0 90 Z'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
}

/* ---------- Pied du héros ---------- */
.hero-foot p { margin: 0; }

/* ---------- Frise d'étapes (groupes à la place de la liste) ---------- */
.steps .steps-list { list-style: none; margin: 0; padding: 0; position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 50px 90px; counter-reset: etape; }
.steps .steps-list::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px solid rgba(76,93,77,.35); }
.steps .step { position: relative; padding-left: 76px; counter-increment: etape; }
.steps .step:nth-child(even) { margin-top: 90px; }
.steps .step::before { content: counter(etape, decimal-leading-zero); position: absolute; left: 0; top: -6px; font: 400 48px/1 var(--serif); color: rgba(76,93,77,.45); }

/* ---------- Liens enveloppés d'un paragraphe ---------- */
p.faq-more, p.press-reviews { display: block; border: 0; padding: 0; text-align: center; }
p.faq-more { margin-top: 40px; }
.faq-more a, .press-reviews a { font: 400 12px/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; text-decoration: none; padding-bottom: 6px; }
.faq-more a { color: var(--vert); border-bottom: 1px solid var(--vert); }
.press-reviews a { color: var(--creme); border-bottom: 1px solid rgba(239,237,231,.6); }
p.contact-line { margin-bottom: 6px; }
.contact-line a { color: inherit; text-decoration: none; }
p.link-btn { padding: 0; border: 0; margin: 0 0 12px; }
.link-btn a { display: block; padding: 17px 20px; border: 1px solid rgba(239,237,231,.6); text-decoration: none; font: 400 12px/1.3 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--creme); transition: background .3s, color .3s; }
.link-btn a:hover, p.primary a { background: var(--creme); color: var(--vert); }
p.primary { background: none; }
.club-nav p { margin: 0; }
.press-list li { margin: 0; }

/* ---------- Club : badge, cadenas, puces ---------- */
.locked-media::after { z-index: 1; }
.locked-media::before {
  content: "Réservé"; position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%);
  padding: 10px 18px; border: 1px solid var(--creme); color: var(--creme);
  font: 400 11px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase; white-space: nowrap;
}
.club-hero .centered::before {
  content: ""; display: block; width: 46px; height: 46px; margin: 0 auto 26px; background: var(--creme);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Crect x='9' y='21' width='30' height='22' rx='2'/%3E%3Cpath d='M15 21v-6a9 9 0 0 1 18 0v6'/%3E%3Ccircle cx='24' cy='31' r='2.5'/%3E%3Cpath d='M24 33.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Crect x='9' y='21' width='30' height='22' rx='2'/%3E%3Cpath d='M15 21v-6a9 9 0 0 1 18 0v6'/%3E%3Ccircle cx='24' cy='31' r='2.5'/%3E%3Cpath d='M24 33.5v4'/%3E%3C/svg%3E") center / contain no-repeat;
}
ul.chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
ul.chips li { border: 1px solid rgba(76,93,77,.4); padding: 7px 14px; font-size: 14px; color: var(--vert); }
.address-cat li a { font: 400 11px/1.6 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--vert); text-decoration: none; border-bottom: 1px solid rgba(76,93,77,.35); }

/* Formulaire de connexion natif (bloc Connexion/Déconnexion) */
.login-box form p { margin: 0 0 20px; }
.login-box label { display: block; font: 400 11px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--vert); margin-bottom: 10px; }
.login-box input[type=text], .login-box input[type=password] {
  display: block; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(76,93,77,.5); background: transparent; font: 300 17px/1.4 var(--sans); color: var(--encre);
}
.login-box input:focus { outline: none; border-bottom-color: var(--vert); }
.login-box .login-remember label { display: inline; text-transform: none; letter-spacing: 0; font: 300 14px/1.4 var(--sans); color: var(--gris); }
.login-box input[type=submit] {
  padding: 15px 38px; background: var(--vert); color: var(--creme); border: 1px solid var(--vert); border-radius: 0; cursor: pointer;
  font: 400 12px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase;
}
.login-box input[type=submit]:hover { background: var(--vert-fonce); }
.login-box > a { font: 400 12px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--vert); }

/* Galerie Pictime */
.galerie-pictime iframe { display: block; width: 100%; min-height: 80vh; border: 0; }

/* ---------- Blog : boucle de requête native ---------- */
.blog-query .blog-grid { list-style: none; }
.blog-grid > li { margin: 0; }
.post-thumb { margin: 0 0 22px; }
.post-thumb img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: opacity .3s; }
.post-thumb a:hover img { opacity: .88; }
.post-cat { font: 400 11px/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; margin: 0 0 12px; }
.post-cat a { color: var(--vert); text-decoration: none; }
.post-title { font-size: clamp(22px, 2vw, 27px); margin: 0 0 10px; }
.post-title a { color: var(--encre); text-decoration: none; }
.post-excerpt p { font-size: 15px; color: var(--gris); margin: 0; }
.post-excerpt .wp-block-post-excerpt__more-text { display: none; }

/* ---------- Article seul ---------- */
.article .page-intro h1 { font-size: clamp(34px, 4vw, 56px); }
.article .post-date { font: 400 12px/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--gris); }
.post-cat a[href*="/non-classe/"] { display: none; }
.article-hero { max-width: 1100px; margin: 0 auto 80px; padding: 0 var(--gutter); }
/* photo à la une jamais recadrée : en hauteur, elle est simplement moins large */
.article-hero img { display: block; width: auto; max-width: 100%; height: auto; max-height: 88vh; margin: 0 auto; box-shadow: 0 30px 60px -40px rgba(0,0,0,.5); }
.article-content { max-width: 760px; margin: 0 auto; padding: 0 var(--gutter); }
.article-content p, .article-content li { font-size: 18px; line-height: 1.85; }
.article-content img { max-width: 100%; height: auto; }
.article-content a:not(.wp-block-button__link) { color: var(--vert); text-underline-offset: 3px; }
.article-content h3 { font: 400 clamp(21px, 1.9vw, 25px)/1.35 var(--serif); color: var(--vert); margin: 1.8em 0 .6em; }

/* chapô : grande typo, lettrine, ornement */
.article-chapo p { font: 400 clamp(20px, 1.9vw, 24px)/1.65 var(--serif); color: var(--encre); }
.article-chapo > p:first-child:not(.lead)::first-letter, .article-chapo > .lead + p::first-letter { float: left; font: 400 4.4em/.82 var(--serif); color: var(--vert); margin: .06em .12em 0 0; }
.article-chapo .lead { font: 400 clamp(36px, 3.6vw, 52px)/1.1 var(--script); color: var(--vert); margin: 0 0 1.2em; }
.article-chapo::after { content: "✦  ✦  ✦"; display: block; text-align: center; color: var(--vert); font-size: 14px; letter-spacing: .4em; margin-top: 50px; white-space: pre; }

/* sections : intertitre centré et filet */
.article-section { margin-top: 100px; }
.article-section > h2 { text-align: center; font-size: clamp(28px, 2.8vw, 40px); line-height: 1.25; margin: 0 0 40px; }
.article-section > h2::after { content: ""; display: block; width: 60px; height: 1px; background: var(--vert); margin: 26px auto 0; }

/* encadrés : listes de conseils sur papier */
.article-encadre { background: #FBFAF7; padding: 36px 44px 30px; margin: 2.2em 0; box-shadow: 0 24px 44px -36px rgba(0,0,0,.45); }
.article-encadre .encadre-titre { font: 400 12px/1.6 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--vert); margin: 0 0 10px; }
.article-encadre ul { list-style: none; padding: 0; margin: 0; }
.article-encadre li { position: relative; padding: 13px 0 13px 34px; border-top: 1px solid rgba(76,93,77,.2); font-size: 17px; line-height: 1.6; }
.article-encadre > ul > li:first-child { border-top: 0; }
.article-encadre li::before { content: ""; position: absolute; left: 4px; top: 1.45em; width: 14px; height: 1px; background: var(--vert); }
.article-encadre li ul { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.article-encadre li li { border: 1px solid rgba(76,93,77,.3); border-radius: 30px; padding: 4px 14px; font-size: 15px; }
.article-encadre li li::before { display: none; }

/* photos : paysage en grand, portrait en arche */
.article-content .article-photo, .article-content .wp-block-gallery { margin: 70px 0; }
.article-content .article-photo:not(.article-portrait), .article-content .wp-block-gallery { width: min(1100px, 100vw - 2 * var(--gutter)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.article-content .article-photo img { width: 100%; box-shadow: 0 30px 60px -40px rgba(0,0,0,.5); }
.article-content .article-portrait { max-width: 460px; margin-left: auto; margin-right: auto; }
.article-content .article-portrait img { border-radius: 999px 999px 0 0; aspect-ratio: 4 / 5.6; object-fit: cover; }
.article-content .wp-block-gallery.has-nested-images { gap: 14px; }
.article-content .wp-block-gallery.has-nested-images figure.wp-block-image { margin: 0; }
.article-content .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(33.333% - 10px); flex-grow: 1; }

/* phrases mises en exergue */
.article-content .article-exergue { font: 400 clamp(22px, 2.2vw, 30px)/1.5 var(--serif); color: var(--vert); text-align: center; max-width: 680px; margin: 70px auto; padding: 34px 0; border-top: 1px solid rgba(76,93,77,.35); border-bottom: 1px solid rgba(76,93,77,.35); }
.article-content .article-exergue strong { font-weight: 400; }

/* bandeaux verts pleine largeur */
.article-band, .article-section-band { width: 100vw; margin-left: calc(50% - 50vw); background: var(--vert) var(--grain); color: var(--creme); padding: 100px var(--gutter); margin-top: 90px; }
.article-band .wp-block-quote { max-width: 820px; margin: 0 auto; padding: 0; border: 0; text-align: center; }
.article-band .wp-block-quote::before { content: "“"; display: block; font: 400 120px/.6 var(--serif); color: rgba(239,237,231,.5); margin-bottom: 20px; }
.article-band .wp-block-quote p { font: 400 clamp(22px, 2.3vw, 31px)/1.55 var(--serif); color: var(--creme); margin: 0; }
.article-section-band > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.article-section-band > h2 { color: var(--creme); margin: 0 auto 40px; }
.article-section-band > h2::after { background: var(--creme); }
.article-section-band p { color: rgba(239,237,231,.92); }
.article-content > :last-child.article-band, .article-content > :last-child.article-section-band, .article-content > .article-section:last-child > .article-band:last-child { margin-bottom: -40px; }

/* les 4 conseils en cartes */
.article-carte { background: #FBFAF7; padding: 44px 48px 30px; margin: 30px 0; box-shadow: 0 24px 44px -36px rgba(0,0,0,.45); border-top: 3px solid var(--vert); }
.article-carte > h3 { margin-top: 0; font-size: clamp(23px, 2.1vw, 28px); }
.article-carte .article-encadre { background: transparent; box-shadow: none; padding: 10px 0 0; margin: 1em 0; }

/* appel à l'action de fin d'article */
.article-cta { text-align: center; margin: 80px 0 0; }
.article-cta > h3 { font: 400 clamp(36px, 3.4vw, 50px)/1.1 var(--script); color: var(--vert); margin: 0 0 24px; }
.article-cta .wp-block-buttons { margin: 0 0 26px; }
.article-cta p { font: 400 12px/1.6 var(--sans); letter-spacing: .26em; text-transform: uppercase; }
.article-cta p a { text-decoration: none; }

@media (max-width: 600px) {
  .article-content p, .article-content li { font-size: 17px; }
  .article-section { margin-top: 70px; }
  .article-encadre, .article-carte { padding: 28px 22px 22px; margin-left: calc(-1 * var(--gutter) + 6px); margin-right: calc(-1 * var(--gutter) + 6px); }
  .article-band, .article-section-band { padding: 70px var(--gutter); }
  .article-content .article-photo, .article-content .wp-block-gallery { margin: 50px 0; }
  .article-content .article-photo:not(.article-portrait), .article-content .wp-block-gallery { margin-left: 50%; }
  .article-content .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(50% - 7px); }
}
/* ---------- Page « liens » sans en-tête ---------- */
.page-bare { min-height: 100vh; background: var(--vert) var(--grain); color: var(--creme); }

/* ---------- Pied de page ---------- */
.foot-col p { margin: 0; }
.site-footer .foot-logo img { width: 260px; height: auto; }
.social p { margin: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .site-header .wp-block-navigation { display: none; }
  .site-header .menu-toggle {
    display: block; grid-column: 2; justify-self: end; position: relative; z-index: 12; width: 44px; height: 44px; margin: 0;
    font-size: 0; cursor: pointer; color: var(--creme);
  }
  .site-header .menu-toggle::before, .site-header .menu-toggle::after { content: ""; position: absolute; left: 10px; right: 10px; height: 1px; background: currentColor; transition: transform .3s; }
  .site-header .menu-toggle::before { top: 18px; }
  .site-header .menu-toggle::after { top: 26px; }
  .menu-open .site-header .menu-toggle::before { transform: translateY(4px) rotate(45deg); }
  .menu-open .site-header .menu-toggle::after { transform: translateY(-4px) rotate(-45deg); }
  .site-header .brand { grid-column: 1; grid-row: 1; padding: 0; }
  .site-header .brand img { width: 190px; }
  body.menu-open .site-header, body.menu-open:has(.top-photo) .site-header { position: fixed; inset: 0; background: var(--vert) var(--grain); align-content: start; }
  .menu-open .site-header .wp-block-navigation { display: flex; grid-column: 1 / -1; justify-content: center; border-top: 0; padding-top: 0; }
  .menu-open .site-header .nav-left { margin-top: 60px; }
  .menu-open .site-header .wp-block-navigation__container { flex-direction: column; align-items: center; gap: 6px; }
  .menu-open .site-header .wp-block-navigation-item__content { font-size: 15px; padding: 14px 0; }

  .hero-img img { object-position: 38% 50%; }
  .destination-img { position: relative; height: 70vw; }
  .torn::after { height: 50px; }
  .taped::before { width: 80px; margin-left: -40px; height: 24px; top: -12px; }
  .triptych figure:first-child { grid-column: 1 / -1; }
  .triptych figure:first-child img { aspect-ratio: 4 / 5; }
  .iris-strip figure:nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
  .iris-strip figure:nth-child(2) img { aspect-ratio: 16 / 9; }

  .steps .steps-list { grid-template-columns: 1fr; gap: 40px; }
  .steps .steps-list::before { left: 22px; }
  .steps .step { padding-left: 70px; }
  .steps .step:nth-child(even) { margin-top: 0; }
  .steps .step::before { font-size: 38px; background: var(--creme); padding: 4px 0; }
}
