/* Interaction motion follows the approved composition. */
.care-card{transition:box-shadow .3s,border-color .3s,background .3s}.care-card:active{box-shadow:0 2px 6px #72556316}.check-circle svg path{stroke-dasharray:25;stroke-dashoffset:0}.care-card:has(input:checked) .check-circle{animation:check-bloom .48s cubic-bezier(.2,.9,.3,1.4)}.care-card:has(input:checked) .check-circle svg path{animation:check-draw .4s .08s both}.selected-badge{animation:badge-in .4s .12s both}.pickup-row .pickup-icon svg{transition:transform .4s cubic-bezier(.2,.9,.3,1.4)}.pickup-row:has(input:checked) .pickup-icon svg{animation:truck-hello .65s ease-out}.truck-paw{transform-origin:8px 10px}.pickup-row:has(input:checked) .truck-paw{animation:paw-hello .65s ease-out}.switch::after{transition:transform .36s cubic-bezier(.2,.85,.35,1.3)}.care-grooming{view-transition-name:grooming-card}.care-color{view-transition-name:color-card}.intro-copy{view-transition-name:hero-copy}.pickup-row{view-transition-name:pickup}.whatsapp-dock{view-transition-name:whatsapp}.message-preview{view-transition-name:message-preview}
::view-transition-group(*){animation-duration:.55s;animation-timing-function:cubic-bezier(.22,.8,.22,1)}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(whatsapp),::view-transition-new(whatsapp){animation:none}::view-transition-group(whatsapp){animation-duration:0s}::view-transition-new(message-preview){animation:message-appear .5s both}::view-transition{pointer-events:none}
.delight-particle{position:fixed;z-index:100;pointer-events:none;font:20px/1 Georgia,serif;color:#c581b7;text-shadow:0 1px 7px white;will-change:transform,opacity}.floating{animation-duration:18s}.c2{animation-duration:23s}.scene-image{animation-duration:8s}.peek-dog img{animation-duration:8s}.pink-heart{animation:heart-breathe 6s ease-in-out infinite}.whatsapp-button:active,.visit-actions a:active{transform:scale(.975)}
.booking-tail{gap:23px;align-items:center}.booking-tail a{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.booking-tail a>svg{width:15px;height:15px}.booking-tail a>span{padding-left:0}
.visit{max-width:660px;padding:20px 16px 38px;margin:0 auto;position:relative;isolation:isolate}.visit-heading{text-align:center;position:relative;margin-bottom:22px}.visit-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e1f5ee;border:1px solid #fff;margin:0 auto 9px;color:#327361;box-shadow:0 5px 16px #6c8d7c0c}.visit-heading h2{font-size:39px;line-height:.98;position:relative;display:inline-block}.visit-heart{position:absolute;right:-28px;bottom:2px;font:34px/1 Georgia;color:#ca87b4;transform:rotate(12deg)}.visit-card{border:1.5px solid #fff;border-radius:29px;overflow:hidden;background:linear-gradient(140deg,#fffdfbf5,#fbeaf1f2);box-shadow:0 10px 35px #67516b12}.map-window{height:253px;position:relative;overflow:hidden;background:#ddf1e8}.map-window iframe{width:100%;height:100%;border:0;display:block;pointer-events:none}.map-open{position:absolute;inset:0;z-index:1;text-decoration:none;display:block}.map-open:focus-visible{outline-offset:-5px;outline:3px solid #996baf;border-radius:25px}.map-brand{position:absolute;top:13px;left:13px;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 7px;border:1px solid white;background:#fffc;backdrop-filter:blur(8px);border-radius:36px;box-shadow:0 4px 18px #54776313}.map-brand>img{width:34px;height:34px;border-radius:50%;object-fit:cover}.map-brand>span{font-weight:600;font-size:13px;line-height:1.25}.map-brand small{display:block;font-weight:400;font-size:10px;margin-top:2px;color:#50736d}.map-logo-pin{position:absolute;left:50%;top:50%;width:66px;height:78px;transform:translate(-50%,-100%);filter:drop-shadow(0 4px 6px #184f3933)}.map-logo-pin>span{display:block;width:66px;height:66px;padding:4px;border-radius:50%;background:linear-gradient(145deg,#b6e8db,#e4c7f3);border:2px solid white;position:relative;z-index:1}.map-logo-pin img{width:100%;height:100%;border-radius:50%;object-fit:cover}.map-logo-pin::after{content:'';position:absolute;bottom:5px;left:26px;width:15px;height:15px;transform:rotate(45deg);background:#d3e4eb;border-right:2px solid white;border-bottom:2px solid white}.map-logo-pin::before{content:'';position:absolute;bottom:-3px;left:19px;width:29px;height:10px;border-radius:50%;background:#32715b20;box-shadow:0 0 0 8px #fff4;animation:pin-breathe 4s ease-in-out infinite}.map-open:hover .map-logo-pin>span{transform:translateY(-3px)}.map-logo-pin>span{transition:transform .3s}.map-open-label{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);background:#fffffff2;padding:7px 13px;border-radius:20px;box-shadow:0 4px 15px #33524712;font-size:11px;white-space:nowrap}.map-open-label>span{margin-left:7px}.visit-details{padding:19px 16px 17px}.visit-address{text-align:center;font-size:16px;font-weight:600;line-height:1.4}.visit-address span{display:block;font-size:12px;font-weight:400;color:#657674;margin-top:3px}.visit-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.visit-actions>a{min-height:61px;border-radius:20px;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s,box-shadow .2s;font-size:14px;font-weight:600}.directions-link{gap:7px;background:linear-gradient(130deg,#2b8c70,#0c6553);color:white;border:1px solid #348c75;box-shadow:0 4px 15px #245d4115}.directions-link svg{width:22px;height:22px}.review-link{flex-direction:column;gap:4px;background:linear-gradient(130deg,#fff6e3,#fcedf4);border:1px solid white;color:#53424b;box-shadow:0 4px 15px #71562c08}.review-stars{display:flex;gap:2px;color:#d5a04f}.review-stars svg{width:16px;height:16px;fill:currentColor;filter:drop-shadow(0 1px 0 #fff)}.visit-actions a:hover{box-shadow:0 7px 19px #376d3b22;transform:translateY(-2px)}.review-link:hover .review-stars svg{animation:star-sway .55s both}.review-link:hover .review-stars svg:nth-child(2){animation-delay:.06s}.review-link:hover .review-stars svg:nth-child(3){animation-delay:.12s}.review-link:hover .review-stars svg:nth-child(4){animation-delay:.18s}.review-link:hover .review-stars svg:nth-child(5){animation-delay:.24s}.visit-card.is-arriving .map-logo-pin>span{animation:check-bloom .7s .25s both}
@keyframes check-bloom{0%{transform:scale(.68)}60%{transform:scale(1.16)}100%{transform:scale(1)}}@keyframes check-draw{from{stroke-dashoffset:25}to{stroke-dashoffset:0}}@keyframes badge-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes truck-hello{0%,100%{transform:translateX(0) rotate(0)}30%{transform:translateX(5px) rotate(-5deg)}65%{transform:translateX(-2px) rotate(3deg)}}@keyframes paw-hello{35%{transform:scale(1.2)}100%{transform:none}}@keyframes message-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes heart-breathe{0%,100%{transform:rotate(10deg) scale(1)}50%{transform:rotate(15deg) scale(1.06)}}@keyframes pin-breathe{0%,100%{box-shadow:0 0 0 5px #fff5}50%{box-shadow:0 0 0 12px #fff0}}@keyframes star-sway{40%{transform:translateY(-3px) rotate(12deg)}100%{transform:none}}
@media(min-width:840px){.visit{max-width:1080px;padding:55px 35px 65px;display:grid;grid-template-columns:.72fr 1fr;gap:60px;align-items:center}.visit-heading h2{font-size:58px}.visit-icon{width:48px;height:48px;margin-bottom:17px}.map-window{height:285px}.visit-heading{margin:0}.visit-address{font-size:18px}.visit-actions>a{font-size:16px}.visit-details{padding:21px}.map-brand>span{font-size:14px}.map-brand small{font-size:12px}.map-open-label{font-size:12px}}
@media(max-width:359px){.visit{padding-inline:12px}.visit-heading h2{font-size:35px}.visit-details{padding-inline:12px}.visit-actions{gap:8px}.visit-actions>a{font-size:13px}.directions-link{gap:4px}.directions-link svg{width:20px;height:20px}.review-stars svg{width:14px;height:14px}.booking-tail{gap:18px}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.delight-particle{display:none!important}*,*::before,*::after{animation:none!important;transition:none!important}}.motion-paused::view-transition-group(*),.motion-paused::view-transition-old(*),.motion-paused::view-transition-new(*){animation:none!important}.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation:none!important;transition:none!important}
