/* shared header + footer chrome (r8), one source for every site page */
.nv .dd{position:relative}.nv .ddm{position:absolute;left:-14px;top:100%;min-width:230px;padding:10px;background:#fff;border:1px solid var(--line,#dfe5ee);border-radius:var(--r,14px);box-shadow:0 18px 40px rgba(0,5,62,.16);display:grid;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}.nv .dd:hover .ddm,.nv .dd:focus-within .ddm{opacity:1;visibility:visible;transform:none}.nv .ddm a{padding:9px 12px;border-radius:10px;white-space:nowrap}.nv .ddm a:hover{background:var(--paper,#f4f6f9)}
.r7nv .r7mega{left:-120px;grid-template-columns:repeat(4,auto);column-gap:8px;padding:14px;min-width:0}.r7nv .r7c{display:grid;align-content:start;gap:2px}
.r7h{margin:2px 12px 6px;font:800 12px/1.2 var(--display,Saira),sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--blue,#00468C)}
.r7mh{margin:12px 6px 0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#5A6488}
.r7ms .ml{grid-template-columns:1fr 1fr}.r7ms a[href*=ductless]{grid-column:1/-1}
@media(min-width:1101px) and (max-width:1320px){.hdr .hrv{display:none}}
/* mobile sheet: scrollable, always closable */
.mnav nav{max-height:calc(100dvh - 64px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.mnav .mtop{position:sticky;top:-10px;z-index:2;display:flex;align-items:center;justify-content:space-between;margin:-10px -16px 0;padding:10px 12px 6px 20px;background:#fff}
.mnav .mtop .mh{margin:0}
.mclose{width:44px;height:44px;display:grid;place-content:center;border:0;border-radius:50%;background:var(--paper,#F4F6FA);color:var(--ink,#00053E);cursor:pointer;padding:0}
.mclose:focus-visible{outline:3px solid var(--sky,#0075BD);outline-offset:2px}
.mclose svg{width:20px;height:20px}
.mnav nav::before{display:none}
html.menu-open body{overflow:hidden}
/* footer */
.ft.r7ft .r7fb{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.ft.r7ft .r7fb p{margin:0;max-width:52ch}
.ft.r7ft img{width:150px;height:auto;background:#fff;border-radius:12px;padding:6px}
.r7fg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;margin-top:26px}
.ft.r7ft h3{color:var(--y,#FED14D);margin:0 0 10px}
.r7fc ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.r7fc a{color:#fff;font-size:14.5px}.r7fc a:hover{color:var(--y,#FED14D)}
.r7strip{margin:28px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:13.5px;line-height:1.7;text-align:center}.r7strip span{white-space:nowrap}.r7strip a{color:var(--y,#FED14D)}
@media(max-width:1000px){.r7fg{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:699px){.r7fg{grid-template-columns:1fr 1fr;gap:20px}.r7strip span{white-space:normal}.r7fc a{display:inline-block;padding:6px 0;margin:-6px 0}}
@media(min-width:700px){.mnav nav{max-height:calc(100dvh - 96px)}}
/* r8e: no sideways scroll 320-1440, 44px hit areas */
@media(max-width:699px){html body .hd .hdi{gap:10px}}
@media(max-width:419px){html body .hd .hdi{padding-left:14px!important;padding-right:12px!important;gap:8px}html body .hd .lg img.lgrun{width:100px}html body .hd .hcall{padding:0 10px;font-size:13.5px;gap:5px}}
@media(max-width:359px){html body .hd .lg img.lgrun{width:88px}html body .hd .hcall .ic{display:none}html body .hd .hcall{padding:0 12px}}
.cb .cbw{min-width:0}.cb .svc-g{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:699px){.cb .svc-g{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bc a{position:relative}.bc a::after{content:"";position:absolute;left:-6px;right:-6px;top:50%;height:44px;transform:translateY(-50%)}
.rv button.more{position:relative}.rv button.more::after{content:"";position:absolute;z-index:1;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}
body .sx-dot::after{content:"";position:absolute;inset:-6px;border-radius:999px}
.gpill{max-width:100%}
@media(max-width:374px){.gpill{gap:6px;padding:8px 12px 8px 8px;font-size:14px}.gpill .gg{width:26px;height:26px}.gpill b{font-size:16px}}
@media(max-width:349px){html body ul.proof{flex-wrap:wrap!important;row-gap:6px!important;justify-content:flex-start!important}}
@media(max-width:699px){html body .rh{grid-template-columns:minmax(0,1fr)}}
@media(max-width:339px){html body .rh>div>h2{font-size:27px}}
@media(max-width:379px){html body .tkc{padding:0 8px;gap:4px}html body .tkc span::after{font-size:12.5px}}
@media(max-width:339px){html body .tkc .ic{display:none}}
@media(min-width:700px) and (max-width:919px){html body .tkc{white-space:normal;height:auto;min-height:48px;padding-top:6px;padding-bottom:6px;line-height:1.2;text-align:center}html body .tkc span{white-space:normal}}
@media(min-width:700px) and (max-width:919px){html body .tkc .ic{display:none}html body .tkc{font-size:12.5px;justify-content:center}}
/* r8l: invisible hit areas (no visual change), header 320-340, #book equal visible gaps, footer logo guard */
.ft.r7ft img{object-fit:contain}
header nav.nv>.dd>a,header nav.nv>a{position:relative}
header nav.nv>.dd>a::after,header nav.nv>a::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
#reviews a[href$="reviews/"],#reviews a.lgr,a.sx-more,#services a.tlink,.rv a[href$="reviews/"],a.lgr{position:relative}
#reviews a[href$="reviews/"]::after,#reviews a.lgr::after,a.sx-more::after,#services a.tlink::after,.rv a[href$="reviews/"]::after,a.lgr::after{content:"";position:absolute;z-index:1;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%)}
@media(max-width:340px){html body .hd .hdi{padding-left:14px!important;padding-right:14px!important}html body .hd .lg img.lgrun{width:82px}html body .hd .hcall{font-size:13px;padding:0 13px}}
html body section#book.sec.fin{padding-top:76px!important;padding-bottom:88px!important}
@media(max-width:699px){html body section#book.sec.fin{padding-top:56px!important;padding-bottom:64px!important}}
@media(min-width:700px){html body.t-about section#book.sec.fin{padding-bottom:60px!important}}
/* hubv6: hub category labels are links (mega, mobile, footer) */
.r7mega a.r7h{display:flex;align-items:center;min-height:32px;margin:2px 4px 6px;padding:4px 8px;border-radius:8px;font:800 12px/1.2 var(--display,Saira),sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--blue,#00468C);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;text-decoration-thickness:2px;transition:background-color .15s,text-decoration-color .15s}
.r7mega a.r7h::after{content:"→";margin-left:6px;font-size:13px;letter-spacing:0;transition:transform .15s}
.r7mega a.r7h:hover,.r7mega a.r7h:focus-visible{background:#eef3ff;text-decoration-color:currentColor}
.r7mega a.r7h:hover::after,.r7mega a.r7h:focus-visible::after{transform:translateX(3px)}
.r7mega a.r7h:focus-visible,a.r7mh:focus-visible,a.r7fh:focus-visible{outline:3px solid var(--blue,#00468C);outline-offset:2px}
a.r7mh{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:8px 0 0;padding:0 6px;border-radius:8px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue,#00468C);text-decoration:none}
a.r7mh::after{content:"→";font-size:15px;letter-spacing:0}
a.r7mh:hover,a.r7mh:active{background:#eef3ff}
a.r7fh{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;text-decoration-thickness:2px;display:inline-flex;align-items:center;min-height:44px}
a.r7fh::after{content:" →";white-space:pre}
a.r7fh:hover{text-decoration-color:currentColor}

/* hubv6 11: shared area block clipped (nothing inside can paint across another section) */
#area .amap{contain:paint}
