/* =====================================================================
   Static-site add-ons (everything else on the page is the original WordPress/Elementor output)
   - search results under the header search box
   - cookie consent banner
   ===================================================================== */

/* ---------- header search results (Pagefind) ---------- */
#mcnav .search, #mcnav .dsearch { position: relative; }
#mcnav .sresults {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 1005;
  max-height: min(70vh, 520px); overflow-y: auto; padding: 8px;
  background: #fff; border: 1px solid rgba(20,21,26,.08); border-radius: 18px;
  box-shadow: 0 18px 50px rgba(20,21,26,.14);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; text-align: left;
}
#mcnav .sresults[hidden] { display: none; }
#mcnav .sresults a { display: block; padding: 12px 14px; border-radius: 12px; text-decoration: none; color: #14151a; }
#mcnav .sresults a:hover, #mcnav .sresults a:focus-visible, #mcnav .sresults a.is-active { background: #f5f6f8; color: #14151a; outline: none; }
#mcnav .sresults b { display: block; font-size: 14.5px; font-weight: 600; line-height: 1.35; }
#mcnav .sresults span { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: #5b5f6b; }
#mcnav .sresults mark { background: none; color: #14151a; font-weight: 600; }
#mcnav .sresults .sr-empty { margin: 0; padding: 14px; font-size: 14px; color: #5b5f6b; }

/* ---------- contact form: compact layout (pairs fields, shorter message + upload boxes) ---------- */
html body form#forminator-module-366.forminator-custom-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 20px;
  row-gap: 16px;
  padding-bottom: 30px !important;   /* the note under the form is pulled up by Elementor; keep it clear of Submit */
}
html body form#forminator-module-366 > * { grid-column: 1 / -1; }
html body form#forminator-module-366 > .forminator-row { display: contents !important; }
html body form#forminator-module-366 > .forminator-row > .forminator-col {
  grid-column: 1 / -1;
  width: auto !important; max-width: none !important; flex: none !important;
  margin: 0 !important; padding: 0 !important;
}
html body form#forminator-module-366 > .forminator-row > #name-1,
html body form#forminator-module-366 > .forminator-row > #name-2,
html body form#forminator-module-366 > .forminator-row > #email-1,
html body form#forminator-module-366 > .forminator-row > #phone-1,
html body form#forminator-module-366 > .forminator-row > #text-1,
html body form#forminator-module-366 > .forminator-row > #select-1 { grid-column: span 1; }
html body form#forminator-module-366 .forminator-response-message:not(:empty) { margin: 0 !important; }
html body form#forminator-module-366 .forminator-label { margin-bottom: 4px !important; }
html body form#forminator-module-366 textarea.forminator-textarea {
  height: 112px !important; min-height: 112px !important;
}
html body form#forminator-module-366 .forminator-multi-upload { padding: 16px 20px !important; }
html body form#forminator-module-366 .forminator-multi-upload-message {
  display: flex !important; align-items: center; justify-content: center; gap: 10px;
}
html body form#forminator-module-366 .forminator-multi-upload-message p,
html body form#forminator-module-366 .forminator-multi-upload-message .forminator-icon-upload { margin: 0 !important; }
html body form#forminator-module-366 .forminator-row-last { margin-top: 4px; }
@media (max-width: 767px) {
  html body form#forminator-module-366.forminator-custom-form { grid-template-columns: minmax(0, 1fr); row-gap: 14px; padding-bottom: 0 !important; }
  html body form#forminator-module-366 > .forminator-row > .forminator-col { grid-column: 1 / -1 !important; }
}

/* ---------- home page fixes (same rules as wp-additional-css-home-fixes.css for WordPress) ---------- */
/* "Sold at stores you trust" logo strip: full content width, logos visible right up to the edges */
.elementor-11 .elementor-element.elementor-element-df14eaf.e-con { --width: 100%; }
body .logo-banner {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent);
          mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent);
}
/* image banner carousel: the frame itself is rounded, so corners stay round while slides move
   (the rounding was only baked into each image, so mid-slide the corners looked square) */
body .image-slider .slick-list {
  -webkit-clip-path: inset(0 round 1.72% / 3.67%);     /* = the images' 22px corners on 1280x600, scales with them */
          clip-path: inset(0 round 1.72% / 3.67%);
}
.elementor-11 .elementor-element.elementor-element-0e6063e.e-con { background-color: transparent; }  /* no orange at the corners */
/* the arrows and pause button are gone (Nov 2026): the dots are the slideshow's controls, so phones show them too */
@media (max-width: 767px) {
  body .image-slider ul.slick-dots { display: flex !important; }
  body .image-slider .premium-carousel-dots-above ul.slick-dots { left: auto !important; right: 12px; }
}
@media (min-width: 768px) {
  /* arrows lower: mirror the dots' distance from the top (the old rule kept the plugin's -50% shift, so they sat 59px up) */
  body .image-slider a.carousel-arrow.carousel-next.slick-arrow,
  body .image-slider a.carousel-arrow.carousel-prev.slick-arrow { transform: none !important; bottom: 6.2% !important; }
  /* dots anchored to the same right edge as the arrows (at ~800px wide they ran off the image) */
  body .image-slider .premium-carousel-dots-above ul.slick-dots { left: auto !important; right: 41px; }   /* last dot lines up with the arrows' right edge */
}

/* ---------- cookie banner ---------- */
#cc {
  position: fixed; left: 24px; bottom: 24px; z-index: 99999;
  width: 420px; max-width: calc(100vw - 48px); max-height: calc(100vh - 48px); overflow-y: auto;
  box-sizing: border-box; margin: 0; padding: 22px 22px 18px;
  border: 1px solid rgba(20,21,26,.08); border-radius: 22px; background: #fff; color: #14151a;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; line-height: 1.5; text-align: left;
  -webkit-font-smoothing: antialiased;
  box-shadow: 0 24px 60px -16px rgba(16,22,38,.28), 0 8px 22px -10px rgba(16,22,38,.14);
  animation: mcCcIn .6s cubic-bezier(.22,1,.36,1) both;
}
#cc[hidden] { display: none; }
#cc *, #cc *::before, #cc *::after { box-sizing: border-box; }
@keyframes mcCcIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
#cc .cc-title { margin: 0; font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: -0.015em; color: #14151a; }
#cc .cc-text { margin: 10px 0 0; font-size: 14px; line-height: 1.55; color: #5b5f6b; }
#cc a { color: #14151a; text-decoration: underline; text-underline-offset: 3px; }
#cc .cc-prefs { display: grid; gap: 8px; margin-top: 14px; }
#cc .cc-prefs[hidden] { display: none; }
#cc .cc-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0; padding: 12px 14px 12px 16px; border-radius: 14px; background: #f6f7f8; font-weight: 400; }
#cc label.cc-row { cursor: pointer; }
#cc .cc-row b { display: block; font-size: 14px; font-weight: 600; color: #14151a; }
#cc .cc-row span { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.45; color: #5b5f6b; }
#cc .cc-row .cc-always { flex: none; margin: 0; font-size: 12px; font-weight: 600; }
#cc .cc-switch { flex: none; -webkit-appearance: none; appearance: none; position: relative; width: 36px; height: 20px; margin: 0; padding: 0; border: 0; border-radius: 999px; background: #d3d6dc; cursor: pointer; transition: background-color .3s ease; }
#cc .cc-switch::after { content: ""; position: absolute; left: 2px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(16,22,38,.3); transition: left .3s cubic-bezier(.22,1,.36,1); }
#cc .cc-switch:checked { background: #14151a; }
#cc .cc-switch:checked::after { left: 18px; }
#cc .cc-switch:focus-visible { outline: 2px solid #14151a; outline-offset: 2px; }
#cc .cc-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
#cc .cc-btn {
  display: block; flex: 1 1 0; height: 46px; margin: 0; padding: 0 18px;
  border: 1px solid transparent; border-radius: 999px; background: none; color: #14151a;
  font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1; text-transform: none; white-space: nowrap;
  cursor: pointer; box-shadow: none;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .25s ease;
}
#cc .cc-btn[hidden] { display: none; }
#cc .cc-accept { order: 2; background: #14151a; border-color: #14151a; color: #fff; }
#cc .cc-accept:hover, #cc .cc-accept:focus { background: #000; border-color: #000; color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(21,24,31,.22); }
#cc .cc-deny { order: 1; background: #f1f2f3; border-color: #f1f2f3; }
#cc .cc-deny:hover, #cc .cc-deny:focus { background: #e6e8eb; border-color: #e6e8eb; color: #14151a; }
#cc .cc-more, #cc .cc-save { order: 3; flex-basis: 100%; background: transparent; border-color: rgba(21,24,31,.16); }
#cc .cc-more:hover, #cc .cc-save:hover, #cc .cc-more:focus, #cc .cc-save:focus { background: transparent; border-color: rgba(21,24,31,.4); color: #14151a; }
#cc .cc-btn:focus-visible { outline: 2px solid #14151a; outline-offset: 2px; }
@media (max-width: 768px) {
  #cc { left: 12px; right: 12px; bottom: 12px; width: auto; max-width: none; padding: 20px 18px 16px; }
}
@media (prefers-reduced-motion: reduce) { #cc { animation: none; } }

/* >>> accessibility (generated by build_a11y.py) >>> */
/* ---------- accessibility: WCAG 2.2 AA fixes ---------- */
/* text contrast: faint greys and orange darkened just enough to pass (4.5:1, or 3:1 for large text) */
html .elementor-11 .elementor-element.elementor-element-0ff78e9 .elementor-heading-title,
html .elementor-11 .elementor-element.elementor-element-b3301f1 .elementor-heading-title,
html .elementor-11 .elementor-element.elementor-element-cab290f,
html .elementor-11 .elementor-element.elementor-element-0b5d179,
html .elementor-11 .elementor-element.elementor-element-0b5d179 a,
html .elementor-11 .elementor-element.elementor-element-e3657e4,
html .elementor-15 .elementor-element.elementor-element-0be2709 .elementor-heading-title,
html .elementor-15 .elementor-element.elementor-element-9a3a3be .elementor-heading-title,
html .elementor-15 .elementor-element.elementor-element-62f2b45 .elementor-heading-title,
html .elementor-314 .elementor-element.elementor-element-92e1e4d .elementor-heading-title,
html .elementor-335 .elementor-element.elementor-element-92e1e4d .elementor-heading-title,
html .elementor-343 .elementor-element.elementor-element-92e1e4d .elementor-heading-title,
html .elementor-615 .elementor-element.elementor-element-574ca46,
html body [style*="color:#9E9E9E" i] { color: #737373 !important; }
html .elementor-11 .elementor-element.elementor-element-6e37e42 { color: #d97706 !important; }   /* orange heading word, 35-47px (large text, 3:1) */
@media (max-width: 767px) { html .elementor-11 .elementor-element.elementor-element-6e37e42 { color: #b45309 !important; } }   /* 22px on phones: needs 4.5:1 */
html .elementor-15 .elementor-element.elementor-element-1704e50 { color: #c62828 !important; }   /* small red note */
html span.select2-selection__placeholder, html .forminator-multi-upload-message p,
html .faq-search-wrapper input.faq-search-input::placeholder { color: #737373 !important; }   /* form hints */
html body .card[style*="--chip:#f79e1b"] .bubble,
html body .card[style*="--chip:#f07a2c"] .bubble,
html body .card[style*="--chip:#d99b1f"] .bubble,
html body .card[style*="--chip:#9bc34a"] .bubble { color: #14151a !important; }   /* pills: dark text */
html body .card[style*="--chip:#3a8a6d"] { --chip: #2f7a5c !important; }   /* teal pill: deeper green behind white text */
html body #mc-dispute, html body #mc-terms { --faint: #6b6f78; }   /* small grey labels in these widgets */
html body #mc-spot .msp-fees { color: #6b6f78 !important; }

/* visible keyboard focus everywhere */
html body #mcnav input:focus-visible,
html body .contact-form input:focus-visible,
html body .contact-form textarea:focus-visible,
html body .forminator-ui input:focus-visible,
html body .forminator-ui textarea:focus-visible,
html body span.select2-selection.select2-selection--single:focus-visible,
html body #mc-spot .msp-thumb:focus-visible,
html body .faq-category-box:focus-visible,
html body .faq-question:focus-visible,
html body .faq-sub-btn:focus-visible,
html body .elementor-custom-embed-image-overlay:focus-visible,
html body .select2-container--focus span.select2-selection.select2-selection--single {
  outline: 3px solid #14151a !important; outline-offset: 3px !important;
}
html body #content[tabindex="-1"]:focus { outline: none; }   /* skip-link target */
html { scroll-padding-bottom: 96px; }   /* focused items never end up hidden behind the Accessibility button */

/* header search: was forced to 350px wide and pushed the page sideways on 1100-1300px screens */
@media (max-width: 1320px) { html body #mcnav .search { min-width: 0 !important; } }
html body .faq-search-input { max-width: 100%; box-sizing: border-box; }   /* fixed 300px box: never wider than its column */
@media (min-width: 1081px) and (max-width: 1199px) {   /* tighter links just above the menu-button size, so the search box stays usable */
  html body #mcnav .item { padding-left: 8px !important; padding-right: 8px !important; }
  html body #mcnav .search { min-width: 150px !important; margin-left: 12px !important; }
}
/* header on phones/tablets: the menu bar spans the full width, so the menu button sits at the right edge (not against the logo) */
@media (max-width: 1080px) {
  html body .elementor-element-55d1161, html body .elementor-widget-shortcode:has(> .elementor-shortcode > #mcnav) { flex: 1 1 auto !important; width: 100% !important; max-width: 100% !important; }
}
/* the menu button works through a hidden checkbox: show its keyboard focus on the visible button */
html body #mcnav .mc-toggle:focus-visible ~ .bar .burger { outline: 3px solid #14151a; outline-offset: 2px; border-radius: 10px; }

/* motion: honour the device's reduce-motion setting and the menu's Pause animations */
@media (prefers-reduced-motion: reduce) {
  html *, html *::before, html *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: 1ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
}
html.a11y-pause *, html.a11y-pause *::before, html.a11y-pause *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: 1ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
html.a11y-pause, html.a11y-pause body { scroll-behavior: auto !important; }

/* menu: Text size enlarges the page content and footer (the header keeps its size: its layout and pop-out
   menu are sized for the real screen width) */
html.a11y-text body > #content, html.a11y-text body > .ekit-template-content-footer, html.a11y-text body > #cc { zoom: var(--mca-zoom, 1); }
/* menu: Underline links / Higher contrast (the colour part is done by the script) */
html.a11y-underline body a:not(.elementor-button):not(.carousel-arrow):not(.brand):not(.mcft-logo):not([class*="btn"]):not([class*="button"]) { text-decoration: underline !important; text-underline-offset: .18em; text-decoration-thickness: 1px; }
html.a11y-contrast body input, html.a11y-contrast body textarea, html.a11y-contrast body select,
html.a11y-contrast body span.select2-selection { border-color: #4b4f58 !important; }
html.a11y-contrast body ::placeholder { color: #3d4049 !important; opacity: 1 !important; }
html.a11y-contrast body :focus-visible { outline: 3px solid #000 !important; outline-offset: 3px !important; }
/* <<< accessibility <<< */

/* ---------- screen-reader-only text (e.g. "(opens in a new tab)" on links) ---------- */
.mc-sr { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }