.booking-hero{
  position:relative;
}
.booking-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:var(--space-40);
  align-items:center;
}
.booking-hero__lead{
  max-width:34rem;
}
.booking-hero__bullets{
  list-style:none;
  margin-top:var(--space-24);
  margin-bottom:var(--space-24);
  display:flex;
  flex-direction:column;
  gap:var(--space-8);
  color:var(--color-text-muted);
  font-size:var(--text-sm);
}
.booking-hero__bullets li::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:999px;
  background-color:var(--color-primary);
  margin-right:var(--space-8);
  transform:translateY(-1px);
}
.booking-hero__ctas{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-12);
}
.booking-hero__image{
  max-width:480px;
  margin-left:auto;
}
.booking-intro{
  max-width:40rem;
  margin-inline:auto;
}
.booking-layout{
  display:grid;
  grid-template-columns:minmax(0,2.1fr) minmax(0,0.9fr);
  gap:var(--space-32);
  align-items:flex-start;
}
.booking-form__grid{
  display:flex;
  flex-direction:column;
  gap:var(--space-24);
}
.booking-step .card-body{
  display:flex;
  flex-direction:column;
  gap:var(--space-16);
}
.booking-options{
  gap:var(--space-12);
}
.booking-option{
  display:flex;
  gap:var(--space-12);
  padding:0.75rem 0.9rem;
  border-radius:var(--radius-md);
  border:1px solid var(--gray-200);
  background-color:#fff;
  cursor:pointer;
  transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal), transform var(--transition-fast);
}
.booking-option input[type="radio"]{
  margin-top:0.15rem;
}
.booking-option__content{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
}
.booking-option__title{
  font-weight:600;
  color:var(--color-text);
}
.booking-option__desc{
  font-size:var(--text-sm);
  color:var(--color-text-muted);
}
.booking-option:hover{
  border-color:var(--color-primary);
  box-shadow:var(--shadow-sm);
  transform:translateY(-1px);
}
.booking-option input[type="radio"]:focus-visible + .booking-option__content{
  outline:2px solid var(--color-primary);
  outline-offset:3px;
}
.booking-datetime-grid,
.booking-contact-grid,
.booking-address-grid{
  display:grid;
  gap:var(--space-16);
}
.booking-pricing__summary{
  margin-top:var(--space-12);
  padding:0.9rem 1rem;
  border-radius:var(--radius-md);
  background-color:var(--color-primary-soft);
}
.booking-pricing__row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:var(--text-sm);
}
.booking-pricing__hint{
  margin-top:var(--space-8);
  font-size:var(--text-xs);
}
.booking-summary__list{
  display:grid;
  gap:var(--space-8);
  font-size:var(--text-sm);
}
.booking-summary__list dt{
  font-weight:600;
  color:var(--color-text);
}
.booking-summary__list dd{
  margin:0;
  color:var(--color-text-muted);
}
.booking-summary__consents{
  margin-top:var(--space-16);
  display:flex;
  flex-direction:column;
  gap:var(--space-8);
  font-size:var(--text-sm);
}
.booking-consent{
  display:flex;
  align-items:flex-start;
  gap:var(--space-8);
}
.booking-summary__actions{
  margin-top:var(--space-20);
  display:flex;
  flex-direction:column;
  gap:var(--space-8);
}
.booking-summary__small{
  font-size:var(--text-xs);
}
.booking-summary__status{
  margin-top:var(--space-12);
  font-size:var(--text-sm);
}
.booking-success{
  margin-top:var(--space-32);
}
.booking-success__grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:var(--space-24);
  align-items:center;
}
.booking-success__list{
  margin:var(--space-16) 0;
  padding-left:1.1rem;
  color:var(--color-text-muted);
  font-size:var(--text-sm);
}
.booking-success__actions{
  margin-top:var(--space-12);
}
.booking-steps-list{
  margin-top:var(--space-12);
  margin-bottom:var(--space-16);
  padding-left:1.2rem;
  color:var(--color-text-muted);
  font-size:var(--text-sm);
}
.booking-sidecard{
  position:sticky;
  top:5.5rem;
}
.booking-address__info{
  margin-top:var(--space-8);
}
@media (min-width:768px){
  .booking-datetime-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .booking-contact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .booking-address-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:1024px){
  .booking-layout{
    grid-template-columns:minmax(0,1fr);
  }
  .booking-sidecard{
    position:static;
  }
  .booking-hero__grid{
    grid-template-columns:minmax(0,1fr);
  }
  .booking-hero__image{
    margin-inline:auto;
  }
}
@media (max-width:640px){
  .booking-hero__ctas{
    flex-direction:column;
    align-items:stretch;
  }
}
