/* Oakville Lock & Key — shared additions for every page (loaded right after style.gtf0643bae09).
   The owner's site-wide rules of 2026-09-27: "Request a visit" everywhere, 24/7 and years in
   business in the chrome, the four main categories in the menus (car keys last and smaller),
   the address field in forms, and ONE header treatment for every page without the home video.
   Nothing here may scroll sideways: every flex/grid child that holds text has min-width: 0. */

/* ------------------------------------------------------------------ inner pages: solid paper header
   The home page opens on a dark video, so its header starts transparent with light text.
   Every other page opens on paper, so on phones and tablets the header starts solid. */
@media (max-width: 1023.98px) {
  body:not(:has(.pne8b18c9daa)) .jde27f91eb68 {
    color: var(--tv6b8fa4a7d6);
    background: color-mix(in srgb, var(--vh9028565efd) 94%, transparent);
    -webkit-backdrop-filter: blur(14px) saturate(1.3);
    backdrop-filter: blur(14px) saturate(1.3);
    box-shadow: 0 1px 0 var(--nxf24728f3cb);
  }
  body:not(:has(.pne8b18c9daa)) .jde27f91eb68::before { opacity: 0; }
  body:not(:has(.pne8b18c9daa)) .vh900a0e77fd { background: transparent; box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--tv6b8fa4a7d6) 24%, transparent); }
  body:not(:has(.pne8b18c9daa)) .vh900a0e77fd:hover { background: var(--gt784eb64bef); }
  body:not(:has(.pne8b18c9daa)) .fyac1ddac593 .bl34e98f64a4 { color: var(--pn1bd29160bb); }
}

/* ------------------------------------------------------------------ header: 24/7 */
/* phones: a small "Open 24/7" tag between the wordmark and the menu button */
.fyc8807631a9 {
  flex: none;
  display: inline-flex; align-items: center; gap: 5px;
  min-height: 32px; padding: 0 10px 0 8px; border-radius: 999px;
  font: 700 .8125rem/1 var(--qs9518f37000); letter-spacing: .01em; font-variant-numeric: tabular-nums;
  box-shadow: inset 0 0 0 1.5px color-mix(in srgb, currentColor 38%, transparent);
}
.fyc8807631a9 .bl34e98f64a4 { width: 15px; height: 15px; color: var(--ez64442f9b0d); }
.db1f6dc9ced8 .fyc8807631a9 .bl34e98f64a4, body:not(:has(.pne8b18c9daa)) .fyc8807631a9 .bl34e98f64a4 { color: var(--pn1bd29160bb); }
/* Measured widths (2026-09-27): the wordmark needs ~134px. "Open" shows only from 400px; below 360px
   the clock goes and the header gaps tighten, so the wordmark never wraps down to 320px. */
@media (max-width: 399.98px) { .jdd1fb9c0be4 { display: none; } }
@media (max-width: 359.98px) {
  .fyc8807631a9 { padding: 0 8px; gap: 0; }
  .fyc8807631a9 .bl34e98f64a4 { display: none; }
  .sm95e6aa12be { gap: 10px; }
  .ez6fbf9b1f08 { gap: 6px; }
  .vh900a0e77fd { padding: 0 10px 0 8px; }
}
@media (min-width: 768px) { .fyc8807631a9 { display: none; } }
/* tablet and desktop: "Open 24/7" sits under the phone number, so the header does not get wider */
.vhf600a42423 { display: grid; gap: 3px; min-width: 0; }
.gtc8ae74abe5 { line-height: 1; }
.ired9d5e7804 { font: 650 .6875rem/1 var(--qs9518f37000); letter-spacing: .1em; text-transform: uppercase; color: var(--rp19949147f8); }
.jde27f91eb68:not(.db1f6dc9ced8) .ired9d5e7804 { color: inherit; opacity: .8; }
body:not(:has(.pne8b18c9daa)) .jde27f91eb68 .ired9d5e7804 { color: var(--pn1bd29160bb); opacity: 1; }
@media (min-width: 1024px) { .jde27f91eb68 .ired9d5e7804 { color: var(--pn1bd29160bb); opacity: 1; } }

/* ------------------------------------------------------------------ desktop mega-menu: four main categories, then "Also" */
@media (min-width: 1024px) {
  .db8f0a0db831 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 28px; padding: 26px 0 26px; }
  .qs77556c5e07 {
    grid-column: 1 / -1; min-width: 0;
    display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1.3fr); gap: 0 28px; align-items: start;
    padding-top: 16px; border-top: 1px solid var(--sm9a50ccd174);
  }
  .fyf9262b2bec { margin: 2px 0 0; font: 650 .6875rem/1.2 var(--qs9518f37000); letter-spacing: .12em; text-transform: uppercase; color: var(--tv4444f67fc1); }
  .kw064841db07 .ao9e1b365f4f { margin: 0 0 4px; padding-bottom: 0; border-bottom: 0; }
  .kw064841db07 .ao9e1b365f4f a { font-size: 1rem; }
  .kw064841db07 ul { display: flex; flex-wrap: wrap; gap: 0 16px; }
  .kw064841db07 li { min-width: 0; }
  .kw064841db07 ul a { min-height: 32px; padding: 4px 8px; margin-inline: -8px; font-size: .875rem; }
  .md730080dc5b { margin: 2px 0 0; font-size: .875rem; line-height: 1.45; color: var(--tv4444f67fc1); min-width: 0; }
  .md730080dc5b a { color: var(--rp35d4511899); font-weight: 650; text-decoration: underline; text-decoration-color: var(--pnf920303a87); text-underline-offset: .2em; }
}
@media (min-width: 1200px) { .db8f0a0db831 { gap: 24px 36px; } }

/* ------------------------------------------------------------------ phone menu */
.gt5fc5706875 summary { grid-template-columns: minmax(0, 1fr) 24px; }
.vh75f6c21a6c { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 2px 0 0; font-size: .9375rem; color: var(--rp96db823fc0); }
.vh75f6c21a6c .bl34e98f64a4 { width: 18px; height: 18px; color: var(--rp19949147f8); flex: none; }
.vhafd0a74ad9 { margin: 18px 0 0; font: 650 .75rem/1.2 var(--qs9518f37000); letter-spacing: .12em; text-transform: uppercase; color: var(--tv4444f67fc1); }
.cw7bbd7698ed summary { min-height: 52px; font-size: 1.125rem; }

/* ------------------------------------------------------------------ footer: 24/7 and years in business */
/* contain: inline-size keeps this line from widening the call column (it would squeeze the big sign) */
.kw1590ae9fbd { flex-basis: 100%; contain: inline-size; display: flex; align-items: center; gap: 8px; margin: 0; color: var(--irfe95e4108b); font-size: .9375rem; }
.kw1590ae9fbd .bl34e98f64a4 { width: 18px; height: 18px; color: var(--ez64442f9b0d); flex: none; }
.kw1590ae9fbd b { color: var(--pnd47bdc5aea); }
.cwb32546945b { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 10px 0 12px; }
.cwb32546945b li { min-width: 0; color: var(--irfe95e4108b); }
.cwb32546945b b { color: var(--ez64442f9b0d); font-weight: 700; }
@media (min-width: 1024px) {
  .bl8af83072a7 { justify-content: flex-end; }
  .kw1590ae9fbd { justify-content: flex-end; }
}

/* ------------------------------------------------------------------ forms: the optional label, the dock at narrow widths */
.md8b7c3067ed { font-weight: 500; color: var(--tv4444f67fc1); }
@media (max-width: 359.98px) { .ir5de37052e1 .jdd2e4be0ef1 { padding: 0 10px; font-size: .9375rem; } }
/*3011d8af05df*/
