:root{ --brand-1:#5b8cff; --brand-2:#7c4dff; --radius:1.25rem; --page-bg:#f6f8fb; }
body{
  background:
    radial-gradient(1200px 700px at 20% 10%, rgba(124,77,255,.12), transparent 60%),
    radial-gradient(1200px 700px at 80% 0%, rgba(91,140,255,.14), transparent 55%),
    var(--page-bg);
}
.navbar,.card{ border-radius:var(--radius); }
.card{ box-shadow:0 12px 30px rgba(15,23,42,.08); border:0; }
.btn{ border-radius:999px; }
.badge{ border-radius:999px; }
.hero{
  background:linear-gradient(135deg, rgba(91,140,255,.18), rgba(124,77,255,.18));
  border:1px solid rgba(15,23,42,.06);
}
.icon-bubble{
  width:44px;height:44px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(91,140,255,.14);
}
.footer-links a{ text-decoration:none; }
.footer-links a:hover{ text-decoration:underline; }



  50%{ transform: translateY(6px); }
  100%{ transform: translateY(0px); }
}


/* --- V7 Modern UI --- */
:root{
  --shadow: 0 18px 50px rgba(15,23,42,.10);
  --shadow-soft: 0 10px 28px rgba(15,23,42,.08);
  --border: rgba(15,23,42,.08);
}
body{
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}
.navbar{ box-shadow: var(--shadow-soft); border: 1px solid var(--border); }
.hero, .card{ box-shadow: var(--shadow); }
.btn-primary{
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  border: 0;
}
.btn-primary:hover{ filter: brightness(.98); }
.btn-outline-secondary{ border-color: rgba(15,23,42,.18); }
.badge.text-bg-secondary{ background: rgba(15,23,42,.08) !important; color: #111827; border: 1px solid rgba(15,23,42,.08); }
.section-title{ letter-spacing: -.02em; }
.kpi{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 999px;
  padding: .45rem .8rem;
}
.stepper{
  display:flex; gap:.5rem; flex-wrap:wrap;
}
.stepper .step{
  padding:.35rem .75rem;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.65);
  color:#0f172a;
  font-size:.85rem;
}
.stepper .step.active{
  background: linear-gradient(135deg, rgba(91,140,255,.18), rgba(124,77,255,.18));
  border-color: rgba(91,140,255,.35);
  font-weight:600;
}
.select-card{
  cursor:pointer;
  border:1px solid rgba(15,23,42,.08);
  transition: transform .08s ease, box-shadow .08s ease, border-color .08s ease;
}
.select-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
  border-color: rgba(91,140,255,.35);
}
.select-card.selected{
  outline: 3px solid rgba(91,140,255,.35);
}
.price-pill{
  font-weight:700;
  background: rgba(91,140,255,.10);
  border: 1px solid rgba(91,140,255,.18);
  border-radius: 999px;
  padding: .25rem .6rem;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
}

.select-badge{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  background: rgba(91,140,255,.18);
  border: 1px solid rgba(91,140,255,.35);
  color: #0f172a;
}


/* V9 layout tweaks */
.hero-actions{ align-items: center; }
@media (max-width: 991px){
  .wave-hero .glass-card{ margin-top: 8px; }
}


/* --- V14 Wave theme (clean) --- */
body{ background: var(--page-bg); }

.wave-hero{
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(15,23,42,.06);
  background:
    radial-gradient(900px 450px at 20% 25%, rgba(91,140,255,.50), transparent 60%),
    radial-gradient(900px 450px at 85% 15%, rgba(124,77,255,.45), transparent 58%),
    linear-gradient(135deg, rgba(91,140,255,.28), rgba(124,77,255,.28));
}

.wave-hero .wave-content{ position: relative; z-index: 2; }
.wave-hero .wave-svg{
  position:absolute;
  left:0; right:0; bottom:-1px;
  width:100%;
  height:180px;
  z-index:1;
  display:block;
}

.wave-hero .wave-path-1{ fill: rgba(246,248,251,.96); }
.wave-hero .wave-path-2{ fill: rgba(246,248,251,.70); }

@keyframes waveMove{
  0%{ transform: translateX(0); }
  50%{ transform: translateX(-12px); }
  100%{ transform: translateX(0); }
}
.wave-hero .wave-svg{ animation: waveMove 10s ease-in-out infinite; }

.glass-card{
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(15,23,42,.08);
}

/* V15 layout fixes */
.scroll-panel{
  max-height: 360px;
  overflow: auto;
  padding-right: 6px;
}
.scroll-panel::-webkit-scrollbar{ width: 10px; }
.scroll-panel::-webkit-scrollbar-thumb{
  background: rgba(15,23,42,.12);
  border-radius: 999px;
  border: 3px solid rgba(255,255,255,.7);
}
.scroll-panel::-webkit-scrollbar-track{ background: transparent; }

.sticky-card{
  position: sticky;
  top: 88px;
}

.stepper{
  display:flex; gap:.5rem; flex-wrap:wrap;
  margin-top: .75rem;
}
.stepper .step{
  padding:.35rem .75rem;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.10);
  background: rgba(255,255,255,.70);
  color:#0f172a;
  font-size:.85rem;
}
.stepper .step.active{
  background: linear-gradient(135deg, rgba(91,140,255,.18), rgba(124,77,255,.18));
  border-color: rgba(91,140,255,.35);
  font-weight:600;
}

@media (max-width: 991px){
  .scroll-panel{ max-height: none; overflow: visible; padding-right: 0; }
  .sticky-card{ position: static; top:auto; }
}

/* V16 selection visibility */
.model-card{
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.model-card.selected{
  border-color: rgba(91,140,255,.65) !important;
  box-shadow: 0 16px 42px rgba(91,140,255,.22);
  background: linear-gradient(135deg, rgba(91,140,255,.12), rgba(124,77,255,.10));
  outline: none !important;
}
.selected-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.75rem;
  font-weight:700;
  padding:.25rem .55rem;
  border-radius: 999px;
  background: rgba(91,140,255,.16);
  border: 1px solid rgba(91,140,255,.28);
  color:#0f172a;
}
.selected-dot{
  width:10px; height:10px; border-radius:999px;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
}

/* V17 - cleaner selection indicator */
.selected-badge{
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  border: 0;
  color: #fff;
  font-weight: 900;
  box-shadow: 0 10px 26px rgba(91,140,255,.28);
  padding: 0;
}
.selected-badge .selected-dot{ display:none; }

/* V21 models panel */
.scroll-panel{
  max-height: 520px; /* show more models */
}
.scroll-panel.expanded{
  max-height: none;
  overflow: visible;
  padding-right: 0;
}
.model-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:.35rem;
}
.model-search{
  max-width: 320px;
}

/* Keep models panel fully visible on mobile (override after V21 rule) */
@media (max-width: 991px){
  .scroll-panel{ max-height: none; overflow: visible; padding-right: 0; }
}

/* Brand logos (emoji or uploaded image) */
.brand-img{
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: inline-block;
  vertical-align: middle;
}
.icon-bubble .brand-img{
  width: 22px;
  height: 22px;
}

/* Payment micro-badges (Stripe reassurance) */
.sx-pay-badge{
  gap:.35rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.18rem .55rem;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.75);
  font-size:12px;
  line-height:1.2;
}

/* Client timeline (order status) */
.sx-timeline{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.sx-timeline-item{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:.35rem 0;
}
.sx-timeline-marker{
  width:14px;
  height:14px;
  border-radius:999px;
  border:2px solid rgba(15,23,42,.22);
  background:rgba(255,255,255,.9);
  margin-top:.25rem;
  position:relative;
  flex:0 0 auto;
}
.sx-timeline-item:not(:last-child) .sx-timeline-marker::after{
  content:"";
  position:absolute;
  left:50%;
  top:14px;
  transform:translateX(-50%);
  width:2px;
  height:22px;
  background:rgba(15,23,42,.12);
}
.sx-timeline-item.done .sx-timeline-marker{
  border-color: rgba(34,197,94,.6);
  background: rgba(34,197,94,.18);
}
.sx-timeline-item.current .sx-timeline-marker{
  border-color: rgba(91,140,255,.8);
  background: rgba(91,140,255,.18);
}
.sx-timeline-content{ min-width:0; }


.sx-pay-logo{height:14px;width:auto;display:block;}

.sx-pay-note{font-size:12px;color:#6c757d;}

/* Homepage hero badges */
.sx-hero-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}
.sx-hero-trust .badge{
  background:rgba(255,255,255,.65) !important;
  border:1px solid rgba(15,23,42,.12) !important;
}
@media (max-width: 576px){
  .sx-hero-top{ justify-content:flex-start; }
  .sx-hero-trust{ width:100%; }
}

/* Homepage chips (réparations fréquentes) */
.sx-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sx-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  border:1px solid #e5e7eb;
  background:#f3f4f6;
  color:rgba(15,23,42,.85);
  font-size:14px;
  font-weight:500;
  line-height:1.2;
  flex:0 0 auto;
  white-space:nowrap;

  /* reset native button rendering (Android/Chrome) */
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
  outline:none;
}
.sx-chip--muted{
  background:#f3f4f6;
  color:rgba(15,23,42,.75);
}
.sx-chip:focus-visible{
  box-shadow:0 0 0 4px rgba(99,102,241,.18);
  border-color:rgba(99,102,241,.35);
}

@media (max-width: 480px){
  .sx-chip{
    font-size:13px;
    padding:5px 10px;
  }
}

/* Chips as menu (scroll + highlight) */
.sx-chip-link{
  cursor:pointer;
  user-select:none;
}
.sx-chip-link:hover{
  background:rgba(99,102,241,.12);
  border-color:rgba(99,102,241,.25);
  color:rgba(15,23,42,.9);
}

/* Highlight tariff card after chip click */
.sx-tariff-card.sx-highlight{
  outline:2px solid rgba(99,102,241,.55);
  box-shadow:0 0 0 6px rgba(99,102,241,.10);
}

/* ── File input custom ─────────────────────────────────────── */
.sx-file-input {
  position: absolute;
  width: 1px; height: 1px;
  opacity: 0; overflow: hidden;
  clip: rect(0,0,0,0);
}
.sx-file-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  border: 1.5px dashed #d1d5db;
  border-radius: 10px;
  padding: 9px 14px;
  background: #fafafa;
  color: #6b7280;
  font-size: 13px;
  font-weight: 500;
  transition: border-color .15s, background .15s, color .15s;
  width: 100%;
}
.sx-file-label:hover {
  border-color: #6366f1;
  background: #f0f0ff;
  color: #6366f1;
}
.sx-file-label--active {
  border-color: #6366f1;
  border-style: solid;
  background: #f0f0ff;
  color: #6366f1;
}
.sx-file-icon { font-size: 15px; flex-shrink: 0; }
.sx-file-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
