/* Corrections ciblées de navigation, contraste et accessibilité. */
/* Avis fournis : texte intégral, sans hauteur fixe ni texte tronqué. */
.supplied-review { display: flex; flex-direction: column; gap: 1.25rem; flex: 0 0 88%; font: 400 1rem/1.65 Arial, sans-serif; }
.supplied-review blockquote { margin: 0; font: inherit; }
.supplied-review blockquote p { margin: 0; color: inherit; font: inherit; }
.supplied-review .review-author { display: grid; gap: .15rem; margin: auto 0 0; padding-top: 1rem; border-top: 1px solid #d9cdc4; color: inherit; font-size: 1rem; line-height: 1.5; }
.review-author strong, .review-author span { display: block; }
.review-row { padding: .5rem .25rem 1.25rem; scroll-snap-type: x mandatory; }
.review-row .supplied-review { scroll-snap-align: start; }
.contact-page > .contact { grid-template-areas: "copy" "form" "reviews"; grid-template-columns: minmax(0,1fr); align-items: start; }
.contact-page .contact-copy { grid-area: copy; }
.contact-page #contact-form { grid-area: form; }
.contact-reviews { grid-area: reviews; min-width: 0; }
.contact-review-list { display: grid; gap: 1rem; }
.contact-review-list .supplied-review { min-width: 0; color: #10221d; padding: 1.25rem; }
.contact-reviews-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; font-weight: 700; margin-bottom: 1rem; }
.contact-reviews-heading img { width: 28px; height: 28px; }
.contact-reviews h2 { margin-bottom: 1.25rem; }
.header .brand small { color: #46554e; }
@media (min-width: 760px) {
  .review-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-row .supplied-review { min-width: 0; }
}
@media (min-width: 1050px) {
  .review-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .contact-page > .contact { grid-template-areas: "copy form" "reviews form"; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-rows: auto 1fr; }
}
:root { --wa: #087a49; --focus-ink: #10221d; }
[hidden] { display: none !important; }
html { scroll-padding-top: 100px; scroll-padding-bottom: 110px; }
body { overflow-wrap: break-word; }
main, section, article, figure, form, .hero-copy, .contact-copy { min-width: 0; }
.skip {
  position: fixed; left: 1rem; top: .5rem; z-index: 1000;
  transform: translateY(-180%); background: #fff; color: #10221d;
  padding: .75rem 1rem; font-size: 1rem; border-radius: 6px;
}
.skip:focus { left: 1rem; top: .5rem; transform: none; }
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible,
[tabindex="0"]:focus-visible {
  outline: 3px solid var(--focus-ink); outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff;
}
a { text-underline-offset: .2em; }
main p a, footer a, .footer a { text-decoration: underline; }
.btn, .button, .header-call, .call, .menu-toggle { font-weight: 700; }
.btn, .button { text-align: center; max-width: 100%; min-height: 48px; }
.btn:hover, .header-call:hover { transform: none; }
.text-link { color: #765015; border-bottom: 0; text-decoration: underline; }
.dark .text-link, .cta-panel .text-link { color: #f3d59a; }
.btn-whatsapp, .mobile-bar a:last-child { background: #087a49; color: #fff; }
.button.wa img, .sticky-wa img { filter: brightness(0); }
.review-disclaimer, .micro, .form-note { color: #45534d; font-size: 1rem; line-height: 1.6; }
.contact-copy .eyebrow, .contact-copy .legal-note { color: #e0e9e3; }
.legal-note { font-size: 1rem; line-height: 1.6; }
.contact-page form h2 { color: #10221d; }
footer .brand small { color: #d5dfd7; font-size: .875rem; }
footer .footer-links, .footer .footer-links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; grid-column: 1 / -1; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.type-system .review-stars { color: #95620e; }
.type-system .stars { color: #82343f; }
.google-review cite, .review cite { font-size: 1rem; line-height: 1.5; }
.google-score span { font-size: .875rem; }
.review-row, .google-reviews { scroll-padding-inline: .5rem; }
.review { border-radius: 24px; padding: 1.5rem; }
.faq summary { display: block; position: relative; padding-right: 1.75rem; min-height: 44px; }
.faq summary::after { float: none; position: absolute; right: 0; top: 0; }
.faq details p { font-size: 1rem; line-height: 1.65; }
.faq .text-link { display: inline; }
.ticker div { animation: none; width: auto; white-space: normal; line-height: 1.8; padding: .15rem 5vw; }
.ticker { white-space: normal; }
.menu-toggle { display: none; min-width: 60px; min-height: 44px; font: 700 .875rem/1.2 Arial, sans-serif; cursor: pointer; border: 1px solid currentColor; border-radius: 8px; background: transparent; color: inherit; padding: .6rem; }
.header nav.campaign-nav { display: flex; }
.header nav a, .nav nav a { min-height: 44px; display: inline-flex; align-items: center; }
.header .header-call { min-width: 72px; justify-content: center; }
.nav { background: rgba(38, 13, 18, .9); }
.hero:after { background: linear-gradient(180deg, rgba(34,8,13,.72), rgba(34,8,13,.94)); }
.related-card > div { width: 100%; background: rgba(38,13,18,.88); }
.related-card:hover { text-decoration: underline; }
.related-card:focus-visible { outline-offset: -6px; }
.hero-copy .trust-line { line-height: 1.6; }
.hero-actions { flex-wrap: wrap; }
.campaign-hero img, .route-card img { object-position: center; }
.route-card .tag { color: #745719; font-size: .8125rem; }
.form-note { margin-bottom: .5rem; }
.field label { font-size: 1rem; }
.field input, .field select, .field textarea { border-color: #687a6d; }
.field [aria-invalid="true"] { border: 2px solid #982828; }
.field-error { color: #982828; font-size: 1rem; line-height: 1.5; margin: .4rem 0 0; }
.consent { align-items: flex-start; font-size: 1rem; line-height: 1.5; min-height: 44px; cursor: pointer; }
.consent input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: .15rem; }
.form-success { font-size: 1rem; line-height: 1.5; margin-top: 1rem; }
.form-success[data-state="error"] { color: #982828; }
button[disabled] { cursor: wait; opacity: .8; }
footer { padding-bottom: max(7rem, env(safe-area-inset-bottom)); }
.mobile-bar { padding-bottom: max(.6rem, env(safe-area-inset-bottom)); }
.mobile-bar a { min-height: 48px; min-width: 0; justify-content: center; }
.sticky a { min-width: 0; }
@media (max-width: 1049px) {
  .header, .nav { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: .4rem .6rem; height: auto; min-height: 72px; padding: .6rem 4vw; }
  .header > .brand, .nav > .seal { grid-column: 1; grid-row: 1; }
  .header > .header-call, .nav > .call { grid-column: 2; grid-row: 1; white-space: nowrap; }
  .header .menu-toggle, .nav .menu-toggle { grid-column: 3; grid-row: 1; }
  .js .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .header nav.campaign-nav, .nav nav {
    position: static; grid-column: 1 / -1; grid-row: 2;
    display: flex; flex-wrap: wrap; height: auto; overflow: visible;
    gap: .25rem 1rem; width: 100%; padding: .25rem 0; border: 0;
    white-space: normal; font-size: .9375rem; background: transparent;
  }
  .js .header nav.campaign-nav:not(.is-open), .js .nav nav:not(.is-open) { display: none; }
  .campaign-hero, .contact-page { margin-top: 0; }
  .header .brand { letter-spacing: .08em; gap: .45rem; }
  .header .brand small { font-size: .7rem; }
  .header-call { padding: .6rem .75rem; }
  .header { background: #fffdf8; }
  .hero-copy { padding-top: 9rem; }
  .mobile-bar { display: grid; grid-template-columns: 1fr 1fr; }
  .mobile-bar a { padding: .7rem .5rem; }
}
@media (max-width: 759px) {
  .section { padding-block: 3.5rem; }
  .intro, .journey, .seo-focus, .reviews, .faq, .related { padding-top: 4rem; padding-bottom: 4rem; }
  .route-card { margin-left: 1.75rem; padding: 1.1rem; }
  .route:before { left: 8px; }
  .route-card:before { left: -1.85rem; }
  .contact-page .contact { padding-top: 3rem; padding-bottom: 3rem; }
  .contact-page form { padding: 1.25rem; }
  .campaign-hero { padding-top: 2rem; }
  .campaign-pills span { font-size: .8125rem; }
  .context-grid article, .audience-grid article, .reassurance-grid article { padding: 1.25rem; }
  .thanks-card { padding: 1.5rem; }
}
@media (min-width: 1050px) {
  .header nav.campaign-nav, .nav nav { display: flex; position: static; flex-wrap: wrap; }
  .mobile-bar { display: none; }
  footer { padding-bottom: 3rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
