/* Dr. Dino — site principal. S'appuie sur styles.css + marine.css (landing). */

/* ---------- Navigation ---------- */
.sitenav {
  position: sticky; top: 0; z-index: 20;
  background: rgba(249, 249, 247, 0.92);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(14, 26, 56, 0.08);
}
.sitenav .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 68px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font-weight: 700; font-size: 1.15rem; letter-spacing: -0.02em; }
.brand img { height: 40px; width: auto; }
.navlinks { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.navlinks a { text-decoration: none; color: var(--ink); font-weight: 500; font-size: 0.95rem; }
.navlinks a:hover, .navlinks a[aria-current="page"] { color: var(--gold-ink); }
.navlinks .button { width: auto; min-height: 44px; padding: 10px 18px; font-size: 0.82rem; }
.navtoggle { display: none; background: none; border: 0; padding: 10px; color: var(--ink); cursor: pointer; }
.navtoggle svg { width: 26px; height: 26px; }
@media (max-width: 859px) {
  .navtoggle { display: block; }
  .navlinks {
    display: none; position: absolute; left: 0; right: 0; top: 68px;
    flex-direction: column; align-items: stretch; gap: 0; padding: 8px 20px 20px;
    background: var(--bg); border-bottom: 1px solid rgba(14, 26, 56, 0.08);
  }
  .navlinks.is-open { display: flex; }
  .navlinks li { border-bottom: 1px solid rgba(14, 26, 56, 0.06); }
  .navlinks a { display: block; padding: 14px 0; font-size: 1.05rem; }
  .navlinks li:last-child { border: 0; padding-top: 14px; }
  .navlinks .button { width: 100%; }
}

/* ---------- Héros du site : carte marine + photo détourée ---------- */
.hero-site .hero-grid { align-items: end; }
.hero-cutout { margin: 0; align-self: end; }
.hero-cutout img { width: 100%; max-width: 520px; height: auto; display: block; margin: 0 auto -30px; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.35)); }
@media (min-width: 860px) { .hero-cutout img { margin-bottom: -56px; } }
.hero .eyebrow-stat { display: inline-flex; gap: 8px; align-items: center; margin: 0 0 16px; padding: 7px 14px; border-radius: var(--radius-sm); box-shadow: inset 0 0 0 1px rgba(229, 213, 191, 0.4); color: var(--gold-bright); font-size: 0.82rem; font-weight: 600; max-width: none; }
.hero .lead { margin: 16px 0 22px; color: rgba(255, 254, 251, 0.82); font-size: 1.05rem; max-width: 34ch; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-actions .button { width: auto; }
.button--ghost-light { background: transparent; color: #fffefb; box-shadow: inset 0 0 0 1px rgba(255, 254, 251, 0.45); }
.button--ghost-light:hover { background: rgba(255, 254, 251, 0.08); }
@media (max-width: 859px) { .hero-actions .button { width: 100%; } }

/* ---------- En-têtes de section ---------- */
.section-head { margin-bottom: 30px; }
.section-head p { color: var(--ink-soft); }
.section-head.center { text-align: center; }
.section-head.center h2, .section-head.center p { margin-left: auto; margin-right: auto; }

/* ---------- Bénéfices : trois lignes numérotées ---------- */
.benefits { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.benefits li { display: grid; grid-template-columns: 3rem 1fr; gap: 6px 18px; padding: 24px 0; border-top: 1px solid var(--gold-line); }
.benefits .n { font-weight: 700; font-size: 1.6rem; color: var(--gold-ink); line-height: 1; }
.benefits h3 { margin: 0 0 8px; }
.benefits p { margin: 0; color: var(--ink-soft); }
@media (min-width: 860px) { .benefits { grid-template-columns: repeat(3, 1fr); gap: 0 40px; } .benefits li { grid-template-columns: 1fr; } }

/* ---------- Publics : onglets ---------- */
.tabs-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.tabs-list button {
  border: 0; cursor: pointer; font: inherit; font-weight: 600; font-size: 0.95rem;
  padding: 10px 18px; border-radius: var(--radius-sm);
  background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.15);
}
.tabs-list button[aria-selected="true"] { background: var(--navy); color: #fffefb; box-shadow: none; }
.tabpanel { display: grid; gap: 24px; padding: clamp(22px, 5vw, 40px); border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.08); }
.tabpanel[hidden] { display: none; }
.tabpanel h3 { margin-bottom: 8px; }
.tabpanel .includes { margin-bottom: 18px; }
@media (min-width: 860px) { .tabpanel { grid-template-columns: 1fr 1.1fr; align-items: start; } }

/* ---------- Parcours ---------- */
.facts { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 0; }
.facts li { display: grid; grid-template-columns: 7rem 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid var(--gold-line); line-height: 1.45; }
.facts b { font-weight: 700; color: var(--gold-ink); }
.quote-intro { font-size: clamp(1.15rem, 4.2vw, 1.45rem); line-height: 1.4; font-weight: 500; letter-spacing: -0.01em; max-width: 40ch; }

/* ---------- Méthode : les 5 canons ---------- */
.canons { list-style: none; margin: 0; padding: 0; counter-reset: c; }
.canons li { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 22px 0; border-top: 1px solid var(--gold-line); }
.canons h3 { font-size: clamp(1.4rem, 5vw, 1.8rem); margin: 0; }
.canons h3 span { color: var(--gold-ink); font-weight: 500; font-size: 0.6em; margin-left: 10px; letter-spacing: 0; }
.canons p { margin: 0; color: var(--ink-soft); }
@media (min-width: 860px) { .canons li { grid-template-columns: 16rem 1fr; gap: 32px; align-items: baseline; } }
.note-band { margin-top: 26px; padding: 18px 22px; border-radius: var(--radius-sm); box-shadow: inset 0 0 0 1px var(--gold-line); font-weight: 500; }

/* ---------- Formules ---------- */
.offers { display: grid; gap: 18px; }
@media (min-width: 860px) { .offers { grid-template-columns: repeat(3, 1fr); align-items: stretch; } }
.offer { display: flex; flex-direction: column; padding: clamp(24px, 5vw, 34px); border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.08), 0 30px 60px -36px rgba(14, 26, 56, 0.3); }
.offer .tag { align-self: flex-start; margin: 0 0 14px; padding: 5px 11px; border-radius: 10px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; box-shadow: inset 0 0 0 1px var(--gold-line); color: var(--gold-ink); }
.offer h3 { margin: 0 0 4px; }
.offer .sub { margin: 0 0 14px; color: var(--gold-ink); font-weight: 600; }
.offer p { color: var(--ink-soft); }
.offer .button { margin-top: auto; }
.offer--featured { background: radial-gradient(120% 80% at 100% 0%, #1d2d5a 0%, var(--navy) 60%); color: #fffefb; box-shadow: 0 30px 60px -30px rgba(9, 18, 42, 0.6); }
.offer--featured p, .offer--featured .includes li { color: rgba(255, 254, 251, 0.82); }
.offer--featured .sub, .offer--featured .includes svg { color: var(--gold-bright); }
.offer--featured .tag { color: var(--gold-bright); box-shadow: inset 0 0 0 1px rgba(229, 213, 191, 0.45); }
.offer--featured .button--gold { background: var(--gold-bright); color: var(--navy); }

/* ---------- Médias : vignettes cliquables ---------- */
.media-grid { display: grid; gap: 16px; }
@media (min-width: 700px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .media-grid { grid-template-columns: repeat(3, 1fr); } }
.media-item { margin: 0; }
.media-item button { all: unset; cursor: pointer; display: block; position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius-sm); overflow: hidden; background: var(--navy) center / cover no-repeat; }
.media-item button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(9, 18, 42, 0.55)); }
.media-item .play { position: absolute; z-index: 1; left: 50%; top: 50%; width: 58px; height: 58px; transform: translate(-50%, -50%); border-radius: 50%; background: rgba(255, 254, 251, 0.92); display: grid; place-items: center; transition: transform 0.25s var(--ease-out); }
.media-item button:hover .play { transform: translate(-50%, -50%) scale(1.07); }
.media-item .play svg { width: 22px; height: 22px; color: var(--navy); margin-left: 3px; }
.media-item button:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
.media-item iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius-sm); display: block; }
.media-item figcaption { margin-top: 10px; font-size: 0.9rem; color: var(--ink-soft); }
.media-item figcaption strong { color: var(--ink); }

/* ---------- Sessions ---------- */
.session { display: grid; gap: 14px; padding: clamp(22px, 5vw, 34px); border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.08); }
.session-meta { display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: 0.92rem; color: var(--ink-soft); }
.session-meta b { color: var(--ink); }
.session .price .amount { font-size: clamp(2.6rem, 10vw, 3.4rem); }
@media (min-width: 860px) { .session { grid-template-columns: 1.4fr 1fr; align-items: center; gap: 40px; } }

/* ---------- Agenda Google ---------- */
.booking { border-radius: var(--radius); overflow: hidden; background: var(--surface); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.08); }
.booking iframe { display: block; width: 100%; height: 700px; border: 0; }
.booking-fallback { padding: clamp(24px, 6vw, 44px); text-align: center; }
.booking-fallback p { margin-left: auto; margin-right: auto; color: var(--ink-soft); }
.booking-fallback .button { width: auto; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; gap: 26px; }
@media (min-width: 860px) { .contact-grid { grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: start; } }
.form { display: grid; gap: 16px; padding: clamp(22px, 5vw, 36px); border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.08); }
.field { display: grid; gap: 7px; }
.field label { font-weight: 600; font-size: 0.92rem; }
.field label small { font-weight: 400; color: var(--ink-soft); }
.field input, .field select, .field textarea {
  font: inherit; color: var(--ink); background: #fff;
  border: 1px solid rgba(14, 26, 56, 0.18); border-radius: 14px;
  padding: 13px 14px; min-height: 50px; width: 100%;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(184, 154, 116, 0.35); }
.field input::placeholder, .field textarea::placeholder { color: #7a8194; }
.form .button { width: 100%; }
.form-note { font-size: 0.82rem; color: var(--ink-soft); margin: 0; }
.coords { list-style: none; margin: 0; padding: 0; }
.coords li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; padding: 16px 0; border-top: 1px solid var(--gold-line); }
.coords svg { width: 22px; height: 22px; color: var(--gold-ink); margin-top: 2px; }
.coords b { display: block; font-weight: 600; }
.coords a { color: var(--ink); }

/* ---------- Pied de page du site ---------- */
.sitefoot { padding: 40px 0 calc(40px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(14, 26, 56, 0.08); font-size: 0.88rem; color: var(--ink-soft); }
.sitefoot .wrap { display: grid; gap: 18px; }
.sitefoot nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.sitefoot a { color: var(--ink); text-decoration: none; }
.sitefoot a:hover { color: var(--gold-ink); }
@media (min-width: 860px) { .sitefoot .wrap { grid-template-columns: 1fr auto; align-items: center; } }

.page-hero-light { padding: 48px 0 8px; }
.page-hero-light h1 { font-size: clamp(2.4rem, 9vw, 4rem); text-transform: none; }
.page-hero-light p { color: var(--ink-soft); font-size: 1.08rem; }

/* Grille du héros du site */
.hero-site .hero-grid { grid-template-areas: "title" "cutout"; }
.hero-site .hero-title { grid-area: title; }
.hero-site .hero-cutout { grid-area: cutout; }
.hero-site > .wrap { padding-bottom: 0; overflow: hidden; }
@media (min-width: 860px) {
  .hero-site .hero-grid { grid-template-columns: 1.05fr 1fr; grid-template-areas: "title cutout"; align-items: end; }
  .hero-site .hero-title { align-self: center; padding-bottom: 40px; }
  .hero-site h1 span, .hero-site h1 em { display: block; }
}
.hero-cutout img { margin-bottom: 0 !important; }
.navlinks a.button, .navlinks a.button:hover { color: #fffefb; }
.hero-actions { flex-wrap: nowrap; }
@media (max-width: 859px) { .hero-actions { flex-wrap: wrap; } }

/* ---------- Pages de contenu ---------- */
.prose { max-width: 760px; }
.prose h1 { font-size: clamp(2.2rem, 8vw, 3.6rem); margin: 6px 0 18px; }
.prose h2 { font-size: clamp(1.6rem, 6vw, 2.2rem); margin: 44px 0 14px; }
.prose p { max-width: 68ch; }
.prose a { color: var(--ink); text-decoration-color: var(--gold); }
.prose .includes li { padding: 12px 0; }
.pull { margin: 28px 0; padding: 4px 0 4px 22px; box-shadow: inset 2px 0 0 var(--gold); font-size: clamp(1.15rem, 4vw, 1.4rem); line-height: 1.4; font-weight: 500; letter-spacing: -0.01em; }
.pull cite { display: block; margin-top: 10px; font-size: 0.85rem; font-style: normal; font-weight: 400; color: var(--ink-soft); }
.article .note-band { margin-top: 36px; font-size: 0.92rem; color: var(--ink-soft); }

/* Bleu marine des boutons sur fond clair : un ton plus lumineux pour ne pas paraître noir */
.button--gold, .button { background-color: #1d2d5a; }
.button--gold:hover, .button:hover { background-color: #263a70; }
.hero .button--gold, .ticket--vip .button--gold, .closing .button--gold, .rsvp-bar .button--gold, .offer--featured .button--gold { background-color: #e5d5bf; }
.hero .button--gold:hover, .closing .button--gold:hover, .offer--featured .button--gold:hover { background-color: #efe3d2; }
.button--ghost-light, .button--ghost-light:hover { background-color: transparent; }

/* ===================== Accueil : couverture de magazine ===================== */
.cover {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 720px;
  display: grid; align-items: end;
  background: radial-gradient(120% 70% at 50% 100%, #efe5d6 0%, #f6f1e8 45%, #f9f9f7 100%);
}
.cover-name {
  position: absolute; z-index: 0; inset: 18px 0 auto; margin: 0;
  display: grid; justify-items: center;
  font-family: var(--display); text-transform: uppercase; font-weight: 700;
  font-size: 22.5vw; line-height: 0.8; letter-spacing: -0.065em;
  color: var(--navy);
}
.cover-portrait {
  position: absolute; z-index: 1; bottom: 0; left: 50%; transform: translateX(-50%);
  height: 76%; width: auto; max-width: none;
  filter: drop-shadow(0 24px 36px rgba(14, 26, 56, 0.22));
}
.cover-text {
  position: relative; z-index: 2;
  margin: 0 var(--gutter) var(--gutter); padding: 20px;
  border-radius: var(--radius);
  background: rgba(249, 249, 247, 0.92);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 24px 48px -28px rgba(14, 26, 56, 0.45);
}
.cover-kicker { margin: 0 0 6px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); max-width: none; }
.cover-promise { margin: 0 0 6px; font-size: 1.6rem; line-height: 1.1; font-weight: 600; letter-spacing: -0.03em; color: var(--navy); max-width: none; }
.cover-promise em { font-style: normal; color: var(--gold-ink); }
.cover-lead { margin: 0 0 16px; color: var(--ink-soft); font-size: 0.98rem; line-height: 1.45; }
.cover-actions { display: grid; gap: 12px; justify-items: center; }
.cover-actions .button { width: 100%; }
.cover-link { font-weight: 600; color: var(--navy); text-underline-offset: 0.3em; text-decoration-color: var(--gold); }
@media (min-width: 860px) {
  .cover { min-height: max(700px, calc(100vh - 76px)); }
  .cover-name { inset: 2vh 0 auto; grid-template-columns: auto auto; column-gap: 0.12em; font-size: min(16.5vw, 19rem); }
  .cover-portrait { height: 90%; }
  .cover-text {
    width: 380px; padding: 26px 28px;
    margin: 0 0 48px max(32px, calc((100vw - var(--wrap)) / 2 + 20px));
  }
  .cover-actions { grid-auto-flow: column; justify-content: start; gap: 20px; }
  .cover-actions .button { width: auto; }
}

/* Manifeste */
.manifesto { padding: clamp(64px, 12vw, 128px) 0 clamp(48px, 8vw, 88px); text-align: center; }
.manifesto p { margin: 0 auto 26px; max-width: 24ch; font-size: clamp(1.75rem, 6.4vw, 3.4rem); line-height: 1.1; font-weight: 600; letter-spacing: -0.035em; color: var(--navy); }
.manifesto em { font-style: normal; color: var(--gold-ink); }
.manifesto-sign { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-soft); text-decoration: none; }
.manifesto-sign::before { content: ""; display: block; width: 40px; height: 1px; margin: 0 auto 16px; background: var(--gold); }

/* Références en grille fixe */
.refgrid { padding: 0 0 72px; }
.refgrid-title { margin: 0 0 22px; text-align: center; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft); }
.refgrid ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: rgba(14, 26, 56, 0.09); border: 1px solid rgba(14, 26, 56, 0.09); border-radius: var(--radius-sm); overflow: hidden; }
.refgrid li { background: var(--bg); display: grid; place-items: center; min-height: 96px; padding: 18px; }
.refgrid a { display: grid; place-items: center; width: 100%; height: 100%; }
.refgrid img { height: 30px; width: auto; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: 0.7; transition: opacity .25s, filter .25s; }
.refgrid a:hover img, .refgrid a:focus-visible img { opacity: 1; filter: none; }
@media (min-width: 860px) { .refgrid ul { grid-template-columns: repeat(5, 1fr); } .refgrid li { min-height: 120px; } }

/* Bande photo de fin */
.photoband { position: relative; isolation: isolate; overflow: hidden; min-height: 560px; display: grid; align-items: end; color: #fffefb; }
.photoband > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 46% 35%; }
.photoband::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(9, 18, 42, 0.05) 25%, rgba(9, 18, 42, 0.88) 100%); }
.photoband-text { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter) clamp(40px, 8vw, 80px); }
.photoband-kicker { margin: 0 0 10px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-bright); }
.photoband h2 { margin: 0 0 24px; color: #fffefb; font-size: clamp(2.3rem, 8vw, 4.4rem); line-height: 1.02; letter-spacing: -0.035em; max-width: 13ch; }
.photoband h2 em { font-style: normal; color: var(--gold-bright); }
.button--sand, .button--sand:hover { background-color: #e5d5bf; color: var(--navy); }
.button--sand:hover { background-color: #efe3d2; }
@media (min-width: 860px) { .photoband { min-height: 78vh; } }
@media (max-width: 859px) {
  .cover { display: block; min-height: 0; }
  .cover-portrait { top: 104px; bottom: auto; height: 470px; }
  .cover-text { margin-top: 500px; }
}
@media (min-width: 860px) {
  .cover-name { font-size: 13.6vw; }
}
@media (min-width: 860px) {
  .cover-portrait { height: calc(100% - 40px); max-height: 1100px; }
  .cover-text { width: 430px; }
  .cover-actions .button, .cover-link { white-space: nowrap; }
}
@media (min-width: 860px) {
  .cover-name { inset: 9vh 0 auto; }
  .cover-portrait { height: calc(100% - 9vh - 0.5 * 13.6vw); }
  .cover-text { width: 410px; }
  .cover-actions { grid-auto-flow: row; justify-items: start; gap: 14px; }
}
@media (min-width: 860px) { .cover-portrait { height: calc(100% - 9vh - 4vw); } }
@media (min-width: 860px) { .cover-portrait { height: calc(100% - 16px); } }
.photoband::before { background: linear-gradient(180deg, rgba(9, 18, 42, 0) 30%, rgba(9, 18, 42, 0.9) 100%), linear-gradient(90deg, rgba(9, 18, 42, 0.75) 0%, rgba(9, 18, 42, 0.2) 55%, rgba(9, 18, 42, 0) 75%); }
.photoband .button { width: auto; display: inline-flex; }
@media (min-width: 860px) { .photoband > img { object-position: 50% 30%; } }

/* Podcast et Instagram, sous la galerie vidéo */
.media-extra { display: grid; gap: 16px; margin-top: 16px; }
@media (min-width: 700px) { .media-extra { grid-template-columns: 1fr 1fr; } }
.media-item--audio button, .media-extra-link {
  all: unset; box-sizing: border-box; cursor: pointer; position: relative; display: grid; align-content: center; gap: 6px;
  min-height: 152px; padding: 24px 96px 24px 28px; border-radius: var(--radius-sm);
  background: var(--navy); color: #fffefb;
}
.media-item--audio button { aspect-ratio: auto; background: var(--navy); }
.media-item--audio button::after { display: none; }
.media-item--audio .play { left: auto; right: 28px; transform: translateY(-50%); }
.media-item--audio button:hover .play { transform: translateY(-50%) scale(1.07); }
.media-extra-link { background: #fff; color: var(--navy); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.12); text-decoration: none; }
.media-extra-link svg { position: absolute; right: 32px; top: 50%; width: 26px; height: 26px; transform: translateY(-50%); color: var(--gold-ink); transition: transform .25s var(--ease-out); }
.media-extra-link:hover svg { transform: translate(4px, -50%); }
.media-extra-link:focus-visible, .media-item--audio button:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
.media-extra-kicker { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-bright); }
.media-extra-link .media-extra-kicker { color: var(--gold-ink); }
.media-extra-title { font-size: 1.15rem; font-weight: 600; letter-spacing: -0.02em; line-height: 1.3; }
.media-item iframe { border-radius: var(--radius-sm); }

/* Accueil : douleur par profil, vidéos repliables */
.stakes-grid li { display: flex; flex-direction: column; }
.stakes-grid li p { flex: 1; }
.stakes-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 600; font-size: 0.92rem; color: var(--navy); text-decoration: none; }
.stakes-link svg { width: 16px; height: 16px; color: var(--gold-ink); transition: transform .25s var(--ease-out); }
.stakes-link:hover svg { transform: translateX(3px); }
.manifesto { border-top: 0; }
.media-more { margin-top: 18px; }
.media-more > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 999px; font-weight: 600; color: var(--navy); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.18); }
.media-more > summary::-webkit-details-marker { display: none; }
.media-more > summary svg { width: 18px; height: 18px; color: var(--gold-ink); transition: transform .25s; }
.media-more[open] > summary svg { transform: rotate(45deg); }
.media-more[open] > summary { margin-bottom: 18px; }
.media-more { text-align: center; }
.media-more > .media-grid, .media-more > .media-extra { text-align: left; }
.expert-more { display: inline-block; margin-top: 18px; }
.refgrid-more { text-align: center; margin: 20px 0 0; }

/* Page presse */
.press-group { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-soft); margin: 44px 0 6px; }
.press-group:first-child { margin-top: 8px; }
.press-list { list-style: none; margin: 0; padding: 0; }
.press-item { display: grid; gap: 6px 24px; padding: 22px 0; border-top: 1px solid var(--gold-line); }
@media (min-width: 860px) { .press-item { grid-template-columns: 15rem 1fr auto; align-items: baseline; } }
.press-meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold-ink); }
.press-meta span + span::before { content: "·"; margin-right: 10px; color: var(--gold); }
@media (min-width: 860px) { .press-meta { flex-direction: column; gap: 2px; } .press-meta span + span::before { display: none; } .press-meta span + span { color: var(--ink-soft); letter-spacing: 0.02em; text-transform: none; font-weight: 500; font-size: 0.88rem; } }
.press-item h3 { margin: 0; font-size: clamp(1.15rem, 3.6vw, 1.45rem); letter-spacing: -0.02em; }
.press-item h3 a { color: var(--navy); text-decoration: none; }
.press-item h3 a:hover { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 0.2em; }
.press-cta { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 0.9rem; color: var(--navy); text-decoration: none; white-space: nowrap; }
.press-cta svg { width: 16px; height: 16px; flex: none; color: var(--gold-ink); }
.press-contact { margin-top: 48px; display: grid; gap: 14px; align-items: center; padding: clamp(24px, 4vw, 36px); border-radius: var(--radius); background: var(--surface); box-shadow: inset 0 0 0 1px var(--gold-line); }
@media (min-width: 860px) { .press-contact { grid-template-columns: 1fr auto; } }
.press-contact h2 { margin: 0 0 6px; font-size: 1.5rem; }
.press-contact p { margin: 0; color: var(--ink-soft); }
.press-contact-links { display: grid; gap: 6px; font-weight: 600; }
.press-contact-links a { color: var(--navy); }

/* Cartes qui se retournent : le parcours */
.expert-head { margin-bottom: 36px; }
.flip-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (min-width: 860px) { .flip-grid { grid-template-columns: repeat(4, 1fr); gap: 16px; } }
.flip { all: unset; box-sizing: border-box; cursor: pointer; display: grid; width: 100%; min-height: 170px; perspective: 900px; border-radius: var(--radius-sm); }
.flip:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
.flip-face {
  grid-area: 1 / 1; display: flex; flex-direction: column; justify-content: space-between; gap: 10px;
  padding: 18px 18px 20px; border-radius: var(--radius-sm);
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
  transition: transform 0.6s var(--ease-out);
}
.flip-front { background: var(--surface); box-shadow: inset 0 0 0 1px var(--gold-line); }
.flip-back { background: var(--navy); color: #fffefb; transform: rotateY(180deg); }
.flip:hover .flip-front, .flip[aria-pressed="true"] .flip-front { transform: rotateY(-180deg); }
.flip:hover .flip-back, .flip[aria-pressed="true"] .flip-back { transform: rotateY(0deg); }
.flip-kicker { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); }
.flip-back .flip-kicker { color: var(--gold-bright); }
.flip-title { font-size: clamp(1.25rem, 4.2vw, 1.6rem); font-weight: 600; letter-spacing: -0.03em; line-height: 1.1; color: var(--navy); }
.flip-hint { align-self: flex-end; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: 1rem; line-height: 1; color: var(--gold-ink); box-shadow: inset 0 0 0 1px var(--gold-line); }
.flip-text { font-size: 0.92rem; line-height: 1.45; color: var(--on-navy-soft, #c9cfdf); }
@media (prefers-reduced-motion: reduce) { .flip-face { transition: none; } }

/* Tous les témoignages, repliables */
.quotes-more { margin-top: 26px; text-align: center; }
.quotes-more > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 999px; font-weight: 600; color: var(--navy); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.18); }
.quotes-more > summary::-webkit-details-marker { display: none; }
.quotes-more > summary svg { width: 18px; height: 18px; color: var(--gold-ink); transition: transform .25s; }
.quotes-more[open] > summary svg { transform: rotate(45deg); }
.quotes-all { text-align: left; margin-top: 24px; columns: 1; column-gap: 20px; }
@media (min-width: 700px) { .quotes-all { columns: 2; } }
@media (min-width: 1000px) { .quotes-all { columns: 3; } }
.quotes-all .quote { break-inside: avoid; margin: 0 0 20px; padding: 22px; border-radius: var(--radius-sm); background: var(--surface); box-shadow: inset 0 0 0 1px var(--gold-line); }
.quotes-all blockquote { font-size: 0.96rem; line-height: 1.55; font-weight: 400; letter-spacing: 0; }

/* Ce qui change : avant / après */
.change-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
@media (min-width: 860px) { .change-list { grid-template-columns: 1fr 1fr; gap: 16px; } }
.change-list li { display: grid; border-radius: var(--radius-sm); overflow: hidden; box-shadow: inset 0 0 0 1px var(--gold-line); background: var(--surface); }
.change-list p { margin: 0; padding: 16px 20px; line-height: 1.45; }
.change-list span { display: block; margin-bottom: 4px; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.change-before { color: var(--ink-soft); }
.change-before span { color: var(--ink-soft); }
.change-after { background: var(--navy); color: #fffefb; font-weight: 500; }
.change-after span { color: var(--gold-bright); }

/* Texte justifié (paragraphes longs uniquement) */
main p, main blockquote, .faq p { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
main .center p, main .section-head.center p, main .closing p, main .photoband p, main .refgrid p, main .media-item figcaption,
main .cover-kicker, main .smallcaps, main .press-meta, main .photoband-kicker, main .refgrid-more, main .change-list p,
main .stakes-grid p, main .flip-text, main .quotes p, main .quote--lead blockquote, main .tickets-note, main .seats, main .when { text-align: left; }
main .closing p, main .refgrid-more, main .seats, main .tickets-note, main .reply-intro p { text-align: center; }
main .refgrid p.refgrid-more { text-align: center; }

/* Page « Laisser un témoignage » */
.consent { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; font-size: 0.9rem; line-height: 1.45; color: var(--ink-soft); }
.consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--navy); }
.coach-tips { padding: clamp(22px, 5vw, 32px); border-radius: var(--radius); background: var(--navy); color: #fffefb; }
.coach-tips h2 { color: #fffefb; font-size: 1.4rem; margin: 0 0 8px; }
.coach-tips > p { color: var(--on-navy-soft, #c9cfdf); margin: 0 0 16px; text-align: left; }
.coach-tips ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.coach-tips li { display: grid; gap: 2px; padding-top: 12px; border-top: 1px solid rgba(229, 213, 191, 0.25); }
.coach-tips strong { color: var(--gold-bright); font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; }
.coach-tips span { color: #e9ecf3; }
@media (min-width: 860px) { .coach-tips { position: sticky; top: 100px; } }

/* Photo à côté du nom, dans les témoignages */
.quote figcaption.has-photo { display: flex; align-items: center; gap: 12px; }
.quote-photo { width: 48px; height: 48px; flex: none; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--gold-line); }
.testi-cta { margin: 22px 0 0; text-align: center; }
[hidden] { display: none !important; }
html[lang="fr"] main .quotes-all blockquote, html[lang="fr"] main .page-hero-light p { text-align: left; }
@media (max-width: 859px) { .coach-tips { order: -1; } }

/* Portrait détouré qui apparaît au survol d'un témoignage */
.quote { position: relative; }
.quote.has-portrait:hover, .quote.has-portrait:focus-within, .quote.has-portrait:focus { z-index: 8; outline: none; }
.quote-portrait {
  position: absolute; z-index: 8; right: 10px; bottom: calc(100% - 46px);
  height: 250px; width: auto; max-width: none; pointer-events: none;
  opacity: 0; transform: translateY(18px) scale(0.94); transform-origin: 50% 100%;
  transition: opacity 0.35s ease, transform 0.55s var(--ease-out);
  filter: drop-shadow(0 22px 28px rgba(14, 26, 56, 0.28));
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}
.quote.has-portrait::after {
  content: ""; position: absolute; z-index: 7; right: -10px; bottom: calc(100% - 80px); width: 270px; height: 270px; pointer-events: none;
  background: radial-gradient(closest-side, rgba(229, 213, 191, 0.9), rgba(229, 213, 191, 0) 72%);
  opacity: 0; transform: scale(0.8); transition: opacity 0.35s ease, transform 0.55s var(--ease-out);
}
.quote.has-portrait:hover .quote-portrait, .quote.has-portrait:focus .quote-portrait, .quote.has-portrait:focus-within .quote-portrait { opacity: 1; transform: none; }
.quote.has-portrait:hover::after, .quote.has-portrait:focus::after, .quote.has-portrait:focus-within::after { opacity: 1; transform: none; }
.quote.has-portrait .quote-photo { transition: transform 0.35s var(--ease-out), box-shadow 0.35s; }
.quote.has-portrait:hover .quote-photo { transform: scale(1.08); box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--gold); }
@media (max-width: 699px) { .quote-portrait { height: 200px; right: 0; } .quote.has-portrait::after { width: 210px; height: 210px; } }
@media (prefers-reduced-motion: reduce) { .quote-portrait, .quote.has-portrait::after { transition: opacity 0.2s; transform: none; } }
.quote-portrait--round {
  height: 210px; width: 210px; border-radius: 50%; object-fit: cover; bottom: calc(100% - 30px);
  -webkit-mask-image: none; mask-image: none;
  box-shadow: 0 0 0 5px var(--surface), 0 0 0 6px var(--gold), 0 24px 40px -18px rgba(14, 26, 56, 0.45);
  filter: none;
}
@media (max-width: 699px) { .quote-portrait--round { height: 170px; width: 170px; } }

/* Médaillon : le portrait détouré sort d'un disque sable */
.quote-portrait { right: 122px; bottom: calc(100% - 40px); height: 240px; transform: translate(50%, 18px) scale(0.94); }
.quote.has-portrait:hover .quote-portrait, .quote.has-portrait:focus .quote-portrait, .quote.has-portrait:focus-within .quote-portrait { transform: translate(50%, 0); }
.quote.has-portrait::after {
  right: 22px; bottom: calc(100% - 40px); width: 200px; height: 200px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f3e9db 0%, #e5d5bf 55%, #d6c09f 100%);
  box-shadow: 0 0 0 5px var(--surface), 0 0 0 6px var(--gold), 0 26px 44px -20px rgba(14, 26, 56, 0.5);
  transform: translateY(18px) scale(0.9);
}
.quote-portrait {
  -webkit-mask-image: radial-gradient(circle 100px at 50% calc(100% - 100px), #000 99%, transparent 100%), linear-gradient(#000, #000);
  -webkit-mask-size: 100% 100%, 100% calc(100% - 100px);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-composite: source-over;
  mask-image: radial-gradient(circle 100px at 50% calc(100% - 100px), #000 99%, transparent 100%), linear-gradient(#000, #000);
  mask-size: 100% 100%, 100% calc(100% - 100px);
  mask-repeat: no-repeat;
  mask-composite: add;
  filter: drop-shadow(0 10px 14px rgba(14, 26, 56, 0.22));
}
.quote.has-round::after { display: none; }
.quote-portrait--round { right: 122px; bottom: calc(100% - 40px); -webkit-mask-image: none; mask-image: none; }
@media (max-width: 699px) {
  .quote-portrait { height: 190px; right: 92px; }
  .quote.has-portrait::after { width: 150px; height: 150px; right: 17px; }
  .quote-portrait:not(.quote-portrait--round) {
    -webkit-mask-image: radial-gradient(circle 75px at 50% calc(100% - 75px), #000 99%, transparent 100%), linear-gradient(#000, #000);
    -webkit-mask-size: 100% 100%, 100% calc(100% - 75px);
    mask-image: radial-gradient(circle 75px at 50% calc(100% - 75px), #000 99%, transparent 100%), linear-gradient(#000, #000);
    mask-size: 100% 100%, 100% calc(100% - 75px);
  }
  .quote-portrait--round { right: 92px; }
}

/* Bouton « À votre tour de témoigner » */
.testi-cta { margin: 34px 0 0; display: flex; justify-content: center; }
.testi-btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; gap: 18px;
  padding: 12px 12px 12px 14px; border-radius: 999px; text-decoration: none;
  background: var(--navy); color: #fffefb;
  box-shadow: 0 0 0 1px rgba(229, 213, 191, 0.35) inset, 0 22px 40px -18px rgba(14, 26, 56, 0.6);
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s;
}
.testi-btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(110deg, transparent 30%, rgba(229, 213, 191, 0.28) 48%, transparent 66%);
  transform: translateX(-120%); transition: transform 0.9s var(--ease-out);
}
.testi-btn:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px rgba(229, 213, 191, 0.6) inset, 0 30px 50px -18px rgba(14, 26, 56, 0.7); }
.testi-btn:hover::before { transform: translateX(120%); }
.testi-btn:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 4px; }
.testi-btn-faces { display: flex; align-items: center; }
.testi-btn-faces img, .testi-btn-plus {
  width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none;
  box-shadow: 0 0 0 3px var(--navy); margin-left: -12px; transition: margin 0.35s var(--ease-out);
}
.testi-btn-faces img:first-child { margin-left: 0; }
.testi-btn:hover .testi-btn-faces img, .testi-btn:hover .testi-btn-plus { margin-left: -6px; }
.testi-btn:hover .testi-btn-faces img:first-child { margin-left: 0; }
.testi-btn-plus { display: grid; place-items: center; background: var(--gold-bright); color: var(--navy); font-weight: 700; font-size: 1.2rem; }
.testi-btn-text { display: grid; line-height: 1.15; font-weight: 600; font-size: 1.12rem; letter-spacing: -0.01em; text-align: left; }
.testi-btn-text small { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 4px; }
.testi-btn-arrow { width: 48px; height: 48px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--gold-bright); color: var(--navy); transition: transform 0.35s var(--ease-out); }
.testi-btn-arrow svg { width: 20px; height: 20px; }
.testi-btn:hover .testi-btn-arrow { transform: translateX(4px) rotate(-8deg); }
@media (max-width: 520px) {
  .testi-btn { gap: 12px; padding: 10px 10px 10px 12px; }
  .testi-btn-faces img:nth-child(n+3) { display: none; }
  .testi-btn-text { font-size: 0.98rem; }
  .testi-btn-arrow { width: 42px; height: 42px; }
}

/* Témoignages qui apparaissent au défilement */
.testimonials .quote.reveal { opacity: 0; transform: translateY(34px); transition: opacity 0.8s ease, transform 0.9s var(--ease-out); }
.testimonials .quote.reveal.quote--lead { transform: translateY(24px); }
.testimonials .quote.reveal.is-shown { opacity: 1; transform: none; }

/* Témoignages avec photo : visibles d'emblée */
.quotes-photos { margin-top: 64px; }
.quotes-photos .quote { margin-bottom: 64px; }
.quotes-photos .quote-photo { width: 56px; height: 56px; }
.quotes-photos .quote blockquote { font-size: 1rem; }
.testimonials .quotes-more { margin-top: 8px; }
.quotes-all.quotes-photos { columns: auto; display: grid; grid-template-columns: 1fr; gap: 72px 28px; align-items: start; margin-top: 72px; }
.quotes-all.quotes-photos .quote { margin: 0; }
@media (min-width: 860px) { .quotes-all.quotes-photos { grid-template-columns: 1fr 1fr; } }
.quotes-all.quotes-photos[hidden] { display: none !important; }
.quotes-photos + .quotes-more, .quotes-photos ~ .quotes-more { margin-top: 48px; }

/* Petite fenêtre de témoignage au défilement */
.toast-temoignage {
  position: fixed; z-index: 60; left: 20px; bottom: 20px; width: min(380px, calc(100vw - 40px));
  display: flex; align-items: flex-start; border-radius: var(--radius-sm);
  background: rgba(255, 254, 251, 0.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 0 0 1px var(--gold-line), 0 24px 50px -22px rgba(14, 26, 56, 0.45);
  opacity: 0; transform: translateY(24px) scale(0.98); pointer-events: none;
  transition: opacity 0.45s ease, transform 0.6s var(--ease-out);
}
.toast-temoignage.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.toast-lien { display: flex; gap: 14px; align-items: flex-start; padding: 14px 40px 14px 14px; color: inherit; text-decoration: none; flex: 1; }
.toast-lien img { width: 52px; height: 52px; flex: none; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--gold); }
.toast-corps { display: grid; gap: 6px; }
.toast-texte { font-size: 0.92rem; line-height: 1.4; color: var(--navy); font-weight: 500; }
.toast-nom { font-size: 0.78rem; color: var(--ink-soft); }
.toast-nom strong { color: var(--navy); font-weight: 600; }
.toast-fermer { all: unset; cursor: pointer; position: absolute; top: 8px; right: 10px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; font-size: 1.1rem; color: var(--ink-soft); }
.toast-fermer:hover { background: rgba(14, 26, 56, 0.06); color: var(--navy); }
.toast-fermer:focus-visible, .toast-lien:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 2px; }
@media (max-width: 640px) {
  .toast-temoignage { left: 12px; right: 12px; bottom: 12px; width: auto; }
  .toast-texte { font-size: 0.86rem; }
}
@media (prefers-reduced-motion: reduce) { .toast-temoignage { transition: opacity 0.3s; transform: none; } }

/* Carrousel des témoignages (sous les 3 de la vitrine) */
.rotator { max-width: 820px; margin: 44px auto 0; }
.rotator-stage { position: relative; transition: height 0.5s var(--ease-out); }
.rotator-stage > .quote {
  position: absolute; top: 0; left: 0; right: 0; margin: 0;
  padding: clamp(22px, 4vw, 34px) clamp(22px, 4vw, 38px);
  border-radius: var(--radius); background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--gold-line), 0 24px 50px -36px rgba(14, 26, 56, 0.45);
  opacity: 0; visibility: hidden; transform: translateX(28px);
  transition: opacity 0.6s ease, transform 0.7s var(--ease-out), visibility 0s linear 0.6s;
}
.rotator-stage > .quote.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity 0.6s ease 0.1s, transform 0.7s var(--ease-out) 0.1s, visibility 0s; }
html[lang="fr"] main .rotator blockquote { font-size: clamp(1rem, 2.2vw, 1.12rem); line-height: 1.6; text-align: left; color: var(--navy); }
.rotator .quote figcaption { margin-top: 18px; }
.rotator .quote-photo { width: 52px; height: 52px; }
.rotator-nav { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.rotator-btn { all: unset; cursor: pointer; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: var(--navy); box-shadow: inset 0 0 0 1px rgba(14, 26, 56, 0.18); transition: background 0.25s, color 0.25s; }
.rotator-btn:hover { background: var(--navy); color: #fffefb; }
.rotator-btn:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
.rotator-btn svg { width: 18px; height: 18px; }
.rotator-btn[data-dir="-1"] svg { transform: scaleX(-1); }
.rotator-meta { display: grid; gap: 8px; justify-items: center; min-width: 120px; }
.rotator-count { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; color: var(--ink-soft); }
.rotator-bar { display: block; width: 120px; height: 2px; border-radius: 2px; background: rgba(14, 26, 56, 0.12); overflow: hidden; }
.rotator-bar i { display: block; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; }
@media (prefers-reduced-motion: reduce) { .rotator-stage > .quote { transform: none; } }
.testi-palmares { max-width: 62ch; margin: 22px 0 0; color: var(--ink-soft); } .testi-palmares a { color: var(--navy); font-weight: 600; } .quote figcaption a { color: var(--gold-ink); }

/* ===== Sommaire de l'accueil ===== */
.chapters {
  position: sticky; top: 68px; z-index: 19; height: 0; overflow: visible; pointer-events: none;
}
.chapters-track {
  display: flex; gap: 4px; align-items: center; justify-content: center;
  margin: 0 auto; width: max-content; max-width: calc(100% - 32px);
  padding: 6px; border-radius: 999px;
  background: rgba(255, 254, 251, 0.88); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: 0 0 0 1px var(--gold-line), 0 18px 40px -22px rgba(14, 26, 56, 0.35);
  overflow-x: auto; scrollbar-width: none;
  opacity: 0; transform: translateY(-14px); transition: opacity 0.45s ease, transform 0.6s var(--ease-out);
  translate: 0 12px;
}
.chapters-track::-webkit-scrollbar { display: none; }
.chapters.is-visible .chapters-track { opacity: 1; transform: none; pointer-events: auto; }
.chapters a {
  flex: none; display: inline-flex; align-items: baseline; gap: 7px;
  padding: 9px 15px; border-radius: 999px; white-space: nowrap; text-decoration: none;
  font-size: 0.86rem; font-weight: 500; letter-spacing: -0.005em; color: var(--ink-soft);
  transition: color 0.25s, background 0.35s var(--ease-out);
}
.chapters a span { font-size: 0.66rem; font-weight: 600; letter-spacing: 0.1em; color: var(--gold); transition: color 0.25s; }
.chapters a:hover { color: var(--navy); background: rgba(229, 213, 191, 0.35); }
.chapters a.is-active { color: #fffefb; background: var(--navy); }
.chapters a.is-active span { color: var(--gold-bright); }
.chapters a:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 2px; }
@media (max-width: 859px) {
  .chapters { top: 68px; }
  .chapters-track { justify-content: flex-start; width: auto; max-width: none; margin: 0 12px; }
  .chapters a { padding: 8px 13px; font-size: 0.82rem; }
}
@media (prefers-reduced-motion: reduce) { .chapters-track { transition: opacity 0.3s; transform: none; } }

/* Sommaire, version fine et translucide */
.chapters-track {
  width: 100%; max-width: none; margin: 0; translate: none; justify-content: center; gap: 0;
  padding: 0 16px; border-radius: 0; height: 40px; align-items: stretch;
  background: rgba(249, 249, 247, 0.55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: none; border-bottom: 1px solid rgba(14, 26, 56, 0.06);
  transform: translateY(-6px);
}
.chapters a {
  position: relative; padding: 0 14px; border-radius: 0; align-items: center;
  font-size: 0.74rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(74, 82, 104, 0.75); background: none;
}
.chapters a::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 1px;
  background: var(--gold); transform: scaleX(0); transition: transform 0.45s var(--ease-out);
}
.chapters a:hover { background: none; color: var(--navy); }
.chapters a.is-active { background: none; color: var(--navy); }
.chapters a.is-active::after { transform: scaleX(1); }
@media (max-width: 859px) {
  .chapters-track { justify-content: flex-start; margin: 0; padding: 0 6px; height: 38px; }
  .chapters a { padding: 0 11px; font-size: 0.7rem; }
  .chapters a::after { left: 11px; right: 11px; }
}

/* Carrousel : portrait détouré en grand, texte à côté (page de magazine) */
.rotator { max-width: 900px; }
.rotator-stage > .quote.quote--portrait {
  padding: 0; overflow: hidden;
  display: grid; grid-template-columns: minmax(210px, 36%) 1fr; grid-template-rows: 1fr auto;
}
.quote--portrait .quote-figure {
  grid-row: 1 / 3; position: relative; min-height: 340px; display: flex; align-items: flex-end; justify-content: center;
  background: radial-gradient(120% 90% at 50% 100%, #efe3d2 0%, #e9dcc8 45%, #f4ece0 100%);
}
.quote--portrait .quote-figure::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 1px; background: var(--gold-line); }
.quote--portrait .quote-figure img {
  display: block; width: 100%; height: 100%; max-height: 380px; object-fit: contain; object-position: 50% 100%;
  filter: drop-shadow(0 16px 22px rgba(14, 26, 56, 0.18));
}
.quote--portrait .quote-figure.is-photo img { position: absolute; inset: 0; max-height: none; object-fit: cover; object-position: 50% 30%; filter: none; }
.rotator .quote--portrait blockquote { align-self: center; padding: clamp(26px, 4vw, 40px) clamp(24px, 4vw, 42px) 0; margin: 0; }
.rotator .quote--portrait figcaption { padding: 18px clamp(24px, 4vw, 42px) clamp(24px, 4vw, 36px); margin: 0; }
.rotator .quote--portrait .quote-photo { display: none; }
.rotator .quote--portrait figcaption.has-photo { display: block; }
.rotator .quote--portrait figcaption strong { font-size: 1rem; }
@media (max-width: 699px) {
  .rotator-stage > .quote.quote--portrait { grid-template-columns: 1fr; grid-template-rows: auto auto auto; }
  .quote--portrait .quote-figure { grid-row: auto; min-height: 230px; }
  .quote--portrait .quote-figure img { max-height: 250px; }
  .quote--portrait .quote-figure::after { top: auto; left: 0; width: auto; height: 1px; }
}
.quote--portrait .quote-figure img { position: absolute; inset: 0; max-height: none; object-fit: cover; object-position: 50% 12%; }
@media (max-width: 699px) { .quote--portrait .quote-figure { min-height: 260px; } .quote--portrait .quote-figure img { max-height: none; } }

/* Pancartes d'accomplissements : grille de 9 */
@media (min-width: 860px) { .flip-grid.flip-grid--9 { grid-template-columns: repeat(3, 1fr); } }
.flip-grid--9 .flip { min-height: 190px; }
.flip-grid--9 .flip-text { font-size: 0.9rem; }

/* « Ce qui change » : l'appui de la recherche */
.change-list .change-source {
  margin: 0; padding: 12px 20px 16px; font-size: 0.8rem; line-height: 1.45; font-weight: 400;
  color: var(--on-navy-soft, #c9cfdf); background: var(--navy); border-top: 1px solid rgba(229, 213, 191, 0.18);
}
.change-list .change-source span { display: block; margin-bottom: 4px; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-bright); }
.change-list .change-source a { color: #fffefb; text-decoration: underline; text-decoration-color: rgba(229, 213, 191, 0.5); text-underline-offset: 0.2em; }
.change-list .change-source a:hover { text-decoration-color: var(--gold-bright); }
.change-list li { align-content: start; }
.change-list li { display: flex; flex-direction: column; } .change-list .change-source { flex: 1; }
.murmure { bottom: calc(20px + env(safe-area-inset-bottom)); } @media (min-width: 1180px) { .murmure { bottom: 24px; left: 24px; } }
/* Photos de faible définition : affichées à leur taille réelle, posées en bas, jamais étirées */
.quote--portrait .quote-figure.is-lowres img { position: static; inset: auto; width: auto; max-width: 100%; height: auto; max-height: 440px; object-fit: contain; margin-top: auto; }

/* ===== Carrousel stable : même hauteur pour toutes les cartes, textes longs repliés ===== */
.rotator-stage > .quote { height: 100%; box-sizing: border-box; }
.rotator-stage.is-measuring > .quote { height: auto !important; }
.rotator-stage > .quote:not(.quote--portrait) { display: flex; flex-direction: column; justify-content: center; }
.rotator .quote blockquote {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 7; line-clamp: 7; overflow: hidden;
}
.rotator .quote.is-open blockquote { display: block; -webkit-line-clamp: unset; line-clamp: none; overflow: visible; }
.rotator .quote.is-open { height: auto; }
.rotator-more {
  all: unset; cursor: pointer; justify-self: start; align-self: flex-start;
  margin: 10px clamp(24px, 4vw, 42px) 0; font-size: 0.82rem; font-weight: 600; color: var(--gold-ink);
  text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 0.25em;
}
.rotator .quote:not(.quote--portrait) .rotator-more { margin-left: 0; margin-right: 0; }
.rotator-more[hidden] { display: none; }
.rotator-more:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; border-radius: 4px; }
.rotator .quote--portrait { grid-template-rows: 1fr auto auto; }
.rotator .quote--portrait .quote-figure { grid-row: 1 / 4; }
.rotator .quote--portrait blockquote { align-self: end; }
.rotator .quote--portrait figcaption { align-self: start; }
.rotator-stage { transition: height 0.45s var(--ease-out); }
@media (max-width: 699px) {
  .rotator .quote blockquote { -webkit-line-clamp: 6; line-clamp: 6; font-size: 0.98rem; }
  .rotator .quote--portrait { grid-template-rows: auto 1fr auto auto; }
  .rotator .quote--portrait .quote-figure { grid-row: auto; min-height: 210px; height: 210px; }
  .quote--portrait .quote-figure.is-lowres img { max-height: 210px; }
  .rotator .quote--portrait blockquote { align-self: start; padding-top: 22px; }
}

/* Cartes texte du carrousel : citation de magazine */
.rotator-stage > .quote:not(.quote--portrait) { padding: clamp(28px, 5vw, 56px) clamp(24px, 7vw, 84px); align-items: center; text-align: center; }
.rotator-stage > .quote:not(.quote--portrait)::before {
  content: "“"; display: block; font-family: var(--display); font-weight: 700; font-size: 4.4rem; line-height: 0.6; height: 0.5em; color: var(--gold); margin-bottom: 8px;
}
html[lang="fr"] main .rotator .quote:not(.quote--portrait) blockquote { text-align: center; font-size: clamp(1.08rem, 2.1vw, 1.32rem); line-height: 1.55; font-weight: 500; letter-spacing: -0.01em; max-width: 46ch; }
.rotator .quote:not(.quote--portrait) .rotator-more { align-self: center; }
.rotator .quote:not(.quote--portrait) figcaption { text-align: center; }
@media (max-width: 699px) { html[lang="fr"] main .rotator .quote:not(.quote--portrait) blockquote { font-size: 1.05rem; } }
.rotator-stage > .quote:not(.quote--portrait)::before { content: none; display: none; }
@media (max-width: 699px) { .rotator .quote:not(.quote--portrait) blockquote { -webkit-line-clamp: 11; line-clamp: 11; } } @media (min-width: 700px) { .rotator .quote:not(.quote--portrait) blockquote { -webkit-line-clamp: 8; line-clamp: 8; } }
@media (max-width: 699px) { .booking iframe { height: 940px; } }

/* Conférence du 27 octobre : étiquette dans la couverture + bandeau après les témoignages */
.cover-event { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; padding: 10px 14px 10px 12px; border-radius: 18px; background: var(--navy); color: #fffefb; text-decoration: none; box-shadow: 0 14px 28px -18px rgba(14, 26, 56, 0.8); transition: background .25s, transform .25s var(--ease-out); }
.cover-event:hover { background: #1d2d5a; transform: translateY(-1px); }
.cover-event > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; font-size: 0.78rem; line-height: 1.3; color: var(--on-navy-soft); }
.cover-event strong { font-size: 0.86rem; font-weight: 600; color: #fffefb; }
.cover-event svg { width: 18px; height: 18px; flex: none; margin-left: auto; color: var(--gold-bright); }
.cover-event-dot { position: relative; width: 9px; height: 9px; flex: none; border-radius: 50%; background: #e5d5bf; }
.cover-event-dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 1px solid #e5d5bf; opacity: 0; animation: event-pulse 2.4s var(--ease-out) infinite; }
@keyframes event-pulse { 0% { transform: scale(0.4); opacity: 0.9; } 100% { transform: scale(1.4); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cover-event-dot::after { animation: none; } }

.event-cta { padding: clamp(24px, 5vw, 56px) 0; }
.event-card { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: 22px; padding: clamp(26px, 5vw, 48px); border-radius: var(--radius); background: var(--navy); color: #fffefb; box-shadow: 0 40px 80px -48px rgba(14, 26, 56, 0.7); }
.event-card::before { content: ""; position: absolute; z-index: -1; width: 520px; height: 520px; right: -170px; top: -150px; background: var(--loops) center / contain no-repeat; opacity: 0.22; }
.event-date { display: inline-grid; justify-items: center; align-content: center; width: 112px; padding: 14px 0 12px; margin: 0; border-radius: var(--radius-sm); background: #fffefb; color: var(--navy); line-height: 1; }
.event-date span { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-ink); }
.event-date strong { margin: 4px 0 2px; font-size: 3.2rem; font-weight: 600; letter-spacing: -0.04em; }
.event-date small { margin-top: 8px; padding: 4px 10px; border-radius: 999px; background: var(--navy); color: #fffefb; font-size: 0.75rem; font-weight: 600; }
.event-kicker { margin: 0 0 10px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-bright); }
.event-card h2 { margin: 0 0 14px; color: #fffefb; font-size: clamp(1.9rem, 5.4vw, 3rem); line-height: 1.04; letter-spacing: -0.035em; max-width: 16ch; }
.event-card h2 em { font-style: normal; color: var(--gold-bright); }
.event-body p { margin: 0 0 12px; max-width: 46ch; color: var(--on-navy-soft); }
html[lang="fr"] main .event-body p { text-align: left; }
.event-body .event-meta { margin: 0; font-size: 0.9rem; color: #fffefb; }
.event-meta strong { color: var(--gold-bright); font-weight: 600; }
.event-actions { display: grid; gap: 14px; justify-items: start; align-content: center; }
.event-actions .button { width: auto; display: inline-flex; }
.event-link { font-weight: 600; color: #fffefb; text-underline-offset: 0.3em; text-decoration-color: var(--gold-bright); }
.event-price { margin: 0; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-bright); }
@media (min-width: 900px) {
  .event-card { grid-template-columns: auto 1fr auto; align-items: center; gap: 40px; }
  .event-actions { justify-items: center; text-align: center; }
}

/* Bouton flottant de la conférence : suit le défilement */
.event-float { position: fixed; z-index: 10; left: 16px; right: 16px; bottom: calc(14px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 18px; border-radius: 999px; background: rgba(14, 26, 56, 0.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fffefb; text-decoration: none; box-shadow: 0 20px 40px -18px rgba(9, 18, 42, 0.7); opacity: 0; transform: translateY(24px); pointer-events: none; transition: opacity 0.4s ease, transform 0.5s var(--ease-out); }
.event-float.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.event-float-txt { display: grid; gap: 1px; min-width: 0; line-height: 1.25; }
.event-float-txt strong { font-size: 0.86rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-float-txt small { font-size: 0.74rem; color: var(--on-navy-soft); }
.event-float-btn { margin-left: auto; flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border-radius: 999px; background: #e5d5bf; color: var(--navy); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; transition: background .25s; }
.event-float-btn svg { width: 16px; height: 16px; }
.event-float:hover .event-float-btn { background: #efe3d2; }
.event-float:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
body.has-event-float .murmure { bottom: calc(86px + env(safe-area-inset-bottom)); }
@media (min-width: 760px) {
  .event-float { left: auto; right: 24px; bottom: 24px; }
  body.has-event-float .murmure { bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) { .event-float { transition: opacity 0.3s; transform: none; } }
@media (max-width: 380px) { .event-float-btn { padding: 11px 13px; letter-spacing: 0.04em; } }

/* Cartes du parcours : toutes de la même taille (lignes égales, carte qui remplit sa case) */
.flip-grid { grid-auto-rows: 1fr; }
.flip-grid > li { display: grid; }
.flip-grid .flip { height: 100%; }

/* Sommaire : bandeau marine, plus contrasté */
.chapters-track {
  background: rgba(14, 26, 56, 0.94); -webkit-backdrop-filter: blur(12px) saturate(1.1); backdrop-filter: blur(12px) saturate(1.1);
  border-bottom: 1px solid rgba(229, 213, 191, 0.28);
  box-shadow: 0 14px 30px -22px rgba(9, 18, 42, 0.6);
}
.chapters a { color: rgba(255, 254, 251, 0.66); font-weight: 500; }
.chapters a:hover { color: #fffefb; }
.chapters a.is-active { color: #e5d5bf; font-weight: 600; }
.chapters a::after { height: 2px; bottom: 0; background: #e5d5bf; border-radius: 2px 2px 0 0; }
.chapters a:focus-visible { outline-color: #e5d5bf; outline-offset: -4px; }
@media (max-width: 859px) {
  .flip-grid--9 { grid-auto-rows: 232px; gap: 10px; }
  .flip-grid--9 .flip { min-height: 0; }
  .flip-grid--9 .flip-face { padding: 16px 14px 16px; gap: 8px; }
  .flip-grid--9 .flip-back { justify-content: flex-start; }
  .flip-grid--9 .flip-text { font-size: 0.8rem; line-height: 1.38; hyphens: auto; -webkit-hyphens: auto; }
}
@media (max-width: 859px) { .stakes-grid, .change-list, .offers { grid-auto-rows: 1fr; } .stakes-grid > *, .change-list > li, .offers > * { height: 100%; box-sizing: border-box; } }

/* Bouton flottant : version plus incitative */
.event-float { padding: 9px 9px 9px 20px; gap: 14px; background: var(--navy); box-shadow: 0 0 0 1px rgba(229, 213, 191, 0.35), 0 24px 48px -16px rgba(9, 18, 42, 0.75); transform: translateY(40px) scale(0.96); transition: opacity 0.4s ease, transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1); }
.event-float.is-visible { transform: none; }
.event-float::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; box-shadow: 0 0 0 0 rgba(217, 185, 122, 0.55); animation: event-ring 4s ease-out infinite; pointer-events: none; }
@keyframes event-ring { 0%, 55% { box-shadow: 0 0 0 0 rgba(217, 185, 122, 0.55); } 85%, 100% { box-shadow: 0 0 0 12px rgba(217, 185, 122, 0); } }
.event-float-txt strong { font-size: 0.92rem; }
.event-float-btn { position: relative; overflow: hidden; padding: 14px 20px; gap: 9px; font-size: 0.86rem; letter-spacing: 0.05em; color: var(--navy); background: linear-gradient(135deg, #f3e6cc 0%, #e2c88c 55%, #d2ad66 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6), 0 8px 18px -8px rgba(210, 173, 102, 0.9); }
.event-float-btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 45%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.75), transparent); transform: skewX(-20deg); animation: event-shine 4s ease-in-out infinite; }
@keyframes event-shine { 0%, 60% { left: -60%; } 85%, 100% { left: 130%; } }
.event-float-btn svg { width: 17px; height: 17px; transition: transform 0.3s var(--ease-out); }
.event-float:hover .event-float-btn { background: linear-gradient(135deg, #f7ecd8 0%, #e8d09a 55%, #d8b572 100%); }
.event-float:hover .event-float-btn svg { transform: translateX(4px); }
@media (max-width: 420px) {
  .event-float { padding-left: 16px; gap: 10px; }
  .event-float-plus { display: none; }
  .event-float-btn { padding: 14px 17px; }
}
@media (min-width: 760px) { .event-float { right: 28px; bottom: 28px; } .event-float-txt strong { font-size: 0.95rem; } }
@media (prefers-reduced-motion: reduce) { .event-float::before, .event-float-btn::after { animation: none; } .event-float { transition: opacity 0.3s; } }
.event-float-plus { margin-left: -9px; }

/* Carrousel : navigation au-dessus (entre la vitrine et le carrousel), texte centré à côté du portrait */
.rotator { margin-top: 36px; }
.rotator-nav { margin: 0 0 18px; }
@media (min-width: 700px) {
  .rotator-stage > .quote.quote--portrait { grid-template-rows: 1fr auto auto auto 1fr; }
  .rotator .quote--portrait .quote-figure { grid-row: 1 / -1; }
  .rotator .quote--portrait blockquote { grid-row: 2; align-self: end; }
  .rotator .quote--portrait .rotator-more { grid-row: 3; }
  .rotator .quote--portrait figcaption { grid-row: 4; align-self: start; }
}
@media (min-width: 700px) { .rotator-stage.is-measuring > .quote.quote--portrait { grid-template-rows: auto auto auto auto auto; } }
@media (min-width: 700px) { .rotator-stage.is-measuring > .quote.quote--portrait { min-height: 360px; } .rotator-stage.is-measuring > .quote.quote--portrait .quote-figure { position: absolute; min-height: 0; } }
/* Carrousel (ordinateur) : portrait en fond de colonne, texte centré verticalement */
@media (min-width: 700px) {
  .rotator-stage > .quote.quote--portrait, .rotator-stage.is-measuring > .quote.quote--portrait { grid-template-rows: auto auto auto; align-content: center; min-height: 360px; }
  .rotator-stage > .quote.quote--portrait .quote-figure { position: absolute; top: 0; bottom: 0; left: 0; width: max(210px, 36%); min-height: 0; grid-row: auto; }
  .rotator .quote--portrait blockquote, .rotator .quote--portrait .rotator-more, .rotator .quote--portrait figcaption { grid-column: 2; grid-row: auto; align-self: auto; }
  .rotator .quote--portrait blockquote { padding-top: 0; }
}
.testimonials .rotator { margin-top: 64px; }

/* Carrousel compact (ordinateur) : flèches + carte + « À votre tour de témoigner » tiennent dans un écran */
@media (min-width: 700px) {
  .testimonials .rotator { max-width: 820px; margin-top: 72px; }
  .rotator-nav { margin-bottom: 14px; }
  .rotator-stage > .quote.quote--portrait, .rotator-stage.is-measuring > .quote.quote--portrait { min-height: 300px; grid-template-columns: max(200px, 30%) 1fr; }
  .rotator-stage > .quote.quote--portrait .quote-figure { width: max(200px, 30%); }
  .rotator .quote--portrait blockquote { padding: 26px 34px 0; }
  .rotator .quote--portrait figcaption { padding: 12px 34px 24px; }
  html[lang="fr"] main .rotator .quote--portrait blockquote { font-size: 1rem; line-height: 1.55; -webkit-line-clamp: 5; line-clamp: 5; }
  .rotator .quote:not(.quote--portrait) blockquote { -webkit-line-clamp: 5; line-clamp: 5; }
  html[lang="fr"] main .rotator .quote:not(.quote--portrait) blockquote { font-size: clamp(1.02rem, 1.6vw, 1.14rem); }
  .rotator-stage > .quote:not(.quote--portrait) { padding: 32px 56px; }
  .testimonials .testi-cta { margin-top: 22px; }
}
@media (min-width: 700px) and (max-height: 760px) {
  html[lang="fr"] main .rotator .quote--portrait blockquote, .rotator .quote:not(.quote--portrait) blockquote { -webkit-line-clamp: 4; line-clamp: 4; }
  .rotator-stage > .quote.quote--portrait, .rotator-stage.is-measuring > .quote.quote--portrait { min-height: 260px; }
}
@media (min-width: 700px) { .rotator .quote--portrait .rotator-more { margin-left: 34px; margin-right: 34px; justify-self: start; } }

/* Carrousel compact (téléphone) : flèches + carte + « À votre tour de témoigner » à l'écran */
@media (max-width: 699px) {
  .testimonials .rotator { margin-top: 40px; }
  .rotator-nav { margin-bottom: 12px; gap: 14px; }
  .rotator-btn { width: 40px; height: 40px; }
  .rotator .quote--portrait .quote-figure { min-height: 150px; height: 150px; }
  .quote--portrait .quote-figure.is-lowres img { max-height: 150px; }
  .rotator .quote--portrait blockquote { padding: 16px 20px 0; }
  .rotator .quote--portrait figcaption { padding: 10px 20px 18px; }
  .rotator .quote--portrait .rotator-more { margin: 8px 20px 0; }
  html[lang="fr"] main .rotator .quote--portrait blockquote { font-size: 0.95rem; line-height: 1.5; -webkit-line-clamp: 5; line-clamp: 5; }
  .rotator .quote:not(.quote--portrait) blockquote { -webkit-line-clamp: 7; line-clamp: 7; }
  html[lang="fr"] main .rotator .quote:not(.quote--portrait) blockquote { font-size: 1rem; }
  .rotator-stage > .quote:not(.quote--portrait) { padding: 26px 22px; }
  .rotator .quote figcaption strong { font-size: 0.95rem; }
  .rotator .quote figcaption { font-size: 0.82rem; }
  .testimonials .testi-cta { margin-top: 18px; }
}

/* Témoignages : la carte s'agrandit sur place au clic sur la photo (pas de zoom, pas de fenêtre) */
.rotator .quote--portrait .quote-figure { cursor: pointer; }
.rotator .quote--portrait .quote-figure:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: -4px; }
.rotator .quote--portrait .quote-figure::before {
  content: ""; position: absolute; z-index: 2; right: 10px; bottom: 10px; width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255, 254, 251, 0.94) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e1a38' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/%3E%3C/svg%3E") center / 14px no-repeat;
  box-shadow: 0 4px 12px -4px rgba(14, 26, 56, 0.35); transition: transform 0.3s var(--ease-out);
}
.rotator .quote--portrait.is-grand .quote-figure::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e1a38' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14h6v6M20 10h-6V4M14 10l7-7M10 14l-7 7'/%3E%3C/svg%3E");
}
.rotator .quote--portrait .quote-figure:hover::before { transform: scale(1.1); }
.rotator .quote--portrait .quote-figure img { transition: object-position 0.6s cubic-bezier(0.16, 1, 0.3, 1); }

/* Ordinateur : la colonne photo s'élargit, la carte grandit pour tout le texte */
@media (min-width: 700px) {
  .rotator-stage > .quote.quote--portrait { transition: grid-template-columns 0.6s cubic-bezier(0.16, 1, 0.3, 1), min-height 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
  .rotator-stage > .quote.quote--portrait .quote-figure { transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
  .rotator-stage > .quote.quote--portrait.is-grand { grid-template-columns: 44% 1fr; min-height: 520px; }
  .rotator-stage > .quote.quote--portrait.is-grand .quote-figure { width: 44%; }
  .rotator .quote--portrait.is-grand .quote-figure img { object-position: 50% 18%; }
}

/* Téléphone : la photo prend de la hauteur au-dessus du texte, qui s'affiche en entier */
@media (max-width: 699px) {
  .rotator .quote--portrait .quote-figure { transition: height 0.6s cubic-bezier(0.16, 1, 0.3, 1), min-height 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
  .rotator .quote--portrait.is-grand .quote-figure { height: min(112vw, 440px); min-height: min(112vw, 440px); }
  .rotator .quote--portrait.is-grand .quote-figure img { object-position: 50% 15%; }
  .quote--portrait.is-grand .quote-figure.is-lowres img { max-height: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .rotator-stage > .quote.quote--portrait, .rotator .quote--portrait .quote-figure, .rotator .quote--portrait .quote-figure img { transition: none; }
}

/* Références : un peu d'air sous la couverture, titre aéré */
.refgrid { padding-top: clamp(10px, 1.6vw, 18px); }
.refgrid-title { line-height: 1.6; padding: 0 16px; }
