:root {
  --ui-ink: #13271b;
  --ui-green: #124d2b;
  --ui-green-2: #1d6c3d;
  --ui-sage: #b9d4bc;
  --ui-mint: #e6f0e5;
  --ui-paper: #f7f8f2;
  --ui-card: #fcfdf9;
  --ui-gold: #e9b949;
  --ui-blue: #3d79c5;
  --ui-orange: #d1812d;
  --ui-line: rgba(18, 77, 43, .14);
  --ui-muted: #617367;
  --ui-shadow: 0 18px 44px rgba(18, 58, 34, .10);
}

* { -webkit-tap-highlight-color: transparent; }
body {
  background: #e9efe7 !important;
  color: var(--ui-ink) !important;
}
.phone-wrap {
  width: 100%;
  max-width: 1180px !important;
  min-height: 100vh;
  margin: 0 auto;
  background: var(--ui-paper) !important;
  box-shadow: 0 0 70px rgba(18, 58, 34, .10) !important;
}

/* En-tête utile, sans décoration superflue. */
nav {
  min-height: 78px;
  padding: 10px clamp(20px, 5vw, 62px) !important;
  border-bottom: 1px solid var(--ui-line) !important;
  background: rgba(248, 250, 245, .96) !important;
  backdrop-filter: blur(16px) !important;
}
nav .logo-wrap::after { display: none !important; }
nav .logo-wrap img { height: 56px !important; width: auto !important; }
nav .city { color: var(--ui-green) !important; font-size: .6rem; letter-spacing: .14em; }
nav .since-badge { font-size: .6rem; }
nav > a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--ui-green);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 9px 22px rgba(18, 77, 43, .2);
}
nav > a::before { content: "☎"; font-size: .9rem; }
nav > a::after {
  content: "06 49 35 57 44";
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .02em;
}
nav > a img { display: none !important; }

/* Le produit : réserver maintenant ou plus tard. */
.modern-intro { display: none !important; }
.hero {
  position: relative;
  isolation: isolate;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: auto !important;
  padding: 38px clamp(18px, 5vw, 58px) 52px !important;
  background:
    radial-gradient(circle at 74% 34%, rgba(87, 158, 104, .24), transparent 34%),
    linear-gradient(135deg, #edf5ea 0%, #dbeadc 100%) !important;
  border-bottom: 1px solid var(--ui-line);
  text-align: center !important;
  overflow: hidden;
}
.hero > * {
  position: relative;
  z-index: 1;
}
.hero::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: -38%;
  bottom: -38%;
  left: 0;
  width: clamp(105px, 14vw, 180px);
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.025) 20%,
    rgba(255,255,255,.16) 49%,
    rgba(255,255,255,.055) 72%,
    transparent 100%
  );
  filter: blur(2px);
  opacity: 0;
  transform: translate3d(-260px, 0, 0) rotate(13deg);
  transform-origin: center;
  animation: go-hero-light-sweep 7.2s cubic-bezier(.35, 0, .2, 1) infinite;
}
@keyframes go-hero-light-sweep {
  0%, 16% {
    opacity: 0;
    transform: translate3d(-260px, 0, 0) rotate(13deg);
  }
  22% { opacity: .8; }
  74% {
    opacity: .72;
    transform: translate3d(calc(100vw + 260px), 0, 0) rotate(13deg);
  }
  80%, 100% {
    opacity: 0;
    transform: translate3d(calc(100vw + 260px), 0, 0) rotate(13deg);
  }
}
.hero .tags-row {
  order: 1;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 740px;
}
.hero .tag {
  padding: 6px 12px;
  border: 1px solid rgba(18, 77, 43, .12);
  background: rgba(255,255,255,.66);
  color: var(--ui-green);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .09em;
}
.hero .btns {
  order: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  width: 100%;
  max-width: 740px;
}
.hero .btn {
  position: relative;
  min-height: 260px;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 5px;
  padding: 22px !important;
  overflow: hidden;
  border: 1px solid transparent !important;
  border-radius: 28px !important;
  text-align: left;
  box-shadow: var(--ui-shadow) !important;
}
.hero .btn.now,
.hero .btn.plan {
  background: var(--ui-green) !important;
  border-color: rgba(255,255,255,.12) !important;
}
.hero .btn-lbl {
  max-width: calc(100% - 42px);
  padding: 0 !important;
  color: #fff;
  font-size: 1.08rem;
  line-height: 1.15;
}
.hero .btn.plan .btn-lbl { color: #fff !important; }
.hero .btn-sub {
  max-width: calc(100% - 44px);
  padding: 0 !important;
  color: rgba(255,255,255,.7);
  font-size: .72rem;
  line-height: 1.35;
}
.hero .btn.plan .btn-sub { color: rgba(255,255,255,.7) !important; }
.hero .btn::after {
  content: "→";
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: 900;
}
.hero .btn.now::after,
.hero .btn.plan::after { color: var(--ui-green); background: #fff; }
.hero .car,
.hero .btn.plan > div:first-child {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  bottom: auto !important;
  left: 16px !important;
  width: auto !important;
  height: 154px !important;
}
.hero .car img {
  width: 100% !important;
  height: 138px !important;
  object-fit: contain !important;
}
.hero .road { bottom: 16px; }
.hero .sd { bottom: 18px; }
.hero .sd:nth-child(2) { bottom: 21px; }
.hero .sd:nth-child(3) { bottom: 15px; }
.hero .btn.plan svg { width: 158px; height: 158px; }
.hero .hb { top: 16px; right: 16px; }

.booking-journey {
  order: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: min(100%, 740px);
  padding-top: 2px;
}
.booking-journey span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--ui-green);
  font-size: .67rem;
  font-weight: 800;
}
.booking-journey b {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--ui-green);
  color: #fff;
  font-size: .65rem;
}
.booking-journey small { font: inherit; white-space: nowrap; }
.booking-journey i { color: rgba(18,77,43,.42); font-style: normal; }

/* Raccourcis compacts vers les trajets les plus recherchés. */
.travel-drawer {
  order: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 740px;
}
.travel-drawer-handle {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  width: clamp(220px, 48%, 286px);
  min-height: 42px;
  padding: 7px 10px 8px 14px;
  border: 1px solid rgba(217,138,31,.48);
  border-radius: 12px 12px 21px 21px;
  background: linear-gradient(180deg, rgba(248,251,245,.96), rgba(224,240,218,.96));
  color: var(--ui-green);
  font: inherit;
  font-size: .8rem;
  font-weight: 850;
  letter-spacing: .01em;
  box-shadow: 0 7px 17px rgba(52,91,52,.11), inset 0 1px 0 rgba(255,255,255,.92);
  cursor: pointer;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.travel-drawer-handle:hover,
.travel-drawer-handle:focus-visible {
  border-color: rgba(205,119,20,.78);
  background: linear-gradient(180deg, #fff, #dcefd5);
  outline: none;
  box-shadow: 0 10px 22px rgba(52,91,52,.15), inset 0 1px 0 #fff;
}
.travel-drawer-handle:active { transform: translateY(1px); }
.travel-drawer-dots {
  display: inline-flex;
  gap: 3px;
}
.travel-drawer-dots i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #d98a1f;
  box-shadow: 0 1px 2px rgba(118,71,11,.22);
}
.travel-drawer-chevron {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: rgba(18,77,43,.09);
  font-size: 1rem;
  line-height: 1;
  transition: transform .36s cubic-bezier(.2,.8,.2,1), background .2s;
}
.travel-drawer.is-open .travel-drawer-chevron {
  transform: rotate(180deg);
  background: rgba(217,138,31,.16);
}
.travel-shortcuts {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
  max-height: 0;
  margin-top: 0;
  padding: 0 2px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-10px);
  transition:
    max-height .4s cubic-bezier(.2,.8,.2,1),
    margin-top .4s cubic-bezier(.2,.8,.2,1),
    opacity .25s ease,
    transform .4s cubic-bezier(.2,.8,.2,1);
}
.travel-drawer.is-open .travel-shortcuts {
  max-height: 110px;
  margin-top: 12px;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.travel-shortcut {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 68px;
  padding: 8px 13px;
  border: 1.5px solid rgba(217,138,31,.58);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(245,250,240,.98), rgba(220,239,213,.96));
  color: var(--ui-green);
  font: inherit;
  text-align: left;
  box-shadow: 0 7px 17px rgba(62,100,53,.1), inset 0 1px 0 rgba(255,255,255,.88);
  cursor: pointer;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.travel-shortcut:last-child {
  grid-template-columns: minmax(0, 1fr) auto;
}
.travel-shortcut:hover,
.travel-shortcut:focus-visible {
  border-color: rgba(205,119,20,.82);
  background: linear-gradient(145deg, #fbfdf9, #d7ebcf);
  outline: none;
  box-shadow: 0 10px 22px rgba(62,100,53,.14), inset 0 0 0 1px rgba(217,138,31,.18);
}
.travel-shortcut:active { transform: scale(.985); }
.travel-shortcut-icon {
  position: relative;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  overflow: visible;
  border-radius: 12px;
  background: radial-gradient(circle at 30% 24%, #2b7848, var(--ui-green) 72%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18), 0 5px 11px rgba(18,58,34,.2);
}
.travel-shortcut-icon img {
  position: relative;
  z-index: 1;
  width: 60px;
  height: 60px;
  object-fit: contain;
  transform: translate(-1px, -3px) scale(1.01);
  filter: drop-shadow(0 6px 6px rgba(5,29,15,.35));
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
}
.travel-shortcut:hover .travel-shortcut-icon img { transform: translate(-1px, -5px) scale(1.05); }
.travel-shortcut strong,
.travel-shortcut small { display: block; }
.travel-shortcut-copy {
  min-width: 0;
}
.travel-shortcut[data-travel-hub="stations"] .travel-shortcut-copy { text-align: right; }
.travel-shortcut strong {
  color: var(--ui-green);
  font-size: .9rem;
  line-height: 1.15;
  letter-spacing: .01em;
}
.travel-shortcut small {
  margin-top: 2px;
  overflow: hidden;
  color: rgba(18,77,43,.72);
  font-size: .6rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.travel-shortcut[data-travel-hub="stations"] .travel-shortcut-icon img {
  width: 70px;
  height: 70px;
  transform: translate(-8px, -3px) scale(1.01);
}
.travel-shortcut[data-travel-hub="stations"]:hover .travel-shortcut-icon img {
  transform: translate(-10px, -5px) scale(1.04);
}

/* Services et destinations, dans une seule logique de cartes. */
.phone-wrap > .section-tarifs {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  max-width: 1080px !important;
  margin: 28px auto 48px !important;
  padding: 46px 36px !important;
  border: 1px solid rgba(18,77,43,.08);
  border-radius: 32px;
  background: #e7efe4;
}
.section-tarifs::before { display: none !important; }
.section-tarifs > .lbl,
.service-group-title { grid-column: 1 / -1; }
.section-tarifs > .lbl {
  margin-bottom: 2px !important;
  color: var(--ui-green) !important;
  font-size: .68rem !important;
  font-weight: 900 !important;
}
.service-group-title {
  margin: 6px 0 2px;
  color: var(--ui-ink);
  font-size: .98rem;
  font-weight: 900;
}
.service-group-title.destination-title {
  margin-top: 20px;
  padding-top: 24px;
  border-top: 1px solid var(--ui-line);
}
.section-tarifs .tr-sep { display: none; }
.section-tarifs .tr,
.section-tarifs .tc-dest {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-width: 0;
  min-height: 126px;
  margin: 0 !important;
  padding: 17px !important;
  border: 1px solid var(--ui-line) !important;
  border-radius: 22px !important;
  background: linear-gradient(145deg, #fff 0%, #f8fbf5 100%) !important;
  box-shadow: 0 4px 0 rgba(18,77,43,.055), 0 11px 25px rgba(18,58,34,.075), inset 0 1px 0 rgba(255,255,255,.96) !important;
  transform: none !important;
  transition: transform .22s cubic-bezier(.2,.8,.2,1), border-color .22s, box-shadow .22s !important;
}
.section-tarifs .tr::after,
.section-tarifs .tc-dest::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: -58px;
  right: -46px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.9), rgba(255,255,255,0) 70%);
  pointer-events: none;
}
.section-tarifs .tr[data-kind="service"] { grid-column: span 4; }
.section-tarifs .tr[data-kind="service"].service-wide { grid-column: span 6; }
.section-tarifs .tr[data-kind="destination"] {
  grid-column: span 6;
  min-height: 102px;
  padding: 15px 17px !important;
  background: linear-gradient(145deg, #fff 0%, #eef5eb 100%) !important;
}
.section-tarifs .tr:hover,
.section-tarifs .tc-dest:hover {
  border-color: rgba(18,77,43,.34) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 7px 0 rgba(18,77,43,.055), 0 17px 30px rgba(18,58,34,.12), inset 0 1px 0 rgba(255,255,255,.98) !important;
}
.section-tarifs .tr.feat {
  overflow: visible;
  border-color: transparent !important;
  background: linear-gradient(145deg, #0f4024 0%, #1b6739 100%) !important;
  box-shadow: 0 5px 0 rgba(5,36,18,.16), 0 15px 30px rgba(12,58,26,.22), inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.section-tarifs .tr.feat::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 0 42%, rgba(255,255,255,.2) 49%, rgba(255,255,255,.05) 54%, transparent 61%);
  background-position: 170% 0;
  background-size: 250% 100%;
  pointer-events: none;
  animation: go-card-shine 3.8s ease-in-out infinite;
}
.section-tarifs .tr.feat::after { display: none; }
.section-tarifs .tr.feat > *:not(.feat-badge) { position: relative; z-index: 2; }
.section-tarifs .tr.feat .feat-badge {
  position: absolute !important;
  z-index: 4;
  top: -10px;
  box-shadow: 0 3px 9px rgba(90,69,0,.28);
}
@keyframes go-card-shine {
  0%, 30% { background-position: 170% 0; opacity: 0; }
  38% { opacity: .9; }
  68% { background-position: -70% 0; opacity: .8; }
  76%, 100% { background-position: -70% 0; opacity: 0; }
}
.section-tarifs .tr[data-service="Livraison médicaments"] { background: linear-gradient(145deg,#fff 0%,#edf5fc 100%) !important; }
.section-tarifs .tr[data-service="Livrer un colis"] { background: linear-gradient(145deg,#fff 0%,#f7f0e7 100%) !important; }
.section-tarifs .tr[data-service="Déposer à l'école"] { background: linear-gradient(145deg,#fff 0%,#fbf4df 100%) !important; }
.section-tarifs .tr[data-service="Cure thermale"] { background: linear-gradient(145deg,#fff 0%,#e7f4ef 100%) !important; }
.section-tarifs .tr[data-service="Transport médical longue distance"] { background: linear-gradient(145deg,#fff 0%,#edf3fb 100%) !important; }
.section-tarifs .tr[data-service="Pasino de Saint-Amand"] { background: linear-gradient(145deg,#fff 0%,#f6ede6 100%) !important; }
.section-tarifs .tl { gap: 12px; }
.section-tarifs .ti {
  width: 62px;
  height: 62px;
  min-width: 62px;
  border: 0;
  border-radius: 17px;
  background: #e6efe4;
  box-shadow: 0 4px 0 rgba(18,77,43,.08), 0 8px 15px rgba(18,58,34,.1), inset 0 1px 0 rgba(255,255,255,.9) !important;
  transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s;
}
.section-tarifs .tr:hover .ti { transform: translateY(-3px) rotate(-1.5deg); }
.section-tarifs .tr[data-kind="destination"] .ti {
  width: 50px;
  height: 50px;
  min-width: 50px;
  border-radius: 14px;
}
.section-tarifs .ti img {
  width: 68px !important;
  height: 68px !important;
  max-width: 68px;
  max-height: 68px;
  object-fit: contain;
}
.section-tarifs .tr[data-kind="destination"] .ti img {
  width: 54px !important;
  height: 54px !important;
}
.section-tarifs .tr[data-service="Livraison médicaments"] .ti { background: #e2edf8; }
.section-tarifs .tr[data-service="Livrer un colis"] .ti { background: #f1e5d5; }
.section-tarifs .tr[data-service="Déposer à l'école"] .ti { background: #f5e8ca; }
.section-tarifs .tr[data-service="Déposer à l'école"] .ti img {
  width: 58px !important;
  height: 58px !important;
  max-width: 58px;
  max-height: 58px;
}
.section-tarifs .tr[data-service="Cure thermale"] .ti { background: #d9eee5; }
.section-tarifs .tr[data-service="Transport médical longue distance"] .ti { background: #dfe9f6; }
.section-tarifs .tr[data-service="Pasino de Saint-Amand"] .ti { background: #eee2d6 !important; }
.section-tarifs .tr[data-kind="destination"] .ti { background: #e0ecdf; }
.section-tarifs .tn { font-size: .91rem; font-weight: 800; }
.section-tarifs .td { margin-top: 4px; font-size: .69rem; line-height: 1.42; }
.section-tarifs .tp {
  color: var(--ui-green);
  font-family: "DM Sans", sans-serif;
  font-size: 1rem;
  font-weight: 900;
}
.section-tarifs .tr[data-kind="destination"] .tp {
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(18,77,43,.08);
}
.section-tarifs .tb {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  box-shadow: 0 4px 9px rgba(18,77,43,.18);
  transition: transform .2s, box-shadow .2s;
}
.section-tarifs .tr:hover .tb { transform: scale(1.1); box-shadow: 0 6px 13px rgba(18,77,43,.23); }
.section-tarifs .tc-dest {
  grid-column: 1 / -1;
  min-height: 98px;
  background: linear-gradient(135deg,#edf5e9 0%,#fff7dc 100%) !important;
}
.section-tarifs .tc-dest-title { color: var(--ui-ink); font-family: "DM Sans",sans-serif; font-size: .9rem; font-weight: 900; }
.section-tarifs .tc-dest-sub { color: var(--ui-muted); }
.section-tarifs .tc-dest-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: #dcebdc;
  box-shadow: none;
}
.section-tarifs .tc-dest-arrow { color: var(--ui-green); }

.list-toggle {
  display: block;
  grid-column: 1 / -1;
  width: 100%;
  min-height: 46px;
  padding: 11px 16px;
  border: 1px solid rgba(18,77,43,.18);
  border-radius: 16px;
  background: linear-gradient(135deg,#d7e7d6,#eaf2e5);
  color: var(--ui-green);
  font: inherit;
  font-size: .8rem;
  font-weight: 900;
  cursor: pointer;
}
.list-toggle:hover { background: linear-gradient(135deg,#ccdfca,#e4efdf); transform: translateY(-1px); }
.section-tarifs .extra-destination { display: none !important; }
.section-tarifs.show-all-destinations .extra-destination { display: flex !important; }

/* Confiance : une personne, trois preuves, rien de plus. */
.phone-wrap > .section-about {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 24px 58px;
  max-width: 1180px !important;
  padding: 72px 62px !important;
  background: linear-gradient(135deg, #0f4326, #1b6739);
  color: #fff;
}
.section-about .ph {
  grid-row: 1 / span 4;
  width: 100%;
  margin: 0;
  aspect-ratio: 16 / 11;
  border: 0;
  border-radius: 26px;
  box-shadow: none;
}
.section-about .ph img { object-position: center; }
.section-about .sl {
  margin: 0;
  color: #fff;
  font: 700 clamp(2rem, 4vw, 3.7rem)/1.05 "DM Sans", sans-serif;
  letter-spacing: -.045em;
}
.section-about .sl span { color: #a9dab4; }
.section-about .desc {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: .9rem;
  line-height: 1.65;
}
.section-about .services-grid { display: none !important; }
.compact-trust { display: flex; flex-wrap: wrap; gap: 8px; }
.compact-trust span {
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  color: #fff;
  font-size: .69rem;
  font-weight: 900;
}

/* Avis : trois suffisent, les autres restent accessibles. */
.section-reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  width: min(1080px, calc(100vw - 64px));
  max-width: 1080px !important;
  padding: 66px 0 !important;
}
.section-reviews > .lbl,
.section-reviews > h2 { grid-column: 1 / -1; }
.section-reviews > h2 {
  margin: 0 0 12px;
  color: var(--ui-ink);
  font: 800 clamp(2.1rem, 4vw, 3.3rem)/1 "DM Sans", sans-serif;
  letter-spacing: -.045em;
}
.section-reviews .rc {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 21px;
  border: 1px solid var(--ui-line);
  border-radius: 22px;
  background: linear-gradient(145deg,#fff 0%,#f8fbf5 100%);
  box-shadow: 0 4px 0 rgba(18,77,43,.045), 0 12px 24px rgba(18,58,34,.065);
  transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s, border-color .22s;
}
.section-reviews .rc::before {
  content: "“";
  position: absolute;
  top: -14px;
  right: 14px;
  color: rgba(233,185,73,.19);
  font: 900 5.5rem/1 Georgia,serif;
  pointer-events: none;
}
.section-reviews .rc:hover {
  transform: translateY(-4px);
  border-color: rgba(18,77,43,.26);
  box-shadow: 0 7px 0 rgba(18,77,43,.045), 0 18px 32px rgba(18,58,34,.11);
}
.section-reviews .rc .rs,
.section-reviews .rc .rt,
.section-reviews .rc .ra { position: relative; z-index: 1; }
.section-reviews .extra-review { display: none; }
.section-reviews.show-all-reviews .extra-review { display: block; }
.section-reviews .review-toggle { grid-column: 1 / -1; }
.section-reviews .gb {
  grid-column: 1 / -1;
  border: 0;
  background: #e4eee2;
  box-shadow: none;
}

/* Recrutement ramené à une ligne secondaire. */
.section-recruitment {
  margin: 0 36px 48px !important;
  padding: 20px 24px !important;
  border-radius: 22px !important;
}
.section-recruitment > div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px 18px;
  max-width: 920px !important;
}
.section-recruitment > div > div:first-child { margin: 0 !important; font-size: 1.85rem !important; }
.section-recruitment > div > div:nth-child(2) { margin: 0 !important; font-size: 1.15rem !important; text-align: left; }
.section-recruitment > div > div:nth-child(3) { display: none; }
.section-recruitment button { grid-column: 3; grid-row: 1 / span 2; padding: 11px 18px !important; }

footer {
  padding: 34px 24px !important;
  border-top: 1px solid var(--ui-line) !important;
  background: #e2eae0 !important;
}

/* Les formulaires deviennent une interface cohérente. */
.ov {
  width: 100vw !important;
  max-width: none !important;
  left: 50% !important;
  right: auto !important;
  align-items: center !important;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: background .3s, opacity .25s, visibility 0s linear .25s;
  transform: translateX(-50%) !important;
}
.ov.open {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}
.sh {
  width: min(620px, 100%) !important;
  max-width: 620px !important;
  max-height: 88vh;
  margin: 0 auto;
  padding-bottom: 26px;
  border-radius: 28px !important;
  transform: translateY(20px) scale(.985) !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
}
.ov.open .sh { transform: translateY(0) scale(1) !important; }
.ph-sh {
  max-width: 620px;
  left: 50% !important;
  right: auto !important;
  border-radius: 28px 28px 0 0 !important;
  transform: translate(-50%, 100%) !important;
}
.ph-sh.open { transform: translate(-50%, 0) !important; }
.shd { padding: 15px 20px 13px; }
.sb { padding: 18px 20px 0; }
.fg input,
.fg select,
.fg textarea,
#ov-ecole input,
#ov-ecole select,
#ov-ecole textarea {
  min-height: 48px;
  border: 1px solid rgba(18,77,43,.16) !important;
  border-radius: 13px !important;
  background: #f4f7f1 !important;
}
.sbtn {
  min-height: 50px;
  border-radius: 15px;
  background: var(--ui-green) !important;
}
.section-tarifs .thermal-icon {
  position: relative;
  overflow: visible !important;
  font-size: 2rem;
  line-height: 1;
}
.section-tarifs .thermal-icon img {
  width: 70px !important;
  height: 70px !important;
  max-width: 70px;
  max-height: 70px;
  transform: translateY(-3px);
  filter: drop-shadow(0 6px 6px rgba(18,58,34,.28));
}
.thermal-card-action { display: flex; align-items: center; flex-shrink: 0; }
.section-tarifs .thermal-card .tb { background: #28705c !important; }
.section-tarifs .pasino-icon {
  position: relative;
  overflow: visible !important;
  background: linear-gradient(145deg,#f6ead9,#fff8ed) !important;
}
.section-tarifs .pasino-icon img {
  width: 76px !important;
  height: 76px !important;
  max-width: 76px;
  max-height: 76px;
  object-fit: contain;
  transform: translateY(-4px);
  filter: drop-shadow(0 6px 6px rgba(76,43,22,.26));
}
.pasino-card-action { display: flex; align-items: center; flex-shrink: 0; }
.section-tarifs .pasino-card .tb { background: #7a4f35 !important; }

/* Choix clair pour les courses du complexe Pasino et de son hôtel. */
#pasino-specific-fields[hidden],
#travel-reference-field[hidden] {
  display: none !important;
}
.pasino-booking-note {
  margin: -4px 0 14px;
  padding: 10px 12px;
  border: 1px solid rgba(122,79,53,.16);
  border-radius: 12px;
  background: linear-gradient(135deg,#fff8ed,#f8efe4);
  color: #6e513f;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.45;
}
#sd-dest-input.pasino-fixed-destination {
  border-color: rgba(122,79,53,.2) !important;
  background: #f7f2eb !important;
  color: #634b3c;
  cursor: default;
}

/* Parcours scolaire progressif. */
.school-enhanced .sh {
  max-height: 94vh;
  border-top: 4px solid #d97706;
  background: linear-gradient(180deg, #fffdf8 0, #fff 185px);
}
.school-enhanced .shd {
  position: sticky;
  top: 0;
  z-index: 4;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(146,64,14,.1);
  backdrop-filter: blur(14px);
}
.school-enhanced .school-title-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-right: 10px;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff4d8, #fed7aa);
  box-shadow: inset 0 0 0 1px rgba(217,119,6,.2), 0 6px 14px rgba(146,64,14,.13);
  font-size: 1.55rem !important;
}
.school-enhanced .school-title-icon img {
  display: block;
  width: 46px;
  height: 46px;
  max-width: none;
  object-fit: contain;
}
.school-enhanced .sht { color: #713f12; letter-spacing: .055em; }
.school-enhanced .stg {
  margin-bottom: 10px;
  color: #8a4b15;
  font-weight: 800;
}
.school-safety-notice {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin: 0 0 13px !important;
  padding: 11px 13px !important;
  border: 1px solid #fed7aa !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #fff8eb, #fffdf8) !important;
  color: #713f12;
  font-size: .76rem;
  line-height: 1.45;
}
.school-safety-notice-icon {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 50%;
  background: #d97706;
  color: #fff;
  font-weight: 900;
}
.school-wizard-head {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 4px 2px 12px;
}
.school-wizard-head::before {
  content: "";
  position: absolute;
  top: 16px;
  left: 16.5%;
  right: 16.5%;
  height: 2px;
  background: #eadfd4;
}
.school-wizard-step {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 5px;
  color: #94867a;
  font-size: .69rem;
  font-weight: 850;
}
.school-wizard-step span {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  border: 2px solid #eadfd4;
  border-radius: 50%;
  background: #fff;
  color: #8b7e72;
  font-size: .75rem;
  transition: .2s ease;
}
.school-wizard-step.active { color: #9a4f0b; }
.school-wizard-step.active span {
  border-color: #d97706;
  background: #d97706;
  color: #fff;
  box-shadow: 0 5px 12px rgba(217,119,6,.24);
}
.school-wizard-step.complete { color: #286a43; }
.school-wizard-step.complete span {
  border-color: #2f7a50;
  background: #edf8f1;
  color: #286a43;
}
.school-wizard-step.complete span::before { content: "✓"; }
.school-wizard-step.complete span { font-size: 0; }
.school-wizard-step.complete span::before { font-size: .82rem; }
.school-form-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 17px;
  padding: 9px 11px;
  border-radius: 12px;
  background: #f4f7f3;
  color: #566259;
  font-size: .7rem;
  line-height: 1.45;
}
.school-form-note > span {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  border-radius: 50%;
  background: #286a43;
  color: #fff;
  font-size: .67rem;
  font-weight: 900;
}
.school-step:not(.active-school-step) { display: none !important; }
.school-enhanced .ec-lbl,
.school-enhanced .fg > label {
  margin-bottom: 7px;
  color: #594a3e !important;
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: none;
}
.school-enhanced .ec-lbl span:last-child { color: #594a3e !important; }
.school-enhanced .ec-lbl-icon {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #e3a15a !important;
}
.school-required-mark { color: #b45309; }
.school-enhanced input,
.school-enhanced select,
.school-enhanced textarea {
  width: 100%;
  min-height: 49px;
  box-sizing: border-box;
  border: 1.5px solid #e6ddd4 !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #2e352f;
  font: inherit;
  font-size: .88rem !important;
  box-shadow: 0 3px 10px rgba(82,59,37,.035);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.school-enhanced input:focus,
.school-enhanced select:focus,
.school-enhanced textarea:focus {
  outline: 0;
  border-color: #d97706 !important;
  box-shadow: 0 0 0 4px rgba(217,119,6,.12);
}
.school-enhanced .school-field-error {
  border-color: #c2410c !important;
  box-shadow: 0 0 0 4px rgba(194,65,12,.1) !important;
}
.school-enhanced button[id^="ec-s-"],
.school-enhanced button[id^="ec-r-"],
.school-enhanced button[id^="ec-parent-"],
.school-enhanced button[id^="ec-acc-"] {
  min-height: 47px;
  border-width: 1.5px !important;
  border-color: #e1a76d !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #8a4b15 !important;
  box-shadow: 0 3px 10px rgba(82,59,37,.045);
}
.school-enhanced button[id^="ec-s-"][aria-pressed="true"],
.school-enhanced button[id^="ec-r-"][aria-pressed="true"],
.school-enhanced button[id^="ec-parent-"][aria-pressed="true"],
.school-enhanced button[id^="ec-acc-"][aria-pressed="true"] {
  border-color: #bd650f !important;
  background: linear-gradient(135deg, #d97706, #b95f0b) !important;
  color: #fff !important;
  box-shadow: 0 6px 15px rgba(180,83,9,.2);
}
.school-safety-fields {
  margin-bottom: 15px;
  padding: 14px;
  border: 1px solid #dbe9df;
  border-radius: 17px;
  background: linear-gradient(145deg, #f3faf5, #fbfdfb);
}
.school-section-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  color: #285f3e;
}
.school-section-heading > span {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  border-radius: 10px;
  background: #2f7a50;
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
}
.school-section-heading strong { display: block; font-size: .82rem; }
.school-section-heading small { display: block; margin-top: 2px; color: #64776a; font-size: .66rem; font-weight: 500; }
.school-safety-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.school-safety-grid .fg { margin-bottom: 0; }
.school-enhanced #ec-enfant-block {
  margin-bottom: 15px;
  padding: 14px;
  border: 1px solid #eadfd4;
  border-radius: 17px;
  background: #fffaf5;
}
.school-wizard-actions {
  display: flex;
  gap: 9px;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px solid #eee6de;
}
.school-wizard-actions button {
  flex: 1;
  min-height: 48px;
  border-radius: 14px;
  font: inherit;
  font-size: .82rem;
  font-weight: 900;
  cursor: pointer;
}
.school-back { border: 1px solid #d9ded8; background: #f3f5f2; color: #355b44; }
.school-next { border: 0; background: linear-gradient(135deg, #d97706, #bd650f); color: #fff; box-shadow: 0 6px 15px rgba(180,83,9,.2); }
.school-submit {
  min-height: 52px !important;
  margin-top: 10px;
  background: linear-gradient(135deg, #d97706, #ad5308) !important;
  box-shadow: 0 8px 20px rgba(180,83,9,.24);
}
.school-form-status {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff7f7;
  color: #9f2d1c;
  font-size: .76rem;
  font-weight: 750;
}
.school-form-status[hidden] { display: none !important; }
@media (max-width: 520px) {
  .school-enhanced .sh { max-height: 96vh; border-radius: 24px 24px 0 0 !important; }
  .school-enhanced .sb { padding: 14px 15px 8px; }
  .school-enhanced .sht { font-size: .98rem; }
  .school-safety-grid { grid-template-columns: 1fr; }
  .school-enhanced button[id^="ec-s-"],
  .school-enhanced button[id^="ec-r-"] { padding: 11px 12px !important; font-size: .79rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  .school-wizard-step span,
  .school-enhanced input,
  .school-enhanced select,
  .school-enhanced textarea { transition: none; }
}

/* Choix rapide d'un aéroport ou d'une gare. */
.travel-hub-title-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: radial-gradient(circle at 30% 24%, #2b7848, var(--ui-green) 72%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18), 0 6px 14px rgba(18,58,34,.22);
}
.travel-hub-title-icon img {
  position: relative;
  z-index: 1;
  width: 62px;
  height: 62px;
  object-fit: contain;
  transform: translate(-1px, -3px);
  filter: drop-shadow(0 7px 7px rgba(5,29,15,.4));
}
.travel-hub-title-icon img[src*="icon-station-3d.png"] {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px;
  transform: translate(-66%, -50%);
}
.travel-hub-list {
  display: grid;
  gap: 9px;
  padding-bottom: 8px;
}
.travel-hub-choice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 66px;
  padding: 12px 14px;
  border: 1px solid var(--ui-line);
  border-radius: 15px;
  background: #f4f7f1;
  color: var(--ui-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .18s, border-color .18s, background .18s;
}
.travel-hub-choice:hover {
  transform: translateY(-1px);
  border-color: rgba(18,77,43,.32);
  background: #edf4ea;
}
.travel-hub-choice-text strong,
.travel-hub-choice-text small { display: block; }
.travel-hub-choice-text strong { font-size: .86rem; }
.travel-hub-choice-text small { margin-top: 4px; color: var(--ui-muted); font-size: .69rem; }
.travel-hub-choice-action {
  flex-shrink: 0;
  color: var(--ui-green);
  font-size: .85rem;
  font-weight: 900;
  white-space: nowrap;
}
.travel-hub-choice.is-custom { border-style: dashed; background: #fff; }

/* Demande courte et clairement séparée du transport médical conventionné. */
.thermal-title-icon { font-size: 1.35rem; }
.thermal-private-note {
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid rgba(40,112,92,.18);
  border-radius: 12px;
  background: #edf7f2;
  color: #356354;
  font-size: .72rem;
  line-height: 1.5;
}
.thermal-choice-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.thermal-choice {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid var(--ui-line);
  border-radius: 13px;
  background: #f4f7f1;
  color: var(--ui-ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.thermal-choice strong { font-size: .82rem; }
.thermal-choice span { color: var(--ui-muted); font-size: .68rem; }
.thermal-choice.is-selected {
  border-color: #28705c;
  background: #dceee6;
  box-shadow: 0 0 0 2px rgba(40,112,92,.11);
}
.thermal-recurring {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.thermal-recurring[hidden] { display: none; }
.thermal-sheet textarea {
  width: 100%;
  min-height: 76px;
  padding: 12px 14px;
  box-sizing: border-box;
  resize: vertical;
  font: inherit;
}
.optional-label { color: var(--ui-muted); font-weight: 500; text-transform: none; }
.thermal-confirm {
  margin-top: 12px;
  padding: 13px;
  border-radius: 13px;
  background: #dceee6;
  color: var(--ui-green);
  text-align: center;
  font-size: .84rem;
  font-weight: 800;
  line-height: 1.5;
}
.thermal-confirm[hidden] { display: none; }
.thermal-confirm span { font-size: .74rem; font-weight: 600; }

@media (max-width: 820px) {
  body { background: var(--ui-paper) !important; }
  .phone-wrap { max-width: 520px !important; box-shadow: none !important; }
  nav { min-height: 62px; padding: 6px 12px !important; }
  nav .logo-wrap img { height: 44px !important; }
  nav .city,
  nav .since-badge { font-size: .55rem; }
  nav > a { gap: 5px; padding: 8px 10px; white-space: nowrap; }
  nav > a::before { font-size: .76rem; }
  nav > a::after { font-size: .68rem; letter-spacing: 0; }

  .hero { gap: 14px !important; padding: 24px 14px 32px !important; }
  .hero .tags-row { flex-direction: column; align-items: center; }
  .hero .btns { gap: 11px; }
  .hero .btn { min-height: 232px; padding: 17px 54px 17px 17px !important; border-radius: 24px !important; }
  .hero .btn-lbl,
  .hero .btn-sub { max-width: 100%; }
  .hero .btn-lbl { font-size: 1rem; }
  .hero .btn::after { right: 14px; bottom: 15px; width: 29px; height: 29px; }
  .hero .car,
  .hero .btn.plan > div:first-child {
    top: 15px !important;
    right: 9px !important;
    left: 9px !important;
    height: 136px !important;
  }
  .hero .car img { height: 118px !important; }
  .hero .btn.plan svg { width: 146px; height: 146px; }
  .booking-journey { gap: 5px; }
  .booking-journey span { gap: 4px; font-size: .58rem; }
  .booking-journey b { width: 21px; height: 21px; font-size: .58rem; }
  .booking-journey i { font-size: .7rem; }
  .travel-drawer-handle { width: min(74%, 250px); min-height: 40px; font-size: .75rem; }
  .travel-drawer-dots i { width: 4px; height: 4px; }
  .travel-shortcuts { gap: 9px; padding: 0 2px; }
  .travel-shortcut { min-height: 62px; padding: 6px 9px; gap: 7px; border-radius: 16px; }
  .travel-shortcut:last-child { grid-template-columns: minmax(0,1fr) auto; }
  .travel-shortcut-icon { width: 40px; height: 40px; border-radius: 11px; }
  .travel-shortcut-icon img { width: 54px; height: 54px; }
  .travel-shortcut strong { font-size: .82rem; }
  .travel-shortcut small { display: none; }
  .travel-shortcut[data-travel-hub="stations"] .travel-shortcut-icon img {
    width: 63px;
    height: 63px;
    transform: translate(-8px, -2px) scale(1.01);
  }

  .phone-wrap > .section-tarifs {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 22px 10px 36px !important;
    padding: 34px 10px !important;
    border-radius: 26px;
  }
  .section-tarifs > *,
  .section-tarifs .tr[data-kind],
  .section-tarifs .tr[data-kind].service-wide,
  .section-tarifs .tc-dest { grid-column: 1 !important; }
  .section-tarifs .tr,
  .section-tarifs .tc-dest { min-height: 120px; padding: 15px !important; }
  .section-tarifs .tr[data-kind="destination"] { min-height: 94px; }
  .section-tarifs .ti { width: 66px; height: 66px; min-width: 66px; }
  .section-tarifs .ti img { width: 72px !important; height: 72px !important; max-width: 72px; max-height: 72px; }
  .section-tarifs .tr[data-service="Déposer à l'école"] .ti img {
    width: 60px !important;
    height: 60px !important;
    max-width: 60px;
    max-height: 60px;
  }
  .section-tarifs .thermal-icon img { width: 74px !important; height: 74px !important; max-width: 74px; max-height: 74px; }

  .phone-wrap > .section-about {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 42px 18px !important;
  }
  .section-about .ph { order: 1; aspect-ratio: 16 / 11; }
  .section-about .sl { order: 2; font-size: 2rem; text-align: center; }
  .section-about .desc { order: 3; text-align: center; }
  .compact-trust { order: 4; justify-content: center; }

  .section-reviews {
    grid-template-columns: 1fr;
    width: 100%;
    padding: 48px 18px !important;
  }
  .section-reviews .gb { grid-column: 1; }

  .section-recruitment { margin: 0 12px 38px !important; }
  .section-recruitment > div { grid-template-columns: auto 1fr; }
  .section-recruitment > div > div:nth-child(2) { font-size: 1rem !important; }
  .section-recruitment button { grid-column: 1 / -1; grid-row: auto; width: 100%; }

  .thermal-recurring { grid-template-columns: 1fr; gap: 0; }

  .ov { align-items: flex-end !important; padding: 0; }
  .sh {
    width: 100% !important;
    max-width: 520px !important;
    max-height: 94vh;
    border-radius: 26px 26px 0 0 !important;
    transform: translateY(100%) !important;
  }
  .ov.open .sh { transform: translateY(0) !important; }
  .ph-sh { width: 100%; max-width: 520px; }
}

@media (max-width: 350px) {
  nav .logo-wrap img { height: 40px !important; }
  nav > a::after { font-size: .61rem; }
  .hero .btn-lbl { font-size: .92rem; }
  .travel-drawer-handle { width: min(86%, 230px); padding-left: 11px; font-size: .7rem; }
  .travel-shortcut { grid-template-columns: auto minmax(0,1fr); gap: 5px; padding: 5px 6px; }
  .travel-shortcut:last-child { grid-template-columns: minmax(0,1fr) auto; }
  .travel-shortcut-icon { width: 36px; height: 36px; }
  .travel-shortcut-icon img { width: 49px; height: 49px; }
  .travel-shortcut[data-travel-hub="stations"] .travel-shortcut-icon img {
    width: 57px;
    height: 57px;
    transform: translate(-7px, -2px) scale(1.01);
  }
  .travel-shortcut strong { font-size: .75rem; }
  .section-tarifs .tl { gap: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Informations essentielles de capacité, sans alourdir la réservation. */
.transport-details,
.medical-passenger-details {
  margin: 4px 0 16px;
  padding: 15px;
  border: 1px solid rgba(12,58,26,.14);
  border-radius: 16px;
  background: linear-gradient(145deg, #f7fbf8, #edf5ef);
}
.transport-details[hidden],
#travel-specific-fields[hidden],
#travel-return-fields[hidden] { display: none !important; }
.transport-details-title {
  margin-bottom: 12px;
  color: #0c3a1a;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.transport-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.transport-details-grid .fg { margin-bottom: 10px !important; }
.transport-capacity-note {
  margin-top: 2px;
  padding: 9px 11px;
  border-radius: 11px;
  background: rgba(12,58,26,.07);
  color: #365c41;
  font-size: .68rem;
  font-weight: 650;
  line-height: 1.5;
}
.transport-capacity-note.needs-larger-vehicle {
  background: #fff7ed;
  color: #9a3412;
  box-shadow: inset 0 0 0 1px rgba(234,88,12,.18);
}
.passenger-solution[hidden] { display: none !important; }
.passenger-solution small {
  display: block;
  margin-top: 6px;
  color: #6b5a3d;
  font-size: .66rem;
  line-height: 1.45;
}
.transport-capacity-note.allows-two-runs {
  background: #eff8f1;
  color: #18562a;
  box-shadow: inset 0 0 0 1px rgba(24,86,42,.16);
}
.optional-label {
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  opacity: .7;
}
.medical-passenger-details {
  border-color: rgba(59,130,246,.22);
  background: linear-gradient(145deg, #f8fbff, #eff6ff);
}

@media (max-width: 420px) {
  .transport-details,
  .medical-passenger-details { padding: 13px; }
  .transport-details-grid { grid-template-columns: 1fr; gap: 0; }
}

/* Parcours dédié à la livraison de colis. */
.parcel-overlay .parcel-sheet {
  width: min(620px, 100%) !important;
  max-height: 94vh;
  border-top: 4px solid #b76527;
  background: linear-gradient(180deg, #fffaf5 0, #fff 190px);
}
.parcel-header {
  position: sticky;
  top: 0;
  z-index: 5;
  background: rgba(255,255,255,.95);
  border-bottom: 1px solid rgba(122,69,31,.11);
  backdrop-filter: blur(14px);
}
.parcel-title-icon {
  display: grid;
  place-items: center;
  width: 43px;
  height: 43px;
  margin-right: 10px;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff4e7, #f0d4b7);
  box-shadow: inset 0 0 0 1px rgba(183,101,39,.18), 0 6px 14px rgba(104,60,27,.13);
}
.parcel-title-icon img { width: 56px; height: 56px; object-fit: contain; }
.parcel-header .sht { color: #6f3b19; letter-spacing: .055em; }
.parcel-subtitle {
  margin-bottom: 11px;
  color: #86502c;
  font-weight: 800;
}
.parcel-notice {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid #ead4bf;
  border-radius: 14px;
  background: linear-gradient(135deg, #fff8f0, #fffdf9);
  color: #704525;
  font-size: .74rem;
  line-height: 1.45;
}
.parcel-notice > span {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  border-radius: 50%;
  background: #b76527;
  color: #fff;
  font-size: .68rem;
  font-weight: 900;
}
.parcel-wizard-head {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 4px 2px 18px;
}
.parcel-wizard-head::before {
  content: "";
  position: absolute;
  top: 16px;
  left: 16.5%;
  right: 16.5%;
  height: 2px;
  background: #eadfd5;
}
.parcel-wizard-step {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 5px;
  color: #94867a;
  font-size: .69rem;
  font-weight: 850;
}
.parcel-wizard-step span {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  border: 2px solid #eadfd5;
  border-radius: 50%;
  background: #fff;
  color: #8b7e72;
  font-size: .75rem;
}
.parcel-wizard-step.active { color: #914d1c; }
.parcel-wizard-step.active span {
  border-color: #b76527;
  background: #b76527;
  color: #fff;
  box-shadow: 0 5px 12px rgba(183,101,39,.22);
}
.parcel-wizard-step.complete { color: #286a43; }
.parcel-wizard-step.complete span {
  border-color: #2f7a50;
  background: #edf8f1;
  color: transparent;
}
.parcel-wizard-step.complete span::before { content: "✓"; color: #286a43; }
.parcel-step:not(.active) { display: none !important; }
.parcel-step-back {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin: -3px 0 14px;
  padding: 0 13px;
  border: 1px solid #dccbbb;
  border-radius: 12px;
  background: #fffaf5;
  color: #794822;
  font: inherit;
  font-size: .72rem;
  font-weight: 850;
  cursor: pointer;
}
.parcel-step-back:active { transform: translateY(1px); background: #f7ede3; }
.parcel-body .fg > label {
  display: block;
  margin-bottom: 7px;
  color: #594a3e;
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .025em;
  text-transform: none;
}
.parcel-body .fg > label b { color: #a94f17; }
.parcel-body .fg > label span { color: #8b8178; font-weight: 500; }
.parcel-body input,
.parcel-body select,
.parcel-body textarea {
  width: 100%;
  min-height: 49px;
  box-sizing: border-box;
  border: 1.5px solid #e4d9ce !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #2f352f;
  font: inherit;
  font-size: .87rem !important;
  box-shadow: 0 3px 10px rgba(82,59,37,.04);
}
.parcel-body textarea { min-height: 82px; padding: 12px 13px; resize: vertical; }
.parcel-body input:focus,
.parcel-body select:focus,
.parcel-body textarea:focus {
  outline: 0;
  border-color: #b76527 !important;
  box-shadow: 0 0 0 4px rgba(183,101,39,.12);
}
.parcel-body .parcel-field-error {
  border-color: #c2410c !important;
  box-shadow: 0 0 0 4px rgba(194,65,12,.1) !important;
}
.parcel-type-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 16px;
  padding: 5px;
  border-radius: 16px;
  background: #f5eee7;
}
.parcel-type-switch button {
  min-height: 43px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: #78553a;
  font: inherit;
  font-size: .8rem;
  font-weight: 850;
  cursor: pointer;
}
.parcel-type-switch button[aria-pressed="true"] {
  border-color: #a95720;
  background: linear-gradient(135deg, #bd6a2c, #9d4f1b);
  color: #fff;
  box-shadow: 0 5px 13px rgba(157,79,27,.2);
}
.parcel-company-field[hidden] { display: none !important; }
.parcel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.parcel-grid .fg { min-width: 0; }
.parcel-today {
  margin-top: 6px;
  padding: 6px 11px;
  border: 1px solid #d8c4b1;
  border-radius: 10px;
  background: #fff8f1;
  color: #7b461f;
  font: inherit;
  font-size: .69rem;
  font-weight: 800;
  cursor: pointer;
}
.parcel-urgent {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0 3px;
  padding: 11px 12px;
  border: 1px solid #f2c8aa;
  border-radius: 14px;
  background: #fff7ed;
  color: #8a3f14;
  cursor: pointer;
}
.parcel-urgent input { width: 20px; min-height: 20px; box-shadow: none; accent-color: #c45c1e; }
.parcel-urgent strong,
.parcel-urgent small { display: block; }
.parcel-urgent strong { font-size: .78rem; }
.parcel-urgent small { margin-top: 2px; font-size: .67rem; font-weight: 500; }
.parcel-document-card {
  margin-top: 3px;
  padding: 13px;
  border: 1px solid #dfd4c9;
  border-radius: 16px;
  background: #faf8f5;
  color: #5d5148;
}
.parcel-document-card > div:first-child { display: inline-block; margin-right: 8px; }
.parcel-document-card strong,
.parcel-document-card small { display: block; }
.parcel-document-card strong { font-size: .78rem; }
.parcel-document-card small { margin-top: 2px; color: #837970; font-size: .65rem; }
.parcel-document-card > label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 12px;
  border-radius: 11px;
  background: #8a5631;
  color: #fff;
  font-size: .69rem;
  font-weight: 800;
  cursor: pointer;
}
.parcel-document-card input { display: none; }
#parcel-document-name {
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  background: #edf7f0;
  color: #28613f;
  font-size: .69rem;
  font-weight: 750;
}
#parcel-document-name[hidden] { display: none !important; }
.parcel-document-card p { margin: 9px 0 0; color: #766a60; font-size: .65rem; line-height: 1.45; }
.parcel-section-title {
  margin: 2px 0 10px;
  color: #78451f;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.parcel-section-title:not(:first-child) { margin-top: 8px; padding-top: 13px; border-top: 1px solid #eee5dc; }
.parcel-section-title span { color: #8b8178; font-size: .65rem; font-weight: 550; letter-spacing: 0; text-transform: none; }
.parcel-confirm-note {
  margin-top: 4px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #eef7f1;
  color: #315d40;
  font-size: .69rem;
  line-height: 1.5;
}
.parcel-actions {
  display: flex;
  gap: 9px;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px solid #eee5dc;
}
.parcel-actions button {
  flex: 1;
  min-height: 49px;
  border-radius: 14px;
  font: inherit;
  font-size: .8rem;
  font-weight: 900;
  cursor: pointer;
}
.parcel-back { border: 1px solid #d9ded8; background: #f3f5f2; color: #355b44; }
.parcel-next,
.parcel-submit { border: 0; background: linear-gradient(135deg, #bd6a2c, #994a18); color: #fff; box-shadow: 0 7px 17px rgba(157,79,27,.23); }
.parcel-actions button[hidden] { display: none !important; }
.parcel-status {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: 12px;
  background: #fff7f7;
  color: #9f2d1c;
  font-size: .74rem;
  font-weight: 750;
}
.parcel-status[hidden],
.parcel-confirm[hidden] { display: none !important; }
.parcel-confirm {
  margin-top: 11px;
  padding: 11px 12px;
  border: 1px solid #bbdfc5;
  border-radius: 12px;
  background: #edf8f0;
  color: #285b39;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.45;
}
@media (max-width: 520px) {
  .parcel-overlay .parcel-sheet { max-height: 96vh; border-radius: 24px 24px 0 0 !important; }
  .parcel-body { padding: 14px 15px 8px; }
  .parcel-header .sht { font-size: 1rem; }
  .parcel-grid { gap: 8px; }
}

/* Cure thermale — parcours guidé en trois étapes. */
.thermal-overlay .thermal-flow {
  max-width: 560px;
  border-top: 4px solid #2d806a;
  background: #fbfcfa;
  color: #173d32;
}
.thermal-flow .thermal-header {
  position: sticky;
  top: 0;
  z-index: 4;
  display: grid;
  grid-template-columns: 58px 1fr 45px;
  align-items: center;
  gap: 10px;
  padding: 13px 16px 12px;
  border-bottom: 1px solid #e4ebe6;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(12px);
}
.thermal-title-image {
  width: 54px;
  height: 54px;
  object-fit: contain;
  filter: drop-shadow(0 6px 8px rgba(38,92,72,.16));
}
.thermal-flow .thermal-header .sht {
  color: #205c4c;
  font-size: 1.08rem;
  letter-spacing: .055em;
}
.thermal-header-subtitle {
  margin-top: 3px;
  color: #73857c;
  font-size: .64rem;
  font-weight: 650;
  line-height: 1.35;
}
.thermal-flow .thermal-header .shc {
  width: 42px;
  height: 42px;
  border: 2px solid #d4b94f;
  color: #355d50;
  background: #fff;
}
.thermal-flow .sb { padding: 14px 18px 10px; }
.thermal-flow .thermal-private-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 16px;
  padding: 11px 12px;
  border: 1px solid #d7e6df;
  border-radius: 14px;
  background: linear-gradient(135deg,#edf7f2,#f8fbf8);
  color: #3d6559;
  font-size: .69rem;
  line-height: 1.45;
}
.thermal-flow .thermal-private-note > span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  border-radius: 50%;
  background: #2d806a;
  color: #fff;
  font-weight: 900;
}
.thermal-flow .thermal-private-note strong { color: #205c4c; }
.thermal-wizard {
  display: flex;
  align-items: flex-start;
  margin: 0 6px 22px;
}
.thermal-wizard-line {
  height: 2px;
  flex: 1;
  margin-top: 14px;
  background: #dce5df;
}
.thermal-wizard-step {
  display: flex;
  min-width: 70px;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  color: #86958e;
  font-size: .62rem;
  font-weight: 750;
  text-align: center;
}
.thermal-wizard-step span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid #d8e1dc;
  border-radius: 50%;
  background: #fff;
  font-size: .68rem;
  font-weight: 900;
}
.thermal-wizard-step.is-active { color: #205c4c; }
.thermal-wizard-step.is-active span {
  border-color: #2d806a;
  background: #2d806a;
  color: #fff;
  box-shadow: 0 5px 12px rgba(45,128,106,.2);
}
.thermal-wizard-step.is-complete span {
  border-color: #89bbaa;
  background: #dff1e9;
  color: transparent;
}
.thermal-wizard-step.is-complete span::after { content: "✓"; color: #236a57; }
.thermal-panel[hidden],
.thermal-recurring[hidden],
.thermal-flow #th-return-time-wrap[hidden] { display: none !important; }
.thermal-flow .fg { margin-bottom: 14px; }
.thermal-flow .fg > label {
  display: block;
  margin-bottom: 7px;
  color: #45675d;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.thermal-flow .fg input,
.thermal-flow .fg select,
.thermal-flow .fg textarea {
  width: 100%;
  min-height: 50px;
  box-sizing: border-box;
  border: 1.5px solid #d5dfd9;
  border-radius: 13px;
  background: #fff;
  color: #173d32;
  font: inherit;
  font-size: .8rem;
  outline: 0;
  transition: border-color .18s, box-shadow .18s;
}
.thermal-flow .fg input,
.thermal-flow .fg select { padding: 12px 13px; }
.thermal-flow .fg textarea { min-height: 82px; padding: 12px 13px; resize: vertical; }
.thermal-flow .fg input:focus,
.thermal-flow .fg select:focus,
.thermal-flow .fg textarea:focus {
  border-color: #2d806a;
  box-shadow: 0 0 0 3px rgba(45,128,106,.11);
}
.thermal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.thermal-grid-address { grid-template-columns: .78fr 1.22fr; }
.thermal-flow .thermal-choice-row { gap: 9px; }
.thermal-flow .thermal-choice {
  min-height: 64px;
  justify-content: center;
  padding: 10px 13px;
  border: 1.5px solid #d6e1da;
  border-radius: 14px;
  background: #f3f7f4;
}
.thermal-flow .thermal-choice strong { color: #294e43; font-size: .8rem; }
.thermal-flow .thermal-choice span { font-size: .66rem; }
.thermal-flow .thermal-choice.is-selected {
  border-color: #2d806a;
  background: linear-gradient(135deg,#dcefe7,#edf7f2);
  box-shadow: 0 4px 12px rgba(45,128,106,.12);
}
.thermal-flow .thermal-recurring {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.thermal-section-title {
  margin: 0 0 13px;
  color: #205c4c;
  font-size: .77rem;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.thermal-door-card {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 2px 0 13px;
  padding: 12px 13px;
  border: 1px solid #d9e4de;
  border-radius: 14px;
  background: #f5f8f5;
  color: #2e5449;
  cursor: pointer;
}
.thermal-door-card input { width: 20px; height: 20px; accent-color: #2d806a; }
.thermal-door-card span { display: flex; flex-direction: column; gap: 3px; }
.thermal-door-card strong { font-size: .76rem; }
.thermal-door-card small { color: #73857d; font-size: .66rem; }
.thermal-flow .transport-capacity-note {
  margin: 0 0 12px;
  border-color: #e7dfba;
  background: #fffaf0;
  color: #746232;
}
.thermal-summary-note {
  margin-top: 2px;
  padding: 11px 12px;
  border-radius: 12px;
  background: #edf7f2;
  color: #3a6658;
  font-size: .69rem;
  line-height: 1.5;
}
.thermal-inline-status {
  display: none;
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #efc8c0;
  border-radius: 12px;
  background: #fff7f5;
  color: #9b3b2d;
  font-size: .72rem;
  font-weight: 750;
}
.thermal-inline-status.is-visible { display: block; }
.thermal-actions {
  display: flex;
  gap: 9px;
  margin-top: 17px;
  padding-top: 12px;
  border-top: 1px solid #e6ece8;
}
.thermal-actions button {
  min-height: 49px;
  flex: 1;
  border-radius: 14px;
  font: inherit;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
}
.thermal-back { border: 1px solid #d5dfd9; background: #f3f6f4; color: #315c50; }
.thermal-next,
.thermal-submit {
  border: 0;
  background: linear-gradient(135deg,#2f806a,#1e5d4c);
  color: #fff;
  box-shadow: 0 7px 17px rgba(35,105,86,.22);
}
.thermal-flow .thermal-confirm {
  margin-top: 11px;
  border: 1px solid #b9ddcf;
  background: #eaf7f1;
  color: #245f4e;
  font-size: .71rem;
}
.thermal-flow .thermal-confirm[hidden] { display: none !important; }

@media (max-width: 520px) {
  .thermal-overlay .thermal-flow { max-height: 96vh; border-radius: 24px 24px 0 0 !important; }
  .thermal-flow .thermal-header { grid-template-columns: 52px 1fr 42px; padding: 11px 14px; }
  .thermal-title-image { width: 49px; height: 49px; }
  .thermal-flow .thermal-header .sht { font-size: .98rem; }
  .thermal-flow .sb { padding: 13px 15px 9px; }
  .thermal-grid,
  .thermal-grid-address,
  .thermal-flow .thermal-recurring { grid-template-columns: 1fr; gap: 0; }
  .thermal-wizard-step { min-width: 65px; }
}

/* Transport médical — orientation privée ou taxi conventionné partenaire. */
.medical-overlay .medical-sheet {
  width: min(600px, 100%) !important;
  max-height: 95vh;
  border-top: 4px solid #2869a6;
  background: linear-gradient(180deg,#f7fbff 0,#fff 210px);
  color: #173b5d;
}
.medical-header {
  position: sticky;
  top: 0;
  z-index: 5;
  display: grid;
  grid-template-columns: 54px 1fr 45px;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid #dfe9f2;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(12px);
}
.medical-title-icon {
  position: relative;
  width: 48px;
  height: 48px;
  border: 1px solid #c8dcee;
  border-radius: 15px;
  background: linear-gradient(145deg,#eaf4fc,#fff);
  box-shadow: 0 6px 14px rgba(40,105,166,.13);
}
.medical-title-icon::before,
.medical-title-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 3px;
  background: linear-gradient(135deg,#3f8cca,#2869a6);
  transform: translate(-50%,-50%);
}
.medical-title-icon::before { width: 24px; height: 8px; }
.medical-title-icon::after { width: 8px; height: 24px; }
.medical-header .sht { color: #205c91; font-size: 1.04rem; letter-spacing: .05em; }
.medical-header-subtitle { margin-top: 3px; color: #6e8498; font-size: .64rem; font-weight: 650; }
.medical-header .shc {
  width: 42px;
  height: 42px;
  border: 2px solid #d7b84c;
  background: #fff;
  color: #315d82;
}
.medical-sheet .sb { padding: 14px 18px 10px; }
.medical-guidance-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 11px 12px;
  border: 1px solid #d4e4f1;
  border-radius: 14px;
  background: linear-gradient(135deg,#edf6fd,#f9fcff);
  color: #496a84;
  font-size: .69rem;
  line-height: 1.48;
}
.medical-guidance-note > span {
  display: grid;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  place-items: center;
  border-radius: 50%;
  background: #2f76b5;
  color: #fff;
  font-weight: 900;
}
.medical-guidance-note strong { color: #265f91; }
.medical-wizard {
  display: flex;
  align-items: flex-start;
  margin: 0 6px 22px;
}
.medical-wizard-line { height: 2px; flex: 1; margin-top: 14px; background: #dbe6ef; }
.medical-wizard-step {
  display: flex;
  min-width: 70px;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  color: #8496a5;
  font-size: .62rem;
  font-weight: 750;
  text-align: center;
}
.medical-wizard-step span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid #d9e3eb;
  border-radius: 50%;
  background: #fff;
  font-size: .68rem;
  font-weight: 900;
}
.medical-wizard-step.is-active { color: #255f90; }
.medical-wizard-step.is-active span { border-color: #2f76b5; background: #2f76b5; color: #fff; box-shadow: 0 5px 12px rgba(47,118,181,.2); }
.medical-wizard-step.is-complete span { border-color: #9bc4e4; background: #e1f0fb; color: transparent; }
.medical-wizard-step.is-complete span::after { content: "✓"; color: #28699f; }
.medical-panel[hidden],
#medical-cpam-fields[hidden],
#medical-private-fields[hidden],
#medical-return-wrap[hidden],
#medical-series-wrap[hidden],
.medical-mode-warning[hidden] { display: none !important; }
.medical-sheet .fg { margin-bottom: 14px; }
.medical-sheet .fg > label {
  display: block;
  margin-bottom: 7px;
  color: #486b87;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.medical-sheet .fg input,
.medical-sheet .fg select,
.medical-sheet .fg textarea {
  width: 100%;
  min-height: 50px;
  box-sizing: border-box;
  border: 1.5px solid #d4e0ea;
  border-radius: 13px;
  background: #fff;
  color: #173b5d;
  font: inherit;
  font-size: .8rem;
  outline: 0;
  transition: border-color .18s, box-shadow .18s;
}
.medical-sheet .fg input,
.medical-sheet .fg select { padding: 12px 13px; }
.medical-sheet .fg textarea { min-height: 82px; padding: 12px 13px; resize: vertical; }
.medical-sheet .fg input:focus,
.medical-sheet .fg select:focus,
.medical-sheet .fg textarea:focus { border-color: #2f76b5; box-shadow: 0 0 0 3px rgba(47,118,181,.11); }
.medical-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.medical-choice-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.medical-choice {
  display: flex;
  min-height: 74px;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 11px 13px;
  border: 1.5px solid #d5e1eb;
  border-radius: 14px;
  background: #f4f8fb;
  color: #284f6e;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.medical-choice strong { font-size: .79rem; }
.medical-choice span { color: #718698; font-size: .65rem; line-height: 1.35; }
.medical-choice.is-selected { border-color: #2f76b5; background: linear-gradient(135deg,#dfeffa,#f0f8fe); box-shadow: 0 4px 12px rgba(47,118,181,.12); }
.medical-consent-card {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 3px 0 12px;
  padding: 12px 13px;
  border: 1px solid #bcd7ea;
  border-radius: 14px;
  background: #eef7fd;
  color: #315d7e;
  cursor: pointer;
}
.medical-consent-card input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 1px; accent-color: #2f76b5; }
.medical-consent-card span { display: flex; flex-direction: column; gap: 4px; }
.medical-consent-card strong { font-size: .74rem; }
.medical-consent-card small { color: #5f7d94; font-size: .64rem; line-height: 1.45; }
.medical-document-note,
.medical-prior-note,
.medical-privacy-note,
.medical-private-card {
  margin: 0 0 12px;
  padding: 11px 12px;
  border-radius: 12px;
  font-size: .68rem;
  line-height: 1.48;
}
.medical-document-note { border: 1px solid #dfe6eb; background: #f7f9fa; color: #5d6f7d; }
.medical-document-note strong { color: #354f63; }
.medical-private-card { display: flex; flex-direction: column; gap: 4px; border: 1px solid #d8e6db; background: #f0f8f2; color: #41694b; }
.medical-private-card strong { color: #225b31; font-size: .75rem; }
.medical-private-card span { font-size: .67rem; }
.medical-prior-note { border: 1px solid #eadca8; background: #fffaf0; color: #79652e; }
.medical-privacy-note { background: #f2f6f8; color: #5a7181; }
.medical-mode-warning { margin: -3px 0 12px; padding: 11px 12px; border: 1px solid #efc3b6; border-radius: 12px; background: #fff6f3; color: #9a3c2d; font-size: .69rem; font-weight: 700; line-height: 1.45; }
.medical-ameli-link { display: inline-flex; margin: 0 0 8px; color: #2869a6; font-size: .67rem; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.medical-section-title { margin: 0 0 13px; color: #255f90; font-size: .77rem; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; }
.medical-inline-status { display: none; margin-top: 10px; padding: 10px 12px; border: 1px solid #efc5bc; border-radius: 12px; background: #fff7f5; color: #9c3c2e; font-size: .72rem; font-weight: 750; }
.medical-inline-status.is-visible { display: block; }
.medical-actions { display: flex; gap: 9px; margin-top: 17px; padding-top: 12px; border-top: 1px solid #e2eaf0; }
.medical-actions button { min-height: 49px; flex: 1; border-radius: 14px; font: inherit; font-size: .78rem; font-weight: 900; cursor: pointer; }
.medical-back { border: 1px solid #d4e0e9; background: #f3f7fa; color: #315d7f; }
.medical-next,
.medical-submit { border: 0; background: linear-gradient(135deg,#347fbd,#245f94); color: #fff; box-shadow: 0 7px 17px rgba(43,109,165,.23); }
.medical-confirm { margin-top: 11px; padding: 11px 12px; border: 1px solid #b9d9ca; border-radius: 12px; background: #edf8f2; color: #285f43; font-size: .71rem; font-weight: 700; line-height: 1.45; }
.medical-confirm[hidden] { display: none !important; }

@media (max-width: 520px) {
  .medical-overlay .medical-sheet { max-height: 96vh; border-radius: 24px 24px 0 0 !important; }
  .medical-header { grid-template-columns: 49px 1fr 42px; padding: 11px 14px; }
  .medical-title-icon { width: 44px; height: 44px; }
  .medical-header .sht { font-size: .96rem; }
  .medical-sheet .sb { padding: 13px 15px 9px; }
  .medical-grid { grid-template-columns: 1fr; gap: 0; }
  .medical-wizard-step { min-width: 65px; }
}

/* Trajet local — entrée principale et réservation très courte. */
.section-tarifs .tr.local-ride-card {
  grid-column: 1 / -1;
  overflow: visible;
  min-height: 118px;
  padding: 19px 20px !important;
  border-color: rgba(229,190,62,.55) !important;
  background: linear-gradient(135deg,#0c3a1a 0%,#15582f 52%,#237343 100%) !important;
  box-shadow: 0 6px 0 rgba(7,44,21,.16), 0 17px 31px rgba(11,63,31,.22), inset 0 1px 0 rgba(255,255,255,.13) !important;
}
.section-tarifs .tr.local-ride-card::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 0 43%, rgba(255,255,255,.18) 49%, rgba(255,255,255,.04) 55%, transparent 62%);
  background-position: 170% 0;
  background-size: 250% 100%;
  pointer-events: none;
  animation: go-card-shine 4.8s ease-in-out infinite;
}
.section-tarifs .tr.local-ride-card::after {
  z-index: 0;
  top: -74px;
  right: -30px;
  width: 205px;
  height: 205px;
  background: radial-gradient(circle,rgba(255,233,139,.18),rgba(255,255,255,0) 68%);
}
.section-tarifs .local-ride-card > *:not(.local-priority-badge) { position: relative; z-index: 2; }
.section-tarifs .local-priority-badge {
  position: absolute;
  z-index: 4;
  top: -11px;
  left: 20px;
  padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 999px;
  background: linear-gradient(135deg,#ffd968,#e6b932);
  box-shadow: 0 4px 10px rgba(57,43,0,.25);
  color: #473500;
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.section-tarifs .local-ride-card .tl { min-width: 0; }
.section-tarifs .local-ride-card .ti {
  width: 68px;
  height: 68px;
  min-width: 68px;
  border-radius: 19px;
  background: linear-gradient(145deg,#fff,#e6efdf) !important;
  box-shadow: 0 5px 0 rgba(4,32,14,.18), 0 10px 17px rgba(3,29,12,.22), inset 0 1px 0 #fff !important;
}
.section-tarifs .local-ride-card .ti img {
  width: 74px !important;
  height: 74px !important;
  max-width: 74px;
  max-height: 74px;
}
.section-tarifs .local-ride-card .tn { color: #fff; font-size: 1.04rem; }
.section-tarifs .local-ride-card .td { max-width: 420px; color: rgba(255,255,255,.76); font-size: .72rem; }
.local-ride-card-action {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 12px;
}
.local-ride-card-price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1; }
.local-ride-card-price strong { color: #ffe17c; font-size: 1.22rem; font-weight: 950; }
.local-ride-card-price span { margin-top: 4px; color: rgba(255,255,255,.66); font-size: .57rem; font-weight: 700; }
.local-ride-card-book {
  display: inline-flex;
  min-height: 39px;
  align-items: center;
  justify-content: center;
  padding: 0 15px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 5px 12px rgba(3,29,12,.2);
  color: #0f4a28;
  font-size: .7rem;
  font-weight: 950;
}
.section-tarifs .tr.local-ride-card:hover { border-color: rgba(255,220,108,.88) !important; }

.local-ride-overlay .local-ride-sheet {
  width: min(590px,100%) !important;
  max-height: 95vh;
  border-top: 4px solid #e6bd3f;
  background: linear-gradient(180deg,#f3f8f1 0,#fff 215px);
  color: #173d26;
}
.local-ride-header {
  position: sticky;
  top: 0;
  z-index: 5;
  display: grid;
  grid-template-columns: 56px 1fr 44px;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid #dfe8dc;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(12px);
}
.local-ride-header-icon {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border: 1px solid #d8e4d3;
  border-radius: 15px;
  background: linear-gradient(145deg,#edf5e9,#fff);
  box-shadow: 0 6px 14px rgba(18,77,43,.13);
}
.local-ride-header-icon img { width: 55px; height: 55px; object-fit: contain; }
.local-ride-header .sht { color: #15582f; font-size: 1rem; letter-spacing: .045em; }
.local-ride-header-subtitle { margin-top: 3px; color: #6f8676; font-size: .64rem; font-weight: 650; }
.local-ride-header .shc { width: 42px; height: 42px; border: 2px solid #e0bc4c; background: #fff; color: #174f2d; }
.local-ride-sheet .sb { overflow-y: auto; padding: 14px 18px 12px; }
.local-ride-price-note {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 13px;
  margin-bottom: 16px;
  padding: 12px 13px;
  border: 1px solid #c9dfc4;
  border-radius: 15px;
  background: linear-gradient(135deg,#e9f5e6,#f8fbf6);
}
.local-ride-price-note > div {
  display: flex;
  min-width: 78px;
  flex-direction: column;
  align-items: center;
  padding-right: 12px;
  border-right: 1px solid #cadbc6;
}
.local-ride-price-note span { color: #64806c; font-size: .58rem; font-weight: 850; text-transform: uppercase; }
.local-ride-price-note strong { margin-top: 3px; color: #15582f; font-size: 1.35rem; font-weight: 950; }
.local-ride-price-note p { margin: 0; color: #58715f; font-size: .67rem; line-height: 1.48; }
.local-ride-sheet .fg { margin-bottom: 14px; }
.local-ride-sheet .fg > label {
  display: block;
  margin-bottom: 7px;
  color: #476a54;
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.local-ride-sheet .fg input,
.local-ride-sheet .fg select,
.local-ride-sheet .fg textarea {
  width: 100%;
  min-height: 50px;
  box-sizing: border-box;
  border: 1.5px solid #d3dfd0;
  border-radius: 13px;
  background: #fff;
  color: #173d26;
  font: inherit;
  font-size: .8rem;
  outline: 0;
  transition: border-color .18s, box-shadow .18s;
}
.local-ride-sheet .fg input,
.local-ride-sheet .fg select { padding: 12px 13px; }
.local-ride-sheet .fg textarea { min-height: 78px; padding: 12px 13px; resize: vertical; }
.local-ride-sheet .fg input:focus,
.local-ride-sheet .fg select:focus,
.local-ride-sheet .fg textarea:focus { border-color: #2a7545; box-shadow: 0 0 0 3px rgba(42,117,69,.11); }
.local-ride-sheet .addr-wrap { position: relative; display: flex; align-items: center; }
.local-ride-sheet .addr-wrap input { padding-right: 54px; }
.local-ride-sheet .gps-ic { right: 7px; width: 38px; height: 38px; background: #e7f4ea; color: #176239; }
.go-photo-remove {
  position: absolute;
  top: 9px;
  right: 9px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 50%;
  background: #a3342b;
  color: #fff;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 4px 14px rgba(72,18,14,.28);
  cursor: pointer;
}
#fid-preview-wrap { position: relative; }
.local-ride-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.local-ride-mode {
  display: flex;
  min-height: 70px;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 11px 13px;
  border: 1.5px solid #d6e1d3;
  border-radius: 14px;
  background: #f5f8f4;
  color: #315b40;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.local-ride-mode strong { font-size: .79rem; }
.local-ride-mode span { color: #758779; font-size: .64rem; }
.local-ride-mode.is-selected { border-color: #277243; background: linear-gradient(135deg,#dcefd9,#eef7eb); box-shadow: 0 4px 12px rgba(39,114,67,.12); }
.local-ride-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#local-ride-plan-fields[hidden] { display: none !important; }
.local-ride-section-title { margin: 3px 0 12px; color: #1b5f35; font-size: .73rem; font-weight: 950; letter-spacing: .065em; text-transform: uppercase; }
.local-ride-capacity {
  margin: -2px 0 17px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f1f5ef;
  color: #617265;
  font-size: .66rem;
  line-height: 1.45;
}
.local-ride-field-error { border-color: #bb4936 !important; box-shadow: 0 0 0 3px rgba(187,73,54,.1) !important; }
.local-ride-inline-status { display: none; margin: 4px 0 10px; padding: 10px 12px; border: 1px solid #edc2b8; border-radius: 12px; background: #fff7f5; color: #9c3d2e; font-size: .71rem; font-weight: 750; }
.local-ride-inline-status.is-visible { display: block; }
.local-ride-submit {
  width: 100%;
  min-height: 51px;
  border: 0;
  border-radius: 15px;
  background: linear-gradient(135deg,#247241,#124c29);
  box-shadow: 0 7px 17px rgba(20,82,44,.24);
  color: #fff;
  font: inherit;
  font-size: .8rem;
  font-weight: 950;
  cursor: pointer;
}
.local-ride-confirm { margin-top: 11px; padding: 11px 12px; border: 1px solid #badbc6; border-radius: 12px; background: #edf8f1; color: #285f40; font-size: .7rem; font-weight: 700; line-height: 1.45; }
.local-ride-confirm[hidden] { display: none !important; }

@media (max-width: 520px) {
  .section-tarifs .tr.local-ride-card { min-height: 132px; padding: 20px 14px 16px !important; }
  .section-tarifs .local-priority-badge { left: 14px; }
  .section-tarifs .local-ride-card .tl { gap: 9px; }
  .section-tarifs .local-ride-card .ti { width: 58px; height: 58px; min-width: 58px; border-radius: 16px; }
  .section-tarifs .local-ride-card .ti img { width: 64px !important; height: 64px !important; }
  .section-tarifs .local-ride-card .tn { font-size: .93rem; }
  .section-tarifs .local-ride-card .td { max-width: 170px; font-size: .62rem; }
  .local-ride-card-action { flex-direction: column; align-items: flex-end; gap: 7px; }
  .local-ride-card-price strong { font-size: 1.12rem; }
  .local-ride-card-book { min-height: 34px; padding: 0 11px; font-size: .63rem; }
  .local-ride-overlay .local-ride-sheet { max-height: 96vh; border-radius: 24px 24px 0 0 !important; }
  .local-ride-header { grid-template-columns: 50px 1fr 42px; padding: 11px 14px; }
  .local-ride-header-icon { width: 45px; height: 45px; }
  .local-ride-header-icon img { width: 50px; height: 50px; }
  .local-ride-header .sht { font-size: .88rem; }
  .local-ride-sheet .sb { padding: 13px 15px 10px; }
  .local-ride-grid { grid-template-columns: 1fr; gap: 0; }
  .local-ride-price-note { grid-template-columns: 76px 1fr; gap: 10px; padding: 11px; }
}

/* Illustration originale du Pasino, sans reprise de son identité officielle. */
.section-tarifs .tr.pasino-card[data-kind="destination"] .pasino-icon {
  width: 62px;
  height: 62px;
  min-width: 62px;
  border-radius: 17px;
}
.section-tarifs .tr.pasino-card[data-kind="destination"] .pasino-icon img {
  width: 76px !important;
  height: 76px !important;
  max-width: 76px;
  max-height: 76px;
}
@media (max-width: 520px) {
  .section-tarifs .tr.pasino-card[data-kind="destination"] .pasino-icon {
    width: 66px;
    height: 66px;
    min-width: 66px;
  }
  .section-tarifs .tr.pasino-card[data-kind="destination"] .pasino-icon img {
    width: 80px !important;
    height: 80px !important;
    max-width: 80px;
    max-height: 80px;
  }
}

/* Cohérence finale : réservations principales et langage visuel partagé. */
.section-tarifs .tr[data-service="Pasino & Hôtel Saint-Amand"] {
  background: linear-gradient(145deg,#fff 0%,#f6ede6 100%) !important;
}
.section-tarifs .tr[data-service^="Transport médical"] {
  background: linear-gradient(145deg,#fff 0%,#edf3fb 100%) !important;
}
.section-tarifs .tr[data-service="Pasino & Hôtel Saint-Amand"] .ti { background: #eee2d6 !important; }
.section-tarifs .tr[data-service^="Transport médical"] .ti { background: #dfe9f6 !important; }

.main-booking-sheet {
  overflow-x: hidden;
  overflow-y: auto;
  padding-bottom: 16px !important;
  border: 1px solid rgba(17,82,43,.13);
  border-top: 4px solid #2b7246;
  background: linear-gradient(180deg,#f5faf4 0,#fff 180px);
}
.main-booking-header {
  position: sticky;
  top: 0;
  z-index: 8;
  min-height: 58px;
  padding: 14px 20px 12px !important;
  border-bottom: 1px solid rgba(20,87,45,.1) !important;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
}
.main-booking-header .sht {
  color: #15582f;
  font-size: 1.08rem !important;
  letter-spacing: .065em !important;
}
.main-booking-body { padding: 14px 20px 10px !important; }
.main-booking-context {
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  margin: 0 0 16px !important;
  padding: 6px 12px !important;
  border: 1px solid #d6e4d2 !important;
  background: #edf5ea !important;
  color: #476c53;
  font-weight: 750;
}
.main-booking-section-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 20px 0 12px;
  padding-top: 18px;
  border-top: 1px solid #e1e9df;
}
.main-booking-route-heading {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.main-booking-section-heading > span {
  display: grid;
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(145deg,#dcefd9,#edf7eb);
  color: #226d3e;
  font-size: .92rem;
  font-weight: 950;
  box-shadow: inset 0 0 0 1px rgba(31,105,58,.1);
}
.main-booking-section-heading div { display: flex; flex-direction: column; gap: 2px; }
.main-booking-section-heading strong {
  color: #194f2d;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.main-booking-section-heading small {
  color: #758678;
  font-size: .65rem;
  font-weight: 650;
}
.main-booking-schedule-heading { margin: 3px 0 11px; }
.main-booking-sheet .fg > label {
  color: #4f6c57 !important;
  font-weight: 800 !important;
}
.main-booking-sheet .fg input,
.main-booking-sheet .fg select,
.main-booking-sheet .fg textarea {
  min-height: 50px;
  border-color: #d4dfd1 !important;
  background: #fff !important;
}
.main-booking-sheet #transport-details {
  margin: 19px 0 16px;
  padding: 16px;
  border-color: #d7e3d3;
  border-radius: 18px;
  background: #f5f8f3;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.main-booking-sheet .transport-details-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #1c5d35;
}
.main-booking-sheet .transport-details-title::before {
  content: "";
  width: 8px;
  height: 8px;
  border: 3px solid #2d7548;
  border-radius: 50%;
  background: #fff;
}
.main-booking-submit {
  min-height: 54px;
  border-radius: 15px !important;
  background: linear-gradient(135deg,#287546,#15562f) !important;
  box-shadow: 0 8px 19px rgba(21,86,47,.24) !important;
  font-size: .9rem !important;
  font-weight: 950 !important;
}
.main-booking-submit-note {
  max-width: 420px;
  margin: 10px auto 0;
  color: #77857a;
  font-size: .64rem;
  font-weight: 650;
  line-height: 1.45;
  text-align: center;
}

/* Mêmes finitions sur les autres formulaires, sans gommer leur couleur de service. */
.ov .sh,
.ph-sh {
  border-right: 1px solid rgba(21,81,43,.12);
  border-left: 1px solid rgba(21,81,43,.12);
}
.ov .shc,
.ph-sh .shc {
  width: 42px !important;
  height: 42px !important;
  border: 2px solid rgba(218,174,57,.62) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #245c38 !important;
  font-size: .95rem !important;
  box-shadow: 0 3px 10px rgba(27,78,43,.08);
}
.local-ride-submit,
.parcel-submit,
.medical-submit,
.thermal-submit,
.school-submit,
.ph-wa-btn {
  min-height: 52px;
  border-radius: 15px !important;
  font-weight: 900 !important;
  letter-spacing: .01em;
}
.section-tarifs > .tr {
  border-color: rgba(23,83,44,.1) !important;
  border-radius: 22px !important;
}

@media (max-width: 520px) {
  .main-booking-overlay { align-items: flex-end !important; padding: 0 !important; }
  .main-booking-overlay .main-booking-sheet {
    max-height: 96vh;
    border-radius: 25px 25px 0 0 !important;
  }
  .main-booking-header { padding: 12px 15px 10px !important; }
  .main-booking-header .sht { font-size: .91rem !important; }
  .main-booking-body { padding: 13px 15px 9px !important; }
  .main-booking-section-heading { margin-top: 17px; padding-top: 15px; }
  .main-booking-route-heading { margin-top: 0; padding-top: 0; }
  .main-booking-sheet #transport-details { padding: 13px; }
  .section-tarifs > .tr { border-radius: 20px !important; }
}

/* Documents transmis avec la plaquette : carte Drive, ordonnance, feuille de route. */
.go-card-number-fallback {
  margin: 12px 0 10px !important;
  padding: 12px;
  border: 1px dashed rgba(12,58,26,.26);
  border-radius: 12px;
  background: rgba(240,250,242,.72);
}
.go-card-number-fallback label {
  display: block;
  margin-bottom: 7px;
  color: #264c31;
  font-size: .74rem;
  font-weight: 800;
}
.go-card-number-fallback input { width: 100%; box-sizing: border-box; }
.go-card-number-fallback small {
  display: block;
  margin-top: 6px;
  color: #65766a;
  font-size: .65rem;
}
.go-secure-upload-status {
  margin-top: 9px;
  padding: 9px 11px;
  border: 1px solid #a7d7b4;
  border-radius: 10px;
  background: #eefaf1;
  color: #175d31;
  font-size: .7rem;
  font-weight: 750;
  line-height: 1.45;
}
.go-secure-upload-status-purple {
  border-color: #d8c6f5;
  background: #f8f4ff;
  color: #5b21b6;
}
.go-photo-ready-button:disabled {
  cursor: default !important;
  opacity: .82;
  box-shadow: none !important;
}
.go-secure-upload-success {
  border-color: #66b77c !important;
  background: #e8f7ec !important;
}

.go-manual-price {
  margin: 14px 0 16px;
  padding: 14px 15px;
  border: 1px solid rgba(26, 102, 53, .18);
  border-radius: 16px;
  background: linear-gradient(145deg, #f7fcf8, #edf8f0);
  color: #173d25;
  box-shadow: 0 8px 22px rgba(12, 58, 26, .07);
}

.go-manual-price-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.go-manual-price-heading span {
  font-size: .82rem;
  font-weight: 800;
}

.go-manual-price-heading small {
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(26, 102, 53, .1);
  color: #28603a;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.go-manual-price p {
  margin: 0;
  color: #506758;
  font-size: .75rem;
  line-height: 1.5;
}

.go-manual-price-result {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-bottom: 7px;
}

.go-manual-price-amount {
  color: #0c5a2a;
  font-family: "DM Sans", sans-serif;
  font-size: 1.55rem;
  line-height: 1;
}

.go-manual-price-answer {
  color: #61420c;
  font-size: .96rem;
}

.go-manual-price-route {
  color: #52715d;
  font-size: .68rem;
  font-weight: 700;
}

.go-manual-price.is-ready {
  border-color: rgba(26, 102, 53, .32);
  background: linear-gradient(145deg, #f4fbf5, #e5f5e9);
}

.go-manual-price.is-warning {
  border-color: rgba(217, 119, 6, .28);
  background: linear-gradient(145deg, #fffbeb, #fff7d5);
  color: #704a0a;
}

.go-manual-price.is-warning .go-manual-price-heading small {
  background: rgba(217, 119, 6, .12);
  color: #8b5b09;
}

.go-manual-price.is-loading p {
  display: flex;
  align-items: center;
  gap: 8px;
}

.go-manual-price-loader {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  border: 2px solid rgba(26, 102, 53, .18);
  border-top-color: #1a6635;
  border-radius: 50%;
  animation: go-manual-price-spin .8s linear infinite;
}

@keyframes go-manual-price-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .go-manual-price-loader { animation: none; }
}

/* Empêche les halos décoratifs des cartes de créer un défilement horizontal mobile. */
html {
  max-width: 100%;
  overflow-x: hidden;
}

.section-tarifs .tp .tariff-prefix {
  display: block;
  margin-bottom: -2px;
  font-family: "DM Sans", sans-serif;
  font-size: .53rem;
  font-weight: 800;
  letter-spacing: .05em;
  line-height: 1;
  text-transform: uppercase;
}

/* Référencement local : contenu utile et lisible sans alourdir la réservation. */
.local-seo-section {
  padding: 34px 18px;
  background: linear-gradient(180deg, #f4faf5 0%, #eaf5ed 100%);
  border-top: 1px solid rgba(12, 58, 26, .1);
  color: #0c3a1a;
}

.local-seo-inner {
  width: min(100%, 720px);
  margin: 0 auto;
  text-align: center;
}

.local-seo-kicker {
  margin-bottom: 7px;
  color: #d97706;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.local-seo-section h2 {
  max-width: 620px;
  margin: 0 auto 10px;
  font-family: "Bebas Neue", sans-serif;
  font-size: clamp(1.65rem, 5vw, 2.2rem);
  letter-spacing: .02em;
  line-height: 1.08;
}

.local-seo-section p {
  max-width: 620px;
  margin: 0 auto 18px;
  color: #355744;
  font-size: .86rem;
  line-height: 1.65;
}

.local-seo-places {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-bottom: 20px;
}

.local-seo-places span {
  padding: 7px 11px;
  border: 1px solid rgba(12, 58, 26, .16);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  color: #174d2a;
  font-size: .71rem;
  font-weight: 750;
}

.local-seo-actions {
  display: flex;
  justify-content: center;
  gap: 9px;
}

.local-seo-actions a,
.local-seo-actions button {
  min-height: 43px;
  padding: 11px 15px;
  border-radius: 22px;
  font: 800 .76rem/1.2 "DM Sans", sans-serif;
  text-decoration: none;
  cursor: pointer;
}

.local-seo-actions a {
  border: 1.5px solid #1a6635;
  background: #fff;
  color: #1a6635;
}

.local-seo-actions button {
  border: 1.5px solid #1a6635;
  background: #1a6635;
  color: #fff;
}

@media (max-width: 430px) {
  .local-seo-actions { flex-direction: column; }
  .local-seo-actions a,
  .local-seo-actions button { width: 100%; box-sizing: border-box; }
}

/* Stabilité des formulaires sur téléphone : clavier, viewport et géolocalisation. */
@supports (height: 100dvh) {
  .ov,
  .ph-ov { height: 100dvh; }
  .ov .sh,
  .ph-sh { max-height: calc(100dvh - max(8px, env(safe-area-inset-top))); }
}

@media (max-width: 600px) {
  body,
  body.booking-open { background-attachment: scroll !important; }
  body.booking-open { overscroll-behavior: none; }
  .ov .sh,
  .ph-sh {
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }
  .ov input,
  .ov select,
  .ov textarea,
  .ph-sh input,
  .ph-sh select,
  .ph-sh textarea {
    font-size: 16px !important;
  }
  body.mobile-keyboard-open .ov,
  body.mobile-keyboard-open .ov .sh,
  body.mobile-keyboard-open .ph-ov,
  body.mobile-keyboard-open .ph-sh {
    transition: none !important;
  }
  body.mobile-keyboard-open .ov.open .sh {
    transform: translateY(0) !important;
  }
  body.mobile-keyboard-open .ph-sh.open {
    transform: translate(-50%, 0) !important;
  }
  body.booking-open .hero::before,
  body.booking-open .logo-img,
  body.booking-open .logo-wrap::after,
  body.booking-open .dot,
  body.booking-open .car img,
  body.booking-open .car svg,
  body.booking-open .sd,
  body.booking-open .section-tarifs .tr.feat::before,
  body.booking-open .section-tarifs .tr.local-ride-card::before {
    animation: none !important;
  }
}
