body.sofanovo-minimal{background:var(--mist)}
.minimal-header{position:sticky;top:0;z-index:50;background:rgba(242,247,251,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.minimal-header .nav{padding:14px 0}

.booking-wizard{max-width:1080px;margin:0 auto;padding:32px 20px 100px}
@media(min-width:481px){.booking-wizard{padding-left:24px;padding-right:24px}}
.booking-layout{display:grid;grid-template-columns:1fr;gap:32px}
@media(min-width:960px){.booking-layout{grid-template-columns:1.6fr 1fr;align-items:start}}

.booking-progress{display:flex;gap:8px;margin-bottom:28px}
.booking-progress .dot{width:28px;height:4px;border-radius:999px;background:var(--line)}
.booking-progress .dot.active{background:var(--navy)}

.booking-step{display:none}
.booking-step.is-active{display:block;animation:sofanovoStepIn .3s ease}
@keyframes sofanovoStepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.booking-step h1{font-size:clamp(1.5rem,3.2vw,2rem);font-weight:800;color:var(--navy-deep);letter-spacing:-.02em;margin-bottom:28px;max-width:32ch}

/* tamanho */
.size-list,.choice-list{display:flex;flex-direction:column;gap:12px}
.size-row,.choice-card{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  padding:16px 20px;font-family:inherit;font-size:1rem;cursor:pointer;
  transition:border-color .15s ease;text-align:left;width:100%;
}
.size-row:hover,.choice-card:hover{border-color:#B9CCE0}
.choice-card.active{border-color:var(--navy);background:#EFF6FD}
.chevron{color:var(--muted);font-size:1.2rem}

.stepper{display:flex;align-items:center;gap:12px}
.stepper button{
  width:30px;height:30px;border-radius:50%;border:none;background:var(--navy);color:#fff;
  font-size:1.1rem;line-height:1;cursor:pointer;display:grid;place-items:center;
}
.stepper button:disabled{background:var(--line);cursor:not-allowed}
.stepper .qty{min-width:20px;text-align:center;font-weight:700}

.info-box,.notice-box{
  display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:16px 18px;
  border-radius:14px;background:var(--white);border:1px solid var(--line);font-size:.88rem;
}
.notice-box{background:#FFF6DE;border-color:#F3E0A0}
.info-ic,.notice-ic{flex:none;width:28px;height:28px;border-radius:50%;background:var(--mist);display:grid;place-items:center}
.info-link{color:var(--navy);font-weight:700;font-size:.8rem;text-decoration:underline}

.choice-card--other{margin-top:4px;max-width:140px}
.text-input{
  width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--line);
  font-family:inherit;font-size:.95rem;background:var(--white);
}
.text-input:focus{outline:2px solid var(--navy);outline-offset:1px}

/* localização */
.map-container{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.google-map{width:100%;height:340px;background:linear-gradient(135deg,#BEE3F8,#8FCBE8)}
.location-search{
  position:absolute;top:16px;left:16px;right:16px;max-width:420px;
  padding:14px 16px;border-radius:12px;border:none;box-shadow:0 8px 24px -8px rgba(0,0,0,.25);
  font-family:inherit;font-size:.92rem;
}

/* agenda */
.date-strip{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.date-nav{
  flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--white);
  cursor:pointer;font-size:1rem;display:grid;place-items:center;
}
.date-cards{display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;flex:1;padding-bottom:4px}
.date-card{
  flex:none;min-width:66px;text-align:center;padding:12px 8px;border-radius:12px;
  border:1px solid var(--line);background:var(--white);cursor:pointer;font-size:.85rem;color:var(--muted);
}
.date-card.active{border-color:var(--navy-deep);border-width:2px;color:var(--ink);font-weight:700}
.date-card .d-num{display:block;font-size:1.05rem;font-weight:800;color:var(--navy-deep)}

.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:600px){.slot-grid{grid-template-columns:repeat(2,1fr)}}
.slot-btn{
  padding:12px 8px;border-radius:12px;border:1px solid var(--line);background:var(--white);
  font-family:inherit;font-size:.88rem;cursor:pointer;color:var(--ink);
}
.slot-btn.active{border-color:var(--navy-deep);border-width:2px;font-weight:700}
.slot-btn:disabled{opacity:.4;cursor:not-allowed}

/* detalhes */
.details-textarea{
  width:100%;min-height:120px;padding:16px;border-radius:14px;border:1px solid var(--line);
  font-family:inherit;font-size:.95rem;resize:vertical;background:var(--white);
}
.char-count{text-align:right;font-size:.78rem;color:var(--muted);margin:6px 0 20px}
.photo-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.photo-item{
  display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);
  border-radius:12px;padding:8px 12px;
}
.photo-item img{width:40px;height:40px;object-fit:cover;border-radius:8px}
.photo-item .name{flex:1;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.photo-item .remove{background:none;border:none;cursor:pointer;color:var(--muted);font-size:1.1rem}
.photo-upload{
  display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  border:2px dashed var(--line);border-radius:14px;padding:32px 20px;cursor:pointer;background:var(--white);
}
.photo-ic{font-size:1.6rem}
.photo-hint{font-size:.8rem;color:var(--muted)}
.photo-link{color:var(--navy);font-weight:700;font-size:.85rem;text-decoration:underline}

/* contacto */
.contact-form{display:flex;flex-direction:column;gap:6px;max-width:420px}
.field-label{font-size:.8rem;font-weight:700;color:var(--muted);margin-top:12px}

.form-error{color:#C0392B;font-size:.88rem;margin-top:16px;display:none}
.form-error.is-visible{display:block}

/* done screen */
.booking-step--done{text-align:center;padding:40px 0}
.done-icon{
  width:64px;height:64px;border-radius:50%;background:var(--wa);color:#fff;font-size:1.8rem;
  display:grid;place-items:center;margin:0 auto 20px;
}
.booking-step--done h1{margin:0 auto 10px;max-width:none}
.booking-step--done p{color:var(--muted);max-width:40ch;margin:0 auto}

/* sidebar summary */
.booking-summary{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;position:sticky;top:88px;
}
.booking-summary h2{font-size:1.15rem;font-weight:800;color:var(--navy-deep);margin-bottom:16px}
.booking-summary h3{font-size:.85rem;font-weight:700;color:var(--muted);margin:18px 0 8px;text-transform:uppercase;letter-spacing:.04em}
.booking-summary h3:first-of-type{margin-top:0}
.summary-lines{display:flex;flex-direction:column;gap:8px}
.summary-row,.summary-lines .summary-line{display:flex;justify-content:space-between;font-size:.9rem;gap:12px}
.summary-row--iva{border-top:1px solid var(--line);padding-top:10px;margin-top:10px;color:var(--muted)}
.summary-total{
  display:flex;justify-content:space-between;align-items:baseline;
  border-top:1px solid var(--line);margin-top:14px;padding-top:14px;
  font-weight:800;font-size:1.4rem;color:var(--navy-deep);
}
.summary-terms{padding-left:18px;color:var(--muted);font-size:.82rem;display:flex;flex-direction:column;gap:8px}

/* bottom navbar */
.booking-navbar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:var(--white);border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;gap:16px;
  padding:16px 20px;
}
.booking-back{background:none;border:none;color:var(--muted);font-weight:700;cursor:pointer;font-size:.9rem}
.booking-next{
  background:var(--navy-deep);color:#fff;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  font-size:.85rem;padding:14px 36px;border:none;border-radius:999px;cursor:pointer;
}
.booking-next:disabled{opacity:.4;cursor:not-allowed}
