:root{--sbs-teal: #2dc3fd;--sbs-green: #22c36e;--sbs-ink: #2d3a40;--sbs-mist: #f6f8f9;--sbs-cta: #198754;--sbs-radius: 12px;--sbs-shadow: 0 8px 24px rgba(15, 110, 122, .08)}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.slides{text-shadow:2px 2px 4px #000000}.slide2{background:#22c36e;background:linear-gradient(0deg,#22c36e,#2dcafd)}.bg-mist{background-color:var(--sbs-mist)}.sticky-nav{position:sticky;top:0;z-index:1020;background-color:#fff;transition:box-shadow .2s ease}.sticky-nav.scrolled{box-shadow:0 2px 8px #00000014}.footer{left:0;width:100%;position:relative;bottom:0;background-color:var(--sbs-ink);color:#fff;text-align:left}img.d-block{text-align:center;max-width:900px;height:auto}.reviews{display:flex;flex-direction:column}.reviews-hero p{max-width:42rem}.google-reviews{background-color:var(--sbs-mist);border-radius:var(--sbs-radius);padding:1.25rem 1.25rem 1rem;box-shadow:var(--sbs-shadow)}.google-review-card{border:0;box-shadow:var(--sbs-shadow)}.google-review-avatar,.google-review-avatar-fallback{width:40px;height:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.google-review-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:#e8eaed;color:#3c4043;font-weight:600}.google-review-author{font-weight:600;color:inherit;text-decoration:none}.google-review-author:hover{text-decoration:underline}.google-stars{color:#fbbc04;letter-spacing:.05em}.google-star-empty{color:#dadce0}.google-attribution{font-family:Roboto,sans-serif;font-size:.95rem;font-weight:400;color:#5e5e5e;white-space:nowrap}.google-reviews-fallback{color:var(--sbs-ink)}.reviews-archive-card{border:0;box-shadow:var(--sbs-shadow)}.home-google-reviews{max-width:42rem}.home-google-quote{background-color:var(--sbs-mist);border-radius:var(--sbs-radius);box-shadow:var(--sbs-shadow);padding:1.75rem 1.5rem 1.25rem;text-align:center;margin:0}.home-google-quote-text{font-size:1.15rem;line-height:1.55;color:var(--sbs-ink);display:-webkit-box;-webkit-line-clamp:7;line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}.home-google-dots{display:flex;justify-content:center;gap:.45rem}.home-google-dots button{width:.55rem;height:.55rem;padding:0;border:0;border-radius:50%;background:#c5d0d4}.home-google-dots button.active{background:var(--sbs-green)}html,body{overflow-x:hidden}#root{display:grid;grid-template-rows:auto 1fr auto;margin:10px 1px 0 0;min-height:calc(100vh - 18px)}.carousel-item-bg-light{background-color:#dedede}.carousel-item-inverted{filter:invert(80%) hue-rotate(180deg)}.booking-form{--brand: #6f42c1;--brand-strong: #5a32a3;--ok: #198754;--warn: #ffc107;--ink: #1a1a1a;--ink-muted: #5c5c5c;--surface: #ffffff;--surface-alt: #f8f9fa;--border: #e0e0e0;--shadow: 0 6px 16px rgba(0,0,0,.12)}.booking-form .card{border:1px solid var(--border);border-radius:12px;background:var(--surface);transition:transform .2s ease,box-shadow .2s ease}.booking-form .card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.booking-form .card-header{background:linear-gradient(180deg,#6f42c10f,#6f42c105)!important;color:var(--ink);border-radius:12px 12px 0 0;padding:1.5rem}.booking-form .form-group{margin-bottom:1.5rem}.booking-form .form-control{border-radius:8px;border:1px solid var(--border)}.booking-form .form-control:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--brand) 40%,transparent)}.booking-form .form-label{font-weight:500;color:var(--ink)}.booking-form .form-control.is-invalid+.form-label{color:var(--warn)}.booking-form .btn-primary{background:var(--brand);border-color:var(--brand);border-radius:8px;padding:.75rem 1.5rem;transition:transform .15s ease,opacity .15s ease,background-color .15s ease}.booking-form .btn-primary:hover{background:var(--brand-strong);border-color:var(--brand-strong);transform:translateY(-1px);opacity:.92}.booking-form .btn-outline-secondary{border-radius:8px;padding:.75rem 1.5rem;border-color:var(--border);color:var(--ink);transition:transform .15s ease,opacity .15s ease,background-color .15s ease}.booking-form .btn-outline-secondary:hover{background:var(--surface-alt);border-color:var(--brand);color:var(--brand);transform:translateY(-1px);opacity:.92}.booking-form .alert{border-radius:8px;padding:1rem;margin-bottom:1.5rem}.booking-form .appointment-details{background:linear-gradient(180deg,#6f42c11a,#6f42c108);padding:1rem;border-radius:8px;margin-bottom:2rem}.booking-form .appointment-details h6{color:var(--ink);font-weight:700}.booking-form .appointment-details p{color:var(--ink-muted)}.booking-form .appointment-details strong{color:var(--ink)}.booking-form .text-primary{color:var(--brand)!important}@media (max-width: 768px){.booking-form .card{margin:1rem}.booking-form .form-group{margin-bottom:1.25rem}.booking-form .btn{padding:.5rem 1rem}}@media (prefers-reduced-motion: reduce){.booking-form *{transition:none!important;animation:none!important}}.booking-confirmation .confirmation-card{background:linear-gradient(135deg,#28a745,#218838);color:#fff;border:none;border-radius:16px;box-shadow:0 6px 18px #0003;overflow:hidden;transition:transform .3s ease-in-out;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.booking-confirmation .confirmation-card:hover{transform:translateY(-8px)}.booking-confirmation .title-wrapper{display:flex;flex-direction:column;align-items:center;margin-bottom:1.5rem}.booking-confirmation .success-icon{font-size:3rem;color:#fff;margin-bottom:.5rem}.booking-confirmation .confirmation-title{font-size:1.8rem;font-weight:700;text-align:center}.booking-confirmation .thank-you-message{font-size:1.1rem;text-align:center;margin-bottom:2rem;opacity:.95}.booking-confirmation .confirmation-details{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background:#ffffff1a;border-radius:8px}.booking-confirmation .detail-item{display:flex;flex-direction:column;align-items:flex-start}.booking-confirmation .detail-label{display:flex;align-items:center;font-size:.85rem;font-weight:700;opacity:.85;margin-bottom:.3rem}.booking-confirmation .detail-icon{font-size:1rem;margin-right:.5rem;color:#fff}.booking-confirmation .detail-value{font-size:1.15rem;font-weight:400}.booking-confirmation .confirmation-info{font-size:.9rem;font-style:italic;text-align:center;margin-bottom:1.5rem;opacity:.9}.booking-confirmation .next-steps{margin-bottom:1.5rem;font-size:.95rem}.booking-confirmation .next-steps ul{list-style-type:disc;padding-left:1.5rem;margin-top:.5rem}.booking-confirmation .confirmation-button{display:block;width:100%;font-weight:700;border-radius:8px;transition:background-color .3s ease,transform .2s ease}.booking-confirmation .confirmation-button:hover{background-color:#0056b3;transform:scale(1.02)}:root{--brand: #6f42c1;--brand-strong: #5a32a3;--ok: #198754;--warn: #ffc107;--ink: #1a1a1a;--ink-muted: #5c5c5c;--surface: #ffffff;--surface-alt: #f8f9fa;--border: #e0e0e0;--shadow: 0 6px 16px rgba(0,0,0,.12)}.bg-gradient{background:linear-gradient(180deg,#6f42c10f,#6f42c105)}.bg-gradient-alternate-0{background:linear-gradient(180deg,#6f42c11a,#6f42c108)}.bg-gradient-alternate-1{background:linear-gradient(180deg,#1987541a,#19875408)}.location-card{transition:transform .2s ease,box-shadow .2s ease,border .2s ease;border:1px solid var(--border);background:var(--surface)}.location-card.location-card-hover:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--brand-strong)}.location-card.no-hover:hover{transform:none;box-shadow:none;border-color:var(--border)}.transition-all{transition:transform .15s ease,opacity .15s ease,background-color .15s ease}.transition-all:hover{transform:translateY(-1px);opacity:.92}.btn-primary.transition-all{background-color:var(--brand);border-color:var(--brand)}.date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}@media (max-width: 992px){.date-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 576px){.date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.date-item{display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-alt);color:var(--ink);font-weight:500;transition:background .15s ease,border .15s ease,transform .1s ease,opacity .2s ease-in-out;-webkit-user-select:none;user-select:none}.date-item[role=button]{cursor:pointer}.date-item:hover{background:#f3e8ff;border-color:var(--brand)}.date-item-selected{background:#f3e8ff;border-color:var(--brand);color:var(--brand);font-weight:700}.date-item:focus-visible,.time-chip:focus-visible,.transition-all:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:2px}.date-item-low-opacity{opacity:.6}.date-item-not-tappable{cursor:not-allowed}.date-item-low-opacity:hover,.date-item-not-tappable:hover{background:var(--surface-alt);border-color:var(--border)}.time-grid{display:flex;flex-direction:column;gap:1rem}.time-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:12px;padding:1rem 12px;background:var(--surface);transition:transform .1s ease,box-shadow .15s ease,border .15s ease,background .15s ease;text-align:center}.time-chip[aria-disabled=true]{opacity:.6;cursor:not-allowed;background:var(--surface-alt)}.time-chip[aria-disabled=false]{cursor:pointer}.time-chip[aria-disabled=false]:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--ok)}.time-label{font-size:1.25rem;font-weight:600;color:var(--ink)}.time-label-booked{color:var(--ink-muted)}.status-ok{color:var(--ok);display:flex;align-items:center;gap:6px;margin-top:2px;font-weight:500}.status-warn{color:var(--warn);display:flex;align-items:center;gap:6px;margin-top:2px;font-weight:500}h5{font-weight:700;color:var(--ink)}small{color:var(--ink-muted);line-height:1.5}small a{text-decoration:none;color:var(--ink-muted)}small a:hover{text-decoration:underline;color:var(--brand)}.stepper-custom{background:var(--surface-alt);border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;position:relative;padding:1rem}.step-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1;text-align:center}.step-content{display:flex;flex-direction:column;align-items:center;z-index:2}.step-link{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--ink-muted);transition:color .15s ease}.step-item.active .step-link,.step-item.completed .step-link{color:var(--brand-strong)}.step-item.completed .step-link{color:var(--ok)}.step-link:hover{color:var(--brand)}.step-icon{font-size:1.5rem;background:var(--surface);border:2px solid var(--border);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;transition:border-color .15s ease,background .15s ease}.step-item.active .step-icon{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--surface))}.step-item.completed .step-icon{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}.step-number{font-size:.75rem;color:var(--ink-muted)}.step-title{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.step-connector{position:absolute;top:20px;left:50%;width:100%;height:2px;background:var(--border);z-index:1;transform:translateY(-50%)}.step-item.completed+.step-item .step-connector,.step-item.active+.step-item .step-connector{background:var(--brand)}.step-item.completed .step-connector{background:var(--ok)}@media (max-width: 576px){.stepper-custom{flex-direction:column;padding:.25rem;gap:0}.step-item{flex-direction:row;width:100%;text-align:left;padding:.25rem .5rem;justify-content:flex-start;align-items:center}.step-content{flex-direction:row;align-items:center;gap:.5rem;width:100%}.step-icon{width:28px;height:28px;font-size:1rem;margin-bottom:0}.step-text{display:flex;flex-direction:column}.step-number{font-size:.65rem}.step-title{max-width:none;font-size:.8rem}.step-connector{display:none}.step-item:not(:last-child){border-bottom:1px solid var(--border)}.step-link{flex-direction:row;align-items:center;gap:.5rem;width:100%}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.refresh-banner{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:1080;pointer-events:none;width:min(92vw,720px);border-radius:14px;border:1px solid color-mix(in srgb,var(--brand) 22%,var(--border));background:linear-gradient(180deg,#6f42c11a,#6f42c108) padding-box,linear-gradient(180deg,#fff9,#ffffff40) border-box;-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%);box-shadow:var(--shadow);color:var(--ink);transition:transform .24s ease,opacity .24s ease;opacity:0;transform-origin:top center;transform:translate(-50%,-12px) scale(.98)}.refresh-banner.show{opacity:1;transform:translate(-50%) scale(1)}.refresh-banner.hide{opacity:0;transform:translate(-50%,-12px) scale(.98)}.refresh-content{display:flex;align-items:center;gap:10px;padding:12px 14px;pointer-events:auto}.refresh-text{font-weight:600;color:var(--brand-strong)}.refresh-progress{position:absolute;top:0;left:0;height:3px;width:100%;overflow:hidden;border-top-left-radius:14px;border-top-right-radius:14px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--brand) 40%,transparent) 20%,color-mix(in srgb,var(--brand) 85%,transparent) 50%,color-mix(in srgb,var(--brand) 40%,transparent) 80%,transparent 100%);background-size:200% 100%;animation:refresh-scan 1.2s linear infinite}@keyframes refresh-scan{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.refresh-banner{transition:none}.refresh-progress{animation:none}}.not-found-container{text-align:center;padding:50px;background-image:repeating-linear-gradient(45deg,#ff0,#ff0 20px,purple 20px,purple 40px);background-color:#8000804d;background-blend-mode:overlay;min-height:50vh;display:flex;justify-content:center;align-items:center}.content-box{background-color:#ffffffe6;padding:30px;border-radius:10px;box-shadow:0 4px 8px #0003;max-width:500px}.content-box h1,.content-box p{color:#333;text-shadow:none}.return-home-btn{text-decoration:underline;color:purple;border:none;background:transparent;cursor:pointer;font-size:1.2em;transition:color .3s}.return-home-btn:hover{color:#a100a1}
