/* ------------------------------------------------------------------
   Module « Transferts hôtels » — classes utilitaires.

   Les pages du module ont été écrites avec les classes de Bootstrap.
   Plutôt que de charger tout Bootstrap (et d'imposer une seconde identité
   visuelle au site), on redéfinit ici le petit sous-ensemble réellement
   employé, avec les couleurs et les rayons du site.
   Tout est contenu dans .tpm : aucun effet sur le reste du site.
------------------------------------------------------------------ */

.tpm{--tp-dark:var(--nuit,#0d1b2f);--tp-accent:var(--or,#c9a227);--tp-soft:var(--ivoire,#faf8f3);
  --tp-bord:var(--bord,#e6e8ec);--tp-gris:var(--gris,#6e7682)}

/* ---------------------------------------------------- mise en page */
.tpm .container{max-width:1180px;margin:0 auto;padding:0 20px}
.tpm .row{display:flex;flex-wrap:wrap;margin:0 -8px}
.tpm [class*="col-"]{padding:0 8px;width:100%;box-sizing:border-box}
.tpm .g-2{margin-bottom:-8px}  .tpm .g-2>[class*="col-"]{margin-bottom:8px}
.tpm .g-3{margin-bottom:-14px} .tpm .g-3>[class*="col-"]{margin-bottom:14px}
.tpm .g-4{margin-bottom:-20px} .tpm .g-4>[class*="col-"]{margin-bottom:20px}
.tpm .col-6{width:50%}
@media(min-width:768px){
  .tpm .col-md-3{width:25%} .tpm .col-md-4{width:33.3333%}
  .tpm .col-md-6{width:50%} .tpm .col-md-8{width:66.6667%} .tpm .col-md-12{width:100%}
}
@media(min-width:992px){
  .tpm .col-lg-3{width:25%} .tpm .col-lg-4{width:33.3333%}
  .tpm .col-lg-6{width:50%} .tpm .col-lg-8{width:66.6667%}
}

.tpm .d-flex{display:flex}
.tpm .d-block{display:block}
.tpm .d-none{display:none}
@media(min-width:768px){ .tpm .d-md-inline{display:inline} .tpm .d-md-block{display:block} }
.tpm .flex-wrap{flex-wrap:wrap}
.tpm .flex-column{flex-direction:column}
.tpm .align-items-center{align-items:center}
.tpm .align-items-start{align-items:flex-start}
.tpm .justify-content-between{justify-content:space-between}
.tpm .justify-content-center{justify-content:center}
.tpm .gap-1{gap:4px} .tpm .gap-2{gap:8px} .tpm .gap-3{gap:14px} .tpm .gap-4{gap:20px}
.tpm .h-100{height:100%}
.tpm .w-100{width:100%}
.tpm .text-center{text-align:center}
.tpm .text-end{text-align:right}
.tpm .ms-auto{margin-left:auto}

/* marges et espacements — pas de pas 0 à 5 complet, seulement ce qui sert */
.tpm .mt-2{margin-top:8px}   .tpm .mt-3{margin-top:14px}
.tpm .mt-4{margin-top:22px}  .tpm .mt-5{margin-top:40px}
.tpm .mb-0{margin-bottom:0}  .tpm .mb-2{margin-bottom:8px}
.tpm .mb-3{margin-bottom:14px} .tpm .mb-4{margin-bottom:22px} .tpm .mb-5{margin-bottom:40px}
.tpm .my-4{margin:22px 0}    .tpm .my-5{margin:40px 0}
.tpm .p-2{padding:8px}  .tpm .p-3{padding:14px}  .tpm .p-4{padding:22px}
.tpm .py-1{padding:4px 0}  .tpm .py-3{padding:14px 0}
.tpm .py-4{padding:22px 0} .tpm .py-5{padding:40px 0}
.tpm .px-3{padding-left:14px;padding-right:14px}
@media(min-width:992px){ .tpm .p-lg-5{padding:40px} }

/* ---------------------------------------------------- typographie */
.tpm .h2,.tpm h2{font-size:1.5rem;line-height:1.25;margin:0 0 12px;color:var(--tp-dark)}
.tpm .h3{font-size:1.25rem;line-height:1.3;margin:0 0 10px;color:var(--tp-dark);font-weight:600}
.tpm .h4{font-size:1.06rem;line-height:1.35;margin:0 0 8px;color:var(--tp-dark);font-weight:600}
.tpm .h5{font-size:.98rem;margin:0 0 6px;font-weight:600}
.tpm .small{font-size:.84rem}
.tpm .fw-semibold{font-weight:600}
.tpm .fw-bold{font-weight:700}
.tpm .text-muted{color:var(--tp-gris)}
.tpm .text-decoration-none{text-decoration:none}
.tpm .lead{font-size:1.04rem;line-height:1.65;color:var(--tp-gris)}

/* ---------------------------------------------------- composants */
.tpm .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 20px;border-radius:10px;border:1px solid transparent;font-weight:600;
  font-size:.92rem;text-decoration:none;cursor:pointer;transition:.18s}
.tpm .btn-sm{padding:7px 14px;font-size:.84rem}
.tpm .btn-tp,.tpm .btn-or{background:var(--tp-accent);border-color:var(--tp-accent);color:var(--tp-dark)}
.tpm .btn-tp:hover,.tpm .btn-or:hover{filter:brightness(.94)}
.tpm .btn-outline,.tpm .btn-outline-dark{background:#fff;border:1px solid var(--tp-bord);color:var(--tp-dark)}
.tpm .btn-outline:hover,.tpm .btn-outline-dark:hover{border-color:var(--tp-accent)}
.tpm .btn-outline:hover{border-color:var(--tp-accent)}

.tpm .tp-badge{display:inline-block;background:var(--tp-accent);color:var(--tp-dark);
  border-radius:30px;padding:4px 13px;font-size:.78rem;font-weight:600}
.tpm .tp-badge-nuit{background:var(--tp-dark);color:#fff;letter-spacing:.06em}
.tpm .tp-hero{background:var(--tp-soft);border:1px solid var(--tp-bord);border-radius:18px;overflow:hidden}
.tpm .tp-hero img{width:100%;height:100%;min-height:240px;object-fit:cover;display:block}
.tpm .tp-fact{background:#fff;border:1px solid var(--tp-bord);border-radius:14px;
  padding:16px;text-align:center;height:100%;box-sizing:border-box}
.tpm .tp-fact .v{font-size:1.32rem;font-weight:600;color:var(--tp-dark);display:block}
.tpm .tp-fact .l{font-size:.78rem;color:var(--tp-gris);display:block;margin-top:2px}
.tpm .tp-card{display:block;border:1px solid var(--tp-bord);border-radius:14px;
  background:#fff;transition:.2s;text-decoration:none;color:inherit}
.tpm .tp-card:hover{box-shadow:0 8px 24px rgba(13,27,47,.09);border-color:var(--tp-accent);
  transform:translateY(-2px)}
.tpm .tp-map{border:0;width:100%;height:340px;border-radius:14px;display:block}

.tpm .breadcrumb{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;
  margin:0 0 18px;font-size:.84rem;color:var(--tp-gris)}
.tpm .breadcrumb-item+.breadcrumb-item::before{content:"›";margin-right:6px;color:var(--tp-bord)}
.tpm .breadcrumb a{color:var(--tp-gris);text-decoration:none}
.tpm .breadcrumb a:hover{color:var(--tp-accent)}

/* FAQ : <details> natifs, même rendu que le reste du site */
.tpm details{border:1px solid var(--tp-bord);border-radius:12px;background:#fff;
  padding:14px 18px;margin-bottom:10px}
.tpm details[open]{border-color:var(--tp-accent)}
.tpm details summary{cursor:pointer;font-weight:600;color:var(--tp-dark);list-style:none}
.tpm details summary::-webkit-details-marker{display:none}
.tpm details summary::after{content:"+";float:right;color:var(--tp-accent);font-weight:400;font-size:1.2rem;line-height:1}
.tpm details[open] summary::after{content:"−"}
.tpm details>div,.tpm details>p{margin-top:10px;color:var(--tp-gris);line-height:1.65;font-size:.92rem}

.tpm table{width:100%;border-collapse:collapse}
.tpm table th,.tpm table td{padding:10px 8px;border-bottom:1px solid var(--tp-bord);
  text-align:left;font-size:.9rem}
.tpm table th{font-weight:600;color:var(--tp-dark)}

.tpm ul.liste{margin:12px 0;padding-left:18px}
.tpm ul.liste li{margin-bottom:7px;line-height:1.6}

@media(max-width:560px){
  .tpm .col-6{width:100%}
  .tpm .tp-hero img{min-height:180px}
}
