/* =========================================================
   Site polish — shared finishing touches for the pages that use the CheckApps look
   (includes/header.php: Home → Contact + appointment.php). Loaded after site-layout.css.
   ========================================================= */

/* ---- style.css scales EVERY img/svg on hover; keep that only for content photos ---- */
html body svg:hover,
html body :is(nav, header, footer, .site-navbar, .btn, button, a.btn-book, .leaflet-container, .ph-map, .branch-map-wrap, .site-footer) img:hover,
html body img:is([class*="logo"], [src*="logo"], [src$=".svg"]):hover {
    transform: none;
    box-shadow: none;
}
html body svg { transition: none; }

/* ---- Text selection, focus rings, scrollbar in brand colours ---- */
::selection { background: rgba(18, 214, 200, .28); color: inherit; }
html body :is(a, button, [role="button"], input, select, textarea, summary):focus-visible {
    outline: 2px solid #12D6C8;
    outline-offset: 3px;
}
html { scrollbar-color: rgba(18, 214, 200, .45) transparent; }
html::-webkit-scrollbar { width: 11px; }
html::-webkit-scrollbar-track { background: var(--lp-paper, #F4F5FA); }
html[data-theme="dark"]::-webkit-scrollbar-track { background: #0B0B0E; }
html::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #12D6C8, #7C3AED);
    border-radius: 999px; border: 3px solid transparent; background-clip: padding-box;
}

/* ---- Scroll progress bar (top of the window, over the navbar) ---- */
.site-progress {
    position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 2000; pointer-events: none;
    transform-origin: 0 50%; transform: scaleX(var(--p, 0));
    background: linear-gradient(90deg, #12D6C8, #7C3AED);
    box-shadow: 0 0 12px rgba(18, 214, 200, .55);
}

/* ---- Back-to-top button ---- */
.site-totop {
    position: fixed; right: 22px; bottom: 22px; z-index: 1500;
    width: 46px; height: 46px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .14);
    display: grid; place-items: center; cursor: pointer;
    background: rgba(22, 22, 28, .82); color: #F3F3F6; font-size: 1.1rem;
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: 0 18px 36px -18px rgba(0, 0, 0, .7);
    opacity: 0; transform: translateY(14px) scale(.9); pointer-events: none;
    transition: opacity .35s cubic-bezier(.22, 1, .36, 1), transform .35s cubic-bezier(.22, 1, .36, 1), background .3s, border-color .3s;
}
.site-totop.show { opacity: 1; transform: none; pointer-events: auto; }
.site-totop:hover { background: linear-gradient(135deg, #12D6C8, #7C3AED); border-color: transparent; color: #fff; }
.site-totop svg { width: 18px; height: 18px; }
/* keep clear of the home page's cookie bar while it is showing */
.site-totop.lift { bottom: 96px; }

@media (max-width: 575.98px) { .site-totop { right: 14px; bottom: 14px; width: 42px; height: 42px; } }
@media (prefers-reduced-motion: reduce) { .site-progress { display: none; } .site-totop { transition: none; } }

/* Phones/tablets: light/dark toggle sits next to the menu button (includes/navbar.php) */
html body .site-navbar > .container > .site-theme-toggle { align-self: center; }
