/* Corrections de lisibilité et de parcours — Tech-Atout. */
body { font-size:18px; line-height:1.7; }
p, li, label { overflow-wrap:break-word; }
.header nav > a, .header nav .button.small { font-size:1rem; }
.header nav { font-size:1rem; }
.header nav > a { min-height:48px; }
.header nav [aria-current="page"] { text-decoration:underline; text-decoration-thickness:2px; }
.header .logo small { display:none; }
.eyebrow { font-size:1rem; letter-spacing:.04em; }
.ref-hero .pill { font-size:1rem; }
.ref-hero h1 { font-size:clamp(2.25rem,4.1vw,3.9rem); line-height:1.15; }
.ref-hero .lead, .business-hero .lead { font-size:1.125rem; }
.ref-hero .actions .button, .button, .header .button.small { font-size:1.0625rem; }
.hero-location, .hero-small, .quick-card p, .quick-more, .everyday-grid p,
.facts span, .price-terms, .fine, .form-privacy, .field-error, .form-status,
.service-mode .group-note, .service-mode-note, .service-duration,
.service-option-description, .service-availability .fine, .availability-direct,
.availability-details, .availability-details summary, .availability-details p,
.service-availability .change-choice, .services-progress, .services-progress li:last-child,
.rdv-phone-help strong, .rdv-phone-help span, .photo-card small,
footer, .footer-bottom, .article-meta { font-size:1.0625rem; }
.field, label { font-size:1.125rem; }
.field { border-color:#6c8495; min-height:56px; }
.field:focus { outline:3px solid #007e65; outline-offset:3px; }
.form-card .field-error { color:#a02118; }
.photo-credit { display:table; margin-left:auto; font-size:1rem; background:#05234c; color:#fff; padding:4px 8px; border-radius:5px; text-shadow:none; }
.photo-card { background:#fff; }
footer a:focus-visible, footer .button:focus-visible { outline-color:#fff; }
.mobile-actions a { font-size:1.0625rem; min-height:56px; }
.audience-section { padding:36px 0; background:#edf7f1; }
.audience-section h2 { font-size:clamp(1.6rem,3vw,2.25rem); }
.audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.audience-card { display:block; background:#fff; color:#405367; border:1px solid #6c8495; border-radius:16px; padding:26px; text-decoration:none; }
.audience-card h3 { font-size:1.4rem; }
.audience-card p { margin-bottom:14px; }
.audience-card span { color:#00634e; font-weight:700; text-decoration:underline; }
.audience-card:focus-visible { outline:3px solid #05234c; outline-offset:4px; }
.remote-explainer { background:#edf5f7; }
.remote-explainer h2 { font-size:clamp(1.8rem,3vw,2.6rem); }
.remote-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; padding-left:26px; }
.remote-steps li { padding-left:4px; }
.remote-steps h3 { font-size:1.25rem; margin-top:4px; }
.remote-steps p { font-size:1.125rem; }
.service-availability { background:#fff; border:2px solid #007e65; border-radius:18px; padding:28px; margin:12px auto 36px; max-width:900px; }
.service-availability h2 { font-size:1.6rem; }
.service-availability .selection-summary { padding:18px; border-radius:10px; font-size:1.125rem; font-weight:700; margin-bottom:22px; }
.service-availability #cal-continue { font-size:1.125rem; min-height:56px; }
.service-availability .availability-details { background:#f5fbf7; padding:18px; border:1px solid #6c8495; border-radius:10px; }
.service-option .service-option-bottom { flex-wrap:wrap; gap:16px; }
.service-option .service-select { max-width:none; width:100%; flex:1 1 100%; font-size:1.0625rem; min-height:56px; }
.service-option .service-option-price { font-size:1.9rem; }
.mode-badge, .service-option-price span { font-size:1rem; }
.booking-page .wrap { width:min(1220px,calc(100% - 64px)); }
.booking-page .service-availability.wrap { width:min(900px,calc(100% - 64px)); }
.footer-grid h2 { font-family:inherit; font-size:1.125rem; }
.menu-toggle { min-height:48px; font:inherit; }
@media (max-width:1400px) { .header-inner { flex-direction:column; } }
@media (max-width:900px) { .remote-steps { grid-template-columns:1fr; gap:14px; } }
@media (max-width:800px) {
  .header .header-inner, .booking-header .header-inner { flex-direction:row; flex-wrap:wrap; justify-content:space-between; gap:12px; }
  .header .logo, .booking-header .logo { margin:0; }
  .header #navigation { position:static; width:100%; padding:12px 0; background:#fff; border:0; display:flex!important; flex-direction:column; gap:6px; align-items:stretch; }
  .js .header #navigation { display:none!important; }
  .js .header #navigation.open { display:flex!important; }
  .js .header .menu-toggle { display:inline-flex; align-items:center; border:1px solid #6c8495; background:#fff; color:#05234c; border-radius:8px; padding:10px 16px; }
  .header #navigation > a { font-size:1.125rem; padding:10px 12px; }
  .header #navigation .header-phone { flex-basis:auto; text-align:left; }
  body { padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
  html { scroll-padding-top:24px; scroll-padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
  a,button,input,textarea,select,summary { scroll-margin-block:24px calc(108px + env(safe-area-inset-bottom)); }
  .service-columns, .audience-grid { grid-template-columns:1fr; }
  .mobile-actions { padding:10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .mobile-actions a { font-size:1rem; line-height:1.4; }
}
@media (max-width:650px) {
  .wrap, .booking-page .wrap { width:calc(100% - 36px); }
  .booking-page .service-availability.wrap { width:calc(100% - 36px); padding:22px 18px; }
  .quick-grid, .everyday-grid { grid-template-columns:1fr; }
  .quick-card h2, .everyday-grid h4 { font-size:1.25rem; }
  .quick-card p, .everyday-grid p { font-size:1.125rem; }
  .service-option-top { display:block; }
  .service-option-top h3 { max-width:none; margin-bottom:8px; }
  .service-duration { white-space:normal; }
  .ref-hero-picture { height:500px; }
  .photo-card { padding:16px; gap:12px; }
  .photo-card svg { width:26px; }
  .facts { grid-template-columns:1fr; }
  .facts > div { border:0; padding-right:0; }
  .service-availability .availability-details { padding:14px; }
}
@media (max-width:360px) { .logo { gap:8px; } .header .brand-symbol { width:44px; } .header .logo { font-size:1.25rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
/* Les colonnes doivent pouvoir rétrécir lorsque le texte est agrandi ou espacé. */
.ref-hero-grid > *, .seniors-grid > *, .imad-grid > *, .contact-grid > *, .footer-grid > *, .business-hero-grid > *, .travel-grid > *, .business-how > *, .end-call > * { min-width:0; }
h1,h2,h3,h4,p,li,a,button,summary { overflow-wrap:anywhere; }
.pill { max-width:100%; }
.pill svg { flex:none; }
@media(max-width:650px) { .seniors-grid,.imad-grid,.ref-hero-grid,.contact-grid { grid-template-columns:minmax(0,1fr); } }
.mobile-actions { background:#fff; }

/* Mentions proches du prix : petites, contrastées et redimensionnables. */
.price-extra, .ref-amount .price-extra, .price-list .price-extra, .service-option-price .price-extra, .mode-badge .price-extra { display:block; font-size:.875rem; font-weight:400; line-height:1.45; color:#405367; letter-spacing:normal; white-space:normal; margin-top:5px; }
.service-option .service-option-price { white-space:normal; }
.price-list li { gap:16px; align-items:flex-start; }
.price-list li > span { flex:0 0 auto; }
.price-list li > strong { max-width:70%; text-align:right; }
.facts strong .price-extra { color:#eaf5f4; font-family:inherit; }
.mode-badge { white-space:normal; max-width:190px; text-align:right; }
.service-mode-heading { align-items:flex-start; flex-wrap:wrap; }
.payment-required { border-left:4px solid #007e65; background:#edf7f1; color:#405367; padding:14px 16px; border-radius:0 10px 10px 0; font-size:1.0625rem; line-height:1.6; }
.payment-required strong { color:#05234c; }
.service-option .service-option-price { width:100%; max-width:100%; min-width:0; flex:0 1 auto; }
.service-mode-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,155px); }
.service-mode-heading > div { min-width:0; }
.mode-badge { border-radius:10px; }
@media(max-width:370px) { .service-mode-heading { grid-template-columns:minmax(0,1fr); } .mode-badge { max-width:none; text-align:left; } }
