/* ==========================================================================
   Bootstrap 5 shim — loaded AFTER the template's CSS: the hooks main.js
   uses, then this template's own fixes (each one names the GATES.md line or
   owner note it answers). The neutral Bootstrap 3 defaults live in
   bs3-defaults.css, loaded before style.css — never restate them here.
   ========================================================================== */

/* Hooks main.js uses. */
.tv-preload *, .tv-preload *::before, .tv-preload *::after { transition: none !important; animation-duration: 0s !important; } /* released by main.js one frame after load */
.tv-nohover .dropdown-menu:not(.show) { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; } /* a hover-opened menu stays shut until the first mousemove / touch (main.js) — the cursor may be resting on the nav when the page paints */
#back-to-top { display: none; position: fixed; right: 20px; bottom: 20px; z-index: 999; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fc624d; color: #fff; font: inherit; cursor: pointer; }
#back-to-top.is-visible { display: block; }
.tv-form-note { color: #fc624d; margin: 15px 0 0; font-size: 14px; font-weight: 600; }
.form-control.is-invalid, select.is-invalid, textarea.is-invalid, input.is-invalid { border-color: #dc3545 !important; }
.tv-lightbox { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; background: rgba(0, 0, 0, .92); }
.tv-lightbox.is-open { display: flex; }
.tv-lightbox img { max-width: 92vw; max-height: 84vh; box-shadow: 0 10px 40px rgba(0, 0, 0, .6); }
.tv-lightbox button { position: absolute; border: 0; background: transparent; color: #fff; font-size: 34px; line-height: 1; cursor: pointer; opacity: .8; padding: 10px; }
.tv-lb-close { top: 10px; right: 20px; font-size: 42px; } .tv-lb-prev { left: 10px; top: 50%; transform: translateY(-50%); } .tv-lb-next { right: 10px; top: 50%; transform: translateY(-50%); }
.tv-section-pb { padding-bottom: 80px; } /* for new pages whose last section needs a floor */

/* ==========================================================================
   This template — every rule below names the gate line or owner note it
   answers. Start empty; grow it from GATES.md, never from another template.
   ========================================================================== */
