/* BarberBot Agenda pública — refinamento visual V32.
   Somente apresentação/UX; não altera regras de negócio. */
.booking-shell{padding:34px 16px 48px;background:linear-gradient(180deg,#f2f6fc 0,#f8fafc 320px,#f8fafc 100%)}
.booking-card{width:min(760px,100%);border:1px solid #e5ebf3;border-radius:26px;padding:28px;box-shadow:0 20px 55px rgba(15,35,70,.08)}
.booking-head-premium{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:22px;margin-bottom:20px}
.booking-brand-lockup{display:flex;align-items:center;gap:14px;min-width:0}.booking-platform-icon{width:54px;height:54px;border-radius:16px;box-shadow:0 8px 22px rgba(15,91,216,.14)}
.booking-head-copy{min-width:0}.booking-head-copy small{display:block;margin-bottom:3px;font-size:10px;font-weight:800;letter-spacing:.14em;color:#64748b}.booking-head-copy h1{font-size:25px;line-height:1.15;letter-spacing:-.025em;color:#17233a}.booking-head-copy p{margin:5px 0 0;color:#6b778c;font-size:12px;line-height:1.45}
.booking-secure-badge{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #dbe8fb;border-radius:999px;background:#f4f8ff;color:#3168b2;font-size:10px;font-weight:800}.booking-secure-badge:before{content:'✓';display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#e1efff;color:#1262cc}
.booking-business-profile{margin:0 0 24px;padding:16px 17px;border:1px solid #e2eaf4;border-radius:18px;background:linear-gradient(145deg,#f8fbff,#fff)}.booking-business-profile p{margin:10px 0 8px;font-size:13px;line-height:1.55;color:#4d5b70}.booking-business-profile small{font-size:11px}.booking-business-badges span{padding:6px 10px;font-size:10px}
.booking-progress-labeled{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 28px}.booking-progress-labeled span{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;height:42px;padding:0 8px;border:1px solid #e4eaf2;border-radius:12px;background:#fafbfd;color:#8a96a8;font-size:11px;font-weight:700;transition:.2s ease}.booking-progress-labeled span b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#edf1f6;color:#738197;font-size:10px}.booking-progress-labeled span small{font-size:10px;font-weight:800;white-space:nowrap}.booking-progress-labeled span.active{border-color:#cfe0fa;background:#f3f8ff;color:#195cae}.booking-progress-labeled span.active b{background:var(--bb-primary);color:#fff}
.booking-step .eyebrow{display:inline-block;margin-bottom:8px;color:#1766ce;font-size:10px;font-weight:900;letter-spacing:.14em}.booking-step-title{margin-bottom:18px}.booking-step-title h2{margin:0;font-size:27px;line-height:1.16;letter-spacing:-.035em;color:#17233a}.booking-step-title p{margin:6px 0 0;color:#718096;font-size:12px;line-height:1.45}
.choice-list{gap:12px;margin-bottom:20px}.choice-card>span{position:relative;overflow:hidden;border:1px solid #e2e8f0;border-radius:17px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.choice-card>span:hover{border-color:#c8d9ef;box-shadow:0 10px 26px rgba(15,35,70,.07);transform:translateY(-1px)}.choice-card input:focus-visible+span{outline:3px solid rgba(15,91,216,.2);outline-offset:2px}.choice-card input:checked+span{border-color:#2a73d9;background:#f7fbff;box-shadow:0 0 0 3px rgba(15,91,216,.09),0 10px 26px rgba(15,91,216,.08)}
.choice-card-service>span,.choice-card-professional>span{display:grid;grid-template-columns:92px minmax(0,1fr) 30px;align-items:center;gap:14px;min-height:116px;padding:11px}.choice-card-media{display:block;min-width:0}.choice-card-service .choice-card-media img,.booking-service-placeholder,.choice-card-professional .choice-card-media img,.choice-card-professional .booking-professional-placeholder{display:block;width:92px;height:92px;margin:0;border:0;border-radius:14px;object-fit:cover;background:#f4f7fb}.booking-service-placeholder{display:grid;place-items:center;color:#7d91ad;font-size:25px}.choice-card-copy{display:flex;flex-direction:column;min-width:0}.choice-card-copy strong{display:block;min-height:0;margin:0;color:#25334a;font-size:14px;font-weight:850;line-height:1.35;text-align:left;overflow-wrap:anywhere}.choice-card-copy small{display:flex;align-items:center;gap:6px;margin-top:7px;color:#64748b;font-size:11px;line-height:1.4;text-align:left}.choice-card-copy small b{color:#46566d;font-weight:750}.choice-card-copy small i{font-style:normal;color:#a0aec0}.choice-card-check{display:grid;width:26px;height:26px;place-items:center;border:1px solid #dbe3ec;border-radius:50%;background:#fff;color:transparent;font-size:13px;font-weight:900}.choice-card input:checked+span .choice-card-check{border-color:#1766ce;background:#1766ce;color:#fff}
.choice-list-services,.choice-list-professionals{grid-template-columns:1fr 1fr}.booking-continue{min-height:48px;border-radius:13px}.step-actions .btn{min-height:46px;border-radius:12px}.booking-date input{min-height:48px;border-radius:12px}.slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.slot-button{min-height:44px;border-radius:11px;transition:.15s ease}.slot-button:hover{border-color:#9dbce4;background:#f6f9fd}.slot-button.selected{box-shadow:0 7px 18px rgba(15,91,216,.18)}.booking-summary{padding:14px 15px;border-radius:14px;background:#f7faff}
.booking-footer{margin-top:26px;padding-top:18px}
@media(max-width:780px){
  .booking-shell{padding:0;background:#fff}.booking-card{width:100%;min-height:100dvh;border:0;border-radius:0;padding:18px 18px calc(30px + env(safe-area-inset-bottom));box-shadow:none}.booking-head-premium{align-items:flex-start;padding-bottom:17px;margin-bottom:16px}.booking-platform-icon{width:52px;height:52px}.booking-head-copy h1{font-size:22px}.booking-head-copy p{display:none}.booking-secure-badge{display:none}.booking-business-profile{margin-bottom:20px;padding:14px 15px;border-radius:16px}.booking-business-profile p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:9px 0 7px;font-size:12px}.booking-progress-labeled{gap:6px;margin-bottom:24px}.booking-progress-labeled span{height:37px;padding:0 5px;border-radius:10px;gap:5px}.booking-progress-labeled span b{width:20px;height:20px}.booking-progress-labeled span small{font-size:9px}.booking-step-title{margin-bottom:15px}.booking-step-title h2{font-size:25px}.choice-list-services,.choice-list-professionals{grid-template-columns:1fr;gap:10px}.choice-card-service>span,.choice-card-professional>span{grid-template-columns:82px minmax(0,1fr) 28px;gap:12px;min-height:104px;padding:10px}.choice-card-service .choice-card-media img,.booking-service-placeholder,.choice-card-professional .choice-card-media img,.choice-card-professional .booking-professional-placeholder{width:82px;height:82px;border-radius:13px}.choice-card-copy strong{font-size:15px}.choice-card-copy small{font-size:12px}.slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-continue{position:sticky;bottom:10px;z-index:10;box-shadow:0 8px 24px rgba(15,91,216,.22)}
}
@media(max-width:480px){
  .booking-card{padding-left:14px;padding-right:14px}.booking-brand-lockup{gap:11px}.booking-platform-icon{width:48px;height:48px;border-radius:14px}.booking-head-copy h1{font-size:20px}.booking-progress-labeled{gap:5px}.booking-progress-labeled span{flex-direction:column;gap:1px;height:48px}.booking-progress-labeled span small{font-size:8px}.booking-step-title h2{font-size:24px}.choice-card-service>span,.choice-card-professional>span{grid-template-columns:76px minmax(0,1fr) 26px;gap:10px;min-height:96px;padding:9px}.choice-card-service .choice-card-media img,.booking-service-placeholder,.choice-card-professional .choice-card-media img,.choice-card-professional .booking-professional-placeholder{width:76px;height:76px}.choice-card-copy strong{font-size:14px}.choice-card-copy small{font-size:11px}.slots{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V33 — cards compactos em 2 colunas, imagem em destaque e dados abaixo.
   Corrige conflito do CSS legado que estiliza todos os <span> internos do card. */
.choice-list-services,
.choice-list-professionals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}

/* Somente o span direto é o corpo visual do card. */
.choice-card-service>span,
.choice-card-professional>span{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:0;
  height:100%;
  min-height:0;
  padding:10px;
  overflow:hidden;
  text-align:left;
}

/* Reseta os spans internos afetados pelo CSS legado .choice-card span. */
.choice-card-service>span>.choice-card-media,
.choice-card-service>span>.choice-card-copy,
.choice-card-service>span>.choice-card-check,
.choice-card-professional>span>.choice-card-media,
.choice-card-professional>span>.choice-card-copy,
.choice-card-professional>span>.choice-card-check{
  display:block;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  cursor:inherit;
}

.choice-card-service .choice-card-media,
.choice-card-professional .choice-card-media{
  width:100%;
  margin:0 0 9px;
}

.choice-card-service .choice-card-media img,
.choice-card-service .booking-service-placeholder,
.choice-card-professional .choice-card-media img,
.choice-card-professional .booking-professional-placeholder{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  margin:0;
  border:0;
  border-radius:13px;
  object-fit:cover;
  background:#f4f7fb;
}

.choice-card-service .booking-service-placeholder,
.choice-card-professional .booking-professional-placeholder{
  display:grid;
  place-items:center;
  min-height:0;
}

.choice-card-service .choice-card-copy,
.choice-card-professional .choice-card-copy{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  gap:3px;
}

.choice-card-service .choice-card-copy strong,
.choice-card-professional .choice-card-copy strong{
  display:block;
  width:100%;
  min-height:0;
  margin:0;
  color:#25334a;
  font-size:14px;
  font-weight:850;
  line-height:1.25;
  text-align:left;
  overflow-wrap:anywhere;
}

.choice-card-service .choice-card-copy small,
.choice-card-professional .choice-card-copy small{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  width:100%;
  min-height:0;
  margin:2px 0 0;
  padding:0;
  color:#64748b;
  font-size:11px;
  line-height:1.25;
  text-align:left;
}

.choice-card-service .choice-card-copy small b,
.choice-card-professional .choice-card-copy small b{
  font-weight:750;
}

.choice-card-service .choice-card-check,
.choice-card-professional .choice-card-check{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  display:grid!important;
  width:26px;
  height:26px;
  place-items:center;
  border:1px solid rgba(255,255,255,.9)!important;
  border-radius:50%!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 3px 10px rgba(15,35,70,.14);
  color:transparent;
  font-size:13px;
  font-weight:900;
}
.choice-card input:checked+span .choice-card-check{
  border-color:#1766ce!important;
  background:#1766ce!important;
  color:#fff;
}

@media(max-width:780px){
  .choice-list-services,
  .choice-list-professionals{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .choice-card-service>span,
  .choice-card-professional>span{
    min-height:0;
    padding:8px;
    border-radius:15px;
  }
  .choice-card-service .choice-card-media,
  .choice-card-professional .choice-card-media{
    margin-bottom:8px;
  }
  .choice-card-service .choice-card-media img,
  .choice-card-service .booking-service-placeholder,
  .choice-card-professional .choice-card-media img,
  .choice-card-professional .booking-professional-placeholder{
    width:100%;
    height:auto;
    aspect-ratio:4/3;
    border-radius:11px;
  }
  .choice-card-service .choice-card-copy strong,
  .choice-card-professional .choice-card-copy strong{
    font-size:13px;
    line-height:1.2;
  }
  .choice-card-service .choice-card-copy small,
  .choice-card-professional .choice-card-copy small{
    font-size:10px;
    line-height:1.2;
  }
  .choice-card-service .choice-card-check,
  .choice-card-professional .choice-card-check{
    top:13px;
    right:13px;
    width:24px;
    height:24px;
  }
}

@media(max-width:360px){
  .choice-list-services,
  .choice-list-professionals{gap:8px}
  .choice-card-service>span,
  .choice-card-professional>span{padding:7px}
  .choice-card-service .choice-card-copy strong,
  .choice-card-professional .choice-card-copy strong{font-size:12px}
  .choice-card-service .choice-card-copy small,
  .choice-card-professional .choice-card-copy small{font-size:9px}
}

