.seo-local {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto;
  padding: 28px 0 64px;
  color: #fff;
}
.seo-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: 24px;
  align-items: center;
  margin: 24px 0;
}
.seo-panel,
.seo-card,
.seo-estimator,
.seo-section,
.seo-final {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: rgba(16,16,16,.82);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  backdrop-filter: blur(6px);
}
.seo-hero-copy { padding: 30px; }
.seo-kicker {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}
.seo-kicker:before {
  content: "";
  width: 26px;
  height: 2px;
  background: #e1000f;
  border-radius: 999px;
}
.seo-local h1 {
  margin: 0 0 14px;
  font-size: clamp(1.7rem, 2.8vw, 2.75rem);
  line-height: 1.08;
  color: #fff;
  letter-spacing: 0;
}
.seo-local h2 {
  margin: 0 0 13px;
  color: #fff;
  font-size: clamp(1.28rem, 2.2vw, 1.9rem);
  line-height: 1.16;
  letter-spacing: 0;
}
.seo-local h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 1rem;
  line-height: 1.25;
}
.seo-local p {
  color: #e5e7eb;
  line-height: 1.62;
  font-size: .96rem;
}
.seo-lead {
  font-size: 1.02rem;
  color: #fff;
}
.seo-actions,
.seo-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.seo-btn,
.seo-btn-secondary,
.seo-inline-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 17px;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
  font-size: .95rem;
}
.seo-btn {
  background: #e1000f;
  color: #fff;
  border: 0;
  box-shadow: 0 12px 28px rgba(225,0,15,.28);
  cursor: pointer;
}
.seo-btn:hover { background: #e52540; color: #fff; }
.seo-btn-secondary {
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(255,255,255,.08);
  color: #fff;
}
.seo-inline-link {
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}
.seo-local-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 20px auto 8px;
}
.seo-local-nav a {
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(16,16,16,.72);
  border: 1px solid rgba(255,255,255,.14);
  color: #ddd;
  text-decoration: none;
  font-size: .84rem;
  font-weight: 700;
}
.seo-local-nav a:hover,
.seo-local-nav a:focus-visible {
  color: #fff;
  border-color: #e1000f;
  outline: none;
}
.seo-section {
  margin: 22px 0;
  padding: 26px;
}
.seo-section.alt { background: rgba(26,26,26,.9); }
.seo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.seo-grid.two { grid-template-columns: repeat(2, 1fr); }
.seo-card {
  padding: 18px;
  background: rgba(24,24,24,.88);
}
.seo-card-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 11px;
  border-radius: 50%;
  background: #e1000f;
  color: #fff;
  font-weight: 900;
  font-size: .92rem;
}
.seo-badges,
.seo-zone-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.seo-badges { margin-top: 16px; }
.seo-badges span,
.seo-badges a,
.seo-zone-cloud span {
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  padding: 6px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid transparent;
}
.seo-badges a:hover,
.seo-badges a:focus-visible {
  border-color: #e1000f;
  background: rgba(225,0,15,.18);
  outline: none;
}
.seo-note,
.seo-alert {
  border-left: 4px solid #e1000f;
  padding: 16px 18px;
  background: rgba(24,24,24,.94);
  border-radius: 10px;
  color: #fff;
}
.seo-alert {
  border: 1px solid rgba(225,0,15,.38);
  border-left-width: 4px;
  box-shadow: 0 16px 42px rgba(0,0,0,.38);
}
.seo-alert p,
.seo-alert li { color: #fff; }
.seo-warning {
  border-color: #f59e0b;
  background: rgba(245,158,11,.14);
}
.seo-comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.seo-faq { display: grid; gap: 10px; }
.seo-faq details {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  overflow: hidden;
}
.seo-faq summary {
  cursor: pointer;
  padding: 14px 16px;
  font-weight: 800;
  color: #fff;
  list-style: none;
  font-size: .96rem;
}
.seo-faq summary::-webkit-details-marker { display: none; }
.seo-faq summary:after { content: "+"; float: right; color: #e1000f; }
.seo-faq details[open] summary:after { content: "-"; }
.seo-faq p { margin: 0; padding: 0 16px 15px; }
.seo-final {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
  align-items: center;
  margin-top: 26px;
  padding: 26px;
}
.seo-estimator {
  padding: 21px;
  background: #f8fafc;
  color: #111827;
}
.seo-estimator h2,
.seo-estimator h3 { color: #111827; }
.seo-estimator h2 {
  min-height: 1.25em;
  white-space: nowrap;
  font-size: clamp(1.08rem, 1.9vw, 1.55rem);
}
.seo-estimator p { color: #4b5563; }
.seo-estimator-intro { margin: 0 0 12px; }
.seo-estimator-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 15px 0;
}
.seo-estimator-tabs button,
.seo-asap {
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #111827;
  min-height: 42px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}
.seo-estimator-tabs button.is-active,
.seo-asap[aria-pressed="true"] {
  background: #e1000f;
  color: #fff;
  border-color: #e1000f;
}
.seo-form { display: grid; gap: 13px; }
.seo-fields { display: grid; gap: 13px; }
.seo-dispo-group {
  display: grid;
  gap: 7px;
}
.seo-dispo-heading-line {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  gap: 10px;
  align-items: end;
  color: #111827;
  font-size: .9rem;
  font-weight: 900;
}
.seo-dispo-heading-duration,
.seo-dispo-heading-package {
  min-width: 0;
  line-height: 1.2;
}
.seo-dispo-heading-package { text-align: left; }
.seo-dispo-heading-separator {
  color: #6b7280;
  font-weight: 900;
  text-align: center;
}
.seo-dispo-options {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 10px;
  align-items: end;
}
.seo-field-compact { gap: 0; }
.seo-field-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.seo-local [hidden],
.seo-fields[hidden] { display: none !important; }
.seo-field {
  display: grid;
  gap: 6px;
  font-weight: 800;
  color: #111827;
  font-size: .92rem;
}
.seo-field input,
.seo-field select {
  width: 100%;
  box-sizing: border-box;
  min-height: 45px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: #111827;
  font: inherit;
  padding: 10px 12px;
}
.seo-field input:focus,
.seo-field select:focus {
  outline: 2px solid rgba(225,0,15,.18);
  border-color: #e1000f;
}
.seo-field-row,
.seo-datetime-line {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: end;
}
.seo-datetime-line .seo-asap {
  min-height: 45px;
  padding: 0 14px;
  white-space: nowrap;
}
.seo-estimator-message {
  min-height: 0;
  margin: 0;
  color: #9f1239;
  font-size: .88rem;
  font-weight: 700;
}
.em-address-results {
  position: fixed;
  z-index: 1000002;
  overflow: auto;
  border: 1px solid rgba(225,0,15,.28);
  border-radius: 12px;
  background: #111827;
  box-shadow: 0 18px 40px rgba(0,0,0,.35);
  scrollbar-width: thin;
  scrollbar-color: #e1000f #1f2937;
}
.em-address-results::-webkit-scrollbar { width: 8px; }
.em-address-results::-webkit-scrollbar-track { background: #1f2937; }
.em-address-results::-webkit-scrollbar-thumb { background: #e1000f; border-radius: 999px; }
.em-address-result-item,
.em-address-result-message {
  width: 100%;
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: transparent;
  color: #fff;
  text-align: left;
  font: inherit;
}
.em-address-result-item { cursor: pointer; }
.em-address-result-item:hover,
.em-address-result-item:focus-visible {
  background: rgba(225,0,15,.18);
  outline: none;
}
.em-address-result-main { font-weight: 800; }
.em-address-result-secondary { color: #cbd5e1; font-size: .86rem; }
.em-address-result-message { color: #cbd5e1; }
.seo-reservation-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(6px);
}
.seo-reservation-dialog {
  width: min(1180px, 96vw);
  height: min(900px, 92vh);
  border-radius: 16px;
  background: #111;
  box-shadow: 0 24px 70px rgba(0,0,0,.55);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr;
  scrollbar-width: thin;
  scrollbar-color: #e1000f #1f1f1f;
}
.seo-reservation-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: #101010;
  border-bottom: 1px solid #2a2a2a;
}
.seo-reservation-bar strong { color: #fff; }
.seo-reservation-close {
  color: #fff;
  background: #e1000f;
  border: 0;
  border-radius: 999px;
  padding: 8px 12px;
  text-decoration: none;
  font-weight: 800;
  cursor: pointer;
}
.seo-reservation-dialog iframe {
  width: 100%;
  height: 100%;
  border: 0;
  background: #181818;
  scrollbar-width: thin;
  scrollbar-color: #e1000f #1f1f1f;
}
.seo-modal-open { overflow: hidden; }
@media (max-width: 880px) {
  .seo-local { width: min(calc(100% - 20px), 1120px); padding-top: 16px; }
  .seo-hero,
  .seo-final,
  .seo-comparison { grid-template-columns: 1fr; }
  .seo-hero-copy,
  .seo-section,
  .seo-final { padding: 20px; }
  .seo-grid,
  .seo-grid.two { grid-template-columns: 1fr; }
  .seo-local-nav {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
  }
  .seo-local-nav a { white-space: nowrap; }
  .seo-reservation-modal { padding: 8px; }
  .seo-reservation-dialog { width: 100vw; height: 96vh; border-radius: 12px; }
}
@media (max-width: 560px) {
  .seo-actions,
  .seo-final-actions { flex-direction: column; }
  .seo-btn,
  .seo-btn-secondary,
  .seo-inline-link { width: 100%; box-sizing: border-box; }
  .seo-local h1 { font-size: 1.72rem; }
  .seo-local h2 { font-size: 1.34rem; }
  .seo-estimator { padding: 18px; }
  .seo-estimator h2 { font-size: 1rem; }
  .seo-estimator-tabs { grid-template-columns: 1fr 1fr; }
  .seo-estimator-tabs button { min-height: 40px; font-size: .82rem; padding: 0 8px; }
  .seo-dispo-heading-line,
  .seo-dispo-options {
    grid-template-columns: minmax(76px,.9fr) auto minmax(0,1.1fr);
    gap: 7px;
  }
  .seo-dispo-options {
    grid-template-columns: minmax(76px,.9fr) minmax(0,1.1fr);
  }
  .seo-dispo-heading-line { font-size: .78rem; }
}
@media (max-width: 380px) {
  .seo-estimator h2 { white-space: normal; min-height: 2.5em; }
  .seo-estimator-tabs button { font-size: .76rem; }
  .seo-datetime-line { grid-template-columns: 1fr; }
  .seo-datetime-line .seo-asap { width: 100%; }
}

.seo-service-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}
.seo-service-link {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.07);
  color: #fff;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 800;
}
.seo-service-link:hover,
.seo-service-link:focus-visible {
  border-color: #e1000f;
  background: rgba(225,0,15,.18);
  outline: none;
}
.seo-service-link.is-active {
  border-color: #e1000f;
  background: rgba(225,0,15,.24);
}
.seo-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 11px;
  border-radius: 50%;
  background: rgba(225,0,15,.18);
  border: 1px solid rgba(225,0,15,.35);
  color: #fff;
  font-weight: 900;
}
.seo-estimator-tabs button {
  min-width: 0;
  padding: 0 10px;
  line-height: 1.12;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 560px) {
  .seo-service-links { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .seo-service-link { white-space: nowrap; }
}


.seo-city-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 9px;
  margin-top: 18px;
}
.seo-city-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.06);
  color: #fff;
  text-decoration: none;
}
.seo-city-chip span {
  font-weight: 800;
  min-width: 0;
}
.seo-city-chip small {
  flex: 0 0 auto;
  color: #cbd5e1;
  font-size: .72rem;
  font-weight: 800;
}
.seo-city-chip.is-linked {
  border-color: rgba(225,0,15,.38);
  background: rgba(225,0,15,.11);
}
.seo-city-chip.is-linked:hover,
.seo-city-chip.is-linked:focus-visible {
  border-color: #e1000f;
  background: rgba(225,0,15,.22);
  outline: none;
}
.seo-city-chip.is-muted {
  opacity: .86;
}

.seo-city-list-compact {
  list-style: disc;
  padding-left: 1.1rem;
  align-items: start;
  gap: 5px 28px;
}
.seo-city-list-compact li {
  min-width: 0;
  padding: 2px 0;
  color: #e1000f;
  line-height: 1.35;
}
.seo-city-list-compact li::marker {
  color: #e1000f;
}
.seo-city-list-compact a {
  color: #fff;
  text-decoration: none;
  font-size: .93rem;
  font-weight: 700;
}
.seo-city-list-compact a:hover,
.seo-city-list-compact a:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: #e1000f;
  text-underline-offset: 4px;
  outline: none;
}
@media (max-width: 560px) {
  .seo-city-list-compact {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 3px 18px;
  }
  .seo-city-list-compact a { font-size: .9rem; }
}


.seo-icon-strip { padding-top: 10px; }
.seo-grid.four { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.seo-visual-section .seo-card { position: relative; overflow: hidden; }
.seo-visual-section .seo-card::after,
.seo-icon-strip .seo-card::after {
  content: '';
  position: absolute;
  inset: auto 14px 12px auto;
  width: 42px;
  height: 2px;
  border-radius: 999px;
  background: rgba(225,0,15,.75);
}
.seo-route-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 18px 0;
}
.seo-route-list li {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  background: rgba(255,255,255,.055);
  color: #fff;
  font-weight: 800;
}
.seo-route-list li span:nth-child(2) { color: #e1000f; }
@media (max-width: 560px) {
  .seo-route-list { grid-template-columns: 1fr; }
  .seo-route-list li { font-size: .9rem; }
}


/* Correctifs 2026-05-27 : responsive, modales et pages villes */
.seo-local,.seo-local *{box-sizing:border-box}.seo-panel,.seo-card,.seo-estimator,.seo-form,.seo-fields,.seo-field,.seo-field input,.seo-field select{min-width:0;max-width:100%}.seo-hero{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);align-items:stretch;overflow:visible}.seo-hero>*{min-width:0}.seo-estimator{overflow:visible}.seo-form,.seo-fields,.seo-field input,.seo-field select{width:100%}.seo-dispo-group{min-width:0}.seo-dispo-options{grid-template-columns:minmax(86px,.9fr) minmax(0,1.1fr)}.seo-datetime-line{grid-template-columns:minmax(0,1fr) auto;align-items:end}.seo-asap{white-space:nowrap;width:auto}
body[data-seo-page="prestation-vtc"] .seo-hero .seo-panel{overflow:hidden}body[data-seo-page="prestation-vtc"] #services-detail .seo-grid.two{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}body[data-seo-page="prestation-vtc"] #services-detail .seo-card{padding:17px}body[data-seo-page="prestation-vtc"] #services-detail .seo-card h3{font-size:1rem;margin:0 0 7px}body[data-seo-page="prestation-vtc"] #services-detail .seo-card p{font-size:.9rem;line-height:1.55}body[data-seo-page="prestation-vtc"] #services-detail .seo-card-icon{width:30px;height:30px;margin-bottom:8px}
body[data-seo-page="villes-locales"] #secteurs .seo-grid.two{grid-template-columns:repeat(auto-fit,minmax(218px,1fr));gap:12px}body[data-seo-page="villes-locales"] #secteurs .seo-card{padding:15px}body[data-seo-page="villes-locales"] #secteurs .seo-card h3{display:inline-flex;align-items:center;gap:8px;margin:0 0 6px;font-size:.98rem}body[data-seo-page="villes-locales"] #secteurs .seo-card-icon{width:26px;height:26px;margin:0 8px 0 0;vertical-align:middle}
.seo-preview-modal,.seo-context-suggestions{z-index:2147482500}.seo-preview-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(10px,2vw,24px);background:rgba(8,8,8,.62);backdrop-filter:blur(2px)}.seo-preview-dialog{width:min(1440px,96vw);height:min(980px,94vh);display:grid;grid-template-rows:auto 1fr;overflow:hidden;border-radius:16px;border:1px solid rgba(255,255,255,.16);background:#151515;box-shadow:0 26px 80px rgba(0,0,0,.52);scrollbar-width:thin;scrollbar-color:#e1000f #232323}.seo-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#101010;border-bottom:1px solid rgba(255,255,255,.12)}.seo-preview-bar strong{color:#fff;font-size:.92rem}.seo-preview-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:#ff3340;background:rgba(0,0,0,.78);border:1px solid rgba(225,0,15,.55);border-radius:999px;padding:0;font-size:28px;line-height:1;font-weight:800;cursor:pointer}.seo-preview-close:hover,.seo-preview-close:focus-visible{background:rgba(225,0,15,.16);outline:2px solid rgba(225,0,15,.65);outline-offset:2px}.seo-preview-dialog iframe{width:100%;height:100%;border:0;background:#181818;scrollbar-width:thin;scrollbar-color:#e1000f #232323}
.seo-context-suggestions{position:absolute;display:grid;gap:4px;padding:7px;border:1px solid rgba(225,0,15,.32);border-radius:12px;background:#151515;box-shadow:0 18px 45px rgba(0,0,0,.48)}.seo-context-suggestions button{display:block;width:100%;padding:9px 10px;border:0;border-radius:8px;background:rgba(255,255,255,.06);color:#fff;text-align:left;font-weight:800;cursor:pointer}.seo-context-suggestions button:hover,.seo-context-suggestions button:focus-visible{background:rgba(225,0,15,.22);outline:none}
.seo-estimator-band{display:flex;justify-content:center}.seo-estimator-band .seo-estimator{width:min(760px,100%)}.seo-expand-grid{position:relative;isolation:isolate}.seo-expand-card{cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,opacity .2s ease}.seo-expand-card:focus-visible{outline:2px solid #e1000f;outline-offset:3px}.seo-expand-detail{display:none;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12)}.seo-expand-grid.has-open-card .seo-expand-card:not(.is-open){opacity:0;pointer-events:none;transform:scale(.96)}.seo-expand-card.is-open{grid-column:1/-1;position:relative;z-index:3;transform:scale(1.015);border-color:rgba(225,0,15,.55);background:rgba(255,255,255,.09);box-shadow:0 18px 48px rgba(0,0,0,.34)}.seo-expand-card.is-open .seo-expand-detail{display:block;animation:seoExpandDetail .18s ease both}.seo-expand-close{display:none;position:absolute;top:10px;right:10px;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(225,0,15,.55);border-radius:999px;background:rgba(0,0,0,.72);color:#ff3340;font-size:24px;line-height:1;cursor:pointer}.seo-expand-card.is-open .seo-expand-close{display:inline-flex}.seo-expand-close:hover,.seo-expand-close:focus-visible{background:rgba(225,0,15,.16);outline:2px solid rgba(225,0,15,.65);outline-offset:2px}@keyframes seoExpandDetail{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:980px){.seo-hero{grid-template-columns:1fr}}@media(max-width:640px){.seo-hero-copy,.seo-section,.seo-final{padding:17px}.seo-grid,.seo-grid.two,.seo-grid.three,.seo-grid.four{grid-template-columns:1fr;gap:12px}.seo-card{padding:15px}.seo-datetime-line{grid-template-columns:minmax(0,1fr) auto;gap:8px}.seo-asap{padding-left:10px;padding-right:10px;font-size:.78rem}.seo-dispo-heading-line{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.seo-preview-modal{display:none}}@media(max-width:420px){.seo-datetime-line{grid-template-columns:1fr}.seo-asap{width:100%}.seo-estimator-tabs button{min-height:42px;font-size:.74rem}}

.seo-reservation-modal{z-index:2147482500;background:rgba(8,8,8,.62);backdrop-filter:blur(2px);padding:clamp(10px,2vw,24px)}
.seo-reservation-dialog{width:min(1440px,96vw);height:min(980px,94vh);max-width:96vw;max-height:94vh}
.seo-reservation-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:#ff3340;background:rgba(0,0,0,.78);border:1px solid rgba(225,0,15,.55);border-radius:999px;padding:0;font-size:28px;line-height:1;font-weight:800;cursor:pointer}
.seo-reservation-close:hover,.seo-reservation-close:focus-visible{background:rgba(225,0,15,.16);outline:2px solid rgba(225,0,15,.65);outline-offset:2px}

.seo-preview-dialog,.seo-reservation-dialog,.seo-preview-dialog iframe,.seo-reservation-dialog iframe{scrollbar-width:thin;scrollbar-color:rgba(225,0,15,.72) rgba(18,18,18,.45)}
.seo-preview-dialog::-webkit-scrollbar,.seo-reservation-dialog::-webkit-scrollbar,.seo-preview-dialog iframe::-webkit-scrollbar,.seo-reservation-dialog iframe::-webkit-scrollbar,body[data-seo-page]::-webkit-scrollbar{width:8px;height:8px}
.seo-preview-dialog::-webkit-scrollbar-track,.seo-reservation-dialog::-webkit-scrollbar-track,.seo-preview-dialog iframe::-webkit-scrollbar-track,.seo-reservation-dialog iframe::-webkit-scrollbar-track,body[data-seo-page]::-webkit-scrollbar-track{background:rgba(18,18,18,.3)}
.seo-preview-dialog::-webkit-scrollbar-thumb,.seo-reservation-dialog::-webkit-scrollbar-thumb,.seo-preview-dialog iframe::-webkit-scrollbar-thumb,.seo-reservation-dialog iframe::-webkit-scrollbar-thumb,body[data-seo-page]::-webkit-scrollbar-thumb{background:rgba(225,0,15,.62);border-radius:999px}
.seo-preview-dialog::-webkit-scrollbar-thumb:hover,.seo-reservation-dialog::-webkit-scrollbar-thumb:hover,.seo-preview-dialog iframe::-webkit-scrollbar-thumb:hover,.seo-reservation-dialog iframe::-webkit-scrollbar-thumb:hover,body[data-seo-page]::-webkit-scrollbar-thumb:hover{background:rgba(225,0,15,.82)}

.seo-expand-grid.has-open-card{display:block;min-height:var(--seo-expand-height,360px)}
.seo-expand-grid.has-open-card .seo-expand-card:not(.is-open){display:none}
.seo-expand-grid.has-open-card .seo-expand-card.is-open{position:absolute;inset:0;width:100%;min-height:var(--seo-expand-height,360px);padding-right:58px;transform:scale(1.01)}


/* Correctifs 2026-05-27 : structure pages villes et icônes Montpellier */
body[data-seo-page="city-touristic"] .seo-hero.seo-city-topline{grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr);align-items:stretch}
body[data-seo-page="city-touristic"] .seo-hero.seo-city-topline>.seo-estimator{align-self:stretch;height:100%}
body[data-seo-page="city-touristic"] .seo-hero.seo-city-topline .seo-hero-copy{height:100%}
.seo-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.seo-topic-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid rgba(225,0,15,.34);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.18),rgba(225,0,15,.08) 54%,rgba(255,255,255,.04));color:#fff;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.seo-topic-icon-coast{color:#ffd166}.seo-topic-icon-nature{color:#8ef0a1}.seo-topic-icon-excursion{color:#9bdcff}.seo-topic-icon-hotel,.seo-topic-icon-transfer{color:#fff}.seo-topic-icon-dining,.seo-topic-icon-event{color:#ffb3ba}
@media(max-width:1100px){.seo-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){body[data-seo-page="city-touristic"] .seo-hero.seo-city-topline{grid-template-columns:1fr}}
@media(max-width:640px){.seo-grid.four{grid-template-columns:1fr}}
/* CITY_MAIN_CARDS_MONTPELLIER_CONNECTIONS_AND_BADGES_FIX */
.seo-card,.seo-expand-card,.seo-expand-detail{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}.seo-expand-card.is-open{overflow:hidden}.seo-expand-card.is-open .seo-expand-detail{max-width:100%;overflow:hidden}.seo-expand-card.is-open .seo-badges,.seo-expand-card.is-open .seo-zone-cloud,.seo-connection-actions{max-width:100%;min-width:0;flex-wrap:wrap}.seo-badges span,.seo-badges a,.seo-zone-cloud span,.seo-zone-cloud a{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal}.seo-connection-actions{margin-top:18px;gap:10px}.seo-connection-actions .seo-btn,.seo-connection-actions .seo-btn-secondary{min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:center}@media(max-width:640px){.seo-expand-card.is-open{padding-right:18px}.seo-connection-actions{display:grid;grid-template-columns:1fr}.seo-connection-actions .seo-btn,.seo-connection-actions .seo-btn-secondary{width:100%}}
