/**
 * Formulaire public LM Boheme — mobile (pleine largeur + design carte conserve).
 */

@media (max-width: 960px) {
  /*
   * Pleine largeur dans une page classique (shortcode dans le contenu).
   * Ne pas appliquer sur la page template Reservations : le 100vw decale a gauche.
   */
  body:not(.lm-page-reservation-blank) .lmbr-booking--stone.alignfull {
    box-sizing: border-box;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0.5rem max(0.5rem, env(safe-area-inset-right)) 0.65rem max(0.5rem, env(safe-area-inset-left));
  }

  body:not(.lm-page-reservation-blank) .entry-content:not(.is-layout-constrained) .lmbr-booking--stone.alignfull,
  body:not(.lm-page-reservation-blank) .page-content .lmbr-booking--stone.alignfull,
  body:not(.lm-page-reservation-blank) .elementor-widget-shortcode .lmbr-booking--stone {
    width: calc(100% + 2rem) !important;
    max-width: none !important;
    margin-left: -1rem !important;
    margin-right: -1rem !important;
  }

  body:not(.lm-page-reservation-blank) .is-layout-constrained > .lmbr-booking--stone.alignfull,
  body:not(.lm-page-reservation-blank) .wp-block-group-is-layout-constrained > .lmbr-booking--stone.alignfull {
    margin-left: calc(var(--wp--style--root--padding-left, 1rem) * -1) !important;
    margin-right: calc(var(--wp--style--root--padding-right, 1rem) * -1) !important;
    width: calc(100% + var(--wp--style--root--padding-left, 1rem) + var(--wp--style--root--padding-right, 1rem)) !important;
    max-width: none !important;
  }

  /* Page Reservations (template theme) : 100 % du panneau, sans hack viewport. */
  body.lm-page-reservation-blank .lmbr-booking--stone,
  body.lm-page-reservation-blank .lmbr-booking--stone.alignfull,
  main#content.lm-reservation-blank__main .lmbr-booking--stone {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  .lmbr-booking--stone {
    --lmbr-pad-x: 0;
    box-sizing: border-box;
  }

  .lmbr-booking__shell {
    max-width: none;
    width: 100%;
    margin: 0;
  }

  /* Carte : coins arrondis et ombre conserves (pas de bandeau carre). */
  .lmbr-booking__card {
    width: 100%;
    border-radius: 1.25rem;
    border: 1px solid var(--lmbr-stone-200);
    box-shadow: 0 16px 40px rgba(28, 25, 23, 0.1);
    overflow: hidden;
  }

  .lmbr-booking__header {
    padding: 1.25rem 1rem;
    border-radius: 0;
  }

  .lmbr-booking__header-stylist {
    width: 100%;
    justify-content: flex-start;
  }

  .lmbr-booking__stepper {
    padding: 1.15rem 0.85rem 0;
  }

  .lmbr-booking__stepper::before {
    top: calc(1.15rem + 1.25rem);
    left: 0.85rem;
    right: 0.85rem;
  }

  .lmbr-booking__step-item {
    max-width: none;
    min-width: 0;
  }

  .lmbr-booking__step-label {
    font-size: 0.58rem;
    letter-spacing: 0.02em;
  }

  .lmbr-booking__banner-hint,
  .lmbr-booking__intro-extra,
  .lmbr-booking__info-banner {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .lmbr-booking__info-banner {
    font-size: 0.82rem;
  }

  .lmbr-booking__body {
    padding: 1.15rem 1rem 1.35rem;
    min-height: 0;
  }

  .lmbr-booking__screen-head--center {
    margin-bottom: 1.25rem;
  }

  .lmbr-booking__screen-title {
    font-size: 1.35rem;
  }

  .lmbr-booking__choice-grid,
  .lmbr-booking__lookup,
  .lmbr-service-rows,
  .lmbr-booking__details-lead,
  .lmbr-booking__details-hint,
  .lmbr-booking__success-lead,
  .lmbr-booking__recap-card--success,
  .lmbr-booking__details-subtitle:not(.screen-reader-text),
  .lmbr-booking__recap-card,
  .lmbr-booking__customer--stack,
  .lmbr-booking__returning-card,
  .lmbr-booking__field-label--full,
  .lmbr-booking__policy,
  .lmbr-booking__actions--stack,
  .lmbr-booking__slot-panel {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .lmbr-booking__choice-grid {
    grid-template-columns: 1fr;
  }

  .lmbr-booking__choice-card {
    padding: 1.35rem 1rem;
  }

  .lmbr-booking__input {
    min-height: 3rem;
    font-size: 1rem;
  }

  .lmbr-booking__textarea {
    min-height: 2.75rem;
    max-height: 4.5rem;
    font-size: 1rem;
  }

  .lmbr-service-row {
    padding: 0.95rem 0.85rem;
    gap: 0.65rem;
  }

  .lmbr-booking__slot-panel {
    padding: 0.85rem 0.65rem;
  }

  .lmbr-booking__btn--primary,
  .lmbr-booking__btn--submit {
    width: 100%;
    min-height: 3rem;
    font-size: 1rem;
  }

  .lmbr-booking__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .lmbr-booking__actions .lmbr-booking__btn {
    width: 100%;
    justify-content: center;
    min-height: 2.75rem;
  }

  .lmbr-booking__footer {
    padding: 1rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }

  .lmbr-booking__message {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  body.lm-page-reservation-blank .lmbr-booking__shell,
  body.lm-page-reservation-blank .lmbr-booking__card {
    width: 100%;
    max-width: 100%;
  }
}

@media (max-width: 380px) {
  .lmbr-booking__step-dot {
    width: 2.15rem;
    height: 2.15rem;
  }

  .lmbr-booking__step-dot .lmbr-ico {
    width: 14px;
    height: 14px;
  }

  .lmbr-booking__step-label {
    font-size: 0.5rem;
  }

  .lmbr-booking__header-title {
    font-size: 1.35rem;
  }
}
