@font-face {
  font-family: 'FontAwesome';
  font-display: swap;
  /* existing font declarations */
}

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');
.fa {
  font-display: swap !important;
}

.site-header,
.site-header * {
    font-family: 'Poppins', sans-serif !important;
    text-transform: uppercase !important;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background-color: #fff;
    padding: 0px 0px;
}

/* Links in all blog posts */
.single-post a {
    color: inherit;
    text-decoration: underline;
    font-family: inherit;
    font-size: inherit;
    font-weight: bold;
}

/* Hover effect for links */
.single-post a:hover {
    color: red; /* Change the link color to red on hover */
}

/* single-post headings */
.single-post h1 {
  font-size: 2.0rem !important;
}

.single-post h2 {
  font-size: 1.7rem !important;
}

.single-post h3 {
  font-size: 1.4rem !important;
}

.single-post h4 {
  font-size: 1.2rem !important;
}


/* Default style for the links inside the custom header menu */
.site-header ul li a {
    text-decoration: none !important; /* Removes default underline */
    color: #FFF; /* Default font color */
    padding: 10px 15px; /* Adjust the padding as needed */
    display: inline-block;
    transition: background-color 0.3s, color 0.3s, border-radius 0.3s, text-decoration 0.3s; /* Smooth transition */
    border-bottom: none !important; /* Ensures no extra underline */
    position: relative; /* Needed for custom underline */
}

/* Removes unwanted underline styles globally */
.site-header ul li a::after {
    content: none !important; /* Removes any pseudo-element underline */
}

/* Hover effect */
.site-header ul li a:hover {
    color: red !important; /* Font color changes to red */
    text-decoration: underline !important; /* Disables browser-generated underline */
    border-bottom: 0px solid red !important; /* Custom underline */
    text-underline-offset: 5px; /* Ensures underline is positioned correctly */
}

/* Ensure buttons behave correctly */
.wp-block-button a:hover {
    color: red !important;
    background-color: white !important;
}


/* All link to change to red on hover */
a:hover {
    color: red !important; /* Change font color to red */
}



.glow-button:hover {
  background-color: #d71a14;
  border: 6px solid red; /* thicker border on hover */
  box-shadow: 0 0 1em 0.5em rgba(255, 26, 20, 0.85); /* scaled glow */
  border-radius: 10px;
}

/* Additional CSS for Poppins Font Implementation */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@700&display=swap');

.poppins-bold-link {
  font-family: 'Poppins', sans-serif;
  font-weight: 700;
  text-decoration: none;
  color: inherit;
}
/* Import Poppins font from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

/* Class to apply Poppins font */
.poppins-font {
    font-family: 'Poppins', sans-serif;
}
/* Optional: Different font weights */
.poppins-light {
    font-family: 'Poppins', sans-serif;
    font-weight: 300;
}

.poppins-regular {
    font-family: 'Poppins', sans-serif;
    font-weight: 400;
}

.poppins-medium {
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
}

.poppins-semibold {
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
}

.poppins-bold {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
}

/* Fix Popup Maker close button */
.pum-close {
    position: absolute !important;
    top: 10px !important;
    right: 15px !important;
    z-index: 999999 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    padding: 5px 10px !important;
    background: rgba(0,0,0,0.5) !important;
    color: white !important;
    border-radius: 3px !important;
}

/* Ensure the close button area is clickable */
.pum-container .pum-close {
    display: block !important;
    visibility: visible !important;
}

/* Fix container pointer events */
.pum-container {
    pointer-events: auto !important;
}

/* Prevent iframe from blocking close button */
.pum-content {
    position: relative !important;
}

.pum-content iframe {
    position: relative !important;
    z-index: 1 !important;
}

/* Mobile popup fix */
@media screen and (max-width: 768px) {
    .pum-overlay {
        -webkit-tap-highlight-color: transparent;
        pointer-events: auto !important;
    }
    
    .pum-container {
        pointer-events: none !important;
    }
    
    .pum-content {
        pointer-events: auto !important;
    }
    
    /* Delay popup opening slightly on mobile */
    .open-ghl-popup, .atf-ghl-popup {
        -webkit-tap-highlight-color: transparent;
    }
}


/* Force ALL blog thumbnails to same height and bring titles closer */

/* Force ALL blog thumbnails to same height and bring titles closer */

/* Target all thumbnail containers */
.wp-block-newspack-blocks-homepage-articles .post-thumbnail,
.wp-block-newspack-blocks-homepage-articles figure.post-thumbnail {
    width: 100% !important;
    height: 200px !important; /* Force exact same height */
    overflow: hidden !important;
    border-radius: 8px;
    margin-bottom: 0 !important; /* Remove all bottom spacing */
    display: block !important;
    position: relative;
}

/* Force ALL images to fill containers consistently */
.wp-block-newspack-blocks-homepage-articles .post-thumbnail img,
.wp-block-newspack-blocks-homepage-articles figure.post-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    transition: transform 0.3s ease;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hover effect */
.wp-block-newspack-blocks-homepage-articles .post-thumbnail:hover img,
.wp-block-newspack-blocks-homepage-articles figure.post-thumbnail:hover img {
    transform: scale(1.05);
}

/* Bring titles much closer to images */
.wp-block-newspack-blocks-homepage-articles .entry-wrapper {
    padding-top: 0.5rem !important; /* Small gap between image and title */
    margin-top: 0 !important;
    padding-left: 0;
    padding-right: 0;
}

/* Import Poppins font */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

/* Blog post titles with Poppins font */
.wp-block-newspack-blocks-homepage-articles .entry-title {
    margin-top: 0 !important;
    margin-bottom: 0.5rem !important;
    padding-top: 0 !important;
    font-size: 1.1rem;
    line-height: 1.3;
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500;
    color: #333;
}

/* Blog post title links */
.wp-block-newspack-blocks-homepage-articles .entry-title a {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500;
    color: #333 !important;
    text-decoration: none;
    transition: color 0.3s ease;
}

.wp-block-newspack-blocks-homepage-articles .entry-title a:hover {
    color: #ff1c21 !important;
    font-weight: 600;
}

/* Ensure articles have consistent spacing */
.wp-block-newspack-blocks-homepage-articles article {
    margin-bottom: 2rem !important;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .wp-block-newspack-blocks-homepage-articles .post-thumbnail,
    .wp-block-newspack-blocks-homepage-articles figure.post-thumbnail {
        height: 180px !important;
    }
    
    .wp-block-newspack-blocks-homepage-articles .entry-wrapper {
        padding-top: 0.4rem !important;
    }
}

@media (max-width: 480px) {
    .wp-block-newspack-blocks-homepage-articles .post-thumbnail,
    .wp-block-newspack-blocks-homepage-articles figure.post-thumbnail {
        height: 160px !important;
    }
    
    .wp-block-newspack-blocks-homepage-articles .entry-wrapper {
        padding-top: 0.3rem !important;
    }
}
}

/* Hover effect */
.wp-block-newspack-blocks-homepage-articles .post-thumbnail:hover img,
.wp-block-newspack-blocks-homepage-articles figure.post-thumbnail:hover img {
    transform: scale(1.05);
}

/* Bring titles much closer to images */
.wp-block-newspack-blocks-homepage-articles .entry-wrapper {
    padding-top: 0.5rem !important; /* Small gap between image and title */
    margin-top: 0 !important;
    padding-left: 0;
    padding-right: 0;
}

/* Remove excess spacing from titles */
.wp-block-newspack-blocks-homepage-articles .entry-title {
    margin-top: 0 !important;
    margin-bottom: 0.5rem !important;
    padding-top: 0 !important;
    font-size: 1.1rem;
    line-height: 1.3;
}

/* Ensure articles have consistent spacing */
.wp-block-newspack-blocks-homepage-articles article {
    margin-bottom: 2rem !important;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .wp-block-newspack-blocks-homepage-articles .post-thumbnail,
    .wp-block-newspack-blocks-homepage-articles figure.post-thumbnail {
        height: 180px !important;
    }
    
    .wp-block-newspack-blocks-homepage-articles .entry-wrapper {
        padding-top: 0.4rem !important;
    }
}

@media (max-width: 480px) {
    .wp-block-newspack-blocks-homepage-articles .post-thumbnail,
    .wp-block-newspack-blocks-homepage-articles figure.post-thumbnail {
        height: 160px !important;
    }
    
    .wp-block-newspack-blocks-homepage-articles .entry-wrapper {
        padding-top: 0.3rem !important;
    }
}

/* Homepage Blog Section - White Text Only */

/* Target the homepage blog section specifically */
.home .wp-block-newspack-blocks-homepage-articles .entry-title,
.home .wp-block-newspack-blocks-homepage-articles .entry-title a {
    color: #ffffff !important;
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500;
}

/* White text on hover with slight opacity */
.home .wp-block-newspack-blocks-homepage-articles .entry-title a:hover {
    color: rgba(255, 255, 255, 0.8) !important;
    font-weight: 600;
}

/* If there are any meta elements or excerpts, make them white too */
.home .wp-block-newspack-blocks-homepage-articles .entry-meta,
.home .wp-block-newspack-blocks-homepage-articles .entry-excerpt,
.home .wp-block-newspack-blocks-homepage-articles p {
    color: rgba(255, 255, 255, 0.9) !important;
}

/* Alternative hover effect with red accent (if you prefer) */

.home .wp-block-newspack-blocks-homepage-articles .entry-title a:hover {
    color: #ff1c21 !important;
    font-weight: 600;
}

/* When popup is CLOSED — iframe cannot block clicks */
#offOverlay:not(.off--active) #off-iframe,
#offOverlay:not(.off--active) .off-iframe-wrap {
  pointer-events: none !important;
  visibility: hidden !important;
}

/* When popup is OPEN — iframe works normally */
#offOverlay.off--active #off-iframe,
#offOverlay.off--active .off-iframe-wrap {
  pointer-events: auto !important;
  visibility: visible !important;
}

/* ===================================================================
   CLS FIX (added 2026-07-14): Core Web Vitals - Poor CLS (0.53) remediation
   See Search Console > Core Web Vitals > CLS issue: more than 0.25 (mobile)
   =================================================================== */

/* 1) Replace non-composited transitions with transform/opacity-only equivalents.
   Avoids Lighthouse "Avoid non-composited animations" (was: transition: 0.25s ease-in-out on buttons/links,
   which included non-compositable properties like background-color, box-shadow, top). */
a, button, .button, .wp-block-button__link,
.wc-block-components-button:not(.is-link), .wp-block-search__button {
  transition-property: transform, opacity !important;
  transition-duration: 0.25s !important;
  transition-timing-function: ease-in-out !important;
}

/* 2) Off-canvas "10% OFF" overlay: was transitioning "visibility" (non-compositable / flagged by Lighthouse
   as "Unsupported CSS Property: visibility"). Now only opacity is animated; pointer-events (not animated,
   applied instantly) replaces visibility for blocking/allowing clicks so the overlay never intercepts
   clicks while hidden. */
.off-overlay {
  transition: opacity 0.35s ease !important;
  pointer-events: none !important;
}
.off-overlay.off--active {
  pointer-events: auto !important;
}

/* 3) Reserve space for Isotope/Masonry portfolio grids so the re-layout Isotope performs after
   imagesLoaded() doesn't visibly shift surrounding content. */
.obb-masonry-container.obb-isotope,
.obb-portfolio .obb-masonry-container,
.obb-posts .obb-masonry-container {
  min-height: 300px;
}
.obb-masonry-wrapper {
  min-height: 150px;
}

/* Reserve space for FlexSlider/testimonial slideshows while the slider script initializes. */
.obb-slideshow,
.obb-flexslider {
  min-height: 300px;
}

/* 4) Reserve space for the async-loaded Trustindex reviews widget (was rendering at 0 height, then
   jumping to ~66px once the widget script loads). */
.ti-widget,
.ti-widget-container {
  min-height: 66px;
}


/* Site-wide typography unification (Plus Jakarta Sans), added 2026-09-30. Previously the site mixed Race Sport on h1/h2, Poppins on nav/blog titles/buttons, and IBM Plex Sans as the body default, while only the redesigned service pages used Plus Jakarta Sans. This unifies everything to that font. Prior Additional CSS was backed up locally before this edit -- remove this block to fully revert. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

body,
h1, h2, h3, h4, h5, h6,
p, li, blockquote, table, th, td,
.entry-title, .entry-title a,
.entry-content, .entry-summary,
.site-header, .site-header *,
button, .wp-block-button__link,
input, select, textarea,
.wp-block-newspack-blocks-homepage-articles .entry-title,
.wp-block-newspack-blocks-homepage-articles .entry-title a {
	font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif !important;
}


/* Heading font override (2026-09-30): keep headings on Poppins to match nav/blog titles; body copy stays Plus Jakarta Sans from the block above. */
h1, h2, h3, h4, h5, h6,
.entry-title, .entry-title a,
.wp-block-newspack-blocks-homepage-articles .entry-title,
.wp-block-newspack-blocks-homepage-articles .entry-title a {
	font-family: 'Poppins', sans-serif !important;
}

/* Homepage Google reviews widget: same oversized-container issue as the mini badge on the service pages -- clip to the real ~66px content height instead of the 400px reserved box. */
.wp-custom-css-7ae1bd4b .ti-widget {
	max-height: 70px;
	overflow: hidden;
}

/* Trustindex's script sets an inline min-height:400px (with overflow:visible) on this widget that a plain max-height can't beat -- force all three so the box actually clips to the real content height. */
.wp-custom-css-7ae1bd4b .ti-widget {
	min-height: 70px !important;
	max-height: 70px !important;
	overflow: hidden !important;
}


/* Footer: Poppins, all caps (2026-10-02) */
.wp-site-blocks > footer, .wp-site-blocks > footer * { font-family: 'Poppins', sans-serif !important; text-transform: uppercase !important; }
