/* Top Notch mobile click/tap repair v2 - keeps existing site, fixes mobile overlays, menu, dropdowns, Markate, forms */
html{ -webkit-text-size-adjust:100%; }
html,body{ max-width:100%; }
a,button,input,select,textarea,label{ -webkit-tap-highlight-color:rgba(226,31,47,.18); }
a,button,[role="button"],input,select,textarea{ touch-action:manipulation; }
input,select,textarea,button{ font-size:16px; }
.mobile-overlay:not(.active){ opacity:0!important; pointer-events:none!important; visibility:hidden!important; }
.mobile-menu:not(.active){ pointer-events:none!important; }
.tn-mobile-sticky a,.sticky-cta a,.btn,.tn-quote-btn,.nav-cta,.mobile-menu-btn,.phone-icon,.mobile-menu a,.mobile-dropdown-btn{ position:relative; z-index:2; }
@media (max-width:980px){
  html,body{ overflow-x:hidden!important; }
  body{ padding-bottom:76px; }
  .site-header{ position:sticky!important; top:0!important; z-index:9000!important; background:#fff!important; isolation:isolate!important; }
  .top-strip{ position:relative!important; z-index:9001!important; }
  .mobile-topbar{ display:grid!important; grid-template-columns:48px minmax(0,1fr) 48px!important; align-items:center!important; gap:8px!important; width:min(1180px,92%)!important; margin:0 auto!important; padding:10px 0!important; }
  .logo-area{ display:flex!important; justify-content:center!important; align-items:center!important; min-width:0!important; overflow:hidden!important; }
  .main-logo{ display:block!important; width:auto!important; max-width:100%!important; max-height:58px!important; object-fit:contain!important; margin:0 auto!important; }
  .mobile-menu-btn,.phone-icon{ display:grid!important; visibility:visible!important; opacity:1!important; place-items:center!important; width:44px!important; height:44px!important; min-width:44px!important; min-height:44px!important; border-radius:12px!important; background:#071426!important; color:#fff!important; border:0!important; text-decoration:none!important; font-size:24px!important; line-height:1!important; cursor:pointer!important; z-index:9010!important; padding:0!important; }
  .desktop-nav-wrap{ display:none!important; visibility:hidden!important; height:0!important; overflow:hidden!important; pointer-events:none!important; }
  .main-nav,.dropdown-content{ pointer-events:auto!important; }
  .mobile-overlay{ display:block!important; position:fixed!important; inset:0!important; background:rgba(0,0,0,.62)!important; z-index:9900!important; opacity:0!important; visibility:hidden!important; pointer-events:none!important; transition:opacity .2s ease!important; }
  .mobile-overlay.active{ opacity:1!important; visibility:visible!important; pointer-events:auto!important; }
  .mobile-menu{ display:block!important; visibility:visible!important; position:fixed!important; top:0!important; right:-380px!important; left:auto!important; width:min(380px,91vw)!important; height:100vh!important; height:100dvh!important; max-height:100dvh!important; background:#fff!important; color:#071426!important; z-index:9910!important; padding:16px 16px max(26px,env(safe-area-inset-bottom))!important; overflow-y:auto!important; -webkit-overflow-scrolling:touch!important; box-shadow:-18px 0 40px rgba(0,0,0,.28)!important; transition:right .25s ease!important; transform:none!important; }
  .mobile-menu.active{ right:0!important; pointer-events:auto!important; }
  body.menu-open{ overflow:hidden!important; touch-action:none!important; }
  body.menu-open .mobile-menu{ touch-action:pan-y!important; }
  .close-menu{ display:grid!important; place-items:center!important; margin-left:auto!important; width:44px!important; height:44px!important; min-width:44px!important; min-height:44px!important; border:0!important; border-radius:12px!important; background:#e21f2f!important; color:#fff!important; font-size:30px!important; line-height:1!important; cursor:pointer!important; padding:0!important; }
  .mobile-menu-content{ margin-top:12px!important; display:grid!important; gap:10px!important; padding:0 0 28px!important; }
  .mobile-menu-content a,.mobile-dropdown-btn{ display:flex!important; align-items:center!important; justify-content:space-between!important; width:100%!important; min-height:48px!important; padding:14px 15px!important; border-radius:14px!important; background:#f3f6fb!important; color:#071426!important; text-decoration:none!important; font-weight:900!important; border:0!important; text-align:left!important; font-size:16px!important; line-height:1.2!important; cursor:pointer!important; }
  .mobile-dropdown-content{ display:none!important; gap:7px!important; padding:2px 0 6px 10px!important; border:0!important; margin:0!important; }
  .mobile-dropdown-content.show{ display:grid!important; }
  .mobile-dropdown-content a{ background:#fff!important; border:1px solid #e1e8f2!important; font-size:15px!important; padding:12px 14px!important; min-height:44px!important; }
  .mobile-call-btn,.mobile-quote-btn{ background:#e21f2f!important; color:#fff!important; justify-content:center!important; }
  .mobile-call-btn{ background:#16a34a!important; }
  .hero,.inner-hero,.quote,.content-section,.services,.local-section,.seo-block,footer{ position:relative!important; z-index:1!important; }
  .hero::before,.hero::after,.inner-hero::before,.inner-hero::after{ pointer-events:none!important; }
  .tn-mobile-sticky,.sticky-cta{ position:fixed!important; left:0!important; right:0!important; bottom:0!important; z-index:8800!important; pointer-events:auto!important; }
  .tn-mobile-sticky{ display:grid!important; grid-template-columns:1fr 1fr!important; gap:10px!important; padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important; background:rgba(17,24,39,.96)!important; box-shadow:0 -12px 30px rgba(0,0,0,.22)!important; }
  .tn-mobile-sticky a{ display:flex!important; align-items:center!important; justify-content:center!important; min-height:48px!important; border-radius:14px!important; text-decoration:none!important; font-weight:900!important; color:#fff!important; pointer-events:auto!important; }
  .tn-mobile-sticky a:first-child{ background:#dc2626!important; }
  .tn-mobile-sticky a:last-child{ background:#fff!important; color:#111827!important; }
  form,.quote-form,.contact-card,.hero-card,.booking-panel{ position:relative!important; z-index:3!important; }
  input,select,textarea{ pointer-events:auto!important; max-width:100%!important; }
}
@media (max-width:420px){
  .mobile-topbar{ grid-template-columns:46px minmax(0,1fr) 46px!important; gap:6px!important; }
  .mobile-menu-btn,.phone-icon{ width:42px!important; height:42px!important; min-width:42px!important; min-height:42px!important; font-size:23px!important; }
  .main-logo{ max-height:52px!important; }
}
/* Booking/Markate page: remove anything that can sit on top of the iframe and make the form tall enough to complete */
body.tn-booking-page{ padding-bottom:0!important; }
body.tn-booking-page .sticky-cta,
body.tn-booking-page .tn-mobile-sticky,
body.tn-booking-page #tn-smart-chatbot-root{ display:none!important; visibility:hidden!important; pointer-events:none!important; }
body.tn-booking-page .booking-panel{ position:relative!important; z-index:5!important; overflow:visible!important; padding:10px!important; margin-bottom:22px!important; }
body.tn-booking-page .booking-panel iframe{ display:block!important; width:100%!important; min-height:1250px!important; border:0!important; overflow:auto!important; background:#fff!important; touch-action:auto!important; }
@media (max-width:768px){
  body.tn-booking-page .book-online-hero{ padding-top:42px!important; }
  body.tn-booking-page .booking-panel{ margin-left:-2px!important; margin-right:-2px!important; border-radius:14px!important; }
  body.tn-booking-page .booking-panel iframe{ min-height:1550px!important; border-radius:10px!important; }
}
/* Chatbot mobile keyboard/click repair */
@media (max-width:768px){
  #tn-smart-chatbot-root{ position:relative!important; z-index:8700!important; }
  .tn-bot-button{ z-index:8701!important; pointer-events:auto!important; }
  .tn-bot-panel{ z-index:9905!important; max-width:calc(100vw - 16px)!important; width:calc(100vw - 16px)!important; left:8px!important; right:8px!important; }
  .tn-bot-panel:not(.tn-open){ pointer-events:none!important; }
  .tn-bot-panel.tn-open{ pointer-events:auto!important; }
  .tn-bot-input input,.tn-bot-input button,.tn-quick,.tn-submit{ pointer-events:auto!important; min-height:44px!important; }
}
