.hero-bg {
  overflow: hidden;
  background: #152b23;
}
.hero-bg::before {
  content: "";
  position: absolute;
  right: 0;
  top: 82%;
  width: auto;
  height: 139%;
  aspect-ratio: 4 / 5;
  background: url('assets/images/rachel-accueil-hd-v2.webp') center / 100% 100% no-repeat;
  transform: translate(5%, -82%);
}
.hero-bg::after {
  content: "";
  position: absolute;
  right: 0;
  top: 82%;
  width: auto;
  height: 139%;
  aspect-ratio: 4 / 5;
  background:
    radial-gradient(ellipse 34% 78% at 0% 56%, rgba(21,43,35,.32) 0%, rgba(21,43,35,.22) 42%, rgba(21,43,35,.10) 70%, rgba(21,43,35,0) 100%),
    linear-gradient(90deg, #152b23 0%, rgba(21,43,35,.98) 4%, rgba(21,43,35,.90) 9%, rgba(21,43,35,.78) 14%, rgba(21,43,35,.62) 19%, rgba(21,43,35,.45) 24%, rgba(21,43,35,.30) 28%, rgba(21,43,35,.18) 31%, rgba(21,43,35,.09) 33%, rgba(21,43,35,.03) 35%, rgba(21,43,35,0) 36.5%);
  transform: translate(calc(5% - 20px), -82%);
  pointer-events: none;
}
@media (max-width: 800px) {
  .hero-bg::before {
    inset: 0;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    background-size: auto 106%;
    background-position: center 68%;
    transform: none;
  }
  .hero-bg::after {
    inset: 0;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    background: linear-gradient(0deg, rgba(10,30,24,.96) 4%, rgba(10,30,24,.68) 35%, rgba(10,30,24,.2) 68%, rgba(10,30,24,.04) 100%);
    transform: none;
  }
}

.pillars > div:first-child > span:last-child { color: #fff; }

.about-page .about-hero img { object-position: 78% center; }

/* Révéler par le regard — art and professional presence in one editorial flow. */
.regard-page { background: var(--cream); }
.regard-page .regard-hero { position: relative; height: min(840px, calc(100vh - 96px)); min-height: 690px; overflow: hidden; isolation: isolate; background: #071711; }
.regard-page .regard-hero::after,
.regard-page .regard-hero::before { content: none; }
.regard-page .regard-hero > img { position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; left: clamp(100px,11vw,200px); display: block; width: calc(100% - clamp(100px,11vw,200px)); height: 100%; max-width: none; opacity: 1; object-fit: cover; object-position: center center; transform: none; filter: none; -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 7%,#000 19%); mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 7%,#000 19%); }
.regard-page .regard-hero > .regard-hero-copy { position: absolute; z-index: 5; left: 7.5vw; top: 13%; width: min(560px,43vw); }
.regard-hero-credit { margin: 0; padding: .48rem 6vw .55rem; background: #fffaf4; color: #aa7b29; font-size: .58rem; font-weight: 400; letter-spacing: .08em; line-height: 1.3; text-align: right; }
.regard-hero-copy h1::before { content: ""; display: block; width: clamp(38px,3.2vw,50px); height: clamp(38px,3.2vw,50px); margin: .3rem auto .65rem; background: url('assets/images/soleil-editorial-dore.svg') center/contain no-repeat; }
.regard-hero-copy h1 { width: max-content; max-width: 100%; margin: .1em 0 .24em; font-size: clamp(3.15rem,4.35vw,5.05rem); line-height: .93; letter-spacing: -.02em; text-align: center; }
.regard-hero-copy h1 > span { display: block; white-space: nowrap; }
.regard-hero-copy h1 b { font: inherit; color: #fff; }
.regard-hero-copy h1 i { display: inline; }
.regard-hero-copy h1 i { color: #df647d; }
.regard-kicker { width: max-content; max-width: 100%; margin: 1rem 0 1.4rem; color: #e4bd69; letter-spacing: .12em; text-align: center; text-transform: uppercase; font-size: .74rem; }
.regard-hero-text { max-width: 540px; padding-left: 1.5rem; border-left: 1px solid rgba(228,189,105,.65); }
.regard-hero-text p { margin: .65rem 0; line-height: 1.55; }
.regard-presence { display: grid; grid-template-columns: 1.05fr .7fr; gap: clamp(4rem,9vw,10rem); padding: 9rem 10vw; align-items:center; }
.regard-presence h2,.art-intro h2,.brand-copy h2,.offers-heading h2,.approach-heading h2 { font-size: clamp(3.1rem,5vw,5.3rem); }
.regard-presence>div:last-child { max-width: 520px; padding-left: 2rem; border-left: 1px solid rgba(201,154,63,.55); }
.art-gallery { padding: 8rem 8vw 9rem; background: var(--ivory); }
.art-intro { max-width: 800px; margin: 0 0 4rem 9vw; }
.art-intro p { max-width: 650px; }
.gallery-frame { width: min(1380px,100%); margin: auto; }
.gallery-frame img { display:block; width:100%; height:auto; }
.gallery-categories { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem 2.5rem; padding:1.7rem; border-bottom:1px solid rgba(201,154,63,.45); color:var(--wine); font-family:'Italiana',serif; font-size:1.15rem; }
.art-prints { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding:7rem 12vw; align-items:center; }
.art-prints h2 { font-size:clamp(2.8rem,4.5vw,4.8rem); }
.art-prints>div:last-child { max-width:520px; }
.collection-note { display:block; margin:1.4rem 0; color:var(--gold); text-transform:uppercase; letter-spacing:.16em; font-size:.74rem; font-weight:500; }
.regard-pending-link { display:inline-block; color:var(--wine); border-bottom:1px solid currentColor; padding-bottom:.3rem; }
.regard-transition { padding:8rem 15vw; text-align:center; background:#1c352d; color:#fff; }
.regard-transition h2 { max-width:1100px; margin:0 auto 2rem; font-size:clamp(3rem,5.2vw,5.5rem); line-height:1.08; }
.regard-transition h2 i { color:#df647d; }
.regard-transition p { margin:auto; color:#f2e8dc; }
.brand-presence { display:grid; grid-template-columns:.78fr 1.22fr; min-height:850px; background:var(--cream); }
.brand-photo { min-width:0; overflow:hidden; }
.brand-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:44% 36%; transform:scale(1.07); transform-origin:left center; filter:none; }
.brand-copy { align-self:center; padding:7rem 8vw; }
.brand-copy h2 > span,.brand-copy h2 > i { display:block; }
.brand-copy blockquote { margin:2.5rem 0 0; padding:1.5rem 0 1.5rem 2rem; border-left:1px solid var(--gold); color:var(--wine); font-family:'Italiana',serif; font-size:clamp(1.5rem,2vw,2rem); line-height:1.4; }
.photo-offers { padding:9rem 10vw; background:var(--ivory); }
.offers-heading { display:grid; grid-template-columns:.6fr 1.4fr; gap:4rem; align-items:end; margin-bottom:5rem; }
.offers-list { border-top:1px solid rgba(201,154,63,.5); }
.photo-offer { display:grid; grid-template-columns:70px .8fr 1.2fr; gap:clamp(2rem,5vw,6rem); padding:3.25rem 0; border-bottom:1px solid rgba(201,154,63,.5); align-items:start; }
.offer-number { color:var(--gold); font-size:.75rem; letter-spacing:.15em; }
.offer-main h3 { margin:0 0 .6rem; color:var(--wine); }
.offer-main strong { display:block; margin-bottom:1rem; color:var(--ink); font-family:'Italiana',serif; font-size:1.45rem; }
.offer-main p { max-width:450px; color:#66524c; }
.photo-offer ul { margin:0; padding:0; list-style:none; }
.photo-offer li { padding:.7rem 0; border-bottom:1px solid rgba(132,41,65,.15); }
.regard-approach { display:grid; grid-template-columns:.75fr 1.25fr; gap:7vw; padding:8rem 10vw; }
.approach-heading { align-self:center; }
.approach-principles { display:grid; grid-template-columns:1fr 1fr; }
.approach-principles article { padding:2.5rem; border-left:1px solid rgba(201,154,63,.45); border-bottom:1px solid rgba(201,154,63,.45); }
.approach-principles article>span { display:none; }
.approach-principles h3 { margin:.8rem 0; color:var(--ink); font-size:1.8rem; }
.approach-principles p { margin:0; font-size:.92rem; }
.regard-final { text-align:center; padding:9rem 8vw; background:radial-gradient(circle at 50% 50%,#fff,#f1e4d8); }
.regard-final h2 { max-width:900px; margin:.3em auto; font-size:clamp(3.2rem,5.5vw,5.8rem); }
.regard-final p { max-width:650px; margin:1.5rem auto 2rem; }
.regard-button-pending { cursor:default; }

/* Photographies d’art — editorial waiting page, ready for the future collection. */
.art-collection-page { min-height: calc(100vh - 96px); background: var(--ivory); }
.art-collection-intro { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: clamp(4rem, 9vw, 10rem); align-items: center; min-height: 760px; padding: clamp(7rem, 10vw, 11rem) 10vw; overflow: hidden; }
.art-collection-intro::before { content: ""; position: absolute; width: clamp(320px, 42vw, 760px); aspect-ratio: 1; right: -12%; top: 50%; transform: translateY(-50%); border: 1px solid rgba(201,154,63,.24); border-radius: 50%; }
.art-collection-copy { position: relative; z-index: 1; max-width: 1020px; }
.art-collection-copy h1 { max-width: 980px; margin: .28em 0 .42em; color: var(--ink); font-size: clamp(4rem, 7.2vw, 7.8rem); line-height: .98; }
.art-collection-copy h1 i { color: var(--rose); }
.art-collection-copy p { max-width: 720px; margin: 2rem 0 0; padding-left: 2rem; border-left: 1px solid rgba(201,154,63,.65); color: #594a44; font-family: 'Italiana', serif; font-size: clamp(1.25rem, 1.7vw, 1.7rem); line-height: 1.6; }
.art-collection-status { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 1.1rem; padding: clamp(3rem, 5vw, 5rem); background: #1c352d; color: #fff; }
.art-collection-status::before { content: ""; width: 54px; height: 1px; margin-bottom: .6rem; background: var(--gold); }
.art-collection-status strong { color: var(--gold); font-size: .78rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.art-collection-status em { max-width: 360px; color: #f2e8dc; font-family: 'Italiana', serif; font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.45; }

@media (max-width: 800px) {
  .art-collection-intro { grid-template-columns: 1fr; gap: 3.5rem; min-height: 0; padding: 5.5rem 7vw 6rem; }
  .art-collection-intro::before { width: 86vw; right: -48%; top: 22%; }
  .art-collection-copy h1 { font-size: clamp(3.35rem, 14vw, 5rem); }
  .art-collection-copy p { padding-left: 1.3rem; font-size: 1.2rem; }
  .art-collection-status { padding: 3rem 7vw; }
}
@media(max-width:800px){
  .regard-page .regard-hero{height:790px;min-height:0;background:#071711}.regard-page .regard-hero::before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(0deg,#1a3029 0%,rgba(26,48,41,.99) 31%,rgba(20,41,33,.82) 43%,rgba(12,29,23,.2) 58%,rgba(7,23,17,0) 70%)}.regard-page .regard-hero > img{inset:0;width:100%;height:100%;object-fit:cover;object-position:72% center;transform:none;filter:none;-webkit-mask-image:none;mask-image:none}
  .regard-page .regard-hero > .regard-hero-copy{left:6vw;top:auto;bottom:5%;width:88vw}.regard-hero-copy h1{font-size:clamp(3.15rem,13vw,4.7rem);line-height:.93}.regard-hero-copy h1::before{margin:.55rem 0 .8rem}.regard-kicker{margin:.8rem 0 1rem}.regard-hero-text{max-width:88vw}.regard-hero-text p{font-size:.92rem}
  .regard-hero-credit{padding:.42rem 5vw .48rem;font-size:.5rem;letter-spacing:.05em}
  .regard-presence,.art-prints,.brand-presence,.offers-heading,.regard-approach{grid-template-columns:1fr}.regard-presence,.art-gallery,.art-prints,.photo-offers,.regard-approach,.regard-final{padding:5rem 6vw}.regard-presence{gap:2rem}.regard-presence>div:last-child{padding-left:1.3rem}.art-intro{margin:0 0 2.5rem}.gallery-categories{justify-content:flex-start;gap:.7rem 1.3rem;padding:1.3rem 0}.regard-transition{padding:5rem 7vw}.brand-presence{min-height:0}.brand-photo img{height:560px;object-position:46% 35%;transform:scale(1.025);transform-origin:center center}.brand-copy{padding:5rem 6vw}.offers-heading{gap:1rem;margin-bottom:3rem}.photo-offer{grid-template-columns:40px 1fr;gap:1rem}.photo-offer ul{grid-column:2}.approach-principles{grid-template-columns:1fr}.approach-principles article{padding:2rem 0 2rem 1.5rem}.regard-final{padding-top:6rem;padding-bottom:6rem}
}

/* Refinements: preserve the visual language while strengthening rhythm and legibility. */
body { font-size: 16px; }
p { font-size: 1rem; }
small { font-size: .76rem; line-height: 1.5; }
.header nav a, footer a { font-size: .92rem; }
.hero-copy { max-width: 640px; margin-top: 3.5vh; }
.hero-copy h1 { font-size: clamp(5rem, 8.4vw, 8rem); line-height: .92; text-shadow: 0 2px 28px rgba(0,0,0,.18); }
.hero-copy > p:not(.eyebrow) { font-size: 1.5rem; margin: 1.35rem 0 1.7rem; }
.hero-copy .button { font-size: 1rem; padding: 1rem 1.6rem; }
.split { grid-template-columns: minmax(0, 1.18fr) minmax(280px, .82fr); gap: clamp(3rem, 6vw, 6rem); }
.editorial { padding-top: 7.5rem; padding-bottom: 7.5rem; }
.split > p { max-width: 430px; padding-left: 2.25rem; border-left: 1px solid rgba(201,154,63,.55); }
.method { position: relative; gap: clamp(4rem, 7vw, 7rem); padding-top: 7.5rem; padding-bottom: 7.5rem; }
.method-intro { align-self: center; }
.method-thread { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1.75rem; color: var(--gold); text-transform: uppercase; letter-spacing: .16em; font-size: .75rem; }
.method-thread::before { content: ""; width: 42px; height: 1px; background: currentColor; }
.method ol { position: relative; }
.method ol::before { content: ""; position: absolute; left: 24px; top: 2.2rem; bottom: 2.2rem; width: 1px; background: linear-gradient(var(--gold), rgba(201,154,63,.25)); }
.method li { position: relative; grid-template-columns: 50px 1fr; padding: 1.55rem 0; }
.method li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid rgba(201,154,63,.65); border-radius: 50%; background: var(--ivory); font-size: .8rem; }
.method.dark li > span { background: #1c352d; }
.method li b { font-size: 1.95rem; }
.method li p { font-size: .95rem; }
.page-head, .intro, .cta { padding-top: 7rem; padding-bottom: 7rem; }
.breath { padding-top: 7.5rem; padding-bottom: 7.5rem; }
.path-detail > div { padding-top: 6rem; padding-bottom: 6rem; }
.personal-story { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(4rem, 9vw, 9rem); padding: 8rem 10vw; background: #fffaf4; align-items: start; }
.personal-story h2 { font-size: clamp(3.2rem, 5vw, 5.4rem); }
.personal-story > div:last-child { max-width: 590px; padding-top: 2rem; }
.personal-story .story-note { color: #7d6660; border-top: 1px solid #d9b990; margin-top: 2rem; padding-top: 1.4rem; }
.concert div { padding-top: 6rem; padding-bottom: 6rem; }
.concert-photo { position: relative; min-height: 580px; margin: 0; overflow: hidden; }
.concert-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.concert-photo figcaption { position: absolute; right: 1rem; bottom: 1rem; padding: .38rem .6rem; background: rgba(18,20,20,.58); color: #fff; font-size: .66rem; letter-spacing: .04em; line-height: 1.3; }
.reveal-transition { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; padding: 3.2rem 6vw; background: #fffaf4; color: #5b463f; font-family: 'Italiana', serif; font-size: clamp(1.55rem, 2.6vw, 2.5rem); text-align: center; }
.reveal-transition i { color: var(--rose); font-size: inherit; }
.regard-tease { padding-top: 5.5rem; padding-bottom: 6rem; }
.about-page .about-hero { padding-bottom: 0; }
.about-page .about-hero .about-intro { max-width: 470px; }
.about-page .about-hero .about-intro p + p { margin-top: 1.5rem; }
.voice-story { display: grid; grid-template-columns: .9fr 1.1fr; column-gap: clamp(4rem, 8vw, 8rem); padding: 9rem 9vw 7rem; background: #fffaf4; }
.story-heading { position: relative; }
.story-heading h2 { font-size: clamp(3rem, 4.7vw, 5.1rem); margin: .35em 0 .7em; }
.story-heading img { width: 100%; height: 560px; object-fit: cover; }
.story-copy { max-width: 650px; padding-top: 3rem; }
.story-copy p { margin: 0 0 1.45rem; }
.story-copy .lead { font-family: 'Italiana', serif; color: var(--wine); font-size: 2rem; line-height: 1.3; }
.story-copy blockquote { margin: 2.3rem 0; padding: 1.2rem 0 1.2rem 2rem; border-left: 1px solid var(--gold); color: var(--wine); font-family: 'Italiana', serif; font-size: clamp(1.6rem, 2.2vw, 2.25rem); line-height: 1.35; }
.story-copy .keywords { color: var(--wine); font-family: 'Italiana', serif; font-size: 1.5rem; line-height: 1.5; }
.story-mantra { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: .45rem; margin-top: 6rem; padding: 3rem 2rem; border-top: 1px solid #d9b990; border-bottom: 1px solid #d9b990; font-family: 'Italiana', serif; font-size: clamp(1.7rem, 3vw, 3rem); text-align: center; }
.journey { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(4rem, 9vw, 9rem); padding: 8rem 10vw; background: #f3e7dc; }
.journey h2 { font-size: clamp(3rem, 4.7vw, 5rem); }
.journey-copy { max-width: 660px; }
.journey-copy p { padding: 0 0 1.25rem 1.7rem; margin: 0 0 1.25rem; border-left: 1px solid rgba(201,154,63,.55); }
.journey .date { display: block; margin-bottom: .35rem; color: var(--gold); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.koumai-note { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(4rem, 9vw, 9rem); padding: 6rem 10vw; background: #fffaf4; border-top: 1px solid rgba(201,154,63,.24); }
.koumai-note h2 { font-size: clamp(2.5rem, 4vw, 4.2rem); }
.koumai-note > div:last-child { max-width: 660px; }
.koumai-note p { margin-top: 0; }
.koumai-link { display: inline-block; margin-top: 1rem; color: var(--wine); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .3rem; font-weight: 500; }
.about-method { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(4rem, 8vw, 8rem); padding: 8rem 10vw; background: #1c352d; color: #fff; }
.about-method-intro { align-self: center; }
.about-method h2 { font-size: clamp(3rem, 4.8vw, 5.1rem); }
.method-emphasis { color: #df647d; font-family: 'Italiana', serif; font-size: 1.65rem; }
.about-dimensions article { position: relative; padding: 1.3rem 0 1.3rem 4.2rem; border-bottom: 1px solid rgba(201,154,63,.35); }
.about-dimensions article span { position: absolute; left: 0; top: 1.45rem; color: var(--gold); font-size: .72rem; }
.about-dimensions h3 { margin: 0; font-size: 1.75rem; }
.about-dimensions p { margin: .5rem 0 0; font-size: .9rem; }
.about-method-quote { padding: clamp(70px, 5vw, 90px) 8vw clamp(100px, 7vw, 130px); background: var(--ivory); }
.about-method-close { max-width: 1100px; margin: 0 auto; padding-top: clamp(35px, 2.5vw, 45px); border-top: 1px solid rgba(201,154,63,.45); color: var(--ink); font-family: 'Italiana', serif; font-size: clamp(1.7rem, 2.7vw, 2.8rem); text-align: center; line-height: 1.4; }
.about-method-close strong { color: var(--ink); font-weight: 400; }
.about-method-close i { color: var(--plum); }
.coming-soon { margin-top: 2rem; color: var(--gold); font-size: .76rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.regard-lines { display: flex; flex-direction: column; color: var(--wine); font-family: 'Italiana', serif; font-size: 1.35rem; line-height: 1.55; }
.booking { padding-top: 6.5rem; padding-bottom: 6.5rem; }
.future, .cta em { font-size: .9rem; }

/* Home — Le Journal: an editorial pause, not a commercial offer. */
.journal {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  gap: clamp(4rem, 9vw, 9rem);
  padding: 8rem 10vw;
  background: var(--cream);
  border-bottom: 1px solid rgba(201,154,63,.2);
}
.journal-intro { max-width: 720px; }
.journal-intro h2 { max-width: 680px; font-size: clamp(3.4rem, 5vw, 5.6rem); }
.journal-lead {
  max-width: 650px;
  margin: 2rem 0 1.8rem;
  font-family: 'Italiana', serif;
  font-size: clamp(1.2rem, 1.65vw, 1.6rem);
  line-height: 1.55;
  color: #59453f;
}
.journal-link {
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  padding-bottom: .35rem;
  color: var(--wine);
  border-bottom: 1px solid currentColor;
  font-weight: 500;
}
.journal-signup {
  align-self: center;
  padding: 3rem 0 3rem 3.5rem;
  border-left: 1px solid rgba(201,154,63,.55);
}
.journal-signup h3 { margin: .65rem 0 1.2rem; color: var(--ink); }
.journal-signup > p { max-width: 500px; }
.journal-subscribe-link { margin-top: 1.35rem; }
.footer-link-pending { color: inherit; font-size: .92rem; }

/* Functional launch preparation — follows the existing editorial system. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.newsletter-form{margin-top:1.6rem}.newsletter-fields{display:flex;gap:.7rem;max-width:560px}.newsletter-fields input{min-width:0;flex:1;border:1px solid rgba(36,74,55,.28);background:rgba(255,255,255,.62);padding:.95rem 1rem;font:inherit;color:inherit}.newsletter-fields button{border:0;background:var(--ink);color:#fff;padding:.95rem 1.25rem;font:inherit;cursor:pointer}.newsletter-consent,.prototype-note{max-width:560px;margin:.7rem 0 0;font-size:.7rem;line-height:1.55;color:#74665f}.prototype-note{color:#9b786e;font-style:italic}
.prototype-note{display:none}.form-success{color:#244a37;font-weight:600}.form-error{color:#842941;font-weight:600}.newsletter-form button:disabled,.appointment-form button:disabled{opacity:.58;cursor:wait}
.jetpack-newsletter-native .jetpack_subscription_widget{margin:1.6rem 0 0}.jetpack-newsletter-native form{margin:0}.jetpack-newsletter-native #subscribe-text,.jetpack-newsletter-native .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.jetpack-newsletter-native #subscribe-email,.jetpack-newsletter-native #subscribe-submit{display:inline-block;margin:0}.jetpack-newsletter-native #subscribe-email{width:min(360px,68%)}.jetpack-newsletter-native #subscribe-email input{width:100%;border:1px solid rgba(36,74,55,.28);background:rgba(255,255,255,.62);padding:.95rem 1rem;font:inherit;color:inherit}.jetpack-newsletter-native #subscribe-submit input,.jetpack-newsletter-native #subscribe-submit button{border:0;background:var(--ink);color:#fff;padding:.95rem 1.25rem;font:inherit;cursor:pointer}.jetpack-newsletter-native .success,.jetpack-newsletter-native .error{margin-top:1rem;font-weight:600}.jetpack-newsletter-native .success{color:#244a37}.jetpack-newsletter-native .error{color:#842941}

@media(max-width:800px){.jetpack-newsletter-native #subscribe-email,.jetpack-newsletter-native #subscribe-submit{display:block;width:100%}.jetpack-newsletter-native #subscribe-submit input,.jetpack-newsletter-native #subscribe-submit button{width:100%;margin-top:.7rem}}
.testimonials{padding:7rem 7vw;background:#f2e9dc;text-align:center}.testimonials h2{margin:.35em 0 .75em}.testimonial-placeholders{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1180px;margin:0 auto}.testimonial-placeholders article{min-height:210px;padding:2rem;display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(36,74,55,.17);background:rgba(255,250,244,.58)}.testimonial-placeholders article>span{font-family:'Italiana',serif;font-size:1.35rem;color:var(--ink)}.testimonial-placeholders article p{font-size:.82rem;color:#74665f}.testimonial-placeholders article small{font-size:.65rem}
.singing-invitation{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:clamp(3rem,8vw,8rem);align-items:center;padding:5.5rem 10vw;background:var(--cream);border-top:1px solid rgba(201,154,63,.24);border-bottom:1px solid rgba(201,154,63,.24)}
.singing-invitation h2{max-width:620px;font-size:clamp(2.8rem,4.2vw,4.6rem);line-height:1.04}
.singing-invitation>div:last-child{max-width:620px;padding-left:2rem;border-left:1px solid rgba(201,154,63,.55)}
.singing-invitation .button{margin-top:1rem}
.singing-invitation-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-top:1rem}
.singing-invitation-actions .button{margin-top:0}
.singing-invitation-actions .text-link{display:inline-flex}

/* Homepage — editorial bridge between singing and the manifesto. */
.about-strip{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:clamp(4rem,10vw,9rem);
  padding:clamp(6rem,9vw,9rem) 10vw;
}
.about-strip article{max-width:540px}
.about-strip article:last-child{justify-self:end}
.about-strip h3{margin:1.15rem 0 1.5rem;line-height:1.12}
.about-strip p{margin:0 0 1.8rem;max-width:500px}
.about-strip .text-link{display:inline-block;min-height:44px;padding:10px 0 7px}
.journal-page{background:var(--cream)}.journal-hero h1{font-size:clamp(3.5rem,7vw,7rem)}.journal-empty{padding:8rem 10vw;text-align:center;background:var(--cream)}.journal-empty h2{max-width:850px;margin:.35em auto}.journal-empty p{max-width:700px;margin:1.5rem auto}.journal-page-signup{display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding:7rem 10vw;background:#f2e9dc}.journal-page-signup h2{font-size:clamp(2.8rem,4.6vw,5rem)}
.legal-page{background:var(--cream)}.legal-head{padding:7rem 10vw 5rem;background:#1a3029;color:#fff}.legal-head h1{font-size:clamp(3.2rem,6vw,6rem);max-width:1000px}.legal-content{max-width:960px;margin:0 auto;padding:6rem 7vw 8rem}.legal-content section{padding:1.8rem 0;border-bottom:1px solid rgba(36,74,55,.16)}.legal-content h2{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--ink)}.legal-content a,.privacy-note a{color:var(--wine)}.legal-review-note{margin-top:2.5rem;padding:1.2rem;border-left:2px solid var(--gold);font-size:.82rem;color:#74665f}

@media (max-width: 800px) {
  body { font-size: 16px; }
  p { font-size: 1rem; }
  small { font-size: .72rem; }
  .hero-copy { margin-top: 24vh; max-width: 88vw; }
  .hero-copy h1 { font-size: clamp(3.65rem, 16vw, 5rem); }
  .hero-copy > p:not(.eyebrow) { font-size: 1.22rem; }
  .editorial, .method, .intro, .page-head, .booking { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .split { gap: 2rem; }
  .split > p { padding-left: 1.4rem; }
  .method { gap: 2.5rem; }
  .method ol::before { left: 21px; }
  .method li { grid-template-columns: 43px 1fr; gap: 1rem; }
  .method li > span { width: 43px; height: 43px; }
  .method li b { font-size: 1.55rem; }
  .personal-story { grid-template-columns: 1fr; gap: 1.5rem; padding: 5rem 6vw; }
  .journal { grid-template-columns: 1fr; gap: 3.5rem; padding: 5rem 6vw; }
  .journal-intro h2 { font-size: clamp(2.75rem, 12vw, 4.1rem); }
  .journal-signup h3 { font-size: clamp(2rem, 9vw, 3rem); }
  .journal-signup { padding: 3rem 0 0; border-left: 0; border-top: 1px solid rgba(201,154,63,.55); }
  .newsletter-fields{flex-direction:column}.newsletter-fields button{width:100%}.testimonials{padding:5rem 6vw}.testimonial-placeholders{grid-template-columns:1fr}.singing-invitation{grid-template-columns:1fr;gap:1.5rem;padding:4.5rem 7vw}.singing-invitation h2{font-size:clamp(2.65rem,11vw,3.7rem)}.singing-invitation>div:last-child{padding:1.5rem 0 0;border-left:0;border-top:1px solid rgba(201,154,63,.55)}.about-strip{grid-template-columns:1fr;gap:3.75rem;padding:4.75rem 7vw}.about-strip article,.about-strip article:last-child{max-width:none;justify-self:stretch}.about-strip h3{font-size:clamp(2.15rem,9vw,3rem);overflow-wrap:normal}.about-strip p{margin-bottom:1.35rem}.journal-page-signup{grid-template-columns:1fr;padding:5rem 7vw}.legal-head{padding:5rem 7vw 4rem}.legal-content{padding:4rem 7vw 6rem}
  .personal-story > div:last-child { padding-top: 0; }
  .reveal-transition { padding: 2.5rem 8vw; }
  .concert div, .regard-tease, .breath { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .voice-story, .journey, .koumai-note, .about-method { grid-template-columns: 1fr; gap: 2.5rem; padding: 5rem 6vw; }
  .story-heading img { height: 480px; }
  .story-copy { padding-top: 0; }
  .story-mantra, .about-method-close { grid-column: 1; margin-top: 2rem; }
  .story-mantra { align-items: flex-start; padding-left: 0; padding-right: 0; text-align: left; }
  .journey-copy p { padding-left: 1.2rem; }
  .about-page .about-hero .about-intro { max-width: none; padding-bottom: 4rem; }
  .about-page .concert img { height: 520px; }
  .about-page .concert-photo { min-height: 0; height: 520px; }
  .path-detail > div { padding-top: 4rem; padding-bottom: 4rem; }
}

@media (max-width: 420px) {
  .hero-copy { margin-top: 21vh; }
  .hero-copy h1 { font-size: 3.45rem; }
  .hero-copy .button { font-size: .9rem; padding: .9rem 1.2rem; }
  .pillars { height: 210px; }
  .quote p { font-size: 1.35rem; }
  footer { grid-template-columns: 1fr; }
}

/* Homepage header: the hero already carries the signature. */
.home-header .brand { justify-content: center; }

/* Optical icon balance in the four-pillar band. */
.pillars div:first-child { font-size: inherit; }
.pillars .pillar-icon {
  display: grid;
  place-items: center;
  width: 3.4rem;
  height: 3.4rem;
}
.pillars .pillar-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* About page — one coherent editorial composition. */
.about-page .about-hero {
  grid-template-columns: minmax(330px, .9fr) minmax(390px, 1.08fr) minmax(300px, .82fr);
  gap: clamp(2.25rem, 4.5vw, 5rem);
  padding-left: max(5vw, calc((100vw - 1500px) / 2));
  padding-right: max(5vw, calc((100vw - 1500px) / 2));
}
.about-page .about-hero > div { padding: 3rem 0; }
.about-page .about-hero h1 { font-size: clamp(3.2rem, 4.6vw, 5.25rem); }
.about-page .about-hero .about-intro { max-width: 520px; }
.about-page .voice-story {
  grid-template-columns: minmax(390px, .82fr) minmax(520px, 1.18fr);
  column-gap: clamp(4rem, 7vw, 8rem);
  padding-left: max(7vw, calc((100vw - 1480px) / 2));
  padding-right: max(7vw, calc((100vw - 1480px) / 2));
}
.about-page .story-heading h2,
.about-page .journey h2,
.about-page .koumai-note h2,
.about-page .about-method h2 { font-size: clamp(3rem, 4.25vw, 4.8rem); }
.about-page .story-copy { max-width: 720px; padding-top: 1.5rem; }
.about-page .story-copy p { line-height: 1.82; margin-bottom: 1.65rem; }
.about-page .story-heading img { height: min(53vw, 650px); }
.about-page .journey,
.about-page .koumai-note {
  grid-template-columns: minmax(350px, .78fr) minmax(540px, 1.22fr);
  gap: clamp(4rem, 7vw, 8rem);
  padding-left: max(8vw, calc((100vw - 1400px) / 2));
  padding-right: max(8vw, calc((100vw - 1400px) / 2));
}
.about-page .journey-copy,
.about-page .koumai-note > div:last-child { max-width: 740px; }
.about-page .journey-copy p,
.about-page .koumai-note p { line-height: 1.82; }

/* A quieter light-background system: warm cream first, ivory for rhythm. */
.editorial { background: var(--ivory); }
.intro,
.cta,
.paths-editorial,
.dual-intro,
.sound-experience.receptive,
.about-page .voice-story,
.about-page .koumai-note,
.reveal-transition,
.regard-tease,
.gallery-intro { background: var(--cream); }
.about-strip,
.booking,
.session-flow,
.collective-feature,
.about-page .journey,
.concert,
.pro-photo { background: var(--ivory); }
.prices-section,
.individual-nidra,
.breath { background: var(--cream); }

@media (max-width: 800px) {
  .pillars .pillar-icon { width: 2.2rem; height: 2.2rem; font-size: 1.95rem; }
  .pillars .icon-breath { font-size: 2.25rem; }
  .pillars .icon-voice { font-size: 2.35rem; }
  .pillars .icon-presence { font-size: 1.9rem; }
  .about-page .about-hero,
  .about-page .voice-story,
  .about-page .journey,
  .about-page .koumai-note { grid-template-columns: 1fr; }
  .about-page .about-hero { gap: 1.25rem; }
  .about-page .about-hero h1,
  .about-page .story-heading h2,
  .about-page .journey h2,
  .about-page .koumai-note h2,
  .about-page .about-method h2 { font-size: clamp(2.75rem, 11vw, 4rem); line-height: 1.04; }
  .about-page .story-heading img { height: min(118vw, 560px); }
  .about-page .story-copy p { line-height: 1.75; }
}

/* Les parcours: editorial, photographic and intentionally non-card-like. */
.parcours-page { background: var(--cream); }
.parcours-page .page-head { padding-bottom: 8.5rem; }
.paths-editorial { padding: 5rem 0 10rem; overflow: hidden; }
.path-story {
  --accent: var(--wine);
  position: relative;
  width: min(1320px, 90vw);
  min-height: 690px;
  margin: 0 auto 13rem;
  display: grid;
  grid-template-columns: minmax(340px, .82fr) minmax(540px, 1.35fr);
  align-items: center;
  gap: clamp(4rem, 8vw, 9rem);
  background: transparent;
  color: #2e2422;
}
.path-story.green { --accent: var(--ink); }
.path-story.plum { --accent: var(--plum); }
.path-photo { height: 700px; }
.path-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.path-copy { position: relative; z-index: 1; max-width: 540px; padding: 2rem 0; }
.path-copy small { color: var(--accent); }
.path-copy small span { display: inline-block; margin-right: .35rem; font-family: 'Italiana', serif; font-size: 1.25rem; }
.path-copy h2 { margin: 1.1rem 0 1.7rem; font-size: clamp(3rem, 4.4vw, 5.2rem); line-height: 1.01; }
.path-copy h2 i { color: var(--accent); }
.path-copy > p { max-width: 490px; }
.path-copy ul { list-style: none; margin: 2rem 0 2.2rem; padding: 0; max-width: 470px; }
.path-copy li { padding: .75rem 0; border-bottom: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); }
.path-link { display: inline-flex; align-items: center; gap: 1rem; color: var(--accent); text-decoration: none; font-weight: 500; padding: .7rem 0; border-bottom: 1px solid currentColor; }
.path-link span { transition: transform .2s ease; }
.path-link:hover span { transform: translateX(4px); }
.path-1 .path-copy { order: 1; }
.path-1 .path-photo { order: 2; }
.path-1 { width: min(1260px, 86vw); grid-template-columns: minmax(330px, .76fr) minmax(560px, 1.4fr); }
.path-1::before { content: none; }
.path-2 { width: min(1340px, 92vw); grid-template-columns: minmax(580px, 1.42fr) minmax(340px, .78fr); }
.path-2 .path-photo { height: 750px; }
.path-2 .path-copy { justify-self: end; }
.path-3 { display: block; width: min(1380px, 94vw); min-height: 790px; margin-bottom: 5rem; }
.path-3 .path-photo { width: 82%; height: 720px; margin-left: 0; }
.path-3 .path-copy { position: absolute; right: 0; bottom: 1.5rem; width: min(520px, 45%); max-width: none; padding: 3.6rem 0 3.2rem 4.5rem; background: rgba(255,250,244,.96); }
.path-3 .path-copy::before { content: ""; position: absolute; left: 0; top: 3.8rem; width: 2.5rem; height: 1px; background: var(--accent); }

@media (max-width: 900px) {
  .parcours-page .page-head { padding-bottom: 5rem; }
  .paths-editorial { padding: 4rem 0 5rem; }
  .path-story, .path-2, .path-3 {
    width: 100%;
    min-height: 0;
    margin: 0 0 6rem;
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .path-story .path-photo, .path-2 .path-photo, .path-3 .path-photo {
    order: 1;
    width: 100%;
    height: min(76vw, 520px);
    margin: 0;
  }
  .path-story .path-copy, .path-1 .path-copy, .path-2 .path-copy, .path-3 .path-copy {
    order: 2;
    position: relative;
    right: auto;
    bottom: auto;
    width: auto;
    max-width: none;
    align-self: stretch;
    padding: 3rem 7vw 0;
    background: transparent;
  }
  .path-3 .path-copy::before, .path-1::before { display: none; }
  .path-copy h2 { font-size: clamp(2.65rem, 10vw, 4.3rem); }
}

@media (max-width: 520px) {
  .paths-editorial { padding-top: 2.5rem; }
  .path-story, .path-2, .path-3 { margin-bottom: 5rem; }
  .path-story .path-photo, .path-2 .path-photo, .path-3 .path-photo { height: 92vw; }
  .path-story .path-copy, .path-1 .path-copy, .path-2 .path-copy, .path-3 .path-copy { padding: 2.4rem 6vw 0; }
  .path-copy h2 { font-size: 2.7rem; }
}

/* Detailed offers — editorial, calm and consistent with the established worlds. */
.offer-page { --offer-accent: var(--wine); background: var(--cream); }
.sound-offer { --offer-accent: var(--ink); }
.nidra-offer { --offer-accent: var(--plum); }
.offer-hero { min-height: 690px; display: grid; grid-template-columns: .92fr 1.08fr; background: #24131b; color: #fff; }
.offer-hero.green { background: #183129; }
.offer-hero.plum { background: #2f1428; }
.offer-hero-copy { align-self: center; padding: 6rem 6vw 6rem 9vw; }
.offer-hero-copy h1 { font-size: clamp(3.6rem, 5.6vw, 6.6rem); }
.offer-hero-copy h1 i { color: #e3b75d; }
.offer-hero-copy p { max-width: 510px; font-family: 'Italiana',serif; font-size: 1.25rem; line-height: 1.45; }
.offer-hero > img { width: 100%; height: 690px; object-fit: cover; }
.practical-strip { padding: 1.3rem 5vw; background: var(--offer-accent); color: #fff; text-align: center; letter-spacing: .14em; font-size: .79rem; font-weight: 500; }
.practical-strip span { color: #ddb75f; padding: 0 .8rem; }
.offer-intro, .session-flow, .collective-feature, .individual-nidra { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,8vw,8rem); padding: 8rem 10vw; align-items: center; }
.offer-intro h2, .session-flow h2, .dual-intro h2, .prices-section h2, .collective-feature h2 { font-size: clamp(3.2rem,5vw,5.5rem); }
.offer-page i { color: var(--offer-accent); }
.session-flow { background: #f2e7dc; }
.session-details dl { margin: 2rem 0 0; }
.session-details dl div { display: grid; grid-template-columns: 1fr 1.5fr; padding: 1rem 0; border-bottom: 1px solid rgba(132,41,65,.22); }
.session-details dt { color: var(--offer-accent); text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; }
.session-details dd { margin: 0; }
.prices-section { padding: 8rem 12vw; background: #fff; }
.prices-list { margin-top: 3rem; border-top: 1px solid color-mix(in srgb,var(--offer-accent) 35%,#ddd); }
.price-line { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; border-bottom: 1px solid color-mix(in srgb,var(--offer-accent) 24%,#ddd); }
.price-line strong { display: block; font-family: 'Italiana',serif; font-size: 1.55rem; font-weight: 400; color: var(--offer-accent); }
.price-line span { display: block; margin-top: .4rem; color: #74635f; font-size: .88rem; }
.price-line > b { white-space: nowrap; font-size: 1.05rem; font-weight: 500; }
.discovery { display: flex; align-items: center; justify-content: space-between; gap: 4rem; padding: 5rem 10vw; background: #321626; color: #fff; }
.discovery h2 { font-size: clamp(2.5rem,4vw,4.2rem); margin-bottom: .4rem; }
.discovery p { max-width: 650px; }
.dual-intro { padding: 8rem 10vw 5rem; text-align: center; }
.duality { display: grid; grid-template-columns: 1fr 1fr; max-width: 950px; margin: 3rem auto 0; border-top: 1px solid #c8b99c; border-bottom: 1px solid #c8b99c; }
.duality div { padding: 2rem; }
.duality div+div { border-left: 1px solid #c8b99c; }
.duality b, .duality span { display: block; }
.duality b { font-family: 'Italiana',serif; color: var(--offer-accent); font-size: 1.6rem; }
.duality span { margin-top: .6rem; font-size: .85rem; }
.sound-experience { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem,8vw,8rem); padding: 8rem 10vw; }
.sound-experience.active { background: #e9efe9; }
.sound-experience.receptive { background: #fffaf4; }
.experience-heading { align-self: start; position: sticky; top: 2rem; }
.experience-heading h2 { font-size: clamp(3rem,4.6vw,5rem); }
.featured-format { padding: 2.2rem; border-left: 3px solid var(--offer-accent); background: rgba(255,255,255,.66); font-size: 1.1rem; line-height: 1.7; }
.featured-format b, .featured-format em { display: block; }
.featured-format em { margin-top: .8rem; color: var(--offer-accent); font-style: normal; font-weight: 500; }
.secondary-offer { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid rgba(32,55,47,.25); color: #675b57; }
.secondary-offer h3 { margin: 0; color: var(--offer-accent); font-size: 2rem; }
.location-note { margin: 1rem 0 0; color: #786d68; font-size: .88rem; line-height: 1.65; }
.booking-band { padding: 7rem 8vw; text-align: center; background: #20372f; color: #fff; }
.booking-band h2 { font-size: clamp(3rem,5vw,5rem); }
.booking-band p { max-width: 620px; margin: 1.5rem auto 2rem; }

/* One clear appointment path */
.choice-booking { display:inline-block; margin-top:1.25rem; }
.appointment-form-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw; padding:7rem 9vw; background:var(--ivory); scroll-margin-top:1rem; }
.appointment-form-intro h2 { font-size:clamp(2.8rem,4.5vw,4.8rem); }
.appointment-form-intro p { max-width:430px; }
.appointment-form { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 1.2rem; padding:2.5rem; border:1px solid #d9b990; background:rgba(255,255,255,.62); }
.appointment-form > label { display:flex; flex-direction:column; gap:.55rem; font-size:.86rem; font-weight:500; }
.appointment-form > label:nth-of-type(3),.appointment-form > label:nth-of-type(4),.appointment-form fieldset,.appointment-form .form-message,.appointment-form .consent,.appointment-form .privacy-note,.appointment-form button { grid-column:1 / -1; }
.appointment-form input:not([type="radio"]):not([type="checkbox"]),.appointment-form select,.appointment-form textarea { width:100%; border:1px solid #cbbcae; border-radius:0; background:#fffaf4; color:inherit; font:inherit; padding:.9rem 1rem; }
.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus { outline:2px solid var(--wine); outline-offset:2px; }
.appointment-form fieldset { display:flex; flex-wrap:wrap; gap:.8rem 1.5rem; margin:0; padding:1.1rem 0; border:0; border-top:1px solid #decfbe; border-bottom:1px solid #decfbe; }
.appointment-form legend { width:100%; margin-bottom:.8rem; font-size:.86rem; font-weight:500; }
.appointment-form fieldset label,.appointment-form .consent { display:flex; align-items:flex-start; gap:.55rem; font-size:.86rem; font-weight:400; }
.appointment-form input[type="radio"],.appointment-form input[type="checkbox"] { accent-color:var(--wine); margin-top:.2rem; }
.appointment-form .optional,.privacy-note { color:#7e716b; font-weight:300; }
.appointment-form .privacy-note { margin:0; font-size:.75rem; line-height:1.55; }
.appointment-form button { justify-self:start; border:0; cursor:pointer; font-family:inherit; }
.form-confirmation { align-self:start; padding:3rem; border-left:3px solid var(--wine); background:rgba(255,255,255,.65); }
.form-confirmation:focus { outline:2px solid var(--wine); outline-offset:4px; }
.form-confirmation h3 { margin-top:0; color:var(--wine); }
@media(max-width:800px){.appointment-form-section{grid-template-columns:1fr;gap:2.5rem;padding:5rem 6vw}.appointment-form{grid-template-columns:1fr;padding:1.5rem}.appointment-form>label{grid-column:1/-1}.appointment-form fieldset{flex-direction:column}.form-confirmation{padding:2rem}}

/* Les rendez-vous — simple, editorial choice between three experiences */
.appointments-page { background: #fffaf4; }
.appointments-hero { padding: 7.5rem 10vw 8.5rem; text-align: center; color: #fff; background: #1a3029; }
.appointments-hero h1 { margin: .25em 0; }
.appointments-hero p { max-width: 780px; margin: 2rem auto 0; font-size: 1.05rem; }
.appointment-block { --appointment-accent: var(--wine); display: grid; grid-template-columns: .9fr 1.1fr; gap: 9vw; padding: 8rem 10vw; border-bottom: 1px solid rgba(201,154,63,.3); }
.appointment-block:nth-of-type(3) { background: #f7efe5; }
.appointment-heading { align-self: start; }
.appointment-heading h2 { color: #2e2422; font-size: clamp(2.8rem,4.8vw,5rem); }
.appointment-heading h2 i { color: var(--appointment-accent); }
.appointment-heading > p { max-width: 480px; }
.appointment-content { align-self: center; }
.appointment-lead { font-family: 'Italiana',serif; font-size: clamp(1.35rem,2vw,1.85rem); line-height: 1.4; }
.appointment-meta { color: var(--appointment-accent); font-size: .75rem; font-weight: 500; letter-spacing: .09em; text-transform: uppercase; }
.appointment-note { margin-top: 1.8rem; padding-left: 1.25rem; border-left: 2px solid var(--gold); color: #705e56; font-size: .9rem; }
.appointment-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem 2rem; margin-top: 2.25rem; }
.appointment-actions .button { background: var(--appointment-accent); }
.appointment-actions .text-link { color: var(--appointment-accent); }
.appointment-voice { --appointment-accent: var(--wine); }
.appointment-sound { --appointment-accent: #244a37; }
.appointment-nidra { --appointment-accent: var(--plum); }
.sound-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; }
.sound-choices article { padding: .5rem 0 1.75rem; }
.sound-choices article + article { padding-left: 2.5rem; border-left: 1px solid rgba(36,74,55,.25); }
.sound-choices h3 { margin: 0 0 1rem; color: #244a37; font-size: 2rem; }
.sound-choices strong,.sound-choices span { display: block; }
.sound-choices span { margin-top: .65rem; color: #74645c; font-size: .85rem; }
.sound-choices .appointment-actions { grid-column: 1 / -1; }
.nidra-meeting { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; margin: 2rem 0; padding: 1.75rem 0; border-top: 1px solid rgba(61,23,50,.25); border-bottom: 1px solid rgba(61,23,50,.25); }
.nidra-meeting strong { font-family: 'Italiana',serif; color: var(--plum); font-size: 1.75rem; font-weight: 400; }
.nidra-meeting span { color: #6f5c64; }
.nidra-meeting b { color: var(--plum); }
.individual-appointments { display: grid; grid-template-columns: .9fr 1.1fr; gap: 9vw; padding: 7.5rem 10vw; background: #20372f; color: #fff; }
.individual-appointments h2 { font-size: clamp(2.8rem,4.8vw,4.8rem); }
.individual-appointments ul { list-style: none; margin: 0; padding: 0; }
.individual-appointments li { display: flex; justify-content: space-between; gap: 2rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(201,154,63,.35); }
.individual-appointments li span { color: #f7ede4; }
.individual-appointments li b { color: #e4bd67; text-align: right; font-weight: 500; }
.individual-location { margin: 1.8rem 0; color: #d8cec6; font-size: .85rem; }

@media(max-width:800px){
  .appointments-hero { padding: 5rem 7vw 5.5rem; }
  .appointments-hero h1 { font-size: 3.5rem; }
  .appointment-block,.individual-appointments { grid-template-columns: 1fr; gap: 2.5rem; padding: 5rem 7vw; }
  .appointment-heading h2,.individual-appointments h2 { font-size: 3.1rem; }
  .sound-choices { grid-template-columns: 1fr; }
  .sound-choices article + article { padding: 1.75rem 0; border-left: 0; border-top: 1px solid rgba(36,74,55,.25); }
  .sound-choices .appointment-actions { grid-column: auto; }
  .appointment-actions { align-items: flex-start; flex-direction: column; }
  .appointment-actions .button,.individual-appointments .button { justify-content: center; width: 100%; text-align: center; }
  .individual-appointments li { flex-direction: column; gap: .35rem; }
  .individual-appointments li b { text-align: left; }
}
.collective-feature { background: #f0e5ec; }
.collective-feature > div:first-child p { color: var(--offer-accent); text-transform: uppercase; letter-spacing: .14em; }
.collective-feature .collective-day { line-height: 1; }
.collective-feature .collective-time { display: block; margin-top: .65rem; white-space: nowrap; font-size: clamp(1.65rem, 2.35vw, 2.55rem); line-height: 1.15; }
.collective-feature > div:first-child .collective-format { margin: 1.65rem 0 0; font-size: .88rem; line-height: 1.5; text-transform: none; letter-spacing: .035em; }
.collective-feature > div:first-child .collective-location { max-width: 510px; margin-top: 1.1rem; color: #786d68; font-size: .92rem; line-height: 1.7; text-transform: none; letter-spacing: normal; }
.individual-nidra { padding-top: 5rem; padding-bottom: 5rem; background: #fff; }
.individual-nidra h2 { font-size: clamp(2.5rem,4vw,4.2rem); }
.individual-nidra b { color: var(--offer-accent); font-weight: 500; line-height: 1.7; }

@media (max-width: 800px) {
  .offer-hero { min-height: 0; grid-template-columns: 1fr; }
  .offer-hero-copy { padding: 4.5rem 7vw; }
  .offer-hero-copy h1 { font-size: clamp(3.2rem,13vw,4.8rem); }
  .offer-hero > img { height: 72vw; max-height: 520px; order: -1; }
  .practical-strip { line-height: 2; padding: 1.2rem 6vw; }
  .practical-strip span { padding: 0 .35rem; }
  .offer-intro, .session-flow, .collective-feature, .individual-nidra, .sound-experience { grid-template-columns: 1fr; gap: 2.5rem; padding: 5rem 7vw; }
  .prices-section, .dual-intro { padding: 5rem 7vw; }
  .price-line { align-items: flex-start; }
  .discovery { flex-direction: column; align-items: flex-start; padding: 4.5rem 7vw; }
  .duality { grid-template-columns: 1fr; }
  .duality div+div { border-left: 0; border-top: 1px solid #c8b99c; }
  .experience-heading { position: static; }
  .booking-band { padding: 5rem 7vw; }
  .collective-feature .collective-time { font-size: clamp(1.45rem, 7vw, 2rem); white-space: nowrap; }
}

@media (max-width: 480px) {
  .offer-hero-copy { padding: 3.8rem 6vw; }
  .offer-hero-copy h1 { font-size: 3.15rem; }
  .offer-intro h2, .session-flow h2, .dual-intro h2, .prices-section h2, .collective-feature h2 { font-size: 3rem; }
  .price-line { gap: 1rem; }
  .price-line strong { font-size: 1.35rem; }
  .price-line > b { font-size: .92rem; }
}

/* Global light-background harmonization.
   Large light surfaces share the same warm cream on desktop and mobile. */
.editorial,
.method:not(.dark),
.intro,
.about-strip,
.cta,
.breath,
.booking,
.concert,
.regard-tease,
.gallery-intro,
.pro-photo,
.paths-editorial,
.dual-intro,
.sound-experience.active,
.sound-experience.receptive,
.offer-intro,
.session-flow,
.prices-section,
.collective-feature,
.individual-nidra,
.appointments-page,
.appointment-block,
.appointment-block:nth-of-type(3),
.about-page .personal-story,
.about-page .voice-story,
.about-page .journey,
.about-page .koumai-note,
.reveal-transition {
  background: var(--cream);
}

/* Rendez-vous — only deep green, ivory and a clearly visible warm sand. */
.appointments-page .appointment-voice {
  background: var(--cream);
}
.appointments-page .appointment-sound {
  background: #f2e9dc;
}
.appointments-page .appointment-nidra {
  background: var(--cream);
}
.appointment-block .appointment-heading small,
.appointment-block .appointment-content h3 {
  color: var(--appointment-accent);
}
.appointment-block .appointment-heading::before {
  content: "";
  display: block;
  width: 3rem;
  height: 1px;
  margin-bottom: 1.5rem;
  background: var(--appointment-accent);
  opacity: .72;
}
.appointment-block .appointment-note {
  border-left-color: color-mix(in srgb, var(--appointment-accent) 72%, var(--gold));
}

/* À propos — only deep green, ivory and warm sand on large surfaces. */
.about-page .about-hero {
  background: #1a3029;
}
.about-page .voice-story {
  background: var(--cream);
}
.about-page .journey {
  background: #f2e9dc;
}
.about-page .koumai-note {
  background: #f2e9dc;
}
.about-page .about-method {
  background: #1c352d;
}
.about-page .concert {
  background: #f2e9dc;
}
.about-page .reveal-transition,
.about-page .regard-tease {
  background: var(--cream);
}
.about-page .journey h2 i,
.about-page .koumai-note h2 i {
  color: var(--wine);
}
.about-page .journey-copy p {
  border-left-color: color-mix(in srgb, var(--gold) 62%, transparent);
}

/* À propos — targeted desktop composition balance. Content and art direction stay unchanged. */
@media (min-width: 801px) {
  .about-page .about-hero {
    grid-template-columns: minmax(380px, 1.06fr) minmax(340px, .98fr) minmax(280px, .88fr);
    gap: clamp(2.5rem, 3.2vw, 4rem);
  }

  .about-page .about-hero > div:first-child {
    width: 100%;
    max-width: 470px;
  }

  .about-page .about-hero h1 {
    max-width: 100%;
    font-size: clamp(2.9rem, 3.55vw, 4.6rem);
    overflow-wrap: normal;
  }

  .about-page .about-hero .about-intro {
    justify-self: start;
  }

  .about-page .voice-story {
    grid-template-columns: minmax(320px, .7fr) minmax(600px, 1.3fr);
    column-gap: clamp(4.5rem, 7.5vw, 9rem);
    padding-top: clamp(7rem, 8vw, 9rem);
    padding-bottom: clamp(6rem, 7vw, 8rem);
  }

  .about-page .story-heading {
    align-self: start;
    max-width: 510px;
  }

  .about-page .story-heading h2 {
    max-width: 500px;
    font-size: clamp(3rem, 3.75vw, 4.3rem);
    line-height: 1.02;
    margin-bottom: clamp(2.5rem, 4vw, 4rem);
  }

  .about-page .story-heading img {
    width: calc(100% + clamp(1.5rem, 3vw, 3.75rem));
    height: clamp(470px, 44vw, 620px);
    object-position: center;
  }

  .about-page .story-copy {
    width: 100%;
    max-width: 780px;
    padding-top: .5rem;
  }

  .about-page .story-copy blockquote {
    max-width: 720px;
    margin-top: 2.6rem;
    margin-bottom: 2.8rem;
  }

  .about-page .story-mantra {
    margin-top: clamp(4.5rem, 6vw, 6rem);
  }

  .about-page .regard-tease {
    grid-template-columns: minmax(330px, .6fr) minmax(0, 1fr);
    gap: clamp(3rem, 5vw, 6rem);
    align-items: start;
    padding: clamp(6rem, 8vw, 9rem) 7vw;
  }

  .about-page .regard-tease > div {
    padding: 0;
  }

  .about-photo-mosaic { align-self: start; margin: 0; min-width: 0; }
  .about-photo-mosaic-grid { display: grid; grid-template-columns: 1.14fr .86fr; gap: clamp(.65rem, 1vw, 1rem); align-items: end; }
  .about-photo-mosaic img { display: block; width: 100%; height: auto; }
  .about-photo-mosaic .mosaic-reeds { grid-column: 1 / -1; width: 84%; margin-top: clamp(.1rem, .35vw, .4rem); justify-self: end; }
}

@media (max-width: 800px) {
  .about-page .voice-story {
    gap: 0;
  }

  .about-page .story-heading h2 {
    margin-bottom: 2.25rem;
  }

  .about-page .story-heading img {
    margin-bottom: 2.75rem;
  }

  .about-page .story-copy {
    width: 100%;
  }

  .about-method-quote {
    padding: 4.5rem 7vw 5.5rem;
  }

  .about-method-close {
    margin: 0;
    padding: 2.25rem 0 0;
  }

  .about-page .regard-tease {
    gap: 2.75rem;
  }

  .about-photo-mosaic { margin: 0; width: 100%; }
  .about-photo-mosaic-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  .about-photo-mosaic img,
  .about-photo-mosaic .mosaic-reeds { display: block; width: 100%; height: auto; margin: 0; }
}

/* Final mobile-only safeguards: preserve the desktop composition and editorial scale. */
@media (max-width: 800px) {
  html,body{max-width:100%;overflow-x:hidden}
  main,main>section{min-width:0}
  h1,h2,h3,p,a,button,strong,span{overflow-wrap:anywhere}

  .editorial.split{display:flex;flex-direction:column;align-items:stretch;gap:1.75rem;padding-left:7vw;padding-right:7vw}
  .editorial.split>div,.editorial.split>p{width:100%;max-width:none;min-width:0}
  .editorial.split h2{font-size:clamp(2.75rem,11.7vw,4rem);line-height:1.04}
  .editorial.split>p{margin:0;padding:1.25rem 0 0;border-left:0;border-top:1px solid rgba(201,154,63,.55)}

  .collective-feature .collective-day{font-size:clamp(2.7rem,11vw,3.5rem)}
  .collective-feature .collective-time{font-size:clamp(1.25rem,5.5vw,1.65rem);line-height:1.25;white-space:normal}
  .nidra-meeting strong{font-size:clamp(1.15rem,5.4vw,1.5rem);line-height:1.3}

  .button,.appointment-actions .button,.individual-appointments .button{max-width:100%;min-height:44px;white-space:normal;line-height:1.35}
  .card,.contact-card,.appointment-form,.sound-choices article{min-width:0;max-width:100%}
  img{max-width:100%}

  footer{gap:2.25rem 1.5rem;padding-top:3.5rem;padding-bottom:3.5rem}
  footer>div:not(.brand){gap:.62rem}
}

@media (max-width: 420px) {
  .page-head h1,.appointments-hero h1{font-size:clamp(3rem,14vw,3.55rem)}
  .appointment-heading h2,.individual-appointments h2{font-size:clamp(2.65rem,12vw,3.1rem)}
  .about-page .about-hero h1,.about-page .story-heading h2,.about-page .journey h2,.about-page .koumai-note h2,.about-page .about-method h2{font-size:clamp(2.55rem,12.5vw,3.25rem)}
  footer{grid-template-columns:1fr}
}

/* Dernière passe responsive — lisibilité et rythme, mobile uniquement. */
@media (max-width: 800px) {
  /* Le texte informatif reste dans la police de lecture du site. */
  .appointments-page .appointment-voice .appointment-lead {
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.75;
  }

  /* Une séparation éditoriale nette, sans vide accidentel entre les offres. */
  .appointments-page .appointment-sound { padding-bottom: 3.5rem; }
  .appointments-page .appointment-nidra { padding-top: 3.5rem; }

  /* Les informations horaires ne peuvent plus se rompre au milieu d'une heure. */
  .appointments-page .nidra-meeting strong {
    max-width: 100%;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  /* Les signatures conservent l'Italiana, avec une mesure et un rythme plus lisibles. */
  .about-page .story-copy .lead,
  .about-page .story-copy .keywords {
    color: #7b243b;
    line-height: 1.45;
    overflow-wrap: normal;
  }
  .about-page .story-copy .lead { font-size: clamp(1.7rem, 8vw, 2rem); }
  .about-page .story-copy .keywords { font-size: clamp(1.35rem, 6.4vw, 1.55rem); }

  .about-page .story-copy blockquote {
    width: calc(100% - .35rem);
    max-width: 34rem;
    margin: 2.2rem .35rem 2.35rem 0;
    padding: 1rem .8rem 1rem 1.35rem;
    color: #7b243b;
    font-size: clamp(1.42rem, 6.7vw, 1.75rem);
    line-height: 1.48;
    overflow-wrap: normal;
  }

  /* Les liens et boutons gardent une zone tactile confortable sans coupure disgracieuse. */
  .text-link { line-height: 1.55; }
  .button { text-align: center; justify-content: center; }
}

@media (max-width: 360px) {
  .appointments-page .nidra-meeting strong {
    white-space: normal;
    max-width: 15rem;
  }
}

/* Page Cours de chant — composition éditoriale dédiée. */
.singing-page{background:#f7f0e5;color:#2f2420}
.singing-page small{display:block;color:#c78c22;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.singing-page h1,.singing-page h2,.singing-page h3{font-family:'Italiana',serif;font-weight:400}
.singing-page h1 i,.singing-page h2 i{color:#bc3f62;font-weight:400}
.singing-hero{position:relative;display:block;height:clamp(640px,48vw,700px);max-width:none;margin:0 auto;background:#F6E9C3;overflow:hidden}
.singing-hero-copy{position:relative;z-index:3;display:flex;width:42%;height:100%;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(70px,5.5vw,90px) 40px clamp(70px,5.5vw,90px) clamp(70px,6vw,90px);color:#3E332C}
.singing-hero-copy small{color:#C58B2A;font-size:.72rem;font-weight:600;letter-spacing:.22em}
.singing-hero-copy h1{max-width:11ch;margin:.8rem 0 1.35rem;font-size:clamp(4rem,5.5vw,6rem);line-height:.91;color:#342821}
.singing-hero-copy h1 i{color:#B74B6C}
.singing-hero-copy p{max-width:35rem;margin:0 0 1.7rem;color:#3E332C;font-size:clamp(1rem,1.08vw,1.14rem);line-height:1.72}
.singing-hero-copy .button{background:#A63E61;color:#FFFFFF}
.singing-hero-photo{position:absolute;z-index:1;top:0;right:0;bottom:0;width:68%;margin:0;background:#171315;overflow:hidden;isolation:isolate}
.singing-hero-photo:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,#F6E9C3 0%,rgba(246,233,195,.98) 20%,rgba(246,233,195,.90) 32%,rgba(246,233,195,.68) 43%,rgba(246,233,195,.38) 53%,rgba(246,233,195,.12) 62%,rgba(246,233,195,0) 72%)}
.singing-hero-photo:after{content:none}
.singing-hero-photo img{position:relative;display:block;width:100%;height:100%;object-fit:cover;object-position:center top;-webkit-mask-image:none;mask-image:none;user-select:none;-webkit-user-drag:none}
.singing-hero-photo figcaption{position:absolute;z-index:3;right:.8rem;bottom:.65rem;padding:.25rem .45rem;color:#f3d391;background:rgba(24,15,20,.68);font-size:.6rem;letter-spacing:.07em}
.singing-intro{max-width:58rem;margin:0 auto;padding:clamp(3.75rem,6vw,6rem) 2rem;text-align:center}
.singing-intro h2,.singing-audience h2{margin:.75rem 0 1.25rem;font-size:clamp(2.7rem,4.4vw,5rem);line-height:1.02}
.singing-intro p{max-width:48rem;margin:auto;font-size:1.05rem;line-height:1.8}
.singing-formats{padding:clamp(4rem,7vw,7rem) clamp(1.5rem,5vw,5rem);background:#F7EBDD;text-align:center}
.singing-formats>h2{margin:.6rem 0 2.5rem;font-size:clamp(2.8rem,4vw,4.6rem)}
.singing-format-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;max-width:88rem;margin:auto;text-align:left}
.singing-format-grid article{display:flex;flex-direction:column;min-height:31rem;padding:clamp(1.9rem,3vw,2.8rem);border:1px solid #D9B77C;background:#FBF4EC}
.singing-number{display:none;color:#C98A2E;font-family:'Italiana',serif;font-size:2.3rem}
.singing-format-grid h3{margin:1rem 0;font-size:clamp(2rem,2.4vw,2.8rem);line-height:1.05}
.singing-format-grid p{min-height:5.2rem;line-height:1.65}
.singing-format-grid dl{margin:1.1rem 0 1.4rem}
.singing-format-grid dl div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid rgba(201,138,46,.3)}
.singing-format-grid dt,.singing-format-grid dd{margin:0}
.singing-format-grid em{margin:0 0 1.25rem;color:#9a6c21;font-size:.85rem;line-height:1.55}
.singing-format-grid .button{align-self:flex-start;margin-top:auto}
.singing-booking{padding:clamp(4rem,8vw,7rem) 2rem;background:radial-gradient(circle at 18% 40%,rgba(255,250,244,.96) 0%,rgba(255,250,244,.72) 28%,rgba(238,217,202,.52) 58%,rgba(231,204,189,.78) 100%),linear-gradient(120deg,#fbf4ea,#ead2c3)}
.singing-booking>div{max-width:72rem;margin:auto;padding-left:50%}
.singing-booking h2{margin:.6rem 0 1rem;font-size:clamp(3rem,5vw,5.8rem);line-height:.95}
.singing-booking p{max-width:30rem;margin-bottom:1.7rem;line-height:1.7}
.singing-audience{padding:clamp(5rem,8vw,8rem) clamp(1.5rem,5vw,5rem);text-align:center}
.singing-audience>div{display:grid;grid-template-columns:repeat(5,1fr);gap:0;max-width:88rem;margin:2.5rem auto 0}
.singing-audience span{position:relative;padding:1.5rem 1.25rem 1.5rem 2.7rem;border-right:1px solid rgba(199,140,34,.25);line-height:1.55;text-align:left}
.singing-audience span:last-child{border-right:0}
.singing-audience span:before{content:'✓';position:absolute;left:.7rem;top:1.45rem;display:grid;width:1.45rem;height:1.45rem;place-items:center;border:1px solid #c78c22;border-radius:50%;color:#c78c22;font-size:.8rem}
@media(max-width:1080px){.singing-hero{height:auto;min-height:0;background:#F6E9C3;overflow:hidden}.singing-hero-photo{position:relative;inset:auto;width:100%;height:clamp(480px,72vw,560px);margin:0;background:#171315}.singing-hero-photo:before{inset:auto 0 0;height:32%;background:linear-gradient(180deg,rgba(246,233,195,0) 0%,rgba(246,233,195,.10) 25%,rgba(246,233,195,.40) 55%,rgba(246,233,195,.80) 78%,#F6E9C3 100%)}.singing-hero-photo img{object-fit:cover;object-position:50% 31%;-webkit-mask-image:none;mask-image:none}.singing-hero-copy{width:100%;height:auto;padding:1.25rem clamp(1.5rem,7vw,4.5rem) 4.5rem}.singing-hero-copy h1{font-size:clamp(3.2rem,9vw,5.4rem)}.singing-format-grid{grid-template-columns:1fr}.singing-format-grid article{min-height:0}.singing-booking{background:linear-gradient(135deg,#fbf4ea,#ead2c3)}.singing-booking>div{padding-left:0}.singing-audience>div{grid-template-columns:1fr 1fr}.singing-audience span{border-right:0;border-bottom:1px solid rgba(199,140,34,.25)}}
@media(max-width:1080px){.singing-hero{display:flex;flex-direction:column}.singing-hero-photo{order:-1}}
@media(max-width:560px){.singing-hero-copy{padding:1rem 1.5rem 4rem}.singing-hero-copy h1{font-size:clamp(3rem,14vw,4.2rem)}.singing-hero-photo{height:clamp(480px,126vw,560px)}.singing-hero-photo img{object-position:50% 28%}.singing-audience>div{grid-template-columns:1fr}.singing-formats,.singing-audience{padding-left:1rem;padding-right:1rem}}

/* Hero chant v2.3.64 — photo verticale dézoomée, fondu conservé. */
.singing-hero{position:relative;display:block;min-height:640px;height:clamp(640px,48vw,700px);overflow:hidden;background:#F6E9C3}
.singing-hero-copy{position:relative;z-index:3;width:42%;height:100%;padding-left:6vw;padding-right:2vw}
.singing-hero-photo{position:absolute;z-index:1;inset:0 0 0 auto;order:initial;width:62%;height:100%;margin:0;overflow:hidden;background:#F6E9C3}
.singing-hero-photo img{display:block;width:100%;max-width:none;height:100%;object-fit:contain;object-position:right center}
.singing-hero-photo:before{content:"";position:absolute;z-index:2;inset:0;width:auto;height:auto;pointer-events:none;background:linear-gradient(90deg,#F6E9C3 0%,rgba(246,233,195,.98) 12%,rgba(246,233,195,.90) 22%,rgba(246,233,195,.72) 34%,rgba(246,233,195,.46) 45%,rgba(246,233,195,.22) 55%,rgba(246,233,195,.06) 65%,rgba(246,233,195,0) 75%)}

@media (min-width:769px) and (max-width:1024px){
  .singing-hero{position:relative;display:block;min-height:640px;height:640px}
  .singing-hero-copy{width:46%;height:100%;padding-left:5vw;padding-right:2vw}
  .singing-hero-copy h1{font-size:clamp(3.5rem,6vw,4.35rem)}
  .singing-hero-photo{position:absolute;inset:0 0 0 auto;order:initial;width:60%;height:100%}
  .singing-hero-photo img{width:100%;height:100%;object-fit:contain;object-position:right center}
  .singing-hero-photo:before{inset:0;width:auto;height:auto;background:linear-gradient(90deg,#F6E9C3 0%,rgba(246,233,195,.98) 12%,rgba(246,233,195,.90) 22%,rgba(246,233,195,.72) 34%,rgba(246,233,195,.46) 45%,rgba(246,233,195,.22) 55%,rgba(246,233,195,.06) 65%,rgba(246,233,195,0) 75%)}
}

@media (max-width:768px){
  .singing-hero{display:flex;min-height:0;height:auto;flex-direction:column;background:#F6E9C3}
  .singing-hero-photo{position:relative;inset:auto;order:-1;width:100%;height:clamp(480px,121vw,560px);margin:0;background:#F6E9C3}
  .singing-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
  .singing-hero-photo:before{inset:0;width:auto;height:auto;background:linear-gradient(180deg,rgba(246,233,195,0) 50%,rgba(246,233,195,.18) 62%,rgba(246,233,195,.48) 74%,rgba(246,233,195,.78) 86%,#F6E9C3 100%)}
  .singing-hero-copy{width:100%;height:auto;padding:42px 24px 56px}
}

/* Hero chant v2.3.65 — calques photo/fondu jumelés comme sur l'accueil. */
@media (min-width:769px){
  .singing-hero-photo{background:#F6E9C3}
  .singing-hero-photo img{opacity:0}
  .singing-hero-photo:before,
  .singing-hero-photo:after{content:"";position:absolute;top:0;right:0;width:auto;height:100%;aspect-ratio:1638 / 2048;transform:none;pointer-events:none}
  .singing-hero-photo:before{z-index:1;background:url('assets/images/rachel-fleurs-hero-chant-v6.webp') right center / 100% 100% no-repeat}
  .singing-hero-photo:after{z-index:2;background:linear-gradient(90deg,#F6E9C3 0%,rgba(246,233,195,.98) 6%,rgba(246,233,195,.90) 14%,rgba(246,233,195,.72) 23%,rgba(246,233,195,.46) 32%,rgba(246,233,195,.22) 40%,rgba(246,233,195,.06) 47%,rgba(246,233,195,0) 54%)}
}

@media (max-width:768px){
  .singing-hero-photo img{opacity:1}
  .singing-hero-photo:before{content:none}
  .singing-hero-photo:after{content:"";position:absolute;z-index:2;inset:0;width:auto;height:auto;pointer-events:none;background:linear-gradient(180deg,rgba(246,233,195,0) 50%,rgba(246,233,195,.18) 62%,rgba(246,233,195,.48) 74%,rgba(246,233,195,.78) 86%,#F6E9C3 100%)}
}

/* Hero chant v2.3.66 — le fondu appartient directement à l'image. */
@media (min-width:769px){
  .singing-hero-photo:before,
  .singing-hero-photo:after{content:none}
  .singing-hero-photo img{position:absolute;z-index:1;top:0;right:0;bottom:0;left:auto;display:block;width:auto;max-width:none;height:100%;opacity:1;object-fit:fill;object-position:center;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.06) 5%,rgba(0,0,0,.18) 11%,rgba(0,0,0,.38) 17%,rgba(0,0,0,.62) 24%,rgba(0,0,0,.82) 31%,rgba(0,0,0,.95) 39%,#000 48%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.06) 5%,rgba(0,0,0,.18) 11%,rgba(0,0,0,.38) 17%,rgba(0,0,0,.62) 24%,rgba(0,0,0,.82) 31%,rgba(0,0,0,.95) 39%,#000 48%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}
}

@media (max-width:768px){
  .singing-hero-photo img{-webkit-mask-image:none;mask-image:none}
}

/* Invitation chant — photographie de scène retournée vers le texte. */
.singing-booking{position:relative;isolation:isolate;overflow:hidden}
.singing-booking-photo{position:absolute;z-index:1;inset:0 auto 0 0;width:52%;margin:0;overflow:hidden;background:#fbf4ea}
.singing-booking-photo img{position:absolute;z-index:1;top:-18%;left:-2%;display:block;width:auto;max-width:none;height:136%;object-fit:contain;transform:scaleX(-1);transform-origin:center;user-select:none;-webkit-user-drag:none}
.singing-booking-photo:after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(251,244,234,0) 0%,rgba(251,244,234,.04) 34%,rgba(251,244,234,.18) 48%,rgba(251,244,234,.48) 64%,rgba(251,244,234,.82) 80%,#fbf4ea 96%)}
.singing-booking-photo figcaption{position:absolute;z-index:3;left:.8rem;bottom:.65rem;padding:.24rem .42rem;color:#f3d391;background:rgba(24,15,20,.68);font-size:.58rem;letter-spacing:.06em}
.singing-booking>div{position:relative;z-index:3}

@media(max-width:950px){
  .singing-booking{display:flex;flex-direction:column;padding:0 0 4.5rem;background:#fbf4ea}
  .singing-booking-photo{position:relative;inset:auto;width:100%;height:clamp(390px,105vw,520px);order:-1}
  .singing-booking-photo img{top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:52% 28%;transform:scaleX(-1)}
  .singing-booking-photo:after{background:linear-gradient(180deg,rgba(251,244,234,0) 48%,rgba(251,244,234,.16) 62%,rgba(251,244,234,.48) 76%,rgba(251,244,234,.82) 89%,#fbf4ea 100%)}
  .singing-booking>div{padding:1rem 1.5rem 0}
}

/* Invitation chant v2.3.69 — fondu rose poudré couvrant le bord réel. */
.singing-booking{background:linear-gradient(105deg,#fbf4ec 0%,#f8eee7 42%,#f3dfd6 72%,#e9c9bf 100%)}
.singing-booking-photo{width:58%;background:transparent}
.singing-booking-photo img{top:-20%;left:-1%;height:140%}
.singing-booking-photo:after{inset:0;background:linear-gradient(90deg,rgba(248,238,231,0) 0%,rgba(248,238,231,0) 22%,rgba(248,238,231,.08) 30%,rgba(248,238,231,.22) 38%,rgba(248,238,231,.44) 47%,rgba(248,238,231,.68) 56%,rgba(248,238,231,.86) 64%,rgba(248,238,231,.96) 71%,#f8eee7 78%,#f8eee7 100%)}

@media(max-width:950px){
  .singing-booking{background:#f8eee7}
  .singing-booking-photo{width:100%;background:#f8eee7}
  .singing-booking-photo img{top:0;left:0;height:100%}
  .singing-booking-photo:after{background:linear-gradient(180deg,rgba(248,238,231,0) 42%,rgba(248,238,231,.08) 54%,rgba(248,238,231,.24) 65%,rgba(248,238,231,.50) 76%,rgba(248,238,231,.78) 86%,rgba(248,238,231,.94) 94%,#f8eee7 100%)}
}

/* Invitation chant v2.3.70 — masque directement attaché à la photographie. */
@media(min-width:951px){
  .singing-booking-photo:after{content:none}
  .singing-booking-photo img{-webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 10%,rgba(0,0,0,.25) 13%,rgba(0,0,0,.55) 16%,rgba(0,0,0,.85) 19%,#000 22%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,transparent 10%,rgba(0,0,0,.25) 13%,rgba(0,0,0,.55) 16%,rgba(0,0,0,.85) 19%,#000 22%,#000 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%}
}

@media(max-width:950px){
  .singing-booking-photo img{-webkit-mask-image:none;mask-image:none}
}

/* Footer global v2.3.74 */
.site-footer{display:block;position:relative;overflow:hidden;padding:64px max(4vw,48px) 26px;background:radial-gradient(circle at 14% 28%,rgba(25,78,66,.24),transparent 34%),linear-gradient(135deg,#0b342d 0%,#092b27 70%,#0a302a 100%);color:#f9f2e8}
.site-footer .footer-shell{display:block;max-width:1440px;margin:0 auto}
.site-footer .footer-grid{display:grid;grid-template-columns:minmax(270px,1.5fr) minmax(110px,.75fr) minmax(145px,.95fr) minmax(250px,1.4fr) minmax(165px,1.05fr);gap:clamp(1.25rem,1.8vw,2rem);align-items:start;margin-bottom:2.75rem}
.site-footer .footer-identity{position:relative;isolation:isolate;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:translateY(24px)}
.site-footer .footer-brand{position:relative;z-index:2;color:#fffaf3;text-decoration:none;font-family:'Josefin Sans','DM Sans',sans-serif;font-size:clamp(1.75rem,2.15vw,2.55rem);font-weight:300;line-height:1.1;letter-spacing:.105em;white-space:nowrap}
.site-footer .footer-identity p{position:relative;z-index:2;margin:1rem 0 0;color:#dcae45;font-size:.72rem;line-height:1.4;text-transform:uppercase;letter-spacing:.34em}
.site-footer .footer-column{display:flex;flex-direction:column;gap:1.25rem;min-width:0;padding-top:3rem}
.site-footer .footer-column h2{position:relative;margin:0 0 1.35rem;padding:0 0 .9rem;color:#dfb34f;font:400 .78rem/1.3 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.15em}
.site-footer .footer-column h2:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(219,174,70,.72)}.site-footer .footer-column h2:before{content:none}
.site-footer .footer-column a,.site-footer .footer-column>span,.site-footer .footer-contact>div{color:#f9f2e8;text-decoration:none;font-size:.96rem;line-height:1.55;transition:color .2s ease}
.site-footer .footer-column a:hover,.site-footer .footer-column a:focus-visible{color:#e6b8c2}
.site-footer .footer-contact a,.site-footer .footer-contact>div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:.9rem;align-items:center;min-height:32px}
.site-footer .footer-contact svg{width:24px;height:24px;color:#dfb34f;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.site-footer .footer-contact span{min-width:0;overflow-wrap:anywhere}
.site-footer .footer-contact a span{white-space:nowrap;overflow-wrap:normal}
.site-footer .footer-legal h2{font-size:.72rem;white-space:nowrap}
.site-footer .footer-bottom{position:relative;padding-top:2.55rem}.site-footer .footer-bottom:before{content:"";position:absolute;left:0;right:31%;top:0;height:1px;background:rgba(215,168,60,.72)}
.site-footer .footer-wave{position:absolute;z-index:1;top:-34px;right:0;display:block;width:min(39%,430px);height:auto;pointer-events:none;user-select:none}
.site-footer .footer-bottom p{position:relative;z-index:2;margin:0;color:#f7eee4;font-size:.84rem;letter-spacing:.025em}

/* Logo de marque validé — fichier transparent original, sans reconstruction CSS. */
.header .brand-logo{display:flex;flex:0 0 auto;width:clamp(190px,15vw,220px);height:76px;align-items:center;justify-content:flex-start;margin:0;line-height:0}
.header .brand-logo img{display:block;width:100%;height:auto;max-width:100%;max-height:76px;object-fit:contain;object-position:left center}
.header .brand-logo .brand-logo-dark{display:none}
.header.home-header .brand-logo .brand-logo-light{display:none}
.header.home-header .brand-logo .brand-logo-dark{display:block}
.site-footer .footer-brand-logo{display:block;width:min(100%,300px);line-height:0;white-space:normal}
.site-footer .footer-brand-logo img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}

@media(max-width:1090px){
  .site-footer{padding:48px 5vw 24px}.site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 4rem}.site-footer .footer-identity{grid-column:1/-1;min-height:160px;transform:none}.site-footer .footer-wave{width:48%}.site-footer .footer-bottom:before{right:42%}
}
@media(max-width:680px){
  .site-footer{padding:40px 24px 22px}.site-footer .footer-grid{grid-template-columns:1fr;gap:2.2rem}.site-footer .footer-identity{grid-column:auto;min-height:125px;align-items:flex-start;text-align:left}.site-footer .footer-brand{font-size:1.72rem;letter-spacing:.075em;white-space:normal}.site-footer .footer-identity p{letter-spacing:.27em}.site-footer .footer-column h2{margin-bottom:.8rem}.site-footer .footer-bottom{padding-top:2.5rem}.site-footer .footer-bottom:before{right:58%}.site-footer .footer-wave{top:-17px;width:66%;height:auto}.site-footer .footer-bottom p{font-size:.75rem}
}

@media(max-width:800px){
  .header .brand-logo{width:clamp(145px,38vw,165px);height:62px}
  .header .brand-logo img{max-height:62px}
  .site-footer .footer-brand-logo{width:min(100%,255px)}
}

/* Tarif solidaire — mention commune aux pages d’offres. */
.solidarity-note{width:min(1160px,calc(100% - 10vw));margin:clamp(2rem,4vw,4rem) auto;padding:1.25rem 1.5rem 1.35rem;background:#fbf6ef;border:1px solid rgba(201,154,63,.62);border-left:3px solid var(--wine);color:#3e332c}
.solidarity-note h2{margin:0 0 .45rem;color:var(--wine);font-family:'Italiana',serif;font-size:clamp(1.35rem,1.7vw,1.7rem);font-weight:400;line-height:1.2}
.solidarity-note p{max-width:920px;margin:0;font-size:.92rem;line-height:1.65}
.solidarity-note--compact{padding:1rem 1.25rem}
.solidarity-note--compact p{font-size:.88rem}
.solidarity-note--compact strong{color:var(--wine);font-weight:500}
@media(max-width:680px){.solidarity-note{width:calc(100% - 48px);margin:2rem auto;padding:1.1rem 1.15rem 1.2rem}.solidarity-note h2{font-size:1.4rem}.solidarity-note p{font-size:.87rem;line-height:1.6}}

/* Voix & Confiance v2.3.76 — même photographie, deux cadrages éditoriaux. */
.voice-offer .offer-hero{position:relative;overflow:hidden;grid-template-columns:45% 55%;min-height:690px;background:#faf6f0;color:#342821}
.voice-offer .offer-hero-copy{position:relative;z-index:3}
.voice-offer .offer-hero-copy h1 i{color:var(--wine)}
.voice-confidence-visual{position:relative;z-index:1;height:690px;margin:0;overflow:hidden;background:#faf6f0}
.voice-confidence-visual img{position:absolute;inset:0 0 0 auto;display:block;width:100%;height:100%;object-fit:contain;object-position:right center;user-select:none;-webkit-user-drag:none}
.voice-confidence-visual--buste img{object-fit:cover;object-position:center center}
.voice-confidence-visual:after{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,#faf6f0 0%,rgba(250,246,240,.92) 12%,rgba(250,246,240,.65) 24%,rgba(250,246,240,.32) 36%,rgba(250,246,240,.08) 46%,rgba(250,246,240,0) 55%)}
.intro .card:first-child .card-photo-link{overflow:hidden}
.intro .card:first-child .card-photo-link img{object-fit:cover;object-position:50% 50%;transform:none;filter:none}
.parcours-page .path-1 .path-photo img{object-fit:cover;object-position:50% 8%;transform:none;filter:none}

@media(max-width:800px){
  .voice-offer .offer-hero{display:flex;flex-direction:column;min-height:0;background:#faf6f0}
  .voice-confidence-visual{order:-1;width:100%;height:clamp(480px,125vw,560px);background:#faf6f0}
  .voice-confidence-visual img{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 46%}
  .voice-confidence-visual--buste{height:clamp(280px,75vw,360px)}
  .voice-confidence-visual--buste img{object-fit:cover;object-position:center center}
  .voice-confidence-visual:after{background:linear-gradient(180deg,rgba(250,246,240,0) 68%,rgba(250,246,240,.12) 75%,rgba(250,246,240,.38) 83%,rgba(250,246,240,.74) 92%,#faf6f0 100%)}
  .voice-offer .offer-hero-copy{width:100%;margin-top:-1px;padding-top:2.7rem;background:#faf6f0}
  .intro .card:first-child .card-photo-link img{object-position:50% 50%}
  .parcours-page .path-1 .path-photo img{object-position:50% 8%}
}

/* Témoignages — grille évolutive et carte unique centrée */
.testimonial-placeholders{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.testimonial-placeholders:has(>article:only-child){max-width:760px}
