/* Responsive refinements and Lucide icons, preserving the established identity. */
.icon-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.icon{display:inline-block;width:20px;height:20px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.note-icon{display:flex;flex:none}.note-icon .icon{width:19px;height:19px}
.schedule-icon{flex:none}.schedule-icon .icon{width:24px;height:24px}
.about-caption{display:flex;align-items:center;justify-content:center;gap:8px}
.about-caption span{display:inline-flex;margin:0}.about-caption .icon{width:16px;height:16px}
.footer-bottom .icon{width:14px;height:14px;margin-left:3px}
.service-more .icon{width:17px;height:17px}.faq-list summary .icon{width:22px;height:22px}
.service-dialog-close{position:sticky;top:12px;float:right;z-index:3;display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;margin:12px 12px -56px 0;border:1px solid #bfd5cc;border-radius:50%;background:#fffdf9;color:var(--teal);box-shadow:0 2px 10px #173f4212}
.service-dialog-close .icon{width:23px;height:23px}.service-dialog-top{padding-right:28px}
.service-dialog{overscroll-behavior:contain}.service-dialog[open]{isolation:isolate}
body.service-opened{overflow:hidden}
.perto-head button{display:grid;place-items:center;width:44px;height:44px;flex:none;padding:0;margin-right:-8px}
.perto-form button{display:grid;place-items:center;min-width:44px;min-height:44px}
.perto-message{overflow-wrap:anywhere;flex-shrink:0}.perto-message a .icon{width:15px;height:15px;margin-left:4px}
.perto-options button{min-height:36px}.perto-head,.perto-context,.perto-form,.perto-foot{flex-shrink:0}
.perto-messages{min-height:0;overscroll-behavior:contain}.perto-panel:focus{outline:none}
body.chat-open .mobile-sticky,body.menu-open .mobile-sticky{display:none}
body.menu-open .perto-widget{visibility:hidden}
@media(max-width:960px){
 .site-header{height:74px}.header-inner{gap:12px}.brand{width:145px}.desktop-nav,.header-cta{display:none}
 .menu-toggle{display:flex;margin-left:auto;width:44px;height:44px;border:1px solid #cdded9;border-radius:50%;background:transparent;align-items:center;justify-content:center;flex-direction:column;gap:5px}
 .menu-toggle span{display:block;width:17px;height:2px;background:var(--teal)}
 .mobile-nav:not([hidden]){display:flex;position:absolute;top:74px;left:0;right:0;background:#fffdf8;padding:12px max(18px,calc((100% - 560px)/2));box-shadow:0 20px 30px #07565e1e;flex-direction:column;gap:0;font-size:14px;font-weight:700;max-height:calc(100dvh - 74px);overflow-y:auto}
 .mobile-nav a{display:flex;align-items:center;min-height:48px;padding:8px 0;border-bottom:1px solid #e4ebe6}.mobile-nav a:last-child{border-bottom:0}
}
@media(max-width:760px){
 body.chat-open{overflow:hidden}
 .container{width:min(100% - 40px,560px)}
 .hero-art{max-width:none;width:calc(100% + 40px);margin-left:0;align-self:center;overflow:hidden}
 .hero-team-photo{transform:scale(1.1);transform-origin:50% 80%}
 .hero-copy{padding-top:36px}.hero h1{font-size:clamp(38px,10.3vw,56px)}
 .eyebrow{font-size:10px;letter-spacing:.09em;gap:9px;line-height:1.5}.eyebrow-line{width:21px;flex:none}
 .hero-note{align-items:flex-start;line-height:1.5;max-width:100%}.hero-note .note-icon{padding-top:1px}
 .hero-actions .button{min-height:52px}.hero-actions .text-link{min-height:44px;padding-top:6px}
 .services .section-heading h2{font-size:clamp(38px,9.6vw,54px)}
 .service-open{grid-template-columns:35% minmax(0,1fr);gap:16px;align-items:start}
 .service-open h3{font-size:20px;line-height:1.2}.service-open p{font-size:14px;line-height:1.5}
 .service-more{font-size:11px;line-height:1.4;gap:5px;margin-top:10px}.service-more .icon{width:16px;height:16px}
 .service-tile-photo{aspect-ratio:4/5}.service-secondary-grid .service-open{align-items:center}
 .service-secondary-grid .service-open>span:first-child{min-width:0}
 .about-visual{height:auto;min-height:0;padding:0 0 22px;gap:0;align-items:start}
 .about-visual img{width:82%;max-width:360px;aspect-ratio:4/5;align-self:start}
 .about-caption{position:relative;bottom:auto;left:auto;justify-self:center;max-width:100%;margin-top:-4px;padding:14px 12px;flex-wrap:wrap;font-size:9px;line-height:1.5;letter-spacing:.05em}
 .booking-composer input[type="text"],.booking-composer textarea,.perto-form input{font-size:16px}
 .booking-pet-options span{min-height:44px;padding-inline:19px;font-size:14px}
 .booking-composer .form-label{font-size:14px;line-height:1.45}
 .booking-pet-choice legend{font-size:14px}.booking-composer .booking-fine{line-height:1.5}
 .booking-composer fieldset.booking-pet-choice{padding:0;margin:0 0 23px}
 .schedule{gap:12px}.schedule div{min-width:0}.schedule span:not(.schedule-icon){font-size:13px;line-height:1.5}
 .faq-list summary{font-size:15px;line-height:1.5;gap:16px}.faq-list summary>span{display:flex;flex:none}
 .faq-list details p{margin-right:0;line-height:1.6}
 .closing h2{font-size:clamp(38px,10.2vw,55px)}
 .footer-links a{min-height:40px;display:flex;align-items:center;overflow-wrap:anywhere}
 .footer-bottom{flex-direction:column;gap:10px;padding-bottom:calc(142px + env(safe-area-inset-bottom,0px));font-size:11px;line-height:1.5}
 .mobile-sticky{left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));bottom:calc(11px + env(safe-area-inset-bottom,0px));min-height:52px}
 .perto-widget{right:max(12px,env(safe-area-inset-right,0px));bottom:calc(77px + env(safe-area-inset-bottom,0px))}
 .perto-launcher{min-height:48px}
 .perto-panel{top:calc(var(--chat-viewport-top,0px) + 12px);bottom:auto;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));width:auto;height:min(640px,calc(var(--chat-viewport-height,100dvh) - 24px - env(safe-area-inset-bottom,0px)));max-height:calc(var(--chat-viewport-height,100dvh) - 24px - env(safe-area-inset-bottom,0px));border-radius:14px}
 body.chat-open .perto-launcher{visibility:hidden}
 .perto-head{padding:12px 16px}.perto-context{font-size:12px}.perto-messages{flex:1;min-height:0;max-height:none}
 .perto-options{flex-shrink:0;max-height:156px;overflow:auto;padding:8px 12px;gap:6px}.perto-options button{min-height:40px;font-size:12px;padding:8px 11px}
 .perto-form{padding:0 12px 10px}.perto-form input{min-height:44px}.perto-foot{line-height:1.4}
 .service-dialog{max-height:100dvh;height:100dvh;max-width:100%;width:100%;padding-bottom:env(safe-area-inset-bottom,0px)}
 .service-dialog-media{height:clamp(160px,28dvh,260px);min-height:160px}.service-dialog-layout{min-height:0}
 .service-dialog-copy{padding:24px 22px 30px}.service-dialog-copy h2{font-size:clamp(34px,9vw,42px);overflow-wrap:break-word}
 .service-dialog-copy .button{width:100%;justify-content:space-between;gap:12px;min-height:52px;line-height:1.35}
 .service-dialog-top{padding-right:30px}.service-dialog-close{top:12px}
}
@media(max-width:360px){
 .container{width:calc(100% - 32px)}.hero-art{width:calc(100% + 32px)}
 .service-open{grid-template-columns:31% minmax(0,1fr);gap:12px}.service-open h3{font-size:18px}
 .about-caption{font-size:8px;gap:5px;padding-inline:8px}
}
@media(max-width:760px) and (max-height:500px){
 .perto-context{display:none}.perto-head{padding:7px 12px}.perto-avatar{width:32px;height:32px}
 .perto-options{max-height:54px;flex-wrap:nowrap;overflow-x:auto}.perto-options button{flex:none}
 .perto-foot{padding-bottom:6px}.perto-form{padding-bottom:6px}
}

/* Keep mobile actions together so they do not cover two rows of content. */
.perto-launcher-icon .icon,.perto-avatar .icon{width:23px;height:23px}
@media(max-width:760px){
 .mobile-sticky{right:calc(66px + max(12px,env(safe-area-inset-right,0px)));gap:12px;padding:14px 18px}
 .perto-widget{bottom:calc(11px + env(safe-area-inset-bottom,0px))}
 .perto-launcher{width:54px;height:54px;min-height:54px;justify-content:center;padding:0}
 .perto-launcher>span:last-child{display:none}
 .perto-launcher-icon{width:36px;height:36px;background:transparent;color:#fff}
 .perto-launcher-icon .icon{width:25px;height:25px}
 .footer-bottom{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}

@media(max-width:760px){
 body.chat-compact .perto-context{display:none}
 body.chat-compact .perto-head{padding:7px 12px}
 body.chat-compact .perto-avatar{width:32px;height:32px}
 body.chat-compact .perto-options{max-height:54px;flex-wrap:nowrap;overflow-x:auto}
 body.chat-compact .perto-options button{flex:none}
 body.chat-compact .perto-foot{padding-bottom:6px}
 body.chat-compact .perto-form{padding-bottom:6px}
}
