/* ============================================================
   Reserver — Finalisation (livraison + paiement)
   Reprend la charte builder.css : coral / Nunito / liquid glass
   ============================================================ */

body.reserver-body{
  background: linear-gradient(180deg, #fff6f3 0%, #ffe9e1 100%);
  min-height: 100vh;
}

/* État vide */
.rsv-empty{
  display: grid;place-items: center;
  min-height: calc(100vh - 200px);
  padding: 40px 20px;
}
.rsv-empty__inner{
  text-align: center;max-width: 420px;
}
.rsv-empty__emoji{ font-size: 64px;display: block;margin-bottom: 16px }
.rsv-empty h2{ font-family: 'Nunito',sans-serif;font-size: 22px;font-weight: 900;color: var(--ink-1);margin: 0 0 8px }
.rsv-empty p{ color: var(--ink-3);margin: 0 0 20px;font-size: 14px }

/* Shell principal */
.rsv-shell{
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 24px 20px 80px;
}
@media (min-width: 900px){
  .rsv-shell{
    grid-template-columns: 1fr 380px;
    gap: 32px;
    padding: 32px 24px 80px;
  }
}

/* Steps */
.rsv-main{ display: flex;flex-direction: column;gap: 20px }
.rsv-step{
  background: rgba(255,255,255,.65);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 20px;
  padding: 22px 24px;
  box-shadow: 0 8px 28px rgba(231,26,101,.10), inset 0 1px 0 rgba(255,255,255,.9);
}
.rsv-step__head{
  display: flex;align-items: flex-start;gap: 14px;
  margin-bottom: 18px;
}
.rsv-step__num{
  width: 32px;height: 32px;flex-shrink: 0;
  background: var(--coral);color: #fff;
  border-radius: 50%;
  display: grid;place-items: center;
  font-family: 'Nunito',sans-serif;font-weight: 900;font-size: 16px;
  box-shadow: 0 6px 18px rgba(231,26,101,.28);
}
.rsv-step__title{
  font-family: 'Open Sans',sans-serif;
  font-size: clamp(18px, 1.7vw, 22px);font-weight: 800;color: var(--ink-1);
  margin: 0;letter-spacing: -.015em;line-height: 1.2;
}
.rsv-step__sub{
  display: block;margin-top: 4px;
  font-size: 13px;font-weight: 400;color: var(--ink-3);
  font-family: 'Open Sans',sans-serif;
}
.rsv-step__body{ }

/* Mode de réception */
.rsv-mode-choices{ display: grid;gap: 10px }
@media (min-width: 600px){ .rsv-mode-choices{ grid-template-columns: 1fr 1fr } }
.rsv-mode{
  display: block;cursor: pointer;
}
.rsv-mode input{ position: absolute;opacity: 0;pointer-events: none }
.rsv-mode__inner{
  display: flex;align-items: center;gap: 12px;
  padding: 14px 16px;
  background: rgba(255,255,255,.55);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  transition: all .18s ease;
}
.rsv-mode:hover .rsv-mode__inner{
  border-color: var(--coral-soft, #f4a8c0);
  background: rgba(255,255,255,.85);
}
.rsv-mode.is-selected .rsv-mode__inner{
  border-color: var(--coral);
  background: linear-gradient(135deg, rgba(255,217,228,.45), rgba(255,255,255,.85));
  box-shadow: 0 6px 18px rgba(231,26,101,.18);
}
.rsv-mode__ic{ font-size: 22px;line-height: 1 }
.rsv-mode__main{ flex: 1;display: flex;flex-direction: column;gap: 2px;min-width: 0 }
.rsv-mode__title{ font-weight: 700;font-size: 14px;color: var(--ink-1) }
.rsv-mode__desc{ font-size: 12px;color: var(--ink-3) }
.rsv-mode__price{
  font-family: 'Nunito',sans-serif;font-weight: 900;font-size: 15px;color: var(--coral);
}
.rsv-mode__price--free{ color: #266c44 }

/* Form */
.rsv-form{ display: flex;flex-direction: column;gap: 12px }
.rsv-row{ display: grid;grid-template-columns: 1fr 1fr;gap: 10px }
@media (max-width: 480px){ .rsv-row{ grid-template-columns: 1fr } }
.rsv-field{ display: flex;flex-direction: column;gap: 5px;position: relative }
.rsv-field[hidden]{ display: none !important }
.rsv-lbl{
  font-size: 11px;font-weight: 700;text-transform: uppercase;letter-spacing: .06em;
  color: var(--ink-3);
}
.rsv-lbl-opt{ font-weight: 500;text-transform: none;letter-spacing: 0;font-style: italic }
.rsv-field input,
.rsv-field textarea{
  background: var(--surface);
  border: 1.5px solid var(--line);
  border-radius: 10px;
  padding: 10px 13px;font-size: 14px;color: var(--ink-1);
  font-family: inherit;transition: .15s;
  resize: vertical;
}
.rsv-field input:focus,
.rsv-field textarea:focus{
  outline: 0;border-color: var(--coral);
  box-shadow: 0 0 0 3px rgba(231,26,101,.12);
}
/* Mobile : font-size ≥16px sur les champs sinon iOS Safari zoome automatiquement
   au focus (rend la saisie nom/email/adresse pénible et fait sauter la mise en page). */
@media (max-width: 899px){
  .rsv-field input,
  .rsv-field textarea{ font-size: 16px }
}

/* Paiement */
.rsv-pay-choices{ display: flex;flex-direction: column;gap: 10px }
.rsv-pay{ display: block;cursor: pointer }
.rsv-pay input{ position: absolute;opacity: 0;pointer-events: none }
.rsv-pay__inner{
  display: flex;align-items: center;gap: 14px;
  padding: 16px 18px;
  background: rgba(255,255,255,.55);
  border: 1.5px solid var(--line);
  border-radius: 16px;
  transition: all .18s ease;
}
.rsv-pay:hover .rsv-pay__inner{
  border-color: var(--coral-soft, #f4a8c0);
  background: rgba(255,255,255,.85);
}
.rsv-pay.is-selected .rsv-pay__inner{
  border-color: var(--coral);
  background: linear-gradient(135deg, rgba(255,217,228,.50), rgba(255,255,255,.85));
  box-shadow: 0 8px 22px rgba(231,26,101,.22);
}
.rsv-pay__ic{ font-size: 26px;line-height: 1;flex-shrink: 0 }
.rsv-pay__main{ flex: 1;display: flex;flex-direction: column;gap: 3px;min-width: 0 }
.rsv-pay__title{
  font-weight: 800;font-size: 15px;color: var(--ink-1);
  display: flex;align-items: center;gap: 8px;flex-wrap: wrap;
}
.rsv-pay__badge{
  background: var(--coral);color: #fff;
  font-size: 10px;font-weight: 800;letter-spacing: .06em;text-transform: uppercase;
  padding: 3px 8px;border-radius: var(--radius-pill);
  box-shadow: 0 2px 6px rgba(231,26,101,.30);
}
.rsv-pay__desc{ font-size: 12.5px;color: var(--ink-3);line-height: 1.4 }
.rsv-pay__amount{
  font-family: 'Nunito',sans-serif;font-weight: 900;font-size: 22px;color: var(--coral);
  text-align: right;flex-shrink: 0;
  display: flex;flex-direction: column;align-items: flex-end;
  line-height: 1;
}
.rsv-pay__hint{ font-size: 10px;font-weight: 600;color: var(--ink-3);margin-top: 3px;text-transform: uppercase;letter-spacing: .04em }

/* Échéancier 3× — affiché à l'intérieur de la card 3× */
.rsv-pay__sched{
  margin-top: 8px; padding-top: 8px;
  border-top: 1px dashed rgba(0,0,0,.10);
  display: flex; flex-direction: column; gap: 4px;
}
.rsv-pay__sched-line{
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 12.5px; line-height: 1.3;
}
.rsv-pay__sched-date{ color: var(--ink-3); }
.rsv-pay__sched-amt{
  color: var(--ink-2); font-weight: 700;
  font-variant-numeric: tabular-nums;
  font-family: 'SF Mono','Menlo','Consolas','Courier New',monospace;
}

/* Final step (CGV + submit) */
.rsv-step--final{
  background: transparent;border: 0;padding: 0;box-shadow: none;
  display: flex;flex-direction: column;gap: 14px;
}
.rsv-cgv label{
  display: flex;align-items: flex-start;gap: 10px;
  font-size: 13px;color: var(--ink-2);line-height: 1.4;
  cursor: pointer;
}
.rsv-cgv input{ margin-top: 2px;accent-color: var(--coral) }
.rsv-cgv a{ color: var(--coral);text-decoration: underline }
.rsv-submit{
  width: 100%;
  padding: 16px 20px;font-size: 16px;font-weight: 800;
  background: linear-gradient(135deg, var(--coral), #ff4d8d);
  color: #fff;
  border: 0;border-radius: 14px;
  box-shadow: 0 12px 28px rgba(231,26,101,.32);
  cursor: pointer;transition: .15s;
}
.rsv-submit:hover:not(:disabled){ transform: translateY(-1px);box-shadow: 0 14px 32px rgba(231,26,101,.38) }
.rsv-submit:disabled{ opacity: .50;cursor: not-allowed;box-shadow: none }
.rsv-secure{
  text-align: center;font-size: 12px;color: var(--ink-3);
  margin: 0;
}

/* Récap par email — alternative au paiement direct */
.rsv-recap-mail{
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed rgba(0,0,0,0.08);
  text-align: center;
}
.rsv-recap-mail__hint{
  margin: 0 0 8px;
  font-size: 13px;
  color: var(--ink-3);
}
.rsv-recap-mail__btn{
  background: #fff;
  color: var(--coral);
  border: 1.5px solid var(--coral);
  border-radius: 10px;
  padding: 11px 22px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, color .15s;
  font-family: inherit;
}
.rsv-recap-mail__btn:hover:not(:disabled){
  background: var(--coral); color: #fff;
}
.rsv-recap-mail__btn:disabled{
  opacity: .6; cursor: not-allowed;
}
.rsv-recap-mail__feedback{
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 600;
  color: #16a34a;
}
.rsv-recap-mail__feedback.is-error{
  color: #dc2626;
}

/* Récap (colonne droite) */
.rsv-recap{
  background: rgba(255,255,255,.70);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 20px;
  padding: 22px 24px;
  box-shadow: 0 8px 28px rgba(231,26,101,.12), inset 0 1px 0 rgba(255,255,255,.9);
  align-self: start;
  position: sticky;
  top: 24px;
}
.rsv-recap__title{
  font-family: 'Nunito',sans-serif;font-size: 18px;font-weight: 900;color: var(--ink-1);
  margin: 0 0 16px;letter-spacing: -.01em;
}
.rsv-recap__offer{
  background: linear-gradient(135deg, rgba(255,217,228,.40), rgba(255,255,255,.70));
  border: 1px solid rgba(231,26,101,.18);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ro-name{
  font-family: 'Nunito',sans-serif;font-weight: 800;font-size: 15px;color: var(--coral);
  margin-bottom: 2px;
}
.ro-cap{ font-weight: 700;color: var(--ink-1);font-size: 14px }
.ro-strip{ font-weight: 500;color: var(--coral-d);font-size: 12px }
.ro-meta{ font-size: 12px;color: var(--ink-3);margin-top: 4px }

.rsv-recap__list{
  list-style: none;padding: 0;margin: 0 0 14px;
  display: flex;flex-direction: column;gap: 8px;
}
.rl-item{
  display: flex;align-items: flex-start;gap: 8px;
  font-size: 13px;color: var(--ink-2);
}
.rl-ic{ font-size: 14px;width: 22px;text-align: center;align-self: flex-start;margin-top: 2px }
.rl-name{ flex: 1;min-width: 0;display: flex;flex-direction: column;gap: 1px }
.rl-desc{ font-size: 11px;color: var(--ink-3);font-weight: 500;line-height: 1.3 }
.rl-price{ font-weight: 800;color: var(--coral);font-size: 13px;align-self: flex-start;margin-top: 2px }
.rl-item--incl .rl-price{
  background: var(--coral);color: #fff;
  font-size: 10px;letter-spacing: .04em;text-transform: uppercase;
  padding: 3px 8px;border-radius: var(--radius-pill);
}
.rl-badge-opt{
  align-self: flex-start;margin-top: 2px;
  border: 1px solid var(--coral);color: var(--coral);
  font-size: 10px;font-weight: 800;letter-spacing: .04em;text-transform: uppercase;
  padding: 2px 7px;border-radius: var(--radius-pill);
  white-space: nowrap;
}

.rsv-recap__line{
  display: flex;justify-content: space-between;align-items: baseline;
  padding-top: 14px;
  border-top: 1px solid rgba(231,26,101,.18);
}
.rsv-recap__line--total span{ font-size: 14px;color: var(--ink-2);font-weight: 700 }
.rsv-recap__line--total strong{
  font-family: 'Nunito',sans-serif;font-weight: 900;font-size: 28px;color: var(--coral);
  letter-spacing: -.02em;
}

.rsv-recap__ctx{
  margin-top: 14px;
  display: flex;flex-direction: column;gap: 6px;
  font-size: 12px;
}
.rsv-recap__ctx div{
  display: flex;justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px dashed rgba(231,26,101,.12);
}
.rsv-recap__ctx div:last-child{ border-bottom: 0 }
.rsv-recap__ctx span{ color: var(--ink-3);font-weight: 600 }
.rsv-recap__ctx strong{ color: var(--ink-1);font-weight: 700 }

.rsv-back{
  display: inline-block;margin-top: 16px;
  font-size: 13px;color: var(--ink-3);font-weight: 600;
  text-decoration: none;
}
.rsv-back:hover{ color: var(--coral) }

/* Mobile : récap se replie en dessous */
@media (max-width: 899px){
  .rsv-recap{ position: static;order: 99 }
  .rsv-shell{ display: flex;flex-direction: column }
  .rsv-main{ order: 1 }
}

/* ============================================================
   Toggle Particulier / Pro (au-dessus du form d'adresse)
   ============================================================ */
.rsv-customer-type{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}
.rsv-ct{
  display: flex;align-items: center;justify-content: center;gap: 8px;
  padding: 10px 14px;
  background: rgba(255,255,255,.55);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  transition: all .18s ease;
}
.rsv-ct input{ position: absolute;opacity: 0;pointer-events: none }
.rsv-ct:hover{
  border-color: var(--coral-soft, #f4a8c0);
  background: rgba(255,255,255,.85);
}
.rsv-ct.is-selected{
  border-color: var(--coral);
  background: linear-gradient(135deg, rgba(255,217,228,.50), rgba(255,255,255,.85));
  box-shadow: 0 4px 14px rgba(231,26,101,.18);
}
.rsv-ct__ic{ font-size: 18px;line-height: 1 }
.rsv-ct__lbl{ font-weight: 700;font-size: 13px;color: var(--ink-1) }

/* "Inclus" badge pour la livraison */
.rsv-mode__price--incl{
  background: rgba(184,232,224,.65);
  color: #1e5d44;
  font-size: 11px;font-weight: 800;letter-spacing: .04em;text-transform: uppercase;
  padding: 4px 9px;border-radius: var(--radius-pill);
  white-space: nowrap;
}

/* Tags PRO masqués/affichés selon customer_type */
.rsv-row[hidden]{ display: none !important }

/* ============================================================
   STICKY BAR mobile — récap permanent en bas, compact
   ============================================================ */
.rsv-bar{ display: none }
@media (max-width: 899px){
  .rsv-bar{
    display: flex !important;
    position: fixed !important;bottom: 0 !important;left: 0 !important;right: 0 !important;z-index: 100 !important;
    align-items: center;gap: 10px;
    padding: 8px 12px;
    background: linear-gradient(135deg, rgba(255,217,228,.88) 0%, rgba(255,255,255,.95) 60%, rgba(255,237,232,.92) 100%);
    border-top: 2px solid var(--coral);
    box-shadow: 0 -8px 24px rgba(231,26,101,.20);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }
  .rsv-bar__thumb{
    width: 40px;height: 50px;flex-shrink: 0;
    background: #fff;border-radius: 9px;padding: 3px;
    box-shadow: 0 3px 10px rgba(231,26,101,.16);
    display: grid;place-items: center;
  }
  .rsv-bar__thumb img{ max-width: 100%;max-height: 100%;object-fit: contain }
  .rsv-bar__info{
    flex: 1;min-width: 0;
    display: flex;flex-direction: column;gap: 0;
    justify-content: center;
  }
  .rsv-bar__lbl{
    font-size: 12px;font-weight: 700;color: var(--ink-1);
    white-space: nowrap;overflow: hidden;text-overflow: ellipsis;
    line-height: 1.25;
  }
  .rsv-bar__total{
    font-family: 'Nunito',sans-serif;font-weight: 900;font-size: 18px;color: var(--coral);
    line-height: 1.1;
  }
  .rsv-bar__btn{
    background: linear-gradient(135deg, var(--coral), #ff4d8d);
    color: #fff;
    padding: 10px 14px;border-radius: var(--radius-pill);
    border: 0;font-weight: 800;font-size: 12.5px;
    box-shadow: 0 6px 18px rgba(231,26,101,.30);
    cursor: pointer;flex-shrink: 0;
    white-space: nowrap;
  }
  .rsv-bar__btn:disabled{
    background: var(--bg-2);color: var(--ink-3);
    box-shadow: none;cursor: not-allowed;
  }
  /* Padding du shell pour ne pas être caché derrière la barre */
  .rsv-shell{ padding-bottom: 90px !important }
  /* Pendant la saisie d'un champ du formulaire, on masque la barre fixe : sinon elle
     recouvre les derniers champs (Adresse / CP / Ville) et le client ne peut plus
     les éditer une fois le clavier ouvert. La barre revient dès qu'on quitte le champ. */
  body.rsv-editing .rsv-bar{ display: none !important }
  /* Récap card (colonne droite) toute la largeur sur mobile */
  .rsv-recap{ width: 100% !important;padding: 18px 20px !important }
}

/* ============================================================
   Mobile : on retire le récap dans le scroll (remplacé par le sheet sticky)
   ============================================================ */
@media (max-width: 899px){
  .rsv-recap{ display: none !important }
}

/* ============================================================
   Sticky bar — zone info devient un bouton tap pour ouvrir le sheet
   ============================================================ */
.rsv-bar__main{
  background: transparent;border: 0;cursor: pointer;
  display: flex;align-items: center;gap: 10px;
  padding: 0;flex: 1;min-width: 0;text-align: left;
}
.rsv-bar__chevron{
  width: 22px;height: 22px;flex-shrink: 0;
  background: rgba(231,26,101,.12);color: var(--coral);
  border-radius: 50%;
  display: grid;place-items: center;
  font-size: 9px;font-weight: 800;
  transition: transform .25s ease;
  animation: rsvChevPulse 2.2s ease-in-out infinite;
}
body.rsv-sheet-open .rsv-bar__chevron{ transform: rotate(180deg);animation: none }
@keyframes rsvChevPulse{
  0%,100%{ transform: translateY(0) }
  50%   { transform: translateY(-2px) }
}

/* ============================================================
   Sheet expandable depuis sticky bar
   ============================================================ */
.rsv-sheet{
  position: fixed;inset: 0;z-index: 1000;
  display: flex;align-items: flex-end;justify-content: center;
  pointer-events: none;
}
.rsv-sheet[hidden]{ display: none }
body.rsv-sheet-open{ overflow: hidden }

.rsv-sheet__backdrop{
  position: absolute;inset: 0;
  background: rgba(0,0,0,.50);
  -webkit-backdrop-filter: blur(4px);backdrop-filter: blur(4px);
  cursor: pointer;pointer-events: auto;
  opacity: 0;transition: opacity .3s ease;
}
body.rsv-sheet-open .rsv-sheet__backdrop{ opacity: 1 }

.rsv-sheet__panel{
  position: relative;width: 100%;max-width: 560px;
  background: #fff;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -16px 50px rgba(0,0,0,.20);
  padding: 16px 18px calc(90px + env(safe-area-inset-bottom, 0px));
  pointer-events: auto;
  transform: translateY(100%);
  transition: transform .38s cubic-bezier(.2,.85,.3,1);
  max-height: 82vh;overflow-y: auto;
}
body.rsv-sheet-open .rsv-sheet__panel{ transform: translateY(0) }

.rsv-sheet__close{
  position: absolute;top: 8px;left: 50%;transform: translateX(-50%);
  width: 36px;height: 22px;border-radius: 12px;
  background: var(--bg-2);color: var(--ink-3);
  font-size: 11px;font-weight: 800;
  display: grid;place-items: center;cursor: pointer;border: 0;
}
.rsv-sheet__close:hover{ background: var(--coral);color: #fff }
.rsv-sheet__title{
  font-family: 'Nunito',sans-serif;font-size: 18px;font-weight: 900;color: var(--ink-1);
  margin: 12px 0 14px;text-align: center;
}
.rsv-sheet__ctx{
  margin-top: 14px;display: flex;flex-direction: column;gap: 4px;font-size: 12px;
}
.rsv-sheet__ctx div{
  display: flex;justify-content: space-between;padding: 6px 0;
  border-bottom: 1px dashed rgba(231,26,101,.12);
}
.rsv-sheet__ctx div:last-child{ border-bottom: 0 }
.rsv-sheet__ctx span{ color: var(--ink-3);font-weight: 600 }
.rsv-sheet__ctx strong{ color: var(--ink-1);font-weight: 700 }
.rsv-sheet__back{
  display: inline-block;margin-top: 16px;
  font-size: 13px;color: var(--ink-3);font-weight: 600;text-decoration: none;
}
.rsv-sheet__back:hover{ color: var(--coral) }

/* Mini-footer également sur la reserver — sticky bar masque le bas */
@media (max-width: 899px){
  .mini-footer{ padding-bottom: calc(90px + env(safe-area-inset-bottom, 0)) }
}

/* Espacement réduit entre "Paiement sécurisé" et le mini-footer */
@media (max-width: 899px){
  .rsv-shell{ padding-bottom: 24px !important }
  .mini-footer{
    padding-top: 8px !important;
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0)) !important;
  }
}

/* ── Erreurs de formulaire visibles (bug 07/07 : bouton grisé muet) ── */
.rsv-input--error {
  border-color: #e03131 !important;
  background: #fff5f5 !important;
}
.rsv-form-errors {
  background: #fff5f5;
  border: 1.5px solid #ffc9c9;
  color: #c92a2a;
  border-radius: 12px;
  padding: 12px 16px;
  margin: 0 0 12px;
  font-size: 14.5px;
  line-height: 1.45;
}
.rsv-submit--incomplete {
  opacity: 0.55;
}

/* ── Options de livraison (anticipée + enlèvement retour) — 09/07/2026 ── */
.rsv-ship-extras{ display:grid; gap:8px; margin-top:14px; padding-top:14px; border-top:1px dashed #eadfda }
.rsv-ship-extras[hidden]{ display:none }
.rsv-mode--extra .rsv-mode__inner{ align-items:center; padding:9px 14px; border-radius:12px }
.rsv-mode--extra .rsv-mode__ic{ font-size:17px }
.rsv-mode--extra .rsv-mode__title{ font-size:13px }
.rsv-mode--extra .rsv-mode__desc{ font-size:11.5px }
.rsv-mode--extra input:checked ~ .rsv-mode__inner{ border-color:#e71a65; background:#fff5f9 }
.rsv-extra-detail{ margin:-2px 0 4px; padding:10px 14px; background:#faf7f6; border:1px solid #f0e7e4; border-radius:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:14px }
.rsv-extra-detail[hidden]{ display:none }
.rsv-chip{ display:inline-flex; align-items:center; gap:6px; border:1.5px solid #e6d5cd; border-radius:999px; padding:7px 14px; cursor:pointer; font-weight:600; background:#fff }
.rsv-chip:has(input:checked){ border-color:#e71a65; background:#e71a65; color:#fff }
.rsv-chip input{ accent-color:#fff; margin:0 }
.rsv-extra-detail .rsv-row{ width:100%; display:flex; gap:10px; flex-wrap:wrap }


/* ── Détrompeur adresse (Base Adresse Nationale) — 10/07/2026 ── */
.rsv-addr-suggest{ position:absolute; top:100%; left:0; right:0; z-index:30; background:#fff; border:1.5px solid #e6d5cd; border-radius:12px; box-shadow:0 12px 30px rgba(0,0,0,.12); overflow:hidden; margin-top:4px }
.rsv-addr-suggest[hidden]{ display:none }
.rsv-addr-suggest button{ display:block; width:100%; text-align:left; padding:10px 14px; border:0; background:#fff; cursor:pointer; font-size:14px; color:#1a1a1a }
.rsv-addr-suggest button:hover{ background:#fff5f9 }
.rsv-addr-warn{ background:#f6f8fb; border:1px solid #dbe3ee; border-radius:12px; padding:14px 16px; margin-top:4px }
.rsv-addr-warn[hidden]{ display:none !important }
.rsv-addr-warn__title{ margin:0 0 6px; font-weight:700; color:#334155; font-size:14px }
.rsv-addr-warn__body{ margin:0 0 8px; font-size:13px; color:#556170; line-height:1.5 }
.rsv-addr-warn__use{ border:1px solid #e71a65; color:#e71a65; background:#fff; border-radius:999px; padding:4px 12px; cursor:pointer; font-weight:700; font-size:13px }
.rsv-addr-warn__use:hover{ background:#fff5f9 }
.rsv-addr-warn__confirm{ display:flex; gap:8px; align-items:flex-start; font-size:13px; color:#334155; cursor:pointer; font-weight:600 }
.rsv-addr-warn__confirm input{ margin-top:2px }
.rsv-addr-warn__confirm a{ color:#e71a65 }
