/* V3: photography from the real profile, typed headlines and native touch carousel. */
.scroll-hero .pet-scene .scene-pet{left:8%;bottom:7%;width:84%;height:86%;object-fit:cover;object-position:center;border-radius:240px 240px 140px 140px;filter:none;animation:none;border:8px solid #fffaf242;box-shadow:0 16px 35px #4e40321c}
.scroll-hero .pet-shadow{display:none}
.type-line{display:block;position:relative;width:max-content;max-width:100%;white-space:nowrap}
.type-measure{visibility:hidden}
.type-ink{position:absolute;left:0;top:0;width:100%;height:1.15em;white-space:nowrap}
.is-typing .type-ink{width:0;overflow:hidden;border-right:2px solid currentColor;animation:write-line var(--type-duration) steps(var(--type-steps),end) var(--type-delay) both}
@keyframes write-line{from{width:0}to{width:100%}}
.photo-carousel{min-width:0;position:relative}
.carousel-viewport{display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y;cursor:grab;position:relative;border-radius:20px}
.carousel-viewport::-webkit-scrollbar{display:none}
.carousel-viewport:focus-visible{outline:3px solid #8b4a9f;outline-offset:6px}
.carousel-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.carousel-viewport .gallery-photo{flex:0 0 calc((100% - 60px)/4);padding-top:0}
.carousel-viewport .gallery-photo img{height:auto;aspect-ratio:3/4;pointer-events:none;border-radius:20px;transition:none}
.carousel-arrow,.carousel-pause{position:absolute;display:grid;place-items:center;border:1px solid #fff9;border-radius:50%;background:#fffaf2ed;box-shadow:0 2px 15px #27251f15}
.carousel-arrow{top:50%;transform:translateY(-50%);width:42px;height:42px;font-size:28px;line-height:1}
.carousel-prev{left:12px}.carousel-next{right:12px}
.carousel-pause{right:14px;bottom:14px;width:36px;height:36px;font-size:16px}
.carousel-arrow:hover,.carousel-pause:hover{background:var(--yellow)}
.availability-state{margin-top:20px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:#fffaf2;font-size:14px}
.availability-state p{margin:0}
.availability-state[data-mode=live]{background:#e1eee8}
.availability-state[data-mode=error]{background:#f5dac7}
.availability-retry{margin-top:8px;border:0;border-bottom:1px solid currentColor;background:none;padding:3px 0;font-size:14px}
.calendar-days button.has-availability:after{content:'';display:block;width:4px;height:4px;border-radius:50%;background:currentColor;margin:2px auto 0}
.time-empty{font-size:14px;color:#61594f;margin:0}
.time-slot.preference{padding:10px 14px;font-size:13px}
.booking-details .time-slots{min-height:48px}
.booking-summary strong{min-height:1.5em}
.calendar-note{font-size:14px}
.booking-details [hidden]{display:none!important}
#booking-submit:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
.booking-confirmation{padding:6px 0 18px;outline:none}
.confirmation-check{display:grid;place-items:center;width:54px;height:54px;background:#dbeae1;border-radius:50%;font-size:28px;margin-bottom:20px}
.booking-confirmation .eyebrow{margin-bottom:16px}
.booking-confirmation h3{font-size:36px;margin-bottom:22px}
.booking-confirmation p{font-size:16px;line-height:1.7;margin-bottom:16px}
.booking-confirmation .confirmation-note{font-size:13px;color:#655d52;padding-top:16px;border-top:1px solid var(--border)}
.availability-state[data-mode=demo]{background:#eae4f5}
@media(max-width:1050px){.carousel-viewport .gallery-photo{flex-basis:calc((100% - 40px)/3)}}
@media(max-width:760px){.scroll-hero .pet-scene .scene-pet{border-width:5px;border-radius:140px 140px 80px 80px}.carousel-viewport{gap:14px}.carousel-viewport .gallery-photo{flex-basis:73%}.carousel-viewport .gallery-photo img{aspect-ratio:3/4}.carousel-arrow{width:36px;height:36px}.carousel-pause{width:34px;height:34px}.availability-state{font-size:13px}.calendar-note{font-size:13px}.type-line{max-width:none}.booking-step h3{font-size:23px}.booking-confirmation h3{font-size:32px}}
@media(prefers-reduced-motion:reduce){.is-typing .type-ink{width:100%;border-right:0;animation:none}}
.scroll-hero.calm .is-typing .type-ink{width:100%;border-right:0;animation:none}
