/* Champion Roofing: WordPress-only overrides. base.css (= the site's app.css,
   verbatim) and the parts are never edited; everything WordPress or Elementor
   needs on top lives here. Loaded after base.css on every page. */

/* ---- 1. Fonts ---------------------------------------------------------------
   base.css names /assets/fonts/<file>, the path the static site served from its
   root; the same two files live in the theme (assets/fonts/). A later @font-face
   with the same family, style and weight replaces the earlier one, so the ten
   faces below (same descriptors, same unicode-range, generated from base.css)
   re-point every face at the theme's copies. functions-main.php preloads them. */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/archivo-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/archivo-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/archivo-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/archivo-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(../fonts/archivo-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/inter-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 650;
  font-display: swap;
  src: url(../fonts/inter-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/inter-latin-wght.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ---- 2. Elementor's wrappers add nothing ------------------------------------
   Every section is one lhcr-* widget inside one full-bleed container
   (widgets/_setup-00-lib.php lhcr_setup_container): no padding, gap, margin or
   max-width around it, so the geometry is the site's <main> > <section>. */
.e-con.lhcr-bleed, .e-con.lhcr-bleed > .e-con-inner { display: block; }
.e-con.lhcr-bleed,
.e-con.lhcr-bleed > .e-con-inner {
  --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
  --padding-block-start: 0; --padding-block-end: 0; --padding-inline-start: 0; --padding-inline-end: 0;
  --margin-top: 0; --margin-bottom: 0; --margin-block-start: 0; --margin-block-end: 0;
  --gap: 0; --row-gap: 0; --column-gap: 0;
  max-width: none; width: 100%; padding: 0; margin: 0; gap: 0;
}
main > .elementor > .e-con { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --padding-block-start: 0; --padding-block-end: 0; --padding-inline-start: 0; --padding-inline-end: 0; --gap: 0; --row-gap: 0; --column-gap: 0; padding: 0; gap: 0; }
.elementor-widget.lhcr-w, .elementor-widget[class*="elementor-widget-lhcr-"] { margin-block-end: 0; --widgets-spacing: 0; --kit-widget-spacing: 0; }
/* base.css sets --gap on :root and every grid reads it (.grid, .steps, .mosaic, .cert-grid, .marquee-track,
   .stage-track, .cert-bbb). Elementor's .e-con redeclares --gap (its own container gap, zeroed above) and custom
   properties inherit, so inside a container the site's grids collapsed to no gap and their columns widened
   (vparity: 3-column cells 383px -> 399px on every widget page). The widget wrapper restores the site's value,
   verbatim from base.css :root, for its whole subtree. */
.elementor-widget[class*="elementor-widget-lhcr-"] { --gap: clamp(1rem, .8rem + .9vw, 1.6rem); }
.elementor-widget.lhcr-w > .elementor-widget-container, .elementor-widget[class*="elementor-widget-lhcr-"] > .elementor-widget-container { width: 100%; margin: 0; padding: 0; }
/* The header and footer templates: their wrappers vanish, so .site-head sticks
   to the viewport and the footer's landmarks stay the only ones (see _setup-a11y.php). */
.elementor-location-header .e-con, .elementor-location-header .elementor-widget, .elementor-location-header .elementor-widget-container,
.elementor-location-footer .e-con, .elementor-location-footer .elementor-widget, .elementor-location-footer .elementor-widget-container { display: contents; }
.elementor-location-header .e-con { overflow: visible; }
/* The chrome fallback (inc/chrome.php lhcr_render_chrome: a request where the Theme Builder location has no
   template, which is every request until Pro is connected) prints the header/footer widget straight into
   <body> with Elementor's two wrapper divs. They vanish the same way: .elementor-element is position:relative
   and only as tall as the header, so with the box kept the sticky .site-head's containing block is that
   129px box and the header scrolls away with the page (interact.mjs: scroll bar + mobile lock tests).
   Front end only: in the editor's preview the widget keeps its box for the selection handles. */
body:not(.elementor-editor-active) > .elementor-widget-lhcr-header, body:not(.elementor-editor-active) > .elementor-widget-lhcr-header > .elementor-widget-container,
body:not(.elementor-editor-active) > .elementor-widget-lhcr-footer, body:not(.elementor-editor-active) > .elementor-widget-lhcr-footer > .elementor-widget-container { display: contents; }

/* ---- 3. The hero under the overlay header -----------------------------------
   base.css: body.has-hero > main > .hero/.phero/.errpage { padding-top: var(--header-h) }.
   Under Elementor the first section sits in .elementor > .e-con > .elementor-widget
   [> .elementor-widget-container]; functions-main.php sets body.has-hero from the
   page's first widget. */
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .hero,
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .phero,
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .errpage,
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .elementor-widget-container > .hero,
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .elementor-widget-container > .phero,
body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .elementor-widget-container > .errpage { padding-top: var(--header-h); }
@media (min-width: 1025px) {
  body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .errpage-nf,
  body.has-hero > main > .elementor > .e-con:first-child > .elementor-widget:first-child > .elementor-widget-container > .errpage-nf { padding-top: 0; }
}

/* ---- 4. The Style tab's prefix classes (widgets/_base.php) ------------------ */
.lhcr-surface-paper > .elementor-widget-container > section, .lhcr-surface-paper > .elementor-widget-container > div, .lhcr-surface-paper > section, .lhcr-surface-paper > div { background: var(--paper); color: var(--body); }
.lhcr-surface-paper2 > .elementor-widget-container > section, .lhcr-surface-paper2 > .elementor-widget-container > div, .lhcr-surface-paper2 > section, .lhcr-surface-paper2 > div { background: var(--paper-2); color: var(--body); }
.lhcr-surface-white > .elementor-widget-container > section, .lhcr-surface-white > .elementor-widget-container > div, .lhcr-surface-white > section, .lhcr-surface-white > div { background: var(--white); color: var(--body); }
.lhcr-surface-ink > .elementor-widget-container > section, .lhcr-surface-ink > .elementor-widget-container > div, .lhcr-surface-ink > section, .lhcr-surface-ink > div { background: var(--ink); color: rgba(255, 255, 255, .78); }
.lhcr-surface-ink > .elementor-widget-container > section :is(h1, h2, h3, h4), .lhcr-surface-ink > section :is(h1, h2, h3, h4) { color: #fff; }
.lhcr-ghost-off .ghost { display: none !important; }
.lhcr-motion-off *, .lhcr-motion-off *::before, .lhcr-motion-off *::after { animation-play-state: paused !important; animation-delay: -1s !important; transition: none !important; }
.lhcr-motion-off [data-reveal] { opacity: 1 !important; transform: none !important; }
.lhcr-reveal-off [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ---- 5. Insurance ----------------------------------------------------------- */
.lhcr-w [hidden], .site-head [hidden], #drawer [hidden] { display: none !important; }
