/* Phone and tablet refinements. Desktop keeps the original composition. */
@media(max-width:900px){
 html{scroll-padding-top:110px}
 .header{position:sticky;top:0;z-index:35;width:100%;max-width:none;min-height:88px;padding:7px 5.5%;gap:14px;background:var(--cream);box-shadow:0 3px 14px #244b4808}
 .brand{width:86px;padding:0;flex-shrink:0}
 .header nav{display:none;position:absolute;left:0;right:0;top:100%;padding:14px 5.5% 20px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 12px 20px #244b4812;z-index:30}
 .header nav.open{display:flex;flex-direction:column;gap:0}
 .header nav a{display:flex;align-items:center;min-height:50px;font-size:15px;border-bottom:1px solid var(--line)}
 .header nav a:last-child{border-bottom:0}
 .header nav a:after{display:none}
 .header-cta{margin-left:auto;min-height:44px;font-size:12px;gap:18px;padding:12px 20px}
 .booking-label-full{display:none}.booking-label-short{display:inline}
 .menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;padding:11px;background:none;border:0;width:44px;height:44px;flex-shrink:0}
 .menu-toggle>span{height:1px;width:22px;background:var(--ink);transition:transform .2s}
 .hero{padding-top:32px}
 .hero-photo{object-fit:cover}
 .booking-layout{grid-template-columns:1fr;overflow:visible;background:none;border:0}
 .booking-form{border:1px solid var(--line);border-radius:18px;background:var(--paper)}
 .booking-calendar{margin-top:20px;border:1px solid var(--line);border-radius:18px;min-height:0}
 .booking-calendar.has-calendar{padding:10px 0 15px;background:transparent;border:0}
 #cal-inline{min-height:540px;overflow:hidden;border-radius:12px}
 #cal-inline iframe{min-height:540px;max-width:100%}
 #calendar-fallback{display:block;margin:16px 14px 0;font-size:12px!important;line-height:1.7;overflow-wrap:anywhere}
 .booking-calendar{scroll-margin-top:110px}
 .booking-form select,.stepper input{font-size:16px}
 .stepper{flex-shrink:0}
 .stepper button{width:44px;height:44px}
 .stepper input{width:38px;min-height:44px}
 .booking-form>label,.animal-row>label{font-size:14px}
 .booking-form select{min-height:52px}
 .booking-form,.booking-calendar{min-width:0}
 .booking-form .button{font-size:14px;min-height:54px}
 .booking-privacy{font-size:11px;line-height:1.7}
 .booking .section-heading>p{font-size:14px}
 .contact-popover{max-height:calc(100svh - 110px);overflow:auto}
 .dialog-close{min-width:44px;min-height:44px}
}
.booking-label-short{display:none}
@media(max-width:900px){.booking-label-short{display:inline}}
@media(min-width:761px) and (max-width:980px){
 .hero{gap:4%;grid-template-columns:1fr 1fr}
 .hero h1{font-size:clamp(44px,6.1vw,59px)}
 .hero .eyebrow{font-size:8px}
 .hero-intro{font-size:14px}
 .hero-actions{gap:12px}
 .hero-actions .button{font-size:11px}
 .care-stamp{width:100px;height:100px}
 .care-stamp span{font-size:15px}
 .cat-care{grid-template-columns:1fr;gap:24px}
 .cat-copy p:last-child{max-width:none}
}
@media(max-width:600px){
 .wrap{width:89%}
 .topline{font-size:9px;line-height:1.5;padding-block:7px;gap:14px}
 .topline>span{max-width:185px}
 .topline>a{font-size:11px;white-space:nowrap;min-height:28px;display:flex;align-items:center}
 .hero{gap:18px;padding-block:28px 35px}
 .hero .eyebrow{font-size:9px;letter-spacing:1.1px;gap:8px;margin-bottom:18px}
 .hero h1{font-size:clamp(41px,12.5vw,68px);margin-bottom:22px;letter-spacing:-1.5px}
 .hero-intro{font-size:15px;line-height:1.75;margin-bottom:22px}
 .hero-actions{align-items:flex-start;gap:10px}
 .hero-actions .button{width:100%;font-size:12px;min-height:54px;padding-inline:18px;justify-content:space-between}
 .hero-actions .text-link{font-size:13px;min-height:44px;padding-block:8px;gap:17px}
 .hero-detail{font-size:11px;line-height:1.6;margin-top:18px}
 .hero-visual{width:93%;margin-top:10px}
 .care-stamp{right:-12px;width:92px;height:92px;box-shadow:0 0 0 6px var(--cream)}
 .care-stamp span{font-size:14px}
 .care-stamp svg{width:25px;height:25px}
 .hero-squiggle{left:-12px}
 .section{padding-block:54px}
 .section-heading h2{font-size:clamp(35px,10.4vw,47px)}
 .section-heading>p{font-size:14px;line-height:1.8}
 .section-heading>p br{display:none}
 .eyebrow,.small-label{font-size:10px}
 .service-card{padding:25px 24px 0}
 .service-card .small-label{font-size:10px}
 .service-card h3{font-size:32px}
 .card-copy{font-size:14px;line-height:1.7}
 .price{gap:18px;align-items:center;flex-wrap:wrap}
 .price>span{font-size:12px;line-height:1.8}
 .price>strong{font-size:47px}
 .service-select{width:calc(100% + 48px);margin-left:-24px;padding:18px 24px;min-height:60px;font-size:14px}
 .extra-care h3{font-size:14px}
 .extra-care p{font-size:12px;line-height:1.7}
 .extra-care>strong{font-size:32px}
 .cat-copy h3{font-size:33px}
 .cat-copy p:last-child{font-size:14px;line-height:1.7}
 .cat-options button{padding:17px 13px;min-width:0}
 .cat-options button>span:first-child{font-size:14px}
 .cat-options button>span:nth-of-type(2){font-size:11px}
 .cat-options b{font-size:13px;min-height:36px;align-items:center}
 .approach{padding-block:55px}
 .approach-title>p:not(.eyebrow),.steps p{font-size:14px;line-height:1.8}
 .steps article{gap:20px}
 .steps h3{font-size:20px;line-height:1.4}
 .booking{width:100%}
 .booking>.section-heading{width:89%;margin-inline:auto}
 .booking-form{width:89%;margin-inline:auto;padding:26px 21px}
 .booking-form>.small-label{font-size:10px;margin-bottom:24px}
 .animal-row{gap:12px;flex-wrap:wrap}
 .estimate{gap:15px;flex-wrap:wrap}
 .estimate span{font-size:14px}
 .estimate small{font-size:12px;line-height:1.6;max-width:185px}
 .estimate output{font-size:35px}
 .fine-print{font-size:12px;line-height:1.75}
 .booking-form>.fine-print{margin:15px 0 22px}
 .booking-calendar{width:89%;margin-inline:auto;margin-top:20px;padding:30px 20px}
 .booking-calendar.has-calendar{width:100%;padding:0 6px 12px}
 .booking-calendar p:not(.small-label){font-size:14px;line-height:1.8}
 .booking-calendar .small-label{font-size:10px}
 .booking-calendar .text-link{font-size:13px;min-height:44px}
 .calendar-status{font-size:12px!important}
 .faq{padding-top:0}
 .faq h2{font-size:38px}
 .faq-title .text-link{font-size:14px;min-height:44px}
 summary{font-size:14px;line-height:1.65;min-height:64px;padding-block:19px}
 details p{font-size:14px;line-height:1.85;padding-right:8px}
 .closing h2{font-size:clamp(35px,10.3vw,45px)}
 .closing .button{font-size:13px;min-height:54px}
 .footer-main{grid-template-columns:1fr;gap:24px;padding-bottom:28px}
 .footer-logo{width:125px;grid-column:auto}
 .footer-main .small-label{font-size:10px;letter-spacing:1.2px;margin-bottom:8px}
 .footer-main>div>a{font-size:18px;min-height:36px}
 .footer-main>div>.footer-email{font-size:13px}
 .footer-main>div>p:last-child{font-size:14px}
 .footer-bottom{font-size:11px;padding-top:18px;gap:15px}
 .footer-bottom>button,.footer-bottom>a{font-size:11px;min-height:44px;display:flex;align-items:center}
 .footer-bottom>span{font-size:10px}
 footer{padding-bottom:env(safe-area-inset-bottom,0px)}
 dialog{padding:35px 24px}
 dialog p{font-size:14px;line-height:1.8}
}
@media(max-width:360px){
 .topline{gap:8px}.topline>span{max-width:150px;font-size:8px}.topline>a{font-size:10px}
 .header{padding-inline:5%;gap:9px}.brand{width:75px}.header-cta{padding:12px 16px;gap:12px}
 .hero h1{font-size:41px}
 .cat-care{padding-inline:18px}.cat-options{gap:10px}
 .price{gap:12px}.price>span{font-size:11px}.price>strong{font-size:44px}
}
@media(hover:none){.photo-frame:hover .hero-photo,.button:hover,.cat-options button:hover{transform:none}}
.header-cta .booking-label-full,.header-cta .booking-label-short{font-size:inherit;line-height:inherit}
