/* ==========================================================================
   Styles conformité : bannière cookies, panneau de préférences, pages légales.
   Volontairement autonome (n'altère pas le thème existant).
   ========================================================================== */

/* ---- Bannière cookies ---- */
/* Respecter l'attribut [hidden] : sans cette règle, display:flex ci-dessous
   rendrait la bannière/le panneau TOUJOURS visibles. C'est le JS qui pilote l'affichage. */
.cookie-banner[hidden], .cookie-prefs[hidden] { display: none !important; }
.cookie-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9999;
  max-width: 1100px; margin: 0 auto;
  background: #fff; color: #222; border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .25);
  padding: 1.25rem 1.5rem;
  display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between;
}
.cookie-banner__body { flex: 1 1 420px; }
.cookie-banner__title { font-size: 1.1rem; margin: 0 0 .35rem; font-weight: 700; }
.cookie-banner__text { margin: 0; font-size: .9rem; line-height: 1.5; }
.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---- Panneau de préférences ---- */
.cookie-prefs {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(0, 0, 0, .55);
  display: flex; align-items: center; justify-content: center; padding: 1rem;
}
.cookie-prefs__panel {
  background: #fff; color: #222; border-radius: 12px;
  max-width: 560px; width: 100%; max-height: 90vh; overflow: auto;
  padding: 1.5rem;
}
.cookie-prefs__panel h2 { font-size: 1.25rem; margin: 0 0 1rem; }
.cookie-cat { border-top: 1px solid #eee; padding: .85rem 0; }
.cookie-cat label { font-size: .98rem; display: flex; gap: .5rem; align-items: center; cursor: pointer; }
.cookie-cat p { margin: .35rem 0 0 1.6rem; font-size: .82rem; color: #555; }
.cookie-prefs__actions { display: flex; gap: .5rem; justify-content: flex-end; margin-top: 1.25rem; }

/* ---- Boutons ---- */
.btn-cc {
  border: 0; border-radius: 8px; padding: .6rem 1.1rem;
  font-size: .9rem; font-weight: 600; cursor: pointer; line-height: 1.2;
}
.btn-cc--primary { background: #f7b500; color: #1a1a1a; }
.btn-cc--primary:hover { filter: brightness(.95); }
.btn-cc--ghost { background: #f1f1f1; color: #333; }
.btn-cc--ghost:hover { background: #e6e6e6; }

/* Bouton "Gérer mes cookies" rendu comme un lien dans le footer */
.link-button {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: inherit; font: inherit; text-decoration: underline;
}

/* ---- Liens légaux du footer ---- */
.footer-legal { border-top: 1px solid rgba(255, 255, 255, .15); margin-top: 1.5rem; padding-top: 1rem; }
.footer-legal-links {
  list-style: none; display: flex; flex-wrap: wrap; gap: .35rem 1.1rem;
  padding: 0; margin: 0 0 .5rem; font-size: .85rem;
}
.footer-legal-links a, .footer-legal-links .link-button { color: inherit; opacity: .9; }
.footer-copy { font-size: .82rem; opacity: .75; margin: 0; }
.footer-credit { font-size: .8rem; opacity: .8; margin: .3rem 0 0; }
.footer-credit a { color: inherit; text-decoration: underline; }
.footer-credit a:hover { opacity: 1; }

/* ---- Pages légales (contenu) ---- */
.legal-page { padding: 2.5rem 0 3.5rem; }
.legal-page .container { max-width: 880px; }
.legal-page h1 { font-size: 2rem; margin-bottom: .35rem; }
.legal-page .legal-updated { color: #777; font-size: .9rem; margin-bottom: 2rem; }
.legal-page h2 { font-size: 1.35rem; margin: 2rem 0 .75rem; }
.legal-page h3 { font-size: 1.1rem; margin: 1.25rem 0 .5rem; }
.legal-page p, .legal-page li { line-height: 1.65; }
.legal-page table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .9rem; }
.legal-page th, .legal-page td { border: 1px solid #ddd; padding: .55rem .7rem; text-align: left; vertical-align: top; }
.legal-page th { background: #f6f6f6; }

/* Marqueur des informations à compléter (visible pour aider au remplissage) */
mark.todo { background: #fff3cd; color: #7a5b00; padding: 0 .25rem; border-radius: 3px; font-style: italic; }

/* Mention RGPD courte sous les formulaires */
.form-rgpd-notice { font-size: .82rem; color: #666; margin-top: .75rem; line-height: 1.5; }

/* Images dont la HAUTEUR est fixée en CSS : largeur auto pour préserver le ratio.
   (Les attributs width/height ajoutés ne servent qu'à réserver l'espace — anti-CLS —
   et ne doivent pas écraser l'image.) */
.logo img, .logo-f img, .img2 img,
.box1 img, .box2 img, .box4 img, ul.lang img { width: auto; }

@media (max-width: 575px) {
  .cookie-banner { padding: 1rem; }
  .cookie-banner__actions .btn-cc { flex: 1 1 auto; }
}

/* ---- Contact téléphone + WhatsApp (top bar) ---- */
.top-contact { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.top-contact a { display: inline-flex; align-items: center; gap: .35rem; }
.top-wa img { display: inline-block; vertical-align: middle; }
footer .whatsapp a { display: inline-flex; align-items: center; gap: .4rem; }

/* ---- Dock flottant : Nos tarifs + WhatsApp alignés (bas droite) ---- */
.float-dock {
  position: fixed; right: 20px; bottom: 16px; z-index: 9990;
  display: flex; align-items: center; gap: 12px;
}
.float-dock__tarifs {
  background: #A31621; color: #fff; border-radius: 55px;
  padding: 10px 26px; font-size: 18px; font-weight: 500; line-height: 1.2;
  text-decoration: none; box-shadow: 0 4px 14px rgba(0, 0, 0, .22);
  transition: background .3s ease;
}
.float-dock__tarifs:hover { background: #02182B; color: #fff; text-decoration: none; }
.float-dock__wa {
  width: 54px; height: 54px; border-radius: 50%; background: #25D366; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25); transition: transform .15s ease;
}
.float-dock__wa:hover { transform: scale(1.06); }
/* l'icône SVG est verte : on la passe en blanc pour le cercle vert */
.float-dock__wa img { filter: brightness(0) invert(1); }

/* ---- Bouton WhatsApp vert (hero, à côté du bouton tél rouge) ---- */
.hero-cta { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.button-wa {
  display: inline-flex; align-items: center; gap: .5rem;
  background: #25D366; color: #fff; border: 0; border-radius: 55px;
  padding: 15px 24px; font-size: 20px; font-weight: 500; line-height: 1.2;
  text-decoration: none; transition: filter .2s ease;
}
.button-wa:hover { filter: brightness(.95); color: #fff; text-decoration: none; }
.button-wa img { filter: brightness(0) invert(1); }
@media (max-width: 575px) {
  .button-wa { font-size: 16px; padding: 12px 18px; }
}

/* L'ancienne barre flottante "Nos tarifs" codée en dur dans les pages est
   remplacée par ce dock unique : on la masque pour éviter le doublon/superposition. */
.fixphone { display: none !important; }

@media (max-width: 575px) {
  .float-dock { right: 12px; bottom: 12px; gap: 8px; }
  .float-dock__tarifs { font-size: 15px; padding: 9px 18px; }
  .float-dock__wa { width: 48px; height: 48px; }
  .float-dock__wa img { width: 26px; height: 26px; }
}

/* ---- Section avis clients (slider statique) ---- */
.reviews-section { padding: 2.5rem 0 3rem; background: #fafafa; }
.reviews-section .reviews-title { text-align: center; margin-bottom: 1rem; }

.reviews-head {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: .4rem 1.4rem; text-align: center; margin-bottom: 1.75rem;
}
.reviews-head__title {
  font-family: Ubuntu, sans-serif; font-weight: bold; font-size: 1.2rem; color: #02182B;
  margin: 0; display: inline-flex; align-items: center; gap: .5rem;
}
.reviews-stars { display: inline-flex; gap: 2px; vertical-align: middle; }
.reviews-stars .star { width: 20px; height: 20px; fill: #fbbc04; }
.reviews-stars--sm .star { width: 15px; height: 15px; }
.reviews-head__meta { margin: 0; font-size: .95rem; color: #555; }
.reviews-head__meta strong { color: #02182B; }
.reviews-cta {
  display: inline-block; background: #A31621; color: #fff; border-radius: 55px;
  padding: 9px 22px; font-size: .95rem; font-weight: 500; text-decoration: none; transition: background .2s;
}
.reviews-cta:hover { background: #02182B; color: #fff; text-decoration: none; }

.review-card {
  background: #fff; border: 1px solid #eceff3; border-radius: 14px;
  padding: 1.25rem 1.35rem; width: 100%;
  box-shadow: 0 4px 18px rgba(2, 24, 43, .06);
}
.review-card__head { display: flex; align-items: center; gap: .7rem; margin-bottom: .7rem; }
.review-avatar {
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; color: #fff;
  font-weight: 700; font-size: 1.1rem; font-family: Ubuntu, sans-serif;
  display: flex; align-items: center; justify-content: center;
}
.review-id { min-width: 0; }
.review-name { margin: 0; font-weight: 600; color: #1d2733; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.review-date { margin: 0; font-size: .8rem; color: #8a93a2; }
.review-card__head .review-g { margin-left: auto; display: inline-flex; }
.review-card__head .review-g svg { width: 20px; height: 20px; }
.review-text { margin: .6rem 0 0; font-size: .95rem; line-height: 1.6; color: #444; }

/* ---- Badge avis Google flottant (bas-gauche) ---- */
.g-badge {
  position: fixed; left: 16px; bottom: 16px; z-index: 9980;
  display: inline-flex; align-items: center; gap: .5rem;
  background: #fff; border: 1px solid #e6e6e6; border-radius: 12px;
  padding: 7px 12px; box-shadow: 0 4px 14px rgba(0, 0, 0, .16);
  text-decoration: none; color: #1d2733;
}
.g-badge:hover { box-shadow: 0 6px 18px rgba(0, 0, 0, .22); text-decoration: none; color: #1d2733; }
.g-badge__g { display: inline-flex; flex: 0 0 auto; }
.g-badge__txt { display: flex; flex-direction: column; line-height: 1.1; }
.g-badge .reviews-stars .star { width: 12px; height: 12px; }
.g-badge__meta { font-size: .72rem; color: #555; margin-top: 1px; }
.g-badge__meta strong { color: #02182B; }
@media (max-width: 575px) {
  .g-badge { left: 12px; bottom: 12px; padding: 6px 10px; }
  .g-badge__meta { font-size: .68rem; }
}

/* Owl : cartes de hauteur égale + flèches/points aux couleurs du site */
.reviews-carousel .owl-stage { display: flex; }
.reviews-carousel .owl-item { display: flex; height: auto; }
.reviews-carousel .owl-dots { text-align: center; margin-top: 1rem; }
.reviews-carousel .owl-dots .owl-dot.active span { background: #A31621; }
.reviews-carousel .owl-nav button.owl-prev,
.reviews-carousel .owl-nav button.owl-next { font-size: 1.8rem; color: #A31621; line-height: 1; }

/* ==========================================================================
   Page « Nos navettes » : listes sans puces + encart tarifaire pleine largeur
   ========================================================================== */

/* Listes à puces retirées (rendu plus propre) */
.page-navettes ul { list-style: none; padding-left: 0; margin-left: 0; }
.page-navettes ul li { padding: .18rem 0; }
.page-navettes .box2 ul li,
.page-navettes .bg-blue ul li { line-height: 1.5; }

/* Encart tarifaire (pleine largeur) */
.tarif-card {
  width: 100%;
  background: #fff;
  border: 1px solid #e6ebf2;
  border-radius: 14px;
  box-shadow: 0 4px 18px rgba(2, 24, 43, .07);
  overflow: hidden;
}
.tarif-h2-sub { font-size: .65em; font-weight: 400; color: #8a93a2; }

.tarif-table { width: 100%; border-collapse: collapse; font-family: Roboto, sans-serif; }
.tarif-table thead th {
  background: #02182B; color: #fff;
  font-family: Ubuntu, sans-serif; font-weight: 700;
  padding: 14px 16px; text-align: center; font-size: .95rem; vertical-align: middle;
}
.tarif-table thead th:first-child { text-align: left; }
.tarif-table thead th span { display: block; font-weight: 400; font-size: .72rem; opacity: .8; margin-top: 2px; }

.tarif-table tbody th,
.tarif-table tbody td {
  padding: 13px 16px; border-top: 1px solid #eef1f4; text-align: center;
  font-size: .95rem; color: #1d2733; vertical-align: middle;
}
.tarif-table tbody th { text-align: left; font-weight: 600; }
.tarif-table tbody td { font-weight: 600; }
.tarif-table tbody tr:nth-child(even) { background: #fafbfc; }

.tarif-veh {
  display: block; font-family: Ubuntu, sans-serif; font-weight: 700;
  color: #A31621; text-transform: uppercase; letter-spacing: .02em;
}
.tarif-cap { display: block; font-size: .76rem; color: #8a93a2; font-weight: 400; }

.tarif-note {
  margin: 0; padding: 13px 18px; background: #fbfcfd; border-top: 1px solid #eef1f4;
  font-size: .88rem; color: #555; line-height: 1.5;
}
.tarif-link, .tarif-note a { color: #A31621; font-weight: 600; text-decoration: none; }
.tarif-link:hover { text-decoration: underline; }

/* Responsive : la table devient des blocs empilés et lisibles */
@media (max-width: 640px) {
  .tarif-table thead { display: none; }
  .tarif-table, .tarif-table tbody, .tarif-table tr,
  .tarif-table tbody th, .tarif-table tbody td { display: block; width: 100%; }
  .tarif-table tbody tr { border-top: 3px solid #02182B; padding: .35rem 0; background: #fff !important; }
  .tarif-table tbody th { background: #f6f8fa; border-top: 0; }
  .tarif-table tbody td { text-align: right; }
  .tarif-table tbody td::before {
    content: attr(data-label); float: left; color: #8a93a2; font-weight: 400; padding-right: 1rem;
  }
}
