/* =========================================================================
   ColoradoGutterGuards.com — custom overrides (loaded last on every page)
   Edit site tweaks HERE rather than inside wp-content/.
   Theme colors:  navy #000422   red #f80000   light #f3f3f3
   ========================================================================= */

/* ---- 1. Sticky header ---------------------------------------------------
   Astra fades this header in once you scroll. It used to be see-through with
   transparent menu links, so the nav vanished. Now: solid navy bar. */
#ast-fixed-header .main-header-bar {
  background-color: rgba(0, 4, 34, 0.95) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 22px rgba(0, 0, 0, 0.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
/* desktop bar links: light on navy */
#ast-fixed-header #ast-desktop-header .main-header-menu .menu-item > .menu-link {
  color: #f3f3f3 !important;
  background: transparent !important;
}
#ast-fixed-header #ast-desktop-header .main-header-menu .menu-item:hover > .menu-link,
#ast-fixed-header #ast-desktop-header .main-header-menu .menu-item.current-menu-item > .menu-link {
  color: #f80000 !important;
}
/* phone dropdown (opened from the sticky bar): same as the normal phone menu */
#ast-fixed-header .ast-mobile-header-content .main-header-menu .menu-item > .menu-link {
  color: #000422 !important;
}
#ast-fixed-header .ast-mobile-header-content .main-header-menu .menu-item.current-menu-item > .menu-link,
#ast-fixed-header .ast-mobile-header-content .main-header-menu .menu-item:hover > .menu-link {
  color: #f80000 !important;
}

/* ---- 2. Header "Get a Free Estimate" button on phones -------------------
   Its text size was set to 0px under 545px wide, leaving an empty red box. */
@media (max-width: 544px) {
  .ast-header-button-1 .ast-custom-button,
  .ast-header-button-1[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button {
    font-size: 12px !important;
    line-height: 1.2 !important;
    padding: 9px 12px !important;
    white-space: nowrap;
    color: #000422 !important;
  }
}

/* ---- 3. Estimate form title — same look as the site's headings --------- */
.wpforms-container .wpforms-head-container .wpforms-title {
  font-family: "Work Sans", sans-serif !important;
  font-weight: 600 !important;
  font-size: 26px !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em;
  color: #000422 !important;
  text-transform: capitalize;
}
.wpforms-container .wpforms-head-container::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  margin-top: 14px;
  background: #f80000;
  border-radius: 2px;
}
@media (max-width: 767px) {
  .wpforms-container .wpforms-head-container .wpforms-title { font-size: 22px !important; }
}

/* ---- 4. Address fields on the estimate form (Street / City + ZIP) ------ */
.wpforms-container .cgg-address .cgg-street {
  margin-bottom: 12px !important;
}
.wpforms-container .cgg-address .cgg-street > .wpforms-field-row-block {
  padding: 0 !important;
}
.wpforms-container .cgg-address .cgg-row {
  display: flex !important;
  gap: 12px;
}
.wpforms-container .cgg-address .cgg-row::before,
.wpforms-container .cgg-address .cgg-row::after {
  content: none !important;
  display: none !important;
}
.wpforms-container .cgg-address .cgg-row > .wpforms-field-row-block {
  float: none !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0;
}
.wpforms-container .cgg-address .cgg-city { flex: 1.8 1 0; }
.wpforms-container .cgg-address .cgg-zip  { flex: 1 1 0; }
.wpforms-container .cgg-address input {
  width: 100% !important;
  max-width: 100% !important;
}

/* ---- 5. Company name next to the leaf logo (desktop header) ------------
   One line on wide screens; stacks on two lines on narrower laptops so it
   never runs into the menu. (Phones/tablets show no logo in the header.) */
.site-header .custom-logo-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}
.site-header .custom-logo-link .custom-logo {
  margin-right: -34px;          /* the leaf image has ~36px of empty space on its right */
}
.cgg-wordmark {
  font-family: "Work Sans", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #000422;                                   /* pages with a solid header */
}
.ast-theme-transparent-header #masthead .cgg-wordmark { color: #ffffff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); }
#ast-fixed-header .cgg-wordmark { color: #ffffff; }  /* navy sticky bar */
@media (max-width: 1199px) {
  .cgg-wordmark { font-size: 14px; line-height: 1.15; }
  .cgg-wordmark > span { display: block; }
}

/* ---- 6. Home page option cards: picture on top, text right below ------- */
.elementor-element-f2995c4 > .elementor-widget-container,
.elementor-element-19abc33 > .elementor-widget-container,
.elementor-element-2f69882 > .elementor-widget-container,
.elementor-element-e76bab7 > .elementor-widget-container,
.elementor-element-2bc851d > .elementor-widget-container,
.elementor-element-ceacf0e > .elementor-widget-container {
  background-image: none !important;               /* old overlapping backgrounds */
}
.cgg-card-img {
  height: 160px;
  margin: 0 0 22px;
  padding: 12px;
  background: #f3f3f3;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cgg-card-img img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  mix-blend-mode: multiply;                        /* white photo backgrounds melt into the panel */
}
@media (max-width: 767px) {
  .cgg-card-img { height: 150px; }
}

/* ---- 7. Footer "Need A Free Estimate?" band: readable on tablets/phones -
   The house photo stretched behind the red text below 1025px wide. */
@media (max-width: 1024px) {
  .elementor-927 .elementor-element.elementor-element-43f10d9:not(.elementor-motion-effects-element-type-background) {
    background-image: none !important;
    background-color: #00052f !important;          /* solid navy: no light strip behind the heading */
  }
  .elementor-927 .elementor-element.elementor-element-43f10d9 > .elementor-background-overlay { opacity: 0.18 !important; }
}

/* =========================================================================
   8. HOW IT WORKS page (/how-it-works/)  — hand-written sections
   ========================================================================= */
.cgg-hiw { --navy:#000422; --red:#f80000; --teal:#006d5b; --light:#f3f3f3; color: var(--teal); font-family: Roboto, sans-serif; }
.cgg-hiw *, .cgg-hiw *::before, .cgg-hiw *::after { box-sizing: border-box; }
.cgg-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.cgg-sec { padding: 88px 0; }
.cgg-eyebrow { margin: 0 0 10px; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.cgg-h2 { margin: 0 0 16px; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 44px; line-height: 1.18; color: var(--navy); text-transform: none; }
.cgg-lead { margin: 0 0 40px; max-width: 760px; font-size: 17px; line-height: 1.65; color: var(--teal); }
.cgg-center { text-align: center; }
.cgg-center .cgg-lead { margin-left: auto; margin-right: auto; }
.cgg-hiw h3 { font-family: "Work Sans", sans-serif; font-weight: 600; color: var(--navy); text-transform: none; }

/* buttons (same shape as the site's buttons) */
.cgg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 32px; border-radius: 4px; border: 1px solid transparent;
  font-family: Roboto, sans-serif; font-weight: 500; font-size: 16px; letter-spacing: .5px; line-height: 1.2; text-decoration: none !important; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.cgg-btn--red { background: var(--red); border-color: var(--red); color: #fff !important; }
.cgg-btn--red:hover { background: #d10000; border-color: #d10000; }
.cgg-btn--ghost { background: transparent; border-color: var(--navy); color: var(--navy) !important; }
.cgg-btn--ghost:hover { background: var(--navy); color: #fff !important; }
.cgg-cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 40px; }
.cgg-center .cgg-cta-row, .cgg-cta-row.cgg-center { justify-content: center; }
.cgg-cta-note { width: 100%; margin: 4px 0 0; font-size: 14px; color: #5d6b79; }

/* hero label */
.cgg-hero-eyebrow { margin: 0 0 12px; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 14px; letter-spacing: .2em; text-transform: uppercase; color: #fff; text-align: center; }

/* trust strip */
.cgg-trust { background: #fff; border-bottom: 1px solid #e6e8ee; }
.cgg-trust__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 28px; padding-bottom: 28px; }
.cgg-trust__item { display: flex; align-items: center; gap: 14px; }
.cgg-trust__icon { flex: 0 0 48px; height: 48px; border-radius: 50%; background: #fdecec; color: var(--red); display: flex; align-items: center; justify-content: center; }
.cgg-trust__icon svg { width: 24px; height: 24px; }
.cgg-trust__item strong { display: block; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 16px; color: var(--navy); line-height: 1.3; }
.cgg-trust__item span { display: block; font-size: 14px; color: #5d6b79; line-height: 1.4; }

/* 3 steps */
.cgg-steps__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; counter-reset: none; }
.cgg-step { position: relative; background: #fff; border-radius: 10px; padding: 34px 30px 32px; box-shadow: 0 12px 34px rgba(0, 4, 34, .08); border-top: 4px solid var(--red); }
.cgg-step__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.cgg-step__num { width: 48px; height: 48px; border-radius: 50%; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 20px; }
.cgg-step__icon { width: 36px; height: 36px; color: var(--red); }
.cgg-step h3 { margin: 0 0 10px; font-size: 22px; line-height: 1.3; }
.cgg-step p { margin: 0; font-size: 16px; line-height: 1.65; }

/* "installers can provide" panel */
.cgg-includes { margin-top: 40px; background: var(--navy); border-radius: 10px; padding: 36px 40px; display: grid; grid-template-columns: 280px 1fr; gap: 32px; align-items: center; }
.cgg-includes h3 { margin: 0; color: #fff; font-size: 24px; line-height: 1.3; }
.cgg-checks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 32px; }
.cgg-checks li { position: relative; padding-left: 30px; color: #e9ecf5; font-size: 15.5px; line-height: 1.5; }
.cgg-checks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--red)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center/13px no-repeat; }

/* problems */
.cgg-problems { background: #fff; }
.cgg-problems__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.cgg-problem { background: #fff; border: 1px solid #e6e8ee; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 4, 34, .06); display: flex; flex-direction: column; }
.cgg-problem img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.cgg-problem__body { padding: 28px 30px 32px; flex: 1; display: flex; flex-direction: column; }
.cgg-problem__body .cgg-result { margin-top: auto !important; }
.cgg-problem__body .cgg-small + .cgg-result, .cgg-problem__body ul + .cgg-result { margin-top: auto !important; }
.cgg-problem__tag { margin: 0 0 8px; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.cgg-problem h3 { margin: 0 0 12px; font-size: 26px; line-height: 1.25; }
.cgg-problem p { margin: 0 0 14px; font-size: 16px; line-height: 1.65; }
.cgg-problem ul { margin: 0 0 16px; padding-left: 20px; }
.cgg-problem li { margin: 0 0 6px; font-size: 16px; line-height: 1.55; }
.cgg-problem li::marker { color: var(--red); }
.cgg-result { margin: 18px 0 0 !important; padding: 12px 16px; border-left: 3px solid var(--red); background: var(--light); border-radius: 0 6px 6px 0; color: var(--navy) !important; }
.cgg-result strong { color: var(--navy); }
.cgg-small { font-size: 14px !important; color: #5d6b79 !important; }

/* service area */
.cgg-area__grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "text map" "towns map"; gap: 8px 56px; align-items: start; }
.cgg-area__text { grid-area: text; }
.cgg-area__map { grid-area: map; margin: 0; border-radius: 12px; overflow: hidden; box-shadow: 0 16px 40px rgba(0, 4, 34, .18); line-height: 0; }
.cgg-area__map svg { display: block; width: 100%; height: auto; }
.cgg-towns { grid-area: towns; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; }
.cgg-towns h3 { margin: 0 0 8px; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
.cgg-towns ul { list-style: none; margin: 0; padding: 0; }
.cgg-towns li { position: relative; padding-left: 16px; margin: 0 0 4px; font-size: 15.5px; line-height: 1.5; color: var(--teal); }
.cgg-towns li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
.cgg-towns__note { grid-column: 1 / -1; margin: 6px 0 0; font-size: 15px; color: #5d6b79; }
.cgg-towns__note a { color: var(--red); font-weight: 500; }

/* FAQ */
.cgg-faq { background: #fff; }
.cgg-faq__wrap { max-width: 880px; }
.cgg-faq details { border: 1px solid #e3e6ee; border-radius: 10px; background: #fff; margin: 0 0 12px; transition: box-shadow .2s; }
.cgg-faq details[open] { box-shadow: 0 10px 28px rgba(0, 4, 34, .08); border-color: #d5d9e4; }
.cgg-faq summary { list-style: none; cursor: pointer; position: relative; padding: 20px 60px 20px 24px; font-family: "Work Sans", sans-serif; font-weight: 600; font-size: 18px; line-height: 1.4; color: var(--navy); }
.cgg-faq summary::-webkit-details-marker { display: none; }
.cgg-faq summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--light);
  color: var(--red); font: 600 20px/28px Roboto, sans-serif; text-align: center; }
.cgg-faq details[open] summary::after { content: "–"; }
.cgg-faq summary:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; border-radius: 10px; }
.cgg-faq__a { padding: 0 24px 22px; }
.cgg-faq__a p { margin: 0 0 10px; font-size: 16px; line-height: 1.7; }
.cgg-faq__a ul { margin: 0 0 10px; padding-left: 20px; }
.cgg-faq__a li { margin: 0 0 4px; font-size: 16px; line-height: 1.6; }

/* tablet */
@media (max-width: 1024px) {
  .cgg-h2 { font-size: 36px; }
  .cgg-trust__grid { grid-template-columns: repeat(2, 1fr); }
  .cgg-steps__grid { grid-template-columns: 1fr; max-width: 640px; }
  .cgg-includes { grid-template-columns: 1fr; padding: 32px; }
  .cgg-area__grid { grid-template-columns: 1fr; grid-template-areas: "text" "map" "towns"; gap: 28px; }
  .cgg-area__map { max-width: 600px; }
}
/* phones */
@media (max-width: 767px) {
  .cgg-sec { padding: 56px 0; }
  .cgg-h2 { font-size: 27px; }
  .cgg-lead { font-size: 16px; margin-bottom: 28px; }
  .cgg-trust__grid { gap: 18px 14px; padding-top: 22px; padding-bottom: 22px; }
  .cgg-trust__item { gap: 10px; }
  .cgg-trust__icon { flex-basis: 40px; height: 40px; }
  .cgg-trust__icon svg { width: 20px; height: 20px; }
  .cgg-trust__item strong { font-size: 14.5px; }
  .cgg-trust__item span { font-size: 12.5px; }
  .cgg-step { padding: 28px 24px; }
  .cgg-checks { grid-template-columns: 1fr; }
  .cgg-includes { padding: 28px 22px; }
  .cgg-problems__grid { grid-template-columns: 1fr; gap: 24px; }
  .cgg-problem__body { padding: 22px 22px 26px; }
  .cgg-problem h3 { font-size: 22px; }
  .cgg-cta-row { flex-direction: column; align-items: stretch; }
  .cgg-cta-row .cgg-btn { width: 100%; }
  .cgg-cta-note { text-align: center; }
  .cgg-towns { gap: 20px 18px; }
  .cgg-faq summary { font-size: 16.5px; padding: 18px 56px 18px 18px; }
  .cgg-faq__a { padding: 0 18px 18px; }
}

/* ---- 9. Floating contact buttons (bottom-right) ------------------------
   Replaces the old Call Now Button service, which was set to the wrong
   number (303-900-9281). Phones/tablets: green CALL. Desktop: red EMAIL. */
.cgg-fab {
  position: fixed;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 9990;                                   /* stays under the estimate popup */
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
  transition: transform .15s ease, box-shadow .15s ease;
  text-decoration: none !important;
}
.cgg-fab:hover { transform: scale(1.06); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.34); }
.cgg-fab:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.cgg-fab svg { width: 28px; height: 28px; }
.cgg-fab--call  { background: #009900; }
@media (min-width: 922px) {
  .cgg-fab--call { bottom: calc(92px + env(safe-area-inset-bottom, 0px)); }   /* stacked above the email button */
}
@media (min-width: 922px) and (hover: hover) {
  .cgg-fab::after {
    position: absolute; right: 72px; top: 50%; transform: translate(6px, -50%);
    white-space: nowrap; background: #000422; color: #fff; padding: 10px 14px; border-radius: 6px;
    font: 500 14px/1 Roboto, sans-serif; box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    opacity: 0; pointer-events: none; transition: opacity .15s, transform .15s;
  }
  .cgg-fab--call::after  { content: "Call (303) 900-8291"; }
  .cgg-fab--email::after { content: "Email us"; }
  .cgg-fab:hover::after, .cgg-fab:focus-visible::after { opacity: 1; transform: translate(0, -50%); }
}
.cgg-fab--email { background: #f80000; }
@media (max-width: 921px) {
  .cgg-fab--call  { display: flex; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  .cgg-fab--email { display: none; }
}

/* ---- 10. Home page tidy-up ------------------------------------------- */
/* tighter spacing between sections (they had 160px gaps stacked together) */
.elementor-932 .elementor-element.elementor-element-60c1c9e { padding-bottom: 64px !important; }
.elementor-932 .elementor-element.elementor-element-ed40c2c { padding-top: 88px !important; }
.elementor-932 .elementor-element.elementor-element-fde0db6 { padding-top: 88px !important; padding-bottom: 88px !important; }
@media (max-width: 767px) {
  .elementor-932 .elementor-element.elementor-element-60c1c9e { padding-bottom: 40px !important; }
  .elementor-932 .elementor-element.elementor-element-ed40c2c,
  .elementor-932 .elementor-element.elementor-element-fde0db6 { padding-top: 56px !important; padding-bottom: 56px !important; }
}
/* "* Required Fields" note under the estimate form (nothing on it is required) */
.elementor-element-45a99f6 { display: none !important; }

/* "Call us anytime" phone card under What We Offer */
.elementor-element-354b77f .elementor-icon-box-wrapper {
  display: flex !important; flex-direction: row !important; align-items: center; gap: 18px; text-align: left !important;
  background: #fff; border: 1px solid #e6e8ee; border-radius: 10px; padding: 18px 24px;
  box-shadow: 0 8px 24px rgba(0, 4, 34, .06); max-width: 420px;
}
.elementor-element-354b77f .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
.elementor-element-354b77f .elementor-icon {
  width: 52px !important; height: 52px !important; border-radius: 50% !important; padding: 0 !important;
  background: #f80000 !important; display: flex !important; align-items: center; justify-content: center; font-size: 20px !important;
}
.elementor-element-354b77f .elementor-icon i, .elementor-element-354b77f .elementor-icon svg { color: #fff !important; fill: #fff !important; }
.elementor-element-354b77f .elementor-icon-box-content { flex: 1; min-width: 0; }
.elementor-element-354b77f .elementor-icon-box-title { margin: 0 0 6px !important; line-height: 1.2 !important; }
.elementor-element-354b77f .elementor-icon-box-title a {
  font: 600 12px/1.2 "Work Sans", sans-serif !important; letter-spacing: .14em; text-transform: uppercase;
  color: #5d6b79 !important; text-decoration: none !important;
}
.elementor-element-354b77f .elementor-icon-box-description { margin: 0 !important; line-height: 1.15 !important; }
.elementor-element-354b77f .elementor-icon-box-description a {
  font: 600 28px/1.15 "Work Sans", sans-serif !important; letter-spacing: -.01em;
  color: #000422 !important; text-decoration: none !important; white-space: nowrap;
}
.elementor-element-354b77f .elementor-icon-box-description a:hover { color: #f80000 !important; }
@media (max-width: 767px) {
  .elementor-element-354b77f .elementor-icon-box-wrapper { padding: 16px 18px; gap: 14px; }
  .elementor-element-354b77f .elementor-icon-box-description a { font-size: 24px !important; }
}


/* ---- 11. Footer ---------------------------------------------------------- */
/* "Need A Free Estimate?" band: solid navy everywhere (the clear top strip looked like a glitch) */
.elementor-927 .elementor-element.elementor-element-43f10d9:not(.elementor-motion-effects-element-type-background) {
  background-image: none !important; background-color: #00052f !important;
}
@media (min-width: 1025px) {
  .elementor-927 .elementor-element.elementor-element-43f10d9 { padding-top: 112px !important; padding-bottom: 112px !important; }
}
.elementor-element-c6f01fb p {
  margin: 0 !important; max-width: 560px; color: #d6dbeb !important; text-transform: none !important; letter-spacing: normal !important;
  font-family: Roboto, sans-serif !important; font-weight: 400 !important; font-size: 18px !important; line-height: 1.6 !important;
}
/* logo + company name */
.elementor-element-b214f0e a { display: inline-flex !important; align-items: center; gap: 12px; text-decoration: none !important; }
.elementor-element-b214f0e .hfe-site-logo-img { width: 34px !important; height: auto !important; max-width: none !important; }
.elementor-element-b214f0e .hfe-site-logo-container { line-height: 0; }
.cgg-wordmark--footer { color: #ffffff !important; font-size: 15px; line-height: 1.15; text-shadow: none !important; }
.cgg-wordmark--footer > span { display: block; }
.elementor-element-885046d p { color: #aab2cc !important; line-height: 1.6 !important; margin: 0 !important; max-width: 260px; }
/* contact lines: second line + clickable phone/email */
.cgg-sub { display: block; opacity: .75; margin-top: 2px; }
.elementor-element-234d136 a { color: inherit !important; text-decoration: none !important; }
.elementor-element-234d136 a:hover .elementor-icon-list-text,
.elementor-element-29c38cb a:hover .elementor-icon-list-text { color: #ffffff !important; }
.elementor-element-234d136 .elementor-icon-list-item { align-items: flex-start !important; }
.elementor-element-234d136 .elementor-icon-list-icon { margin-top: 4px; }
/* bottom bar */
.cgg-footer-bottom { background: #000422; border-top: 1px solid rgba(255, 255, 255, .08); }
.cgg-footer-bottom__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px;
  padding-top: 18px; padding-bottom: 18px; font: 400 14px/1.5 Roboto, sans-serif; color: #8f97b3; }
.cgg-footer-bottom a { color: #c9cfe0 !important; text-decoration: none !important; }
.cgg-footer-bottom a:hover { color: #ffffff !important; }
/* phones: shorter footer, two link lists side by side */
@media (max-width: 767px) {
  .elementor-927 .elementor-element.elementor-element-e2153a2 { padding: 44px 24px 24px !important; }
  .elementor-927 .elementor-element-e2153a2 > .elementor-container { flex-wrap: wrap !important; }
  .elementor-927 .elementor-element.elementor-element-20e9139,
  .elementor-927 .elementor-element.elementor-element-df1e615 { width: 100% !important; margin-bottom: 32px; }
  .elementor-927 .elementor-element.elementor-element-a671dc1,
  .elementor-927 .elementor-element.elementor-element-8ee3aec { width: 50% !important; }
  .elementor-927 .elementor-element-20e9139 .elementor-widget:not(:last-child) { margin-bottom: 14px !important; }
  .elementor-927 .elementor-element-e2153a2 .elementor-widget-wrap { margin-bottom: 0 !important; }       /* Elementor added 56-64px under each column */
  .elementor-927 .elementor-element.elementor-element-e991089 .elementor-column { width: 100% !important; } /* Quick Links: one list, not two cramped ones */
  .elementor-927 .elementor-element-e991089 .elementor-icon-list-items { margin-bottom: 0 !important; }
  .elementor-element-c6f01fb p { font-size: 16.5px !important; }
  .cgg-footer-bottom__row { justify-content: center; text-align: center; padding-bottom: 92px; }   /* room for the call button */
}
@media (max-width: 767px) {
  .elementor-927 .elementor-element-c47dabc .elementor-icon-list-items { margin-top: 3px !important; }
}
