/* Beauty by Klo — Édition Lumière
   Thème appliqué au contenu existant du site (pages reprises telles quelles, re-habillées).
   Portée : uniquement <main class="bridged">. Les 8 pages composées ne sont pas touchées.
   Chargé après design.css et hors @layer : il l'emporte à specificité égale. */

/* ---------- Socle ---------- */
.bridged {
  --pad-section: clamp(56px, 6.4vw, 104px);
  display: block;
  font: 400 15px/1.85 var(--sans);
  color: var(--ink);
}
.bridged :is(h1, h2, h3, h4) { font-family: var(--serif); font-weight: 400; letter-spacing: -.028em; }
.bridged h1 { font-size: clamp(38px, 5vw, 66px); line-height: 1.06; }
.bridged h2 { font-size: clamp(27px, 3.1vw, 42px); line-height: 1.12; margin-block: 0 22px; }
.bridged h3 { font-size: clamp(20px, 1.7vw, 25px); line-height: 1.25; margin-block: 34px 14px; }
.bridged h4 { font-size: 16px; line-height: 1.4; margin-block: 26px 10px; }
.bridged h2 em, .bridged h1 em, .bridged h3 em { font-style: italic; }
.bridged p { margin-block: 0 18px; max-width: 74ch; }
.bridged a { color: inherit; text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; text-decoration-color: var(--line-strong); }
.bridged a:hover { text-decoration-color: var(--ink); }
.bridged strong, .bridged b { font-weight: 600; }
.bridged em { font-style: italic; }
.bridged ul, .bridged ol { margin-block: 0 20px; padding-left: 20px; max-width: 74ch; }
.bridged li { margin-bottom: 9px; }
.bridged ul { list-style: none; padding-left: 0; }
.bridged ul > li { position: relative; padding-left: 22px; }
.bridged ul > li::before { content: ''; position: absolute; left: 2px; top: .72em; width: 7px; height: 1px; background: var(--line-strong); }
.bridged ol { list-style: none; counter-reset: bl; padding-left: 0; }
.bridged ol > li { position: relative; padding-left: 34px; counter-increment: bl; }
.bridged ol > li::before { content: counter(bl, decimal-leading-zero); position: absolute; left: 0; top: .1em; font: 500 10px/1.8 var(--sans); letter-spacing: .14em; color: var(--nude); }
.bridged img { max-width: 100%; height: auto; }
.bridged hr { border: 0; border-top: 1px solid var(--line); margin-block: 40px; }
.bridged blockquote { margin: 26px 0; padding-left: 26px; border-left: 1px solid var(--nude); font: italic 400 clamp(19px, 1.8vw, 25px)/1.45 var(--serif); }
.bridged .visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.bridged .text-center { text-align: center; }
.bridged .text-center p, .bridged .text-center h2 { margin-inline: auto; }

/* ---------- Trame ---------- */
.bridged .container { width: min(1512px, 100%); margin-inline: auto; padding-inline: var(--gutter); }
.bridged .container--narrow { width: min(860px, 100%); }
.bridged .section, .bridged .content-section, .bridged .passage, .bridged .faq-section, .bridged .testimonials-section, .bridged .cta-section { padding-block: var(--pad-section); }
.bridged .section--cream, .bridged .section--light, .bridged .section--beam, .bridged .section--intro { background: var(--paper); }
.bridged .section--cta { background: var(--pale); }
.bridged .section + .section:not([class*='--']) { padding-top: 0; }
.bridged .section-header, .bridged .section-title, .bridged .section__title, .bridged .passage__title { max-width: 900px; }
.bridged .section-summary, .bridged .section__content { max-width: 74ch; }
.bridged :is(.section-eyebrow, .section__eyebrow, .hero-eyebrow, .hero__eyebrow, .eyebrow) {
  display: block; font: 500 10px/1.8 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px;
}
.bridged .content-grid, .bridged .services-grid, .bridged .info-blocks, .bridged .fact-cards, .bridged .testimonials-grid, .bridged .content-grid__text { display: grid; gap: clamp(22px, 2.6vw, 42px); }
@media (min-width: 900px) {
  .bridged .services-grid, .bridged .fact-cards, .bridged .testimonials-grid, .bridged .info-blocks { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
  .bridged .content-grid { grid-template-columns: 1.05fr .95fr; align-items: center; }
}

/* ---------- Fil d'Ariane ---------- */
.bridged .breadcrumb { padding-block: 26px 0; }
.bridged .breadcrumb__list { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; font: 500 10px/1.8 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.bridged .breadcrumb__list > li { padding-left: 0; counter-increment: none; margin-bottom: 0; }
.bridged .breadcrumb__list > li::before { content: none; }
.bridged .breadcrumb__list > li + li::before { content: '·'; position: static; margin-right: 10px; width: auto; height: auto; background: none; color: var(--line-strong); font-size: 10px; }
.bridged .breadcrumb__item--current { color: var(--ink); }
.bridged .breadcrumb a { text-decoration: none; }
.bridged .breadcrumb a:hover { text-decoration: underline; text-underline-offset: .3em; }

/* ---------- Hero des pages reprises ---------- */
.bridged .hero { position: relative; padding-block: clamp(46px, 5.6vw, 92px) clamp(40px, 5vw, 78px); border-bottom: 1px solid var(--line); overflow: hidden; }
.bridged .hero__bg, .bridged .hero__halo { display: none; }
.bridged .hero-inner, .bridged .hero__inner { display: grid; gap: clamp(28px, 3.4vw, 64px); align-items: center; }
@media (min-width: 900px) { .bridged .hero-inner, .bridged .hero__inner { grid-template-columns: 1.15fr .85fr; } }
.bridged .hero h1, .bridged .hero__title { margin-bottom: 20px; }
.bridged .hero__title--md { font-size: clamp(34px, 4vw, 52px); }
.bridged :is(.hero-subtitle, .hero__subtitle) { font: 400 clamp(16px, 1.35vw, 19px)/1.6 var(--serif); color: var(--muted); max-width: 60ch; margin-bottom: 26px; }
.bridged :is(.hero-ctas, .hero__ctas, .cta-group, .cta-box__actions) { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.bridged .hero-visual img, .bridged .hero__image img, .bridged .hero-image { width: 100%; object-fit: cover; filter: saturate(.78); }
.bridged .hero__content--centered { text-align: center; margin-inline: auto; }
.bridged .hero__content--centered :is(p, .hero__subtitle) { margin-inline: auto; }

/* ---------- Boutons ---------- */
.bridged :is(.btn, .btn-primary, .btn-outline, .btn-whatsapp) {
  display: inline-flex; align-items: center; gap: 14px; min-height: 52px; padding: 14px 26px;
  font: 600 11px/1.5 var(--sans); letter-spacing: .13em; text-transform: uppercase;
  border: 1px solid var(--line-strong); background: transparent; color: var(--ink);
  text-decoration: none; transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.bridged :is(.btn--primary, .btn-primary) { background: var(--nude); border-color: var(--nude); }
.bridged :is(.btn--primary, .btn-primary):hover { background: var(--ink); border-color: var(--ink); color: var(--white); }
.bridged :is(.btn--outline, .btn-outline):hover { background: var(--pale); }
.bridged .btn-whatsapp { border-color: var(--line-strong); }
.bridged .btn--lg { min-height: 58px; padding-inline: 32px; }
.bridged .btn:hover { border-color: var(--ink); }

/* ---------- Encarts et cartes ---------- */
.bridged :is(.answer-card, .key-takeaway, .warning-box, .medical-disclaimer, .info-block, .guide-card, .stat-highlight, .cta-box, .cta-inline, .blog-cta, .laser-bilan-banner, .pricing-card, .service-card, .fact-card, .testimonial-card, .author-box, .toc, .sources-list, .internal-links, .internal-links-blog) {
  background: var(--paper); border: 1px solid var(--line); padding: clamp(22px, 2.4vw, 34px); margin-block: 26px;
}
.bridged :is(.answer-card, .key-takeaway, .stat-highlight) { border-left: 2px solid var(--nude); }
.bridged :is(.warning-box, .medical-disclaimer) { background: var(--white); border-left: 2px solid var(--line-strong); font-size: 13.5px; color: var(--muted); }
.bridged :is(.answer-card__title, .cta-box__title, .fact-card__title, .laser-bilan-banner__title) { font-family: var(--serif); font-size: clamp(21px, 2vw, 28px); line-height: 1.2; margin-bottom: 14px; }
.bridged .answer-card__facts { display: grid; gap: 12px; margin-top: 18px; padding: 0; }
.bridged .answer-card__fact { position: relative; padding-left: 22px; list-style: none; font-size: 14px; }
.bridged .answer-card__fact::before { content: ''; position: absolute; left: 0; top: .72em; width: 8px; height: 1px; background: var(--nude); }
.bridged .fact-card { text-align: left; }
.bridged .fact-card__icon { font-size: 22px; margin-bottom: 12px; }
.bridged .fact-card__value, .bridged .number { display: block; font-family: var(--serif); font-size: clamp(24px, 2.3vw, 34px); line-height: 1.08; color: var(--nude); margin-bottom: 8px; overflow-wrap: anywhere; }
.bridged .fact-card__context, .bridged .pricing-note, .bridged .blog-meta { font-size: 12px; color: var(--muted); }
.bridged .laser-bilan-banner__inner { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; }
.bridged .laser-bilan-banner__icon { font-size: 26px; }
.bridged .cta-box, .bridged .cta-inline, .bridged .blog-cta { background: var(--pale); border-color: transparent; }
.bridged .feature-list--cards { display: grid; gap: 16px; }
.bridged .feature-list--cards > li { padding: 20px 22px; background: var(--paper); border: 1px solid var(--line); }
.bridged .feature-list--cards > li::before { display: none; }

/* ---------- Étapes et chronologie ---------- */
.bridged .steps-list { counter-reset: st; }
.bridged .timeline { display: grid; gap: 26px; position: relative; }
.bridged .timeline-line { display: none; }
.bridged .timeline-item { display: grid; grid-template-columns: 44px 1fr; gap: 18px; align-items: start; }
.bridged .timeline-marker { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--nude); border-radius: 50%; font: 500 12px/1 var(--sans); color: var(--nude); }
.bridged .timeline-content h3 { margin-top: 0; }

/* ---------- Tableaux ---------- */
.bridged .table-wrapper { overflow-x: auto; max-width: 100%; margin-block: 22px 34px; }
/* un enfant de grille ne se retrecit pas sous son contenu sans cela : un tableau large debordait la page */
.bridged :is([class*='-grid'], [class*='-cards']) > * { min-width: 0; }
.bridged table { width: 100%; border-collapse: collapse; font-size: 14px; }
.bridged :is(th, td) { padding: 15px 14px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.bridged th { font: 500 10px/1.8 var(--sans); letter-spacing: .15em; text-transform: uppercase; color: var(--muted); border-bottom-color: var(--line-strong); }
.bridged td:last-child { text-align: right; font-family: var(--serif); font-size: 19px; white-space: nowrap; }
.bridged .comparison-table td:last-child, .bridged .aeo-table td:last-child { text-align: left; font-family: var(--sans); font-size: 14px; white-space: normal; }
.bridged tr:hover td { background: var(--paper); }
.bridged .tarif-category { font-family: var(--serif); font-size: clamp(19px, 1.7vw, 24px); margin-block: 34px 8px; }

/* ---------- FAQ (details/summary) ---------- */
.bridged .faq-list { max-width: 900px; margin-top: 12px; }
.bridged .faq-item { border-bottom: 1px solid var(--line); }
.bridged .faq-item__question { display: flex; align-items: center; justify-content: space-between; gap: 26px; padding: 22px 0; min-height: 62px; cursor: pointer; list-style: none; font: 500 14px/1.5 var(--sans); }
.bridged .faq-item__question::-webkit-details-marker { display: none; }
.bridged .faq-item__icon { position: relative; flex: 0 0 15px; width: 15px; height: 15px; }
.bridged .faq-item__icon::before, .bridged .faq-item__icon::after { content: ''; position: absolute; inset: 50% 0 auto 0; height: 1px; background: var(--ink); transition: transform .3s var(--ease); }
.bridged .faq-item__icon::after { transform: rotate(90deg); }
.bridged .faq-item[open] .faq-item__icon::after { transform: rotate(0deg); }
.bridged .faq-item__answer { padding-bottom: 26px; color: var(--muted); }
.bridged .faq-item__answer p:last-child { margin-bottom: 0; }

/* ---------- Article de blog ---------- */
.bridged .blog-article { width: min(760px, 100%); margin-inline: auto; padding-inline: var(--gutter); padding-block: clamp(34px, 4vw, 64px); }
.bridged .blog-article h1 { font-size: clamp(34px, 4.4vw, 56px); margin-bottom: 18px; }
.bridged .blog-article h2 { margin-top: 52px; }
.bridged .blog-meta { display: flex; flex-wrap: wrap; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--line); margin-bottom: 34px; letter-spacing: .1em; text-transform: uppercase; }
.bridged .author-box { display: flex; gap: 18px; align-items: center; }
.bridged .author-box__avatar img, .bridged .testimonial-avatar img { width: 56px; height: 56px; object-fit: cover; border-radius: 50%; }
.bridged .author-box__name { font-family: var(--serif); font-size: 20px; }
.bridged .author-box__credentials, .bridged .testimonial-info { font-size: 12px; color: var(--muted); }
.bridged .toc { background: var(--white); border-left: 2px solid var(--nude); }
.bridged .toc ul { margin-bottom: 0; }
.bridged :is(.internal-links, .internal-links-blog, .sources-list) { background: var(--white); }
.bridged .sources-list { font-size: 13px; color: var(--muted); }
.bridged .testimonial-text { font: italic 400 clamp(17px, 1.5vw, 21px)/1.5 var(--serif); margin-bottom: 16px; }
.bridged .testimonial-author, .bridged .testimonial-rating { font-size: 12px; color: var(--muted); letter-spacing: .08em; }
.bridged .speakable-chunk { display: block; }

/* ---------- Filet de sécurité : grilles et cartes non listées nommément ----------
   Le site existant compte près de 500 classes ; ces deux règles donnent une mise en
   page correcte aux composants qui ne sont pas traités un par un ci-dessus. */
.bridged [class*='-grid'], .bridged [class*='-cards'], .bridged [class*='-list--cards'] { display: grid; gap: clamp(20px, 2.4vw, 38px); }
@media (min-width: 900px) {
  .bridged [class*='-grid'], .bridged [class*='-cards'] { grid-template-columns: repeat(auto-fit, minmax(262px, 1fr)); }
}
.bridged [class*='-card']:not([class*='__']):not([class*='-cards']) { background: var(--paper); border: 1px solid var(--line); padding: clamp(20px, 2.2vw, 30px); }
.bridged [class*='-card'] h3 { margin-top: 0; }
.bridged [class*='-card__icon'] { margin-bottom: 14px; color: var(--nude); }
.bridged [class*='-card__icon'] svg { width: 26px; height: 26px; }
.bridged .contact-card { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.bridged .contact-card .btn { margin-top: 12px; }
.bridged .contact-card__link { font-family: var(--serif); font-size: 19px; }

/* ---------- Formulaires ---------- */
.bridged .form-group { margin-bottom: 20px; }
.bridged .form-label { display: block; font: 500 10px/1.8 var(--sans); letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.bridged :is(.form-input, .form-select, .form-textarea, input[type=text], input[type=email], input[type=tel], select, textarea) {
  width: 100%; padding: 14px 16px; font: 400 15px/1.5 var(--sans); color: var(--ink);
  background: var(--white); border: 1px solid var(--line); border-radius: 0; transition: border-color .3s var(--ease);
}
.bridged :is(.form-input, .form-select, textarea):focus-visible { outline: none; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.bridged textarea { min-height: 150px; resize: vertical; }
.bridged button[type=submit] { min-height: 54px; padding: 15px 28px; font: 600 11px/1.5 var(--sans); letter-spacing: .13em; text-transform: uppercase; background: var(--nude); border: 1px solid var(--nude); color: var(--ink); }
.bridged button[type=submit]:hover { background: var(--ink); border-color: var(--ink); color: var(--white); }
.bridged #form-status { padding: 16px 18px; margin-top: 18px; background: var(--pale); border-left: 2px solid var(--nude); font-size: 13.5px; }

/* ---------- Avant / après (la production n'y publie pas de photographies) ---------- */
.bridged .before-after-grid { display: grid; gap: 22px; }
@media (min-width: 760px) { .bridged .before-after-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); } }
.bridged .before-after-card { border: 1px solid var(--line); background: var(--white); }
.bridged .before-after-images { position: relative; display: grid; grid-template-columns: 1fr 1fr; min-height: 190px; }
.bridged .ba-image { display: flex; align-items: center; justify-content: center; background: var(--pale); color: var(--muted); font: 500 10px/1.8 var(--sans); letter-spacing: .18em; text-transform: uppercase; }
.bridged .ba-image.after { background: var(--paper); }
.bridged .ba-divider { position: absolute; inset: 0 auto 0 50%; width: 1px; background: var(--line-strong); }
.bridged .ba-label { display: none; }
.bridged .before-after-content { padding: 20px 22px; }

/* ---------- Acces reseaux sociaux conserve du site actuel ---------- */
.bridged .floating-contact-buttons { position: fixed; right: 18px; bottom: 28px; z-index: 40; display: grid; gap: 9px; }
.bridged .float-btn { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--white); border: 1px solid var(--line); color: var(--ink); transition: background .3s var(--ease), border-color .3s var(--ease); }
.bridged .float-btn:hover { background: var(--nude); border-color: var(--nude); }
.bridged .float-btn svg { width: 18px; height: 18px; }
@media (max-width: 899px) { .bridged .floating-contact-buttons { display: none; } }

/* ---------- Animations neutralisees ---------- */
.bridged [class*='reveal'] { opacity: 1 !important; transform: none !important; animation: none !important; }

/* ---------- Mobile ---------- */
@media (max-width: 899px) {
  .bridged { font-size: 14.5px; }
  .bridged .hero-visual { order: -1; }
  .bridged .laser-bilan-banner__inner { flex-direction: column; align-items: flex-start; }
  .bridged :is(.btn, .btn-primary, .btn-outline, .btn-whatsapp) { width: 100%; justify-content: center; }
  .bridged td:last-child { font-size: 17px; }
}

/* Encadre d'avis Google reels (remplace les temoignages sans source). */
.bridged .avis-google{background:var(--paper);border:1px solid var(--line);padding:clamp(22px,2.4vw,34px);margin-block:30px;}
.bridged .avis-google h3{margin-top:0;font-size:clamp(20px,1.8vw,26px);}
.bridged .avis-google .testimonial-card{background:var(--white);border:1px solid var(--line);padding:20px 22px;margin-bottom:14px;}
.bridged .avis-google .testimonial-quote{font:italic 400 16px/1.6 var(--serif);margin-bottom:10px;}
.bridged .avis-google .testimonial-author{font-size:12px;color:var(--muted);letter-spacing:.06em;margin:0;}
.bridged .avis-google .fine-note{margin-top:16px;}

/* Contenu de production repris sous une composition editoriale (pages composees). */
.detail-production{display:block;padding-block:clamp(56px,6.4vw,104px) 0;border-top:1px solid var(--line);margin-top:clamp(56px,6vw,96px);}
.detail-production > .container > .eyebrow{color:var(--muted);}
.detail-production > .container > h2{font-size:clamp(30px,3.4vw,48px);margin-bottom:0;}
.detail-production > .container:first-child{margin-bottom:clamp(30px,3.4vw,54px);}

/* Mobile : les grilles fixees en ligne par l'ancien design (repeat(3,1fr)...) passent sur une colonne. */
@media (max-width: 899px) {
  .bridged [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
  .bridged [style*="display: flex"], .bridged [style*="display:flex"] { flex-wrap: wrap; }
  .bridged table { width: 100%; }
}

/* Garde-fou : un SVG sans dimension de l'ancien design ne doit pas occuper toute la largeur. */
.bridged svg:not([width]):not([height]) { width: 22px; height: 22px; }
.bridged .scroll-indicator { display: none; }

/* Lignes « libelle / prix » de l'ancien design : deux <span> dans un <li>. */
.bridged li:has(> span + span) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; min-width: 0; }
.bridged li:has(> span + span) > span:first-child { flex: 1 1 auto; min-width: 0; }
.bridged li > span:first-child + span { margin-left: auto; font-family: var(--serif); font-size: 17px; }
.bridged li:has(> span + span)::before { top: .9em; }

/* Les images de l'ancien design n'ont plus leur contrainte de hauteur : un portrait 9:16
   occupait deux ecrans. On les plafonne sans deformer. */
.bridged img { max-height: 620px; height: auto; width: auto; max-width: 100%; }
.bridged .photograph, .bridged .hero-image, .bridged [class*='-image'] img { max-height: 620px; }

/* ==========================================================================
   Bloc « Notre mission » — portrait de la praticienne (27/09/2026)
   Les classes .mission-* venaient du site de production et n'avaient aucune
   regle ici : l'image sortait en pleine largeur, sans colonne de texte.
   ========================================================================== */
.bridged .mission-section { padding-block: var(--pad-section); background: var(--paper); }
.bridged .mission-inner { display: grid; gap: clamp(30px, 4vw, 72px); align-items: center; }
.bridged .mission-eyebrow {
  font: 500 10px/1.8 var(--sans); letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 20px;
}
.bridged .mission-title { font-size: clamp(34px, 3.8vw, 54px); margin-bottom: 24px; }
.bridged .mission-text { font-size: 15.5px; line-height: 1.9; color: var(--muted); max-width: 56ch; }
.bridged .mission-image { position: relative; margin: 0; }
.bridged .mission-image picture { display: block; }
.bridged .mission-image img {
  width: 100%; max-width: none; max-height: none; aspect-ratio: 4 / 5;
  object-fit: cover; object-position: 50% 16%;
  border-radius: var(--r-xl); filter: saturate(.86);
}
.bridged .mission-signature {
  position: absolute; left: clamp(16px, 5%, 32px); bottom: clamp(16px, 5%, 32px);
  padding: 15px 24px; background: #FFFFFFF2; border-radius: var(--r-md);
  font: 500 9.5px/1.7 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
  box-shadow: 0 10px 40px #332C2914;
}
.bridged .mission-signature span {
  display: block; margin-bottom: 3px; text-transform: none; letter-spacing: -.02em;
  font: italic 27px/1 var(--serif); color: var(--ink);
}
@media (min-width: 900px) {
  .bridged .mission-inner { grid-template-columns: 1.05fr .95fr; }
  .bridged .mission-image { max-width: 470px; margin-left: auto; }
}

/* ==========================================================================
   Arrondis du contenu repris — 27/09/2026
   ========================================================================== */
.bridged img { border-radius: var(--r-md); }
.bridged .hero-visual img, .bridged .hero__image img, .bridged .hero-image,
.bridged .ba-image, .bridged .ba-image img { border-radius: var(--r-lg); }
.bridged :is(.btn, .btn-primary, .btn-outline, .btn-whatsapp, .btn--primary, .btn--outline, .btn--lg),
.bridged button[type=submit], .bridged .float-btn { border-radius: var(--r-pill); }
.bridged :is(.answer-card, .key-takeaway, .warning-box, .medical-disclaimer, .info-block,
  .guide-card, .stat-highlight, .cta-box, .cta-inline, .blog-cta, .laser-bilan-banner,
  .pricing-card, .service-card, .fact-card, .testimonial-card, .author-box, .toc,
  .sources-list, .internal-links, .internal-links-blog, .avis-google, .before-after-card,
  .timeline-content, .contact-card),
.bridged [class*='-card']:not([class*='__']):not([class*='-cards']),
.bridged .feature-list--cards > li,
.bridged #form-status { border-radius: var(--r-lg); }
.bridged .avis-google .testimonial-card { border-radius: var(--r-md); }
.bridged :is(.form-input, .form-select, .form-textarea, input[type=text], input[type=email],
  input[type=tel], select, textarea) { border-radius: var(--r-sm); }
.bridged .table-wrapper { border-radius: var(--r-md); }

/* ==========================================================================
   Deux blocs repris de la production qui n'avaient aucune regle ici
   (paiement en plusieurs fois : 4 pages ; plan d'acces : 2 pages).
   Sans cela : libelles colles par la regle generique « deux <span> dans un <li> »
   et iframe de carte a sa taille par defaut (300x150). — 27/09/2026
   ========================================================================== */

/* --- Paiement en 2, 3 ou 4 fois --- */
.bridged .payment-banner--hero { padding-block: var(--pad-section); }
.bridged .payment-banner--hero__inner {
  display: grid; gap: clamp(28px, 3.4vw, 56px); align-items: center;
  padding: clamp(32px, 3.6vw, 56px); background: var(--pale); border-radius: var(--r-xl);
}
.bridged .payment-banner--hero__badge {
  display: inline-block; margin-bottom: 18px; padding: 8px 18px; background: var(--white);
  border-radius: var(--r-pill); font: 500 9.5px/1.7 var(--sans);
  letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
}
.bridged .payment-banner--hero__title { margin-bottom: 14px; }
.bridged .payment-banner--hero__sub { color: var(--muted); margin-bottom: 12px; }
.bridged .payment-banner--hero__seuil {
  font: 500 10px/1.7 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink); margin-bottom: 0;
}
.bridged .payment-banner--hero__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.bridged .payment-banner--hero__item {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 20px; margin: 0; padding: 18px 22px;
  background: var(--white); border-radius: var(--r-md); min-width: 0;
}
.bridged .payment-banner--hero__item::before { content: none; }
/* Specificite deliberement plus forte que la regle generique
   « .bridged li > span:first-child + span » du theme de pont, qui sinon
   renvoie le libelle a droite en serif et colle les deux spans. */
.bridged .payment-banner--hero__item > .payment-banner--hero__item-num {
  flex: 0 0 auto; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--line-strong); border-radius: 50%;
  font: 400 20px/1 var(--serif); color: var(--ink); margin: 0;
}
.bridged .payment-banner--hero__item > .payment-banner--hero__item-text {
  display: flex; flex-direction: column; gap: 3px; min-width: 0; margin: 0;
  font-family: var(--sans); font-size: 14px;
}
.bridged .payment-banner--hero__item-text strong { font-weight: 600; font-size: 14px; }
.bridged .payment-banner--hero__item-text > span { font-size: 12.5px; color: var(--muted); }
.bridged .payment-banner--hero__item--soon { opacity: .72; }
@media (min-width: 900px) {
  .bridged .payment-banner--hero__inner { grid-template-columns: 1fr .9fr; }
}

/* --- Plan d'acces --- */
.bridged .location-inner { display: grid; gap: clamp(28px, 3.4vw, 60px); align-items: center; }
.bridged .location-info { display: grid; gap: 16px; margin-top: 28px; }
.bridged .location-info-item { display: flex; align-items: center; gap: 16px; }
.bridged .location-info-icon { flex: 0 0 auto; font-size: 19px; line-height: 1; }
.bridged .location-info-text { display: flex; flex-direction: column; gap: 2px; }
.bridged .location-info-text strong { font-weight: 600; font-size: 14.5px; }
.bridged .location-info-text span { font-size: 12.5px; color: var(--muted); }
.bridged .location-info .btn-primary { margin-top: 10px; justify-self: start; }
.bridged .location-map { position: relative; }
.bridged .location-map iframe {
  display: block; width: 100%; height: clamp(300px, 34vw, 430px);
  border: 0; border-radius: var(--r-lg);
}
@media (min-width: 900px) {
  .bridged .location-inner { grid-template-columns: 1fr 1fr; }
}

/* --- Bloc « Le concept » et bandeau de reassurance : memes classes orphelines
       que mission et paiement (accueil uniquement). — 27/09/2026 --- */
.bridged .concept-section { padding-block: var(--pad-section); }
.bridged .concept-inner { display: grid; gap: clamp(30px, 4vw, 72px); align-items: center; }
.bridged .concept-image { margin: 0; }
.bridged .concept-image img {
  width: 100%; max-width: none; max-height: none; aspect-ratio: 4 / 5;
  object-fit: cover; border-radius: var(--r-xl); filter: saturate(.8);
}
.bridged .concept-title { margin-bottom: 22px; }
.bridged .concept-text p { color: var(--muted); }
.bridged .concept-text p:last-child { margin-bottom: 0; }
@media (min-width: 900px) {
  .bridged .concept-inner { grid-template-columns: .9fr 1.1fr; }
  .bridged .concept-image { max-width: 440px; }
}

.bridged .prestations-section { padding-block: var(--pad-section); }
.bridged .prestations-header { max-width: 760px; margin-bottom: clamp(32px, 3.4vw, 52px); }
.bridged .prestations-intro { color: var(--muted); margin-bottom: 0; }

.bridged .trust { padding-block: clamp(34px, 3.6vw, 56px); }
.bridged .trust-inner {
  display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  padding: clamp(26px, 2.8vw, 40px); background: var(--paper); border-radius: var(--r-xl);
}
.bridged .trust-item { text-align: center; }
.bridged .trust-number { font: 400 clamp(27px, 2.6vw, 38px)/1.1 var(--serif); color: var(--ink); }
.bridged .trust-label {
  margin-top: 8px; font: 500 9.5px/1.7 var(--sans);
  letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
}

/* ==========================================================================
   PASSE LISIBILITÉ + RÉPARATIONS — 27/09/2026
   1. Réparations structurelles (collisions de classes, grilles à trous)
   2. Habillage des blocs de production restés sans aucune règle
   3. Typographie des pavés de texte
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. RÉPARATIONS STRUCTURELLES
   -------------------------------------------------------------------------- */

/* `.faq-section`, `.services-grid`, `.service-card` et `.price-value` existent
   AUSSI dans design.css, pour les pages composées. Sur le contenu repris, la
   mise en page des pages composées s'appliquait par collision de nom :
   la FAQ se retrouvait tassée dans une colonne de 44 % et les cartes
   décalées en quinconce. */
.bridged .faq-section { display: block; }
.bridged .faq-section h2 { max-width: none; }
.bridged .service-card:nth-child(even) { margin-top: 0; }
.bridged .services-grid > * { min-width: 0; }

/* Un hero de production dont le contenu est centré n'a qu'un seul enfant :
   la grille à deux colonnes le confinait dans la colonne de gauche. */
.bridged :is(.hero__inner, .hero-inner):has(> :only-child),
.bridged :is(.hero__inner, .hero-inner):has(> .hero__content--centered),
.bridged :is(.hero__inner, .hero-inner):not(:has(> :is(.hero-visual, .hero__visual, .hero__image, .hero-image, img, picture, figure, video)))
  { grid-template-columns: 1fr; }
.bridged .hero__content--centered { max-width: 780px; }
.bridged .hero--compact { padding-block: clamp(34px, 3.6vw, 56px) clamp(30px, 3.4vw, 52px); }

/* Le titre « Pour aller plus loin » et la première section reprise se
   suivaient avec 130 px de vide. */
.bridged.detail-production > .container:first-child { margin-bottom: 0; }
.bridged.detail-production > .container:first-child + section { padding-top: clamp(26px, 2.6vw, 40px); }

/* --------------------------------------------------------------------------
   2. BLOCS DE PRODUCTION SANS RÈGLE
   -------------------------------------------------------------------------- */

/* Tableaux de tarifs : 23 pages, débordaient hors du cadre sur deux d'entre elles. */
.bridged .table-wrapper, .bridged .table-responsive { min-width: 0; max-width: 100%; overflow-x: auto; }
.bridged .tarif-table { width: 100%; min-width: 520px; border-collapse: collapse; }
.bridged .tarif-table caption {
  caption-side: top; text-align: left; padding-bottom: 14px;
  font: 500 10px/1.8 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
}
.bridged .tarif-table th {
  text-align: left; padding: 14px 18px 14px 0; border-bottom: 1px solid var(--line-strong);
  font: 500 9.5px/1.7 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); white-space: nowrap;
}
.bridged .tarif-table td { padding: 16px 18px 16px 0; border-bottom: 1px solid var(--line); vertical-align: top; font-size: 14.5px; }
.bridged .tarif-table :is(th, td):last-child { padding-right: 0; text-align: right; }
.bridged .tarif-table td:not(:first-child) { font-family: var(--serif); font-size: 17px; white-space: nowrap; }
.bridged .tarif-table tfoot td { border-bottom: 0; font: 400 12.5px/1.7 var(--sans); color: var(--muted); }

/* Étapes d'un protocole. */
.bridged .steps-list, .bridged .protocol-step { min-width: 0; }
.bridged .step-card {
  display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 18px;
  padding: 22px 24px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg);
}
.bridged .step-card__number {
  grid-row: span 2; display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid var(--line-strong); border-radius: 50%;
  font: 400 18px/1 var(--serif); color: var(--ink);
}
.bridged .step-card__title { font-family: var(--serif); font-size: 21px; line-height: 1.25; }
.bridged .step-card p { margin-bottom: 0; }

/* Bandeau « bilan offert » présent sur 16 pages. */
.bridged .laser-bilan-banner__inner { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(16px, 2vw, 30px); }
.bridged .laser-bilan-banner__icon { flex: 0 0 auto; font-size: 24px; line-height: 1; }
.bridged .laser-bilan-banner__text { flex: 1 1 320px; min-width: 0; }
.bridged .laser-bilan-banner__title { margin-bottom: 4px; }
.bridged .laser-bilan-banner__sub { margin-bottom: 0; color: var(--muted); font-size: 14px; max-width: none; }
.bridged .laser-bilan-banner__cta {
  flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 48px; padding: 13px 26px;
  background: var(--nude); border: 1px solid var(--nude); border-radius: var(--r-pill);
  font: 600 10.5px/1.5 var(--sans); letter-spacing: .13em; text-transform: uppercase;
  color: var(--ink); text-decoration: none; transition: background .3s var(--ease), color .3s var(--ease);
}
.bridged .laser-bilan-banner__cta:hover { background: var(--ink); border-color: var(--ink); color: var(--white); }

/* Cartes de service de la production (2 pages), cartes de renvoi, mentions légales. */
.bridged .service-card__image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-md); margin-bottom: 18px; }
.bridged .service-card__number { display: block; font: 500 10px/1.8 var(--sans); letter-spacing: .18em; color: var(--muted); }
.bridged .service-card__title { font-size: clamp(21px, 1.8vw, 26px); margin-block: 6px 10px; }
.bridged .service-card__text { color: var(--muted); font-size: 14.5px; }
.bridged .service-card__link { display: inline-block; margin-top: 6px; font: 500 11px/1.6 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.bridged .legal-section { display: block; margin-bottom: clamp(30px, 3vw, 46px); }
.bridged .legal-section:last-child { margin-bottom: 0; }
.bridged .pricing-category-title { margin-block: clamp(34px, 3.4vw, 52px) 14px; }
.bridged .fact-number { font: 400 clamp(28px, 2.6vw, 38px)/1.1 var(--serif); color: var(--ink); }
.bridged .fact-label { margin-top: 6px; font: 500 9.5px/1.7 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.bridged .benefit-card__icon, .bridged .answer-card__fact-icon { font-size: 22px; line-height: 1; margin-bottom: 12px; }
.bridged .cta-box__text, .bridged .answer-card__text { margin-bottom: 0; }
.bridged .cta-box__text + .cta-box__actions { margin-top: 20px; }

/* --------------------------------------------------------------------------
   3. TYPOGRAPHIE DES PAVÉS
   Les paragraphes mesuraient jusqu'à 677 px, soit ~89 signes par ligne
   (`74ch` compte la largeur du zéro, pas celle d'une lettre moyenne).
   Cible : 65 à 70 signes, corps 16 px, interligne 1,8.
   -------------------------------------------------------------------------- */
.bridged { --measure: 56ch; }
.bridged .container--narrow { width: min(740px, 100%); }

.bridged p, .bridged ul, .bridged ol, .bridged dl {
  font-size: 16px; line-height: 1.8; max-width: var(--measure);
}
.bridged p { margin-block: 0 22px; }
.bridged li { margin-bottom: 11px; }
.bridged strong, .bridged b { font-weight: 600; color: var(--ink); }

/* Chapeau : le premier paragraphe d'une section passe en romain serif,
   comme les sous-titres des pages composées. Il donne le ton et aère. */
.bridged :is(h1, h2) + p,
.bridged .passage__lead,
.bridged .section-summary,
.bridged .section__content > p:first-child {
  font: 400 clamp(17px, 1.35vw, 20px)/1.65 var(--serif);
  color: var(--muted); max-width: 52ch; margin-bottom: 26px;
}
/* ...sauf dans un encart, une carte ou un tableau, où le chapeau n'a pas de sens. */
.bridged :is(.answer-card, .key-takeaway, .warning-box, .medical-disclaimer, .info-block,
  .guide-card, .stat-highlight, .cta-box, .cta-inline, .blog-cta, .laser-bilan-banner,
  .pricing-card, .fact-card, .testimonial-card, .author-box, .toc, .sources-list,
  .internal-links, .internal-links-blog, .avis-google, .before-after-card, .contact-card,
  .step-card, .timeline-content, .payment-banner--hero, .mission-section, .concept-section,
  [class*='-card'], td, th) :is(h1, h2) + p {
  font: 400 16px/1.8 var(--sans); color: inherit; max-width: none;
}

/* Respiration entre les blocs : un intertitre doit se détacher du pavé
   qui le précède, pas flotter au milieu. */
.bridged h2 { margin-block: 0 20px; }
.bridged * + h2 { margin-top: clamp(48px, 4.4vw, 74px); }
.bridged h3 { margin-block: clamp(40px, 3.6vw, 56px) 14px; }
.bridged h4 { margin-block: clamp(28px, 2.6vw, 36px) 10px; }
.bridged :is(h2, h3, h4):first-child { margin-top: 0; }
.bridged :is(.section-header, .section__title, .passage__title) + * { margin-top: 0; }

/* Liens dans le texte : lisibles sans hacher la ligne. */
.bridged p a, .bridged li a {
  text-decoration-thickness: 1px; text-underline-offset: .26em;
  text-decoration-color: var(--line-strong);
  transition: text-decoration-color .25s var(--ease), color .25s var(--ease);
}
.bridged p a:hover, .bridged li a:hover { text-decoration-color: var(--ink); }

/* Une liste à puces reste un pavé : même mesure, même air. */
.bridged ul > li, .bridged ol > li { max-width: var(--measure); }
.bridged li > p { max-width: none; }
.bridged li:last-child { margin-bottom: 0; }

/* Dans un tableau, la mesure ne doit pas contraindre la colonne. */
.bridged :is(td, th) :is(p, ul, ol, li) { max-width: none; }
.bridged .hero__content--centered :is(p, ul, ol) { margin-inline: auto; }

@media (max-width: 599px) {
  .bridged p, .bridged ul, .bridged ol { font-size: 15.5px; line-height: 1.78; }
  .bridged :is(h1, h2) + p, .bridged .passage__lead, .bridged .section-summary { font-size: 17px; }
}

/* ==========================================================================
   RÈGLES DE FAMILLE — 27/09/2026
   303 classes venues de la production n'ont aucune règle nommée dans ce thème.
   Plutôt que 303 règles, des motifs : ce qui contient « __title » est un titre,
   « __label » une étiquette, « -grid » une grille. Écrites avec :where(), donc
   à spécificité nulle : toute règle nommée, ici ou dans design.css, l'emporte.
   Le sélecteur d'attribut compare TOUT l'attribut class, d'où le *= et non $=.
   ========================================================================== */

/* --- Gouttière : une section sans .container touchait le bord de l'écran
       (cas mesuré : la grille des remises sur /epilation-laser/prix/). --- */
.bridged > section:not(:has(.container)),
.bridged > div:not(.container):not(:has(.container)) { padding-inline: var(--gutter); }

/* --- Grilles --- */
.bridged :where([class*='-grid'], [class*='__grid'], [class*='-cards'], [class*='-blocks'],
  [class*='-steps'], [class*='-items'], [class*='-scale'], [class*='-combos']) {
  display: grid; gap: clamp(18px, 2.2vw, 32px);
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.bridged [class*='-grid'] > *, .bridged [class*='-cards'] > * { min-width: 0; }

/* --- Titres de blocs --- */
.bridged :where([class*='__title'], [class*='-title'], [class*='__name'], [class*='__word'],
  [class*='__heading']) {
  font-family: var(--serif); font-weight: 400; line-height: 1.22; letter-spacing: -.022em;
  color: var(--ink);
}
.bridged :where(div[class*='__title'], span[class*='__title'], div[class*='-title']) { font-size: 20px; }

/* --- Étiquettes, badges, pastilles --- */
.bridged :where([class*='__label'], [class*='-label'], [class*='__eyebrow'], [class*='__count'],
  [class*='__source'], [class*='-caption'], [class*='__caption']) {
  font: 500 9.5px/1.7 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
}
.bridged :where([class*='__badge'], [class*='-badge'], [class*='__tag'], [class*='-tag'],
  [class*='__status'], [class*='-status']) {
  display: inline-block; padding: 6px 14px; background: var(--pale); border-radius: var(--r-pill);
  font: 500 9.5px/1.6 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--ink);
}

/* --- Nombres, prix, durées --- */
.bridged :where([class*='__number'], [class*='-number'], [class*='__value'], [class*='-value'],
  [class*='__price'], [class*='-price'], [class*='__amount'], [class*='-time']) {
  font-family: var(--serif); font-size: clamp(20px, 1.9vw, 27px); line-height: 1.1; color: var(--ink);
}
.bridged :where([class*='__price-unit'], [class*='__price-compare'], [class*='__price-label'],
  [class*='-price-label']) { font-family: var(--sans); font-size: 12px; color: var(--muted); }
.bridged :where([class*='__price-compare']) { text-decoration: line-through; }

/* --- Pictos et émojis --- */
.bridged :where([class*='__icon'], [class*='-icon'], [class*='__emoji'], [class*='-emoji']) {
  font-size: 22px; line-height: 1; font-style: normal;
}

/* --- Textes secondaires --- */
.bridged :where([class*='__text'], [class*='__desc'], [class*='__sub'], [class*='__bio'],
  [class*='__def'], [class*='__note'], [class*='-desc'], [class*='__lead'], [class*='-lead'],
  [class*='__summary']) { color: var(--muted); }
.bridged :where([class*='__lead'], [class*='-lead'], [class*='__summary']) {
  font: 400 clamp(17px, 1.35vw, 20px)/1.65 var(--serif); max-width: 52ch;
}

/* --- Boutons --- */
.bridged :where([class*='__cta'], [class*='-cta'][href], [class*='btn-'], [class*='btn--'],
  [class*='__link'], [class*='-link'][href]) { border-radius: var(--r-pill); }
.bridged :where(a[class*='__cta'], a[class*='-cta'], a[class*='btn-'], a[class*='btn--']) {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 13px 26px; text-decoration: none;
  background: var(--nude); border: 1px solid var(--nude);
  font: 600 10.5px/1.5 var(--sans); letter-spacing: .13em; text-transform: uppercase; color: var(--ink);
  transition: background .3s var(--ease), color .3s var(--ease);
}
.bridged :where(a[class*='__cta'], a[class*='-cta'], a[class*='btn-'], a[class*='btn--']):hover {
  background: var(--ink); border-color: var(--ink); color: var(--white);
}
.bridged :where(a[class*='__link'], a[class*='-link']) {
  font: 500 11px/1.6 var(--sans); letter-spacing: .12em; text-transform: uppercase;
}

/* --- Cartes et encarts non nommés --- */
.bridged :where([class*='-box']:not([class*='__']), [class*='-banner']:not([class*='__']),
  [class*='-card']:not([class*='__']):not([class*='-cards'])) {
  padding: clamp(20px, 2.2vw, 30px); background: var(--paper);
  border: 1px solid var(--line); border-radius: var(--r-lg);
}
.bridged :where([class*='-box'], [class*='-card'], [class*='-banner']) > :last-child { margin-bottom: 0; }

/* --- Frise chronologique : la colonne de 44 px est faite pour une pastille.
       Sans pastille, le libellé y était écrasé mot par mot. --- */
.bridged .timeline-item:not(:has(> .timeline-marker)) { grid-template-columns: minmax(130px, 200px) 1fr; }
.bridged :where(.timeline-label, .timeline-time) {
  font: 500 10px/1.7 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted);
}

/* --- Marqueurs d'état : oui / non / sûr / déconseillé --- */
.bridged :where(.yes, .safe, .optimal, .compatible, .recommended) { color: #4A6B4F; font-weight: 600; }
.bridged :where(.no, .danger, [class*='--negative'], [class*='--danger']) { color: #9A4B3F; font-weight: 600; }
.bridged :where(.maybe, [class*='--caution'], [class*='alert--warning']) { color: #8A6A2F; font-weight: 600; }

/* --- Classes utilitaires héritées --- */
.bridged :where(.text-center) { text-align: center; }
.bridged :where(.text-center) :where(p, ul, ol, h2, h3) { margin-inline: auto; }
.bridged :where(.text-left) { text-align: left; }
.bridged :where(.mt-4) { margin-top: 28px; }
.bridged :where(.mb-5) { margin-bottom: 34px; }
.bridged :where(.pb-2) { padding-bottom: 14px; }
.bridged :where(.full-width) { width: 100%; }

/* --- Modificateurs de section --- */
.bridged :where(.section--white) { background: var(--white); }
.bridged :where(.section--nopadding) { padding-block: 0; }
.bridged :where(.section--pricing, .section--madero) { padding-block: var(--pad-section); }
.bridged :where(.hero--compact, .hero--local, .hero--service, .hero--about-split) {
  padding-block: clamp(34px, 3.6vw, 56px) clamp(30px, 3.4vw, 52px);
}

/* --- Tableaux non nommés --- */
.bridged :where(.pricing-table, .price-table, .simple-table, .hours-table, .aeo-table) {
  width: 100%; border-collapse: collapse;
}
.bridged :where(.aeo-table-wrapper, .table-responsive, .sessions-table) { overflow-x: auto; max-width: 100%; min-width: 0; }

/* --- Galerie --- */
.bridged :where(.gallery-image-container, .gallery-placeholder) { border-radius: var(--r-lg); overflow: hidden; }
.bridged :where(.gallery-placeholder) {
  display: flex; align-items: center; justify-content: center; min-height: 220px;
  background: var(--pale); color: var(--muted); font: 400 14px/1.5 var(--serif);
}

/* --- Cadre d'image --- */
.bridged :where(.img-frame) { border-radius: var(--r-xl); overflow: hidden; }

/* --- Signature d'auteur : pastille à initiale (36 pages) --- */
.bridged .author-box { display: flex; align-items: center; gap: clamp(16px, 1.8vw, 24px); }
.bridged .author-box__avatar--initiale {
  flex: 0 0 auto; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center;
  background: var(--nude); border-radius: 50%; font: 400 24px/1 var(--serif); color: var(--white);
}
.bridged .author-box__info { min-width: 0; }
.bridged .author-box__info p { margin-bottom: 4px; font-size: 13.5px; color: var(--muted); max-width: none; }
.bridged .author-box__info p:first-child { font-size: 15px; color: var(--ink); font-weight: 600; }
.bridged .author-box__info p:last-child { margin-bottom: 0; }

/* --- Finitions des familles : un nom de carte doit se lire comme un titre,
       un picto doit respirer avant le texte qu'il annonce. --- */
.bridged :where([class*='__name'], [class*='__word'], [class*='__term']) {
  display: block; font-size: 19px; margin-bottom: 8px;
}
.bridged :where([class*='__icon'], [class*='-icon'], [class*='__emoji'], [class*='-emoji']) {
  display: inline-block; margin-bottom: 10px;
}
.bridged :where([class*='__icon'] + *, [class*='__emoji'] + *) { margin-top: 0; }

/* --- Tableaux de tarifs en mobile : un prix qu'il faut aller chercher en
       faisant défiler horizontalement ne sert à rien. On comprime plutôt. --- */
@media (max-width: 600px) {
  .bridged .tarif-table, .bridged .pricing-table, .bridged .price-table, .bridged .aeo-table,
  .bridged .comparison-table, .bridged .hours-table { min-width: 0; font-size: 13px; }
  .bridged :is(.tarif-table, .pricing-table, .price-table, .aeo-table, .comparison-table) :is(th, td) {
    padding: 11px 8px 11px 0; white-space: normal; word-break: normal; overflow-wrap: anywhere;
  }
  .bridged .tarif-table th { font-size: 8.5px; letter-spacing: .1em; white-space: normal; }
  .bridged .tarif-table td:not(:first-child) { font-size: 14px; white-space: nowrap; }
}
@media (max-width: 600px) {
  /* un intitule de colonne ne doit pas se couper au milieu d'un mot */
  .bridged :is(.tarif-table, .pricing-table, .price-table, .aeo-table, .comparison-table) th {
    overflow-wrap: normal; word-break: keep-all; letter-spacing: .06em;
  }
}

/* =====================================================================
   Passe qualité du 27/09/2026 — contraste AA.
   Bloc ajouté en fin de fichier, hors @layer : retour arrière = supprimer
   ce bloc entier. Aucune règle existante n'a été modifiée.
   Mesures : #BC9F91 sur les fonds clairs du site = 2,33:1 (AA exige 4,5:1
   pour le texte courant, 3:1 au-delà de 24 px). #7C6960 = 4,90:1.
   ===================================================================== */
:root { --nude-ink: #7C6960; }

.bridged .fact-card__value,
.bridged .number,
.bridged ol > li::before { color: var(--nude-ink); }

.bridged .timeline-marker { color: var(--nude-ink); border-color: var(--nude-ink); }

/* Une opacité posée sur du texte fabrique une couleur hors charte :
   #70645E à .72 donne #948A84, soit 3,21:1. On garde la nuance par la
   couleur, pas par la transparence. */
.bridged .payment-banner--hero__item--soon { opacity: 1; }
.bridged .payment-banner--hero__item--soon .payment-banner--hero__item-text > span { color: var(--muted); }

/* Suite de la passe du 27/09 : pictos porteurs de texte (« 23+ », « 5.0/5 ») */
.bridged .benefit-card__icon,
.bridged .answer-card__fact-icon { color: var(--nude-ink); }

/* Correctifs du 24/10/2026 — cadre du portrait sans largeur ; lien de crédit du pied de page */
@media (min-width: 900px) { .bridged .mission-image { width: 100%; } }
.footer-bottom span a { text-decoration: underline; text-underline-offset: 3px; }
