/* ==========================================================================
   Tunnel de réservation — fluidité (blanc, or, noir)
   ========================================================================== */

.lpwa-bookbar { display: none; }

/* Champs repris du compte : discrètement signalés. */
.nbs-booking .lpwa-prefilled {
  background-color: #FFFDF7 !important;
  border-color: rgba(201, 162, 39, .45) !important;
}

.lpwa-prefill-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 14px !important;
  padding: 9px 12px;
  border-radius: 12px;
  background: #FDF8EC;
  border: 1px solid rgba(201, 162, 39, .28);
  color: #5A4A1A;
  font-size: 13px;
  line-height: 1.4;
}

.lpwa-prefill-note svg { width: 16px; height: 16px; flex: 0 0 auto; color: #9A7A18; }

/* Listes déroulantes et envoi de photos : alignés sur les autres champs
   (le thème les laissait en style natif, minuscules sur téléphone). */
.nbs-booking .nbs-form-grid select {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 0 44px 0 16px;
  border: 1px solid #EAE5DE;
  border-radius: 18px;
  background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A7A18' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center / 16px;
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  font-size: 16px; /* 16px : iOS ne zoome pas sur le champ */
  color: #111111;
}

.nbs-booking .nbs-form-grid select:focus {
  outline: none;
  border-color: #C9A227;
  box-shadow: 0 0 0 3px rgba(201, 162, 39, .18);
}

.nbs-booking .nbs-form-grid select.lpwa-prefilled { background-color: #FFFDF7; }

.nbs-booking input[type="file"] { font-size: 14px; color: #6B645E; }

.nbs-booking input[type="file"]::file-selector-button {
  margin-right: 12px;
  padding: 8px 16px;
  border: 0;
  border-radius: 999px;
  background: #111111;
  color: #FFFFFF;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

/* Supplément annoncé dès le choix du créneau. */
.lpwa-slot-notice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 12px 0 0 !important;
  padding: 10px 12px;
  border-radius: 12px;
  background: #111111;
  color: #FFFFFF;
  font-size: 13px;
  line-height: 1.45;
  animation: lpwa-notice-in .25s ease-out;
}

.lpwa-slot-notice svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; color: #E8C766; }
.lpwa-slot-notice strong { color: #E8C766; }

@keyframes lpwa-notice-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}

/* Code promo replié. */
.nbs-order-promo.lpwa-collapsed { display: none !important; }

.lpwa-promo-toggle {
  display: inline-block;
  margin: 4px 0 10px;
  padding: 4px 0;
  border: 0;
  background: none;
  color: #9A7A18;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

/* ------------------------------------------------- Photos des univers -- */

/* Cadre intermédiaire (ni bandeau étroit, ni portrait géant), photo cadrée au
   centre, pastille d'icône bien à l'intérieur du cadre. */
.nbs-universe-card .nbs-universe-media.lpwa-uni-media {
  height: auto !important;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  isolation: isolate;
  background: #F6EFE6;
}

.nbs-universe-media.lpwa-uni-media .lpwa-uni-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 2.2s cubic-bezier(.45, 0, .25, 1);
  z-index: 0;
}

.nbs-universe-media.lpwa-uni-media .lpwa-uni-slide.is-on { opacity: 1; }
.nbs-universe-media .lpwa-uni-decoy { display: none !important; }

/* Léger mouvement de zoom pendant que la photo est affichée : le diaporama
   « respire » au lieu de sauter d'une image à l'autre.
   Sélecteur volontairement précis : le thème fixe la hauteur des images des
   cartes (« .laurany-booking-module .nbs-universe-media img »), ce qui
   laissait la photo collée en haut du cadre. */
.nbs-booking .nbs-universe-media.lpwa-uni-media .lpwa-uni-slide img,
.laurany-booking-module .nbs-universe-media.lpwa-uni-media .lpwa-uni-slide img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center 45% !important;
  opacity: 1 !important;
  min-height: 0 !important;
  max-height: none !important;
  border-radius: 0 !important;
  transform: scale(1.06);
  transition: transform 9s linear;
  will-change: transform;
}

.nbs-universe-media.lpwa-uni-media .lpwa-uni-slide.is-on img { transform: scale(1); }

.nbs-universe-media.lpwa-uni-media .nbs-universe-media-icon {
  position: absolute !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  margin: 0 !important;
  bottom: 12px !important;
  right: 12px !important;
  width: 48px !important;
  height: 48px !important;
  z-index: 2;
}

/* Texte des cartes : lisible (la description était à 11 px). */
.nbs-booking .nbs-universe-card > strong {
  font-size: 21px !important;
  line-height: 1.2 !important;
  margin-top: 4px !important;
}

.nbs-booking .nbs-universe-card > small {
  display: block;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  color: #5F5852 !important;
}

.nbs-booking .nbs-universe-card .nbs-universe-cta {
  font-size: 14.5px !important;
  padding: 11px 20px !important;
}

@media (max-width: 900px) {
  .nbs-universe-card .nbs-universe-media.lpwa-uni-media { aspect-ratio: 4 / 3; }
  .nbs-booking .nbs-universe-card > strong { font-size: 19px !important; }
  .nbs-booking .nbs-universe-card > small { font-size: 14px !important; }
}

/* ------------------------------------------------ Parcours des étapes -- */

/* Le trait d'origine traversait les titres : on le retire et on place une
   barre de progression sous les étapes. */
.nbs-booking-steps.lpwa-steps-enhanced::before { display: none !important; }
.nbs-booking-steps.lpwa-steps-enhanced { padding-bottom: 8px !important; }

.lpwa-steps-track {
  position: relative;
  margin: 4px 18px 18px;
  padding-top: 0;
}

.lpwa-steps-track::before {
  content: "";
  display: block;
  height: 4px;
  border-radius: 999px;
  background: #EFE8DE;
}

.lpwa-steps-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, #C9A227, #D89B43);
  transition: width .5s cubic-bezier(.22, .8, .3, 1);
}

.lpwa-steps-dot {
  position: absolute;
  right: -6px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 3px solid #D89B43;
  box-shadow: 0 0 0 4px rgba(216, 155, 67, .18);
}

.lpwa-steps-count {
  display: block;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  color: #8E8781;
}

/* --------------------------------------------- Longueurs et formes -- */

.nbs-guided-section[data-lpwa-guided] h4 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 2px !important;
}

.lpwa-guided-choice {
  font-size: 13px;
  font-weight: 600;
  color: #9A7A18;
}

.lpwa-guided-choice::before { content: "· "; color: #C9BFB3; }
.lpwa-guided-choice.is-empty { color: #A69C92; font-weight: 500; font-style: italic; }

.lpwa-guided-hint {
  margin: 0 0 12px !important;
  font-size: 12.5px;
  color: #8E8781;
}

/* Longueur et forme : cinq réponses, un mot chacune, cinq colonnes. */
.nbs-guided-section[data-lpwa-guided] .nbs-guided-options {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 10px !important;
}

/* Le rendu et le nail art, eux, comptent trois réponses portant chacune une
   phrase de description. Découpées en cinq colonnes, ces cartes étaient plus
   étroites que leur texte : elles débordaient sur leur voisine au lieu de se
   serrer, d'où le chevauchement. Ici les colonnes se comptent donc toutes
   seules, entre 150 et 220 px, et la rangée se centre sous la question. */
.nbs-guided-section[data-lpwa-guided="design"] .nbs-guided-options,
.nbs-guided-section[data-lpwa-guided="color"] .nbs-guided-options {
  grid-template-columns: repeat(auto-fit, minmax(150px, 220px)) !important;
  justify-content: center !important;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option {
  position: relative !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  /* Sans cette largeur minimale nulle, une carte refuse de descendre sous la
     taille de son texte : elle déborde sur sa voisine au lieu de se serrer. */
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  box-sizing: border-box !important;
  float: none !important;
  inset: auto !important;
  margin: 0 !important;
  min-height: 0 !important;
  padding: 12px 6px 12px !important;
  border: 1.5px solid #EEE6DC !important;
  border-radius: 18px !important;
  background: #FFFFFF !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background-color .18s ease;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option:hover {
  border-color: rgba(201, 162, 39, .55) !important;
  transform: translateY(-1px);
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(201, 162, 39, .35) !important;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option.is-selected {
  border-color: #111111 !important;
  background: #FFFCF4 !important;
  box-shadow: 0 6px 18px rgba(17, 17, 17, .08), 0 0 0 3px rgba(201, 162, 39, .22) !important;
}

/* Pastille ✓ : noire à coche or, seulement sur l'option choisie. */
.nbs-guided-section[data-lpwa-guided] .nbs-guided-check {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  left: auto !important;
  display: grid !important;
  place-items: center;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: #111111 !important;
  color: #E8C766 !important;
  font-size: 11px !important;
  font-weight: 800;
  line-height: 1;
  opacity: 0;
  transform: scale(.6);
  transition: opacity .18s ease, transform .18s ease;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option.is-selected .nbs-guided-check {
  opacity: 1;
  transform: none;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-illustration {
  display: flex !important;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
  height: 88px !important;
  margin: 0 0 4px !important;
  background: none !important;
  overflow: hidden;
}

.lpwa-nail-svg {
  width: 52px !important;
  height: 88px !important;
  transition: transform .25s cubic-bezier(.22, .8, .3, 1);
}

.nbs-guided-option.is-selected .lpwa-nail-svg { transform: translateY(-2px) scale(1.04); }

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-label {
  width: 100%;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: #111111 !important;
  text-align: center;
  overflow-wrap: anywhere;
}

/* La description que le module ajoute sous certaines options (« Quelques
   détails, décorations légères… »). Elle n'était pas prévue par notre mise
   en page : sans largeur contrainte, elle poussait la carte hors de sa
   colonne. */
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option p,
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option small,
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-desc,
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-description {
  width: 100%;
  max-width: 100%;
  margin: 2px 0 0 !important;
  font-size: 11.5px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  color: #8E8781 !important;
  text-align: center;
  overflow-wrap: anywhere;
}

/* Poussée en bas de la carte : les pastilles de prix s'alignent alors entre
   elles, même quand un intitulé tient sur deux lignes et son voisin sur une. */
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-sub {
  display: inline-block;
  align-self: center;
  margin-top: auto !important;
  padding: 2px 8px;
  border-radius: 999px;
  background: #F4F0EB;
  color: #7E766E !important;
  font-size: 11.5px !important;
  font-weight: 600;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-sub.is-paid {
  background: #FBF3DC;
  color: #8A6D12 !important;
}

/* Le supplément. Le module le range tantôt seul sous l'intitulé, tantôt dans
   une boîte partagée avec lui — et là il se retrouvait posé à droite du nom
   de l'option, alors qu'il est dessous partout ailleurs. On le remet dessous,
   dans la même pastille dorée que le reste du parcours. */
.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-top {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 4px !important;
  width: 100%;
}

.nbs-guided-section[data-lpwa-guided] .nbs-guided-option-price {
  display: inline-block;
  align-self: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: #FBF3DC;
  color: #8A6D12 !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .nbs-guided-section[data-lpwa-guided] .nbs-guided-options {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    justify-content: normal !important;
    gap: 8px !important;
  }
  /* Longueur et forme se lisent d'un coup d'œil : trois par ligne. Le rendu
     et le nail art portent une phrase de description, illisible dans un
     tiers d'écran de téléphone : deux par ligne. */
  .nbs-guided-section[data-lpwa-guided="design"] .nbs-guided-options,
  .nbs-guided-section[data-lpwa-guided="color"] .nbs-guided-options {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .nbs-guided-section[data-lpwa-guided] .nbs-guided-option { padding: 10px 4px !important; border-radius: 16px !important; }
  .nbs-guided-section[data-lpwa-guided] .nbs-guided-option-label { font-size: 12px !important; }
}

/* ------------------------------------- Titres de la personnalisation -- */

.nbs-booking .nbs-addon-head { display: grid; gap: 4px; margin-bottom: 6px !important; }

.nbs-booking .nbs-addon-head strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: .02em;
  color: #D89B43;
}

.nbs-booking .nbs-addon-head span { font-size: 14px; color: #6C665E; }

.nbs-guided-section.lpwa-gsec {
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid #F1E6D6;
}

.nbs-guided-section.lpwa-gsec:first-child { margin-top: 8px !important; padding-top: 0 !important; border-top: 0; }

.nbs-guided-section.lpwa-gsec h4 {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: 0 0 6px !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.25;
  color: #111111;
}

.lpwa-gnum {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #111111;
  color: #E8C766;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
}

.nbs-guided-section.lpwa-gsec > p,
.nbs-guided-section.lpwa-gsec .lpwa-guided-hint {
  margin: 0 0 12px 38px !important;
  font-size: 13px;
  color: #8E8781;
}

.nbs-guided-section.lpwa-gsec .lpwa-guided-choice {
  margin-left: auto;
  padding: 4px 12px;
  border-radius: 999px;
  background: #111111;
  color: #E8C766;
  font-family: Inter, "Helvetica Neue", Arial, sans-serif;
  font-size: 12.5px;
  font-style: normal;
  font-weight: 600;
  animation: lpwa-soft-in .25s ease both;
}

.nbs-guided-section.lpwa-gsec .lpwa-guided-choice::before { content: "✓ "; color: #E8C766; }

.nbs-guided-section.lpwa-gsec .lpwa-guided-choice.is-empty {
  background: transparent;
  border: 1px dashed #D9CBB5;
  color: #A69C92;
  font-weight: 500;
  font-style: normal;
}

.nbs-guided-section.lpwa-gsec .lpwa-guided-choice.is-empty::before { content: none; }

@media (max-width: 600px) {
  .nbs-guided-section.lpwa-gsec h4 { font-size: 17px !important; }
  .nbs-guided-section.lpwa-gsec > p,
  .nbs-guided-section.lpwa-gsec .lpwa-guided-hint { margin-left: 0 !important; }
  .nbs-guided-section.lpwa-gsec .lpwa-guided-choice { margin-left: 38px; }
}

/* ------------------------------------------ Deuxième prestation -- */

.nbs-service-builder.lpwa-builder {
  display: grid !important;
  gap: 14px;
  margin-top: 18px !important;
  padding: 16px 18px !important;
  border: 1.5px dashed rgba(201, 162, 39, .55) !important;
  border-radius: 18px !important;
  background: #FFFCF4 !important;
}

.lpwa-builder__intro { display: flex; align-items: flex-start; gap: 12px; }

.lpwa-builder__icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #111111;
  color: #E8C766;
}

.lpwa-builder__icon svg { width: 18px; height: 18px; }

.lpwa-builder__text { display: grid; gap: 4px; }

.lpwa-builder__text strong {
  font-size: 16px;
  line-height: 1.3;
  color: #111111;
}

.lpwa-builder__text > span {
  font-size: 14px;
  line-height: 1.5;
  color: #5F5852;
}

.lpwa-builder__badge {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #F4F0EB;
  color: #7E766E;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: middle;
}

.nbs-service-builder.lpwa-builder .nbs-service-builder-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 50px;
  border: 1.5px solid #111111 !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
  color: #111111 !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  transition: background-color .2s ease, color .2s ease;
}

.nbs-service-builder.lpwa-builder .nbs-service-builder-button:hover {
  background: #111111 !important;
  color: #FFFFFF !important;
}

.nbs-service-builder.lpwa-builder .nbs-service-builder-button svg { width: 18px; height: 18px; flex: 0 0 auto; }
.lpwa-builder__old { display: none !important; }

/* -------------------------------------------------------- Tendances -- */

.nbs-booking .nbs-service-card { position: relative; }

.lpwa-card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 3;
  padding: 4px 10px;
  border-radius: 999px;
  background: #111111;
  color: #E8C766;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 4px 12px rgba(17, 17, 17, .18);
  pointer-events: none;
}

/* Même habillage que les cartes de prestation : fond blanc, filet doré
   léger, ombre douce. L'encart prolonge la grille au lieu de trancher. */
.lpwa-trends {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(201, 130, 24, .1);
  border-radius: 22px;
  background: #FFFFFF;
  color: #111111;
  box-shadow: 0 16px 34px rgba(76, 48, 12, .06);
  animation: lpwa-soft-in .45s cubic-bezier(.22, .8, .3, 1) both;
}

.lpwa-trends__head { display: grid; gap: 2px; }

.lpwa-trends__kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #B8791E;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.lpwa-trends__kicker svg { width: 16px; height: 16px; }

.lpwa-trends__head strong {
  font-size: 18px;
  line-height: 1.25;
  color: #111111;
}

.lpwa-trends__list { display: grid; gap: 12px; flex: 1; }
.lpwa-trends.is-wide .lpwa-trends__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lpwa-trend {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 0;
  border: 1px solid #F1E6D6;
  border-radius: 18px;
  background: #FFFCF7;
  color: inherit;
  font: inherit;
  text-align: left;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.lpwa-trend:hover,
.lpwa-trend:focus-visible {
  outline: none;
  border-color: rgba(201, 130, 24, .45);
  box-shadow: 0 10px 22px rgba(76, 48, 12, .08);
  transform: translateY(-2px);
}

.lpwa-trends.is-wide .lpwa-trend { flex-direction: column; align-items: stretch; gap: 0; }

.lpwa-trend__img {
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  background: #F4F0EB center / cover no-repeat;
}

.lpwa-trends.is-wide .lpwa-trend__img { width: 100%; height: auto; aspect-ratio: 4 / 3; }

.lpwa-trend__body { display: grid; align-content: start; gap: 4px; min-width: 0; flex: 1; padding: 10px 12px 12px; }

.lpwa-trend__tag {
  justify-self: start;
  align-self: start;
  line-height: 1.5;
  padding: 2px 8px;
  border-radius: 999px;
  background: #FBF3DC;
  color: #8A6D12;
  font-size: 10.5px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.lpwa-trend__title {
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.3;
  color: #111111;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.lpwa-trend__meta { font-size: 12.5px; color: #6C665E; }

.lpwa-trend__go {
  flex: 0 0 auto;
  padding-right: 12px;
  color: #B8791E;
  font-size: 18px;
  font-weight: 700;
}

.lpwa-trends.is-wide .lpwa-trend__go { display: none; }

/* ------------------------------------------ Description « Lire la suite » -- */

.nbs-service-card .nbs-excerpt-tooltip[data-lpwa-excerpt] {
  cursor: inherit !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
}

.nbs-service-card.lpwa-expanded .nbs-excerpt-tooltip {
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow: visible !important;
  max-height: none !important;
  animation: lpwa-soft-in .3s ease both;
}

.lpwa-more {
  display: inline-block;
  margin: 2px auto 6px;
  padding: 2px 4px;
  color: #B8791E;
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.lpwa-more:hover,
.lpwa-more:focus-visible { outline: none; color: #111111; }

/* ------------------------------------------------ Revenir en arrière -- */

.lpwa-backnav {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 14px;
  padding: 8px 16px 8px 10px;
  border: 1px solid #EADFCF;
  border-radius: 999px;
  background: #FFFFFF;
  color: #111111;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}

.lpwa-backnav svg { width: 16px; height: 16px; color: #B8791E; }

.lpwa-backnav:hover,
.lpwa-backnav:focus-visible {
  outline: none;
  border-color: rgba(201, 130, 24, .55);
  background: #FFFCF4;
  transform: translateX(-2px);
}

.nbs-booking-steps .lpwa-step-link { cursor: pointer; }

/* Même garde-fou sur grand écran : la pastille ne se laisse pas étirer. */
.nbs-booking-steps.lpwa-steps-enhanced > li > span {
  flex: 0 0 auto;
  aspect-ratio: 1 / 1;
  min-height: 0;
  line-height: 1;
}

.nbs-booking-steps .lpwa-step-link:hover strong,
.nbs-booking-steps .lpwa-step-link:focus-visible strong {
  text-decoration: underline;
  text-decoration-color: #C9A227;
  text-underline-offset: 4px;
}

.nbs-booking-steps .lpwa-step-link:focus-visible { outline: none; }

.nbs-booking-steps .lpwa-step-link:hover > span { box-shadow: 0 0 0 4px rgba(201, 162, 39, .22); }

/* ---------------------------------------------------- Récapitulatif -- */

.nbs-order-card.lpwa-recap {
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(201, 130, 24, .14) !important;
  border-radius: 24px !important;
  background: #FFFFFF !important;
  box-shadow: 0 20px 44px rgba(76, 48, 12, .08) !important;
}

.lpwa-recap > * { margin-left: 20px !important; margin-right: 20px !important; }

/* En-tête : bandeau noir, titre or, étape en cours. */
.lpwa-recap .nbs-order-card-head {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 18px !important;
  padding: 18px 20px !important;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(232, 199, 102, .25), transparent 55%),
    #111111;
}

.lpwa-recap .nbs-order-card-head p {
  margin: 0 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: .02em;
  color: #E8C766 !important;
}

.lpwa-recap-step {
  flex: 0 0 auto;
  padding: 4px 10px;
  border: 1px solid rgba(232, 199, 102, .4);
  border-radius: 999px;
  color: rgba(255, 255, 255, .85);
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}

/* Prestation choisie. */
.lpwa-recap .nbs-order-service {
  display: flex !important;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px !important;
}

/* Une photo d'ongles est presque toujours cadrée de la même façon : les
   ongles en haut, la main ou le pied qui descend en dessous. Une vignette
   carrée découpée au milieu ne gardait donc que la peau — sur certaines
   prestations pieds, aucun ongle n'était visible. On remonte la découpe au
   premier tiers, là où le travail se trouve. */
.lpwa-recap .nbs-order-service img {
  flex: 0 0 auto;
  width: 64px !important;
  height: 64px !important;
  border-radius: 16px !important;
  object-fit: cover;
  object-position: 50% 28%;
  background: #FBF6EE;
  box-shadow: 0 6px 16px rgba(76, 48, 12, .1) !important;
}

.lpwa-recap .nbs-order-service strong { font-size: 16.5px !important; line-height: 1.25; color: #111111; }
.lpwa-recap .nbs-order-service span { font-size: 13px !important; color: #7A736C !important; }

/* État vide : une ligne d'aide, plus un grand bloc. */
.lpwa-recap .nbs-order-empty {
  display: flex !important;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px !important;
  padding: 12px 14px !important;
  border: 1px dashed rgba(201, 162, 39, .45) !important;
  border-radius: 16px !important;
  background: #FFFCF6 !important;
  text-align: left !important;
}

.lpwa-recap .nbs-order-empty[hidden] { display: none !important; }

.lpwa-recap .nbs-order-empty .nbs-empty-icon {
  flex: 0 0 auto;
  display: grid !important;
  place-items: center;
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background: #111111 !important;
  color: #E8C766 !important;
}

.lpwa-recap .nbs-order-empty p { margin: 0 !important; font-size: 13.5px !important; line-height: 1.45; color: #5F5852 !important; }

/* Lignes : libellé à gauche, valeur à droite, pointillés discrets. */
.lpwa-recap .nbs-order-rows { display: grid; gap: 2px; margin-bottom: 14px !important; }

.lpwa-recap .nbs-order-row {
  display: flex !important;
  align-items: baseline;
  gap: 8px;
  padding: 9px 0 !important;
  border: 0 !important;
  border-bottom: 1px dotted #E7DCCB !important;
}

.lpwa-recap .nbs-order-row-icon { display: none !important; }

.lpwa-recap .nbs-order-row-label { flex: 1; font-size: 14px !important; color: #5F5852 !important; }

.lpwa-recap .nbs-order-row strong {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: #111111 !important;
  font-variant-numeric: tabular-nums;
}

/* Total : bandeau affirmé. */
.lpwa-recap .nbs-order-row.lpwa-recap-total {
  align-items: center;
  margin-top: 8px;
  padding: 12px 14px !important;
  border: 0 !important;
  border-radius: 14px;
  background: #FBF3DC;
}

.lpwa-recap .nbs-order-row.lpwa-recap-total .nbs-order-row-label { color: #111111 !important; font-weight: 700; }
.lpwa-recap .nbs-order-row.lpwa-recap-total strong { font-size: 19px !important; color: #8A6D12 !important; }

/* Acompte : carte noire, montant en or. */
.lpwa-recap .nbs-order-deposit-box {
  display: grid !important;
  gap: 2px;
  margin-bottom: 16px !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: #111111 !important;
  color: rgba(255, 255, 255, .8) !important;
}

.lpwa-recap .nbs-order-deposit-box > strong:first-child {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #E8C766 !important;
}

.lpwa-recap .nbs-order-deposit-box span { font-size: 13px !important; line-height: 1.45; color: rgba(255, 255, 255, .72) !important; }

.lpwa-recap .nbs-order-deposit-box [data-nbs-order-deposit] {
  font-size: 24px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
}

/* Technicienne, date, heure : trois pastilles. */
.lpwa-recap .nbs-order-info:not([hidden]) {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 16px !important;
  padding: 0 !important;
  border: 0 !important;
}

.lpwa-recap .nbs-order-info > div {
  display: grid !important;
  gap: 2px;
  padding: 10px !important;
  border: 1px solid #F1E6D6 !important;
  border-radius: 14px;
  background: #FFFCF7;
}

.lpwa-recap .nbs-order-info span { font-size: 11px !important; letter-spacing: .06em; text-transform: uppercase; color: #9A8F84 !important; }
.lpwa-recap .nbs-order-info strong { font-size: 13.5px !important; color: #111111 !important; overflow-wrap: anywhere; }

.lpwa-recap .lpwa-promo-toggle { display: block; margin: 0 auto 12px !important; }

.lpwa-recap .nbs-order-actions { margin-bottom: 20px !important; }

/* Pied : réassurance sur fond crème, pleine largeur. */
.lpwa-recap > :last-child:not(.nbs-order-actions) {
  margin: 0 !important;
  padding: 14px 20px !important;
  border-top: 1px solid #F1E6D6 !important;
  background: #FFFCF6;
}

/* ------------------------------------------------ Panier du récapitulatif -- */

.lpwa-recap .nbs-order-lines.lpwa-cart {
  display: grid;
  gap: 8px;
  margin-bottom: 16px !important;
  padding: 0 !important;
  border: 0 !important;
}

.lpwa-recap .nbs-order-lines.lpwa-cart[hidden] { display: none !important; }

.lpwa-cart .nbs-order-cart-heading {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  margin: 6px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.lpwa-cart .nbs-order-cart-heading strong {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #111111 !important;
}

.lpwa-cart .nbs-order-cart-heading span {
  padding: 2px 10px;
  border-radius: 999px;
  background: #111111;
  color: #E8C766 !important;
  font-size: 11.5px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.lpwa-cart .nbs-order-cart-heading.is-pending span {
  background: transparent;
  border: 1px dashed #D9CBB5;
  color: #9A8F84 !important;
  font-weight: 600;
}

.lpwa-cart .nbs-order-line-group { display: grid; gap: 8px; }

.lpwa-cart .nbs-order-line.lpwa-line {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  grid-template-areas: "thumb name price" "thumb name action";
  align-items: center;
  gap: 2px 12px;
  margin: 0 !important;
  padding: 10px !important;
  border: 1px solid #F1E6D6 !important;
  border-radius: 16px;
  background: #FFFFFF;
  animation: lpwa-soft-in .3s ease both;
}

.lpwa-cart .lpwa-line__thumb {
  grid-area: thumb;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #F4F0EB center / cover no-repeat;
  color: #C9A227;
}

.lpwa-cart .lpwa-line__thumb svg { width: 20px; height: 20px; }

.lpwa-cart .lpwa-line > span:not(.lpwa-line__thumb) {
  grid-area: name;
  display: grid;
  gap: 2px;
  min-width: 0;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.3;
  color: #111111 !important;
}

.lpwa-cart .lpwa-line > span small { font-size: 12px !important; font-weight: 500; color: #8E8781 !important; }

.lpwa-cart .lpwa-line > strong {
  grid-area: price;
  justify-self: end;
  font-size: 14.5px !important;
  font-weight: 800 !important;
  color: #111111 !important;
  white-space: nowrap;
}

.lpwa-cart .lpwa-line__remove,
.lpwa-cart .lpwa-line__add {
  grid-area: action;
  justify-self: end;
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 4px 10px !important;
  border: 1px solid #EADFCF !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
  color: #7A736C !important;
  font: inherit;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.lpwa-cart .lpwa-line__remove svg,
.lpwa-cart .lpwa-line__add svg { width: 14px; height: 14px; }

.lpwa-cart .lpwa-line__remove span,
.lpwa-cart .lpwa-line__add span { display: inline !important; color: inherit !important; font-size: inherit !important; font-weight: inherit !important; }

.lpwa-cart .lpwa-line__remove:hover,
.lpwa-cart .lpwa-line__remove:focus-visible {
  outline: none;
  border-color: #C0392B !important;
  background: #FDF1EF !important;
  color: #C0392B !important;
}

/* Prestation en cours : carte en pointillés, bouton pour l'ajouter. */
.lpwa-cart .nbs-order-line.lpwa-line.is-pending {
  border-style: dashed !important;
  border-color: rgba(201, 162, 39, .55) !important;
  background: #FFFCF4;
}

.lpwa-cart .lpwa-line__add {
  border-color: #111111 !important;
  background: #111111 !important;
  color: #E8C766 !important;
}

.lpwa-cart .lpwa-line__add:hover,
.lpwa-cart .lpwa-line__add:focus-visible { outline: none; background: #2A2A2A !important; }

/* Options et suppléments : sous-lignes compactes sous leur prestation. */
.lpwa-cart .nbs-order-line.lpwa-line--sub {
  display: flex !important;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: -4px 0 0 !important;
  padding: 2px 12px 2px 70px !important;
  border: 0 !important;
  background: none;
  font-size: 12.5px !important;
  color: #7A736C !important;
}

.lpwa-cart .nbs-order-line.lpwa-line--sub strong { font-size: 12.5px !important; font-weight: 600 !important; color: #5F5852 !important; }

/* ---------------------------------------------------- Date et heure -- */

/* Durée nécessaire : pastille noire et or. */
.nbs-booking .nbs-duration-badge {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 8px 16px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #111111 !important;
  color: rgba(255, 255, 255, .75) !important;
  font-size: 12.5px;
}

.nbs-booking .nbs-duration-badge span { color: rgba(255, 255, 255, .75) !important; }
.nbs-booking .nbs-duration-badge strong { color: #E8C766 !important; font-size: 15px !important; }

.nbs-booking .nbs-date-layout { gap: 28px !important; align-items: start; }

/* Titres des deux colonnes, avec pictogramme or. */
.nbs-booking .nbs-calendar-column > h3,
.nbs-booking .nbs-slot-column > h3 {
  display: flex !important;
  align-items: center;
  gap: 10px;
  margin: 0 0 4px !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  color: #111111 !important;
}

.nbs-booking .nbs-calendar-column > h3::before,
.nbs-booking .nbs-slot-column > h3::before {
  content: "";
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #111111 center / 16px no-repeat;
}

.nbs-booking .nbs-calendar-column > h3::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8C766' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
}

.nbs-booking .nbs-slot-column > h3::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8C766' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.nbs-booking .nbs-date-layout .nbs-column-hint { margin: 0 0 14px 40px !important; font-size: 13px !important; color: #8E8781 !important; }

/* Calendrier. */
.nbs-booking .nbs-calendar {
  padding: 16px !important;
  border: 1px solid rgba(201, 130, 24, .14) !important;
  border-radius: 22px !important;
  background: #FFFFFF !important;
  box-shadow: 0 16px 34px rgba(76, 48, 12, .06) !important;
}

.nbs-booking .nbs-calendar-head { margin-bottom: 10px !important; }

.nbs-booking .nbs-calendar-head strong {
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 18px !important;
  text-transform: capitalize;
}

.nbs-booking .nbs-calendar-nav {
  display: grid !important;
  place-items: center;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  border: 1px solid #EADFCF !important;
  border-radius: 50% !important;
  background: #FFFFFF !important;
  color: #111111 !important;
  font-size: 18px !important;
  line-height: 1 !important;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.nbs-booking .nbs-calendar-nav:hover:not(:disabled) { background: #111111 !important; border-color: #111111 !important; color: #E8C766 !important; }
.nbs-booking .nbs-calendar-nav:disabled { opacity: .35; cursor: default; }

.nbs-booking .nbs-calendar-weekdays span {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em;
  color: #B8791E !important;
}

.nbs-booking .nbs-calendar-grid { gap: 6px !important; }

.nbs-booking .nbs-calendar-day {
  aspect-ratio: 1 / 1;
  min-height: 0 !important;
  height: auto !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-variant-numeric: tabular-nums;
}

.nbs-booking .nbs-calendar-day.is-unavailable {
  border: 0 !important;
  background: transparent !important;
  color: #CFC6BC !important;
  text-decoration: none !important;
  cursor: default;
}

.nbs-booking .nbs-calendar-day.is-available {
  border: 1px solid #EEE3D3 !important;
  background: #FFFCF6 !important;
  color: #111111 !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.nbs-booking .nbs-calendar-day.is-available:hover {
  border-color: #C9A227 !important;
  box-shadow: 0 6px 14px rgba(201, 162, 39, .18);
  transform: translateY(-1px);
}

.nbs-booking .nbs-calendar-day.is-available.is-selected {
  border-color: #111111 !important;
  background: #111111 !important;
  color: #E8C766 !important;
  box-shadow: 0 8px 18px rgba(17, 17, 17, .22), 0 0 0 3px rgba(201, 162, 39, .3);
}

/* Légende : trois pastilles alignées sur les vraies couleurs. */
.nbs-booking .nbs-calendar-legend { display: flex !important; flex-wrap: wrap; gap: 8px 14px !important; margin-top: 12px !important; }
.nbs-booking .nbs-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px !important; color: #7A736C !important; }

.nbs-booking .nbs-legend-dot {
  width: 14px !important;
  height: 14px !important;
  border-radius: 5px !important;
}

.nbs-booking .nbs-legend-dot.is-available { background: #FFFCF6 !important; border: 1px solid #E2D3BC !important; }
.nbs-booking .nbs-legend-dot.is-selected { background: #111111 !important; border: 2px solid #C9A227 !important; }
.nbs-booking .nbs-legend-dot.is-unavailable { background: #EFEAE4 !important; border: 0 !important; }

/* Colonne des heures. */
.nbs-booking .nbs-date-selected-box:not([hidden]) {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 14px !important;
  padding: 12px 16px !important;
  border: 1px solid rgba(201, 162, 39, .45) !important;
  border-radius: 16px !important;
  background: #FFFCF4 !important;
  animation: lpwa-soft-in .3s ease both;
}

.nbs-booking .nbs-date-selected-box span { font-size: 11.5px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #B8791E !important; }
.nbs-booking .nbs-date-selected-box strong { font-size: 15.5px !important; color: #111111 !important; text-transform: capitalize; }

.nbs-booking .nbs-slot-section {
  padding: 16px !important;
  border: 1px solid #F1E6D6 !important;
  border-radius: 20px !important;
  background: #FFFFFF !important;
}

.nbs-booking .nbs-slot-head { display: flex !important; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 12px !important; }
.nbs-booking .nbs-slot-head strong { font-size: 14px !important; color: #111111 !important; }
.nbs-booking .nbs-slot-head [data-nbs-slot-state] { font-size: 12.5px !important; color: #8E8781 !important; }

/* Avant le choix d'un jour : une invitation claire plutôt qu'un vide. */
.nbs-booking .nbs-slot-grid:empty {
  display: grid !important;
  place-items: center;
  min-height: 150px;
  border: 1.5px dashed #E2D3BC;
  border-radius: 16px;
  background: #FFFCF6;
}

.nbs-booking .nbs-slot-grid:empty::before {
  content: "Choisissez un jour dans le calendrier : les heures libres s'afficheront ici.";
  max-width: 260px;
  padding: 0 12px;
  font-size: 13.5px;
  line-height: 1.5;
  text-align: center;
  color: #8E8781;
}

.nbs-booking .nbs-slot-grid:not(:empty) {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  gap: 8px !important;
}

.nbs-booking .nbs-slot-grid .nbs-slot-button { width: 100% !important; min-width: 0 !important; max-width: none !important; margin: 0 !important; }

.nbs-booking .nbs-slot-button {
  min-height: 46px;
  padding: 0 8px !important;
  border: 1px solid #EEE3D3 !important;
  border-radius: 12px !important;
  background: #FFFCF6 !important;
  color: #111111 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.nbs-booking .nbs-slot-button:hover { border-color: #C9A227 !important; transform: translateY(-1px); box-shadow: 0 6px 14px rgba(201, 162, 39, .18); }

.nbs-booking .nbs-slot-button.is-selected {
  border-color: #111111 !important;
  background: #111111 !important;
  color: #E8C766 !important;
  box-shadow: 0 8px 18px rgba(17, 17, 17, .22), 0 0 0 3px rgba(201, 162, 39, .3);
}

.nbs-booking .nbs-empty-state-slots:not([hidden]) {
  display: grid !important;
  justify-items: center;
  gap: 4px;
  padding: 18px !important;
  border: 1.5px dashed #E2D3BC !important;
  border-radius: 16px !important;
  background: #FFFCF6 !important;
  text-align: center;
}

/* Note sur la durée : sobre, alignée sur le reste. */
.nbs-booking .nbs-slot-column .nbs-inline-notice {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px !important;
  padding: 12px 14px !important;
  border: 0 !important;
  border-radius: 14px !important;
  background: #F8F3EC !important;
  font-size: 13px !important;
  line-height: 1.5;
  color: #5F5852 !important;
}

.nbs-booking .nbs-slot-column .nbs-inline-notice-icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #111111;
  color: #E8C766 !important;
  font-size: 12px;
}

@media (max-width: 700px) {
  .nbs-booking .nbs-date-layout .nbs-column-hint { margin-left: 0 !important; }
  .nbs-booking .nbs-calendar { padding: 12px !important; }
  .nbs-booking .nbs-calendar-grid { gap: 4px !important; }
  .nbs-booking .nbs-calendar-day { border-radius: 10px !important; font-size: 14px !important; }
}

/* ------------------------------------------- Options des prestations -- */

.lpwa-cardopts {
  display: grid;
  gap: 6px;
  margin: 10px 0 8px;
  padding: 10px 0 0;
  border-top: 1px dashed #EFE4D3;
  text-align: center;
}

.lpwa-cardopts__label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #B8791E;
}

.lpwa-cardopts__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }

.lpwa-cardopts__chip {
  padding: 3px 9px;
  border-radius: 999px;
  background: #F8F3EC;
  color: #5F5852;
  font-size: 11.5px;
  font-weight: 600;
  white-space: nowrap;
}

.lpwa-cardopts__more {
  justify-self: center;
  color: #111111;
  font-size: 12.5px;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: #C9A227;
  text-underline-offset: 3px;
  cursor: pointer;
}

.lpwa-cardopts__more:hover,
.lpwa-cardopts__more:focus-visible { outline: none; color: #B8791E; }

.lpwa-cardopts__none { font-size: 12px; color: #8E8781; font-style: italic; }

/* Fiche des options : fenêtre centrée, feuille du bas sur téléphone. */
.lpwa-optsheet {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 17, 17, .45);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, visibility 0s linear .2s;
}

.lpwa-optsheet.is-open { opacity: 1; visibility: visible; transition: opacity .2s ease, visibility 0s; }

.lpwa-optsheet__panel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  width: min(560px, 100%);
  max-height: min(82vh, 760px);
  overflow: hidden;
  border-radius: 24px;
  background: #FFFFFF;
  box-shadow: 0 24px 60px rgba(17, 17, 17, .25);
  transform: translateY(10px) scale(.98);
  transition: transform .25s cubic-bezier(.22, .8, .3, 1);
}

.lpwa-optsheet.is-open .lpwa-optsheet__panel { transform: none; }

.lpwa-optsheet__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  background: radial-gradient(120% 140% at 100% 0%, rgba(232, 199, 102, .25), transparent 55%), #111111;
}

.lpwa-optsheet__img { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 12px; background: #2A2A2A center / cover no-repeat; }

.lpwa-optsheet__title { flex: 1; min-width: 0; display: grid; font-family: Georgia, "Times New Roman", serif; font-size: 18px; font-weight: 700; color: #FFFFFF; line-height: 1.25; }
.lpwa-optsheet__title small { font-family: Inter, "Helvetica Neue", Arial, sans-serif; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: #E8C766; }

.lpwa-optsheet__close {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(232, 199, 102, .4);
  border-radius: 50%;
  background: transparent;
  color: #FFFFFF;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.lpwa-optsheet__lead { margin: 0 !important; padding: 12px 18px 0; font-size: 13px; color: #7A736C; }

.lpwa-optsheet__body { overflow-y: auto; padding: 8px 18px 12px; display: grid; gap: 14px; }

.lpwa-optsheet__group h4 {
  margin: 8px 0 6px !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px !important;
  color: #111111;
}

.lpwa-optsheet__opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }

.lpwa-opt {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #EEE3D3;
  border-radius: 12px;
  background: #FFFFFF;
  color: #3A3530;
  font: inherit;
  font-size: 13.5px;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

.lpwa-opt:hover { border-color: #C9A227; }

.lpwa-opt__check {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border: 1.5px solid #D9CBB5;
  border-radius: 6px;
  background: #FFFFFF center / 12px no-repeat;
}

.lpwa-opt[data-exclusive]:not([data-exclusive=""]) .lpwa-opt__check { border-radius: 50%; }

.lpwa-opt__label { flex: 1; min-width: 0; line-height: 1.3; }

.lpwa-opt strong { flex: 0 0 auto; font-size: 12.5px; color: #8E8781; font-weight: 600; }
.lpwa-opt strong.is-paid { color: #8A6D12; font-weight: 700; }
.lpwa-opt strong.is-unit { text-align: right; line-height: 1.15; }
.lpwa-opt strong.is-unit small { display: block; font-size: 10.5px; font-weight: 600; color: #8E8781; letter-spacing: .01em; }

.lpwa-opt.is-on { border-color: #111111; background: #FFFCF4; box-shadow: 0 0 0 2px rgba(201, 162, 39, .25); }

.lpwa-opt.is-on .lpwa-opt__check {
  border-color: #111111;
  background-color: #111111;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8C766' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

.lpwa-optsheet__sum { display: grid; gap: 1px; }
.lpwa-optsheet__sum strong { font-size: 17px; font-weight: 800; color: #111111; }
.lpwa-optsheet__sum small { font-size: 12px; color: #8E8781; }

.lpwa-optsheet__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

.lpwa-optsheet__alt {
  padding: 11px 14px;
  border: 1px solid #D9CBB5;
  border-radius: 999px;
  background: #FFFFFF;
  color: #111111;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
}

.lpwa-optsheet__alt:hover { border-color: #111111; }

@media (max-width: 600px) {
  .lpwa-optsheet__opts { grid-template-columns: minmax(0, 1fr); }
  .lpwa-optsheet__foot { flex-direction: column; align-items: stretch; }
  .lpwa-optsheet__actions { justify-content: stretch; }
  .lpwa-optsheet__actions button { flex: 1; }
}

.lpwa-optsheet__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px calc(14px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #F1E6D6;
  background: #FFFCF6;
}

.lpwa-optsheet__pick {
  padding: 12px 20px;
  border: 0;
  border-radius: 999px;
  background: #111111;
  color: #E8C766;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.lpwa-optsheet__pick:hover { background: #2A2A2A; }

@media (max-width: 600px) {
  .lpwa-optsheet { place-items: end stretch; padding: 0; }
  .lpwa-optsheet__panel { width: 100%; max-height: 88vh; border-radius: 22px 22px 0 0; transform: translateY(100%); }
}

/* ------------------------------------------------- Bulle WhatsApp -- */

/* Le thème masque toutes les bulles WhatsApp sur la page de réservation.
   La prothésiste la veut toujours là : on la rétablit (le !important de la
   feuille l'emporte sur le « display: none » posé par le script du thème). */
.lv2-whatsapp-fab {
  display: flex !important;
  align-items: center;
  justify-content: center;
  z-index: 9995 !important;
  transition: bottom .26s cubic-bezier(.22, .8, .3, 1);
}

/* Doublon du thème, inutile puisque la bulle est de retour. */
.lv2-reservation-whatsapp-sticky { display: none !important; }

/* En-tête de la page : liens Instagram / WhatsApp / localisation retirés,
   la page va droit à la réservation. */
.lv2-reservation-head .lv2-reservation-socials,
.lv2-reservation-head .lv2-reservation-cta-row { display: none !important; }

/* --------------------------------------------------------- Partage -- */

.lpwa-share-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .94);
  color: #111111;
  box-shadow: 0 4px 14px rgba(17, 17, 17, .18);
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease;
}

.lpwa-share-btn svg { width: 17px; height: 17px; }

.lpwa-share-btn:hover,
.lpwa-share-btn:focus-visible {
  outline: none;
  background: #111111;
  color: #E8C766;
  transform: scale(1.06);
}

.lpwa-sharepop {
  position: absolute;
  z-index: 10000;
  width: 320px;
  max-width: calc(100vw - 24px);
  padding: 14px;
  border-radius: 20px;
  background: #FFFFFF;
  border: 1px solid #EEE6DC;
  box-shadow: 0 18px 50px rgba(17, 17, 17, .18);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px) scale(.98);
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}

.lpwa-sharepop.is-open {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity .2s ease, transform .2s ease, visibility 0s;
}

.lpwa-sharepop.is-sheet {
  position: fixed;
  left: 0 !important;
  right: 0;
  top: auto !important;
  bottom: 0;
  width: auto;
  max-width: none;
  padding: 16px 16px calc(18px + env(safe-area-inset-bottom, 0px));
  border-radius: 22px 22px 0 0;
  transform: translateY(100%);
}

.lpwa-sharepop.is-sheet.is-open { transform: none; }

.lpwa-sharepop__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.lpwa-sharepop__img {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #F4F0EB center / cover no-repeat;
}

.lpwa-sharepop__title {
  flex: 1;
  min-width: 0;
  display: grid;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  color: #111111;
}

.lpwa-sharepop__title small {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #9A7A18;
}

.lpwa-sharepop__close {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: #F4F0EB;
  color: #111111;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.lpwa-sharepop__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.lpwa-share-item {
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 10px 2px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #3A3530;
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color .15s ease;
}

.lpwa-share-item:hover,
.lpwa-share-item:focus-visible { outline: none; background: #F8F4EE; }

.lpwa-share-item svg {
  width: 40px;
  height: 40px;
  padding: 10px;
  border-radius: 50%;
  background: #111111;
  color: #FFFFFF;
}

.lpwa-share-item.is-whatsapp svg { background: #25D366; }
.lpwa-share-item.is-facebook svg { background: #1877F2; }
.lpwa-share-item.is-messenger svg { background: #0A7CFF; }
.lpwa-share-item.is-x svg { background: #111111; }
.lpwa-share-item.is-pinterest svg { background: #E60023; }
.lpwa-share-item.is-mail svg { background: #8E8781; }
.lpwa-share-item.is-link svg { background: #C9A227; }
.lpwa-share-item.is-more svg { background: #F4F0EB; color: #111111; }
.lpwa-share-item.is-done svg { background: #1F9D55; }

/* ---------------------------------------- Changements d'écran en douceur -- */

html { scroll-behavior: smooth; }

@keyframes lpwa-soft-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

.nbs-booking .nbs-step-panel.is-active,
.nbs-booking [data-nbs-addon-picker]:not([hidden]),
.nbs-booking [data-nbs-service-builder]:not([hidden]),
.nbs-booking [data-nbs-service-reminder]:not([hidden]) {
  animation: lpwa-soft-in .45s cubic-bezier(.22, .8, .3, 1) both;
}

.nbs-booking .nbs-service-card {
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease, opacity .25s ease !important;
}

/* --------------------------------------------------------- Barre du bas -- */

@media (max-width: 900px) {
  .lpwa-bookbar {
    display: flex;
    align-items: center;
    gap: 10px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9990;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, .97);
    backdrop-filter: saturate(170%) blur(14px);
    -webkit-backdrop-filter: saturate(170%) blur(14px);
    border-top: 1px solid rgba(17, 17, 17, .1);
    box-shadow: 0 -8px 24px rgba(17, 17, 17, .08);
    transform: translateY(110%);
    transition: transform .26s cubic-bezier(.22, .8, .3, 1);
  }

  .lpwa-bookbar.is-visible { transform: none; }

  .lpwa-bookbar__info {
    flex: 1;
    min-width: 0;
    display: grid;
    line-height: 1.2;
  }

  .lpwa-bookbar__label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #8E8781;
  }

  .lpwa-bookbar__total {
    font-size: 19px;
    font-weight: 800;
    color: #111111;
    font-variant-numeric: tabular-nums;
  }

  .lpwa-bookbar__deposit {
    font-size: 11.5px;
    color: #9A7A18;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .lpwa-bookbar__wa {
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(17, 17, 17, .14);
    color: #1F9D55;
  }

  .lpwa-bookbar__wa svg { width: 22px; height: 22px; }

  .lpwa-bookbar__next {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 999px;
    background: #111111;
    color: #FFFFFF;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(17, 17, 17, .22);
  }

  .lpwa-bookbar__next:active { transform: scale(.98); }

  /* La bulle WhatsApp reste visible : elle remonte au-dessus de la barre. */
  body.lpwa-bookbar-on .lv2-whatsapp-fab {
    bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* Place pour la barre : rien ne doit rester caché dessous. */
  body.lpwa-bookbar-on .nbs-booking { padding-bottom: 84px; }

  /* Le pied de page non plus : sans cette réserve, les mentions légales
     finissent sous la barre au bas de la page. */
  body.lpwa-bookbar-on .lv2-site-footer,
  body.lpwa-bookbar-on footer {
    padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  }

  /* Le « Continuer » du module, rendu au flux (voir recalerCta). */
  body.lpwa-cta-recale .nbs-order-actions {
    position: static !important;
    width: auto !important;
    margin: 18px 0 0 !important;
  }

  /* « Besoin d'aide ? » : trois colonnes dans 300 px, le texte se retrouvait
     compressé à un mot par ligne. On empile. */
  .nbs-inline-help {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .nbs-inline-help-copy {
    flex: 1 1 200px;
    min-width: 0;
  }

  .nbs-inline-help-button {
    flex: 1 1 100%;
    margin-left: 0;
    justify-content: center;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .nbs-booking .nbs-step-panel.is-active,
  .nbs-booking [data-nbs-addon-picker]:not([hidden]),
  .nbs-booking [data-nbs-service-builder]:not([hidden]),
  .nbs-booking [data-nbs-service-reminder]:not([hidden]) { animation: none; }
  .lpwa-bookbar { transition: none; }
  .lpwa-slot-notice { animation: none; }
  .nbs-universe-media.lpwa-uni-media .lpwa-uni-slide,
  .nbs-universe-media.lpwa-uni-media .lpwa-uni-slide img,
  .lpwa-steps-fill,
  .nbs-guided-section[data-lpwa-guided] .nbs-guided-option,
  .lpwa-nail-svg { transition: none !important; }
  .nbs-universe-media.lpwa-uni-media .lpwa-uni-slide img { transform: none !important; }
}

/* ------------------------------------------ En-tête de la page (1.6.5) -- */

/* Le mot « Réservation » est retiré visuellement (il reste lu par Google et
   les lecteurs d'écran) ; la phrase d'accroche tient sur une seule ligne. */
.lv2-reservation-head h1 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.lv2-reservation-head .lv2-kicker { margin-bottom: 12px !important; }
.lv2-reservation-head p {
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(15px, 1.55vw, 19px) !important;
}
@media (min-width: 901px) {
  .lv2-reservation-head p { white-space: nowrap !important; }
}
@media (max-width: 900px) {
  .lv2-reservation-head p {
    font-size: 15.5px !important;
    line-height: 1.5 !important;
    text-wrap: balance;
  }
}

/* ------------------------------------------------ Mobile (1.6.5) -- */

@media (max-width: 640px) {
  /* Moins de marges imbriquées : plus de place pour le contenu. */
  .lv2-reservation-module .nbs-booking-frame { padding: 8px !important; border-radius: 20px !important; }
  .lv2-reservation-module .nbs-booking-main { padding: 14px 12px !important; border-radius: 20px !important; }

  /* Étapes en une seule ligne compacte (numéro + titre). */
  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 4px !important;
    align-items: start !important;
    padding: 6px 0 4px !important;
    margin: 0 !important;
  }
  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    align-self: start !important;
  }
  /* La pastille du numéro s'étirait en ovale : dans une colonne flexible,
     la hauteur minimale d'un enfant est celle de son contenu, et elle passe
     devant la hauteur qu'on lui donne. On la fige des deux côtés. */
  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li > span {
    flex: 0 0 auto !important;
    display: grid !important;
    place-items: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    min-height: 0 !important;
    max-height: 30px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    overflow: hidden !important;
  }
  /* La pastille restait ovale malgré la règle ci-dessus : dans une colonne
     flexible, c'est la base (flex-basis) qui fait la hauteur, et une règle
     plus spécifique la fixait à 44 px. On la reprend des deux côtés, avec un
     sélecteur qui passe devant. */
  .lv2-reservation-module .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li > span {
    flex: 0 0 30px !important;
    flex-basis: 30px !important;
    width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    border-radius: 50% !important;
  }

  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li > div { min-width: 0 !important; }
  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li strong {
    display: block !important;
    font-size: 11.5px !important;
    line-height: 1.2 !important;
  }
  .nbs-booking .nbs-booking-steps.lpwa-steps-enhanced > li small { display: none !important; }
  .lpwa-steps-track { margin: 8px 12.5% 12px !important; }
  .lpwa-steps-count { text-align: center; margin-left: -20%; margin-right: -20%; }
}

/* Boutons de la fiche options : libellés sur une ligne. */
.lpwa-optsheet__actions button { white-space: nowrap; }
@media (max-width: 600px) { .lpwa-optsheet__alt { padding: 11px 12px; } }

/* ------------------------------------ Aperçu en direct et nombre d'ongles */

.lpwa-prev {
  margin: 0 0 18px;
  padding: 16px 16px 14px;
  border: 1px solid #F1E6D6;
  border-radius: 20px;
  background: linear-gradient(180deg, #FFFCF6, #FBF6EE);
  box-shadow: 0 10px 26px rgba(201, 162, 39, .08);
}

.lpwa-prev__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.lpwa-prev__head strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  color: #111111;
}

.lpwa-prev__hint { font-size: 12.5px; color: #8E8781; }

.lpwa-prev__hand {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  min-height: 132px;
  margin-top: 8px;
}

.lpwa-prev__finger { display: block; line-height: 0; }

.lpwa-prev__nail { display: block; height: auto; }

.lpwa-prev__sum {
  margin: 6px 0 0 !important;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.5;
  color: #5A534C;
}

.lpwa-counts {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #EADFCB;
}

.lpwa-counts__title {
  margin: 0 0 8px !important;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #B8862E;
}

.lpwa-count {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid #F3EADB;
}

.lpwa-count:last-of-type { border-bottom: 0; }

.lpwa-count__label { flex: 1; min-width: 0; font-size: 14px; color: #3A3530; }

.lpwa-count__set {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid #EEE3D3;
  border-radius: 999px;
  background: #FFFFFF;
}

.lpwa-count__btn {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background: #FBF6EE;
  color: #111111;
  font: 600 16px/1 inherit;
  cursor: pointer;
}

.lpwa-count__btn:hover { background: #111111; color: #E8C766; }

.lpwa-count__n { min-width: 22px; text-align: center; font-size: 15px; font-weight: 800; color: #111111; }

.lpwa-count__unit { font-size: 12.5px; color: #8E8781; width: 46px; }

.lpwa-counts__note { margin: 10px 0 0 !important; font-size: 12px; color: #8E8781; }

@media (max-width: 600px) {
  .lpwa-prev__hand { min-height: 112px; gap: 2px; }
  .lpwa-prev__nail { max-width: 19vw; }
  .lpwa-count__label { font-size: 13.5px; }
}

.lpwa-count { display: block; }

.lpwa-count__row { display: flex; align-items: center; gap: 10px; }

.lpwa-count__detail {
  width: 100%;
  margin: 8px 0 2px;
  padding: 9px 12px;
  border: 1px solid #EEE3D3;
  border-radius: 12px;
  background: #FFFFFF;
  font: inherit;
  font-size: 13.5px;
  color: #3A3530;
}

.lpwa-count__detail::placeholder { color: #B5ADA3; }

.lpwa-count__detail:focus {
  outline: none;
  border-color: #C9A227;
  box-shadow: 0 0 0 3px rgba(201, 162, 39, .18);
}

/* Options facturées à l'ongle : le compteur ------------------------------
   Une déco au forfait garde son prix sec ; une déco à l'unité déplie un
   compteur dès qu'elle est choisie, avec les quantités qui reviennent le
   plus souvent (deux doigts, deux par main, les dix). */

.lpwa-opt__wrap { display: block; min-width: 0; }
.lpwa-opt__wrap .lpwa-opt { width: 100%; }

.lpwa-opt strong.is-unit.is-many { color: #8A6D12; }
.lpwa-opt strong.is-formula small { display: block; font-size: 9.5px; font-weight: 600; letter-spacing: .02em; color: #A79F97; }

.lpwa-opt__qty {
  display: block;
  margin: 4px 0 0;
  padding: 8px 10px;
  border: 1px solid #F1E6D6;
  border-radius: 12px;
  background: #FFFCF6;
}
.lpwa-opt__qty[hidden] { display: none; }

.lpwa-opt__qty-label { display: block; font-size: 11px; color: #8E8781; margin-bottom: 6px; }

.lpwa-opt__qty-box { display: inline-flex; align-items: center; gap: 2px; vertical-align: middle; }
.lpwa-opt__qty-btn {
  width: 28px;
  height: 28px;
  border: 1px solid #E5DCCB;
  border-radius: 9px;
  background: #FFFFFF;
  font: inherit;
  font-size: 15px;
  line-height: 1;
  color: #3A3530;
  cursor: pointer;
}
.lpwa-opt__qty-btn:hover { border-color: #C9A227; }
.lpwa-opt__qty-value { min-width: 26px; text-align: center; font-size: 14px; font-weight: 700; color: #111111; }

.lpwa-opt__qty-shortcuts { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: 8px; vertical-align: middle; }
.lpwa-opt__qty-shortcuts button {
  padding: 5px 9px;
  border: 1px solid #E5DCCB;
  border-radius: 999px;
  background: #FFFFFF;
  font: inherit;
  font-size: 11px;
  color: #6F6862;
  cursor: pointer;
}
.lpwa-opt__qty-shortcuts button:hover { border-color: #C9A227; }
.lpwa-opt__qty-shortcuts button.is-on { background: #111111; border-color: #111111; color: #E8C766; font-weight: 700; }

@media (max-width: 560px) {
  .lpwa-optsheet__opts { grid-template-columns: minmax(0, 1fr); }
  .lpwa-opt__qty-shortcuts { margin: 6px 0 0; }
}

/* ------------------------------------------------------------------ */
/* Options : dire ce qu'elles contiennent, et que le nombre se choisit  */
/* ------------------------------------------------------------------ */

/* La précision écrite par la prothésiste, sous le nom de l'option.
   Elle ne s'affiche que si elle a été saisie. */
.lpwa-opt__note {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 400;
  color: #8E8781;
  white-space: normal;
}
.lpwa-opt.is-on .lpwa-opt__note { color: #6F6218; }

/* Tant que l'option n'est pas cochée, on annonce que le nombre d'ongles
   se choisit : sans ça, on ne voit que « 3,00 € par ongle » et on croit
   que la quantité est figée. */
.lpwa-optsheet__unit {
  margin: -4px 0 10px;
  font-size: 11.5px;
  font-style: italic;
  letter-spacing: .01em;
  color: #A79F97;
}

/* Une ligne « à raconter » : pas de compteur, seulement la phrase. */
.lpwa-count.is-free .lpwa-count__row { justify-content: flex-start; }
.lpwa-count.is-free .lpwa-count__detail { margin-top: 6px; }

/* Le prix qui se décide ensemble. */
.lpwa-quote {
  display: inline-block;
  font-weight: 700;
  letter-spacing: .02em;
  color: #8A6D12;
}

/* Le message posé quand les options n'ont pas été retenues par le module.
   Il reprend l'habillage des avertissements de créneau, en plus ferme :
   c'est un panier faux qu'on évite, pas une information de confort. */
.lpwa-optfail {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	z-index: 99998;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: min(520px, calc(100vw - 32px));
	padding: 16px 18px;
	border-radius: 16px;
	border: 1px solid rgba(178, 74, 46, .35);
	background: #FDF4F0;
	color: #7A3A24;
	font-size: 14px;
	line-height: 1.5;
	box-shadow: 0 1px 2px rgba(17, 17, 17, .06), 0 24px 48px -24px rgba(122, 58, 36, .5);
}

.lpwa-optfail svg { flex: 0 0 auto; width: 20px; height: 20px; color: #B24A2E; margin-top: 1px; }
.lpwa-optfail span { flex: 1; }

.lpwa-optfail__close {
	flex: 0 0 auto;
	appearance: none;
	border: 0;
	background: none;
	color: inherit;
	font-size: 20px;
	line-height: 1;
	padding: 0 2px;
	cursor: pointer;
	opacity: .6;
}

.lpwa-optfail__close:hover { opacity: 1; }

/* Ce qui manque pour confirmer, dit clairement plutôt qu'un bouton muet. */
.lpwa-confirm-alerte {
	margin: 14px 0 0 !important;
	padding: 12px 14px;
	border: 1px solid #E5B4B4;
	border-radius: 12px;
	background: #FDF3F3;
	color: #8A2B2B;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}

.lpwa-champ-manquant {
	border-color: #C46A6A !important;
	box-shadow: 0 0 0 3px rgba(196, 106, 106, .2) !important;
}

.lpwa-confirm-secours {
	display: inline-block;
	margin-top: 10px;
	padding: 8px 14px;
	border-radius: 999px;
	background: #8A2B2B;
	color: #FFFFFF !important;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
}

/* Le mot sur les indésirables, juste avant le bouton de confirmation.
   Discret mais lisible : c'est une précaution, pas une alerte. */
.lpwa-indesirables {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-left: 2px solid var(--gold, #C9A227);
  border-radius: 0 10px 10px 0;
  background: rgba(201, 162, 39, .07);
  font-size: 13px;
  line-height: 1.6;
  color: #4A4340;
}

/* --------------------------------------------------- « Votre modèle » -- */

/* La photo de ce qu'elle voudrait, à côté de celle de ses ongles. Facultative,
   et annoncée comme telle : rien ne doit donner l'impression qu'il manque
   quelque chose à celle qui n'a pas de modèle en tête. */
.lpwa-modele > span i {
	font-style: normal;
	font-weight: 400;
	opacity: .62;
}

.lpwa-modele__mot {
	display: block;
	margin-top: 6px;
	font-size: 12.5px;
	line-height: 1.5;
	font-style: normal;
	opacity: .72;
}

.lpwa-modele__mot.is-trop { color: #B3261E; opacity: 1; }
