.elementor-kit-13{--e-global-color-primary:#1A2A37;--e-global-color-secondary:#FAFAFA;--e-global-color-text:#212121;--e-global-color-accent:#F57A00;--e-global-color-0e3270d:#263142;--e-global-color-1449309:#FFFFFF;--e-global-color-guardian-teal:#007A70;--e-global-color-guardian-grey:#555759;--e-global-color-card:#FFFFFF;--e-global-color-muted:#F0F0F0;--e-global-color-border:#DFE1E2;--e-global-color-light-accent:#E6FFFC;--e-global-typography-primary-font-family:"Lato";--e-global-typography-primary-font-size:51.2px;--e-global-typography-primary-font-weight:900;--e-global-typography-primary-line-height:1em;--e-global-typography-secondary-font-family:"Lato";--e-global-typography-secondary-font-size:36px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.111em;--e-global-typography-text-font-family:"Lato";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Lato";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-line-height:1.4em;--e-global-typography-c1eb92e-font-family:"Lato";--e-global-typography-c1eb92e-font-size:14px;--e-global-typography-c1eb92e-font-weight:700;--e-global-typography-c1eb92e-text-transform:uppercase;--e-global-typography-c1eb92e-line-height:1.43em;--e-global-typography-c1eb92e-letter-spacing:0.7px;--e-global-typography-e638e75-font-family:"Lato";--e-global-typography-e638e75-font-size:20px;--e-global-typography-e638e75-font-weight:700;--e-global-typography-e638e75-line-height:1.4em;}.elementor-kit-13 button,.elementor-kit-13 input[type="button"],.elementor-kit-13 input[type="submit"],.elementor-kit-13 .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );color:var( --e-global-color-card );border-radius:6px 6px 6px 6px;padding:0.75em 2em 0.75em 2em;}.elementor-kit-13 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-13 button,.elementor-kit-13 input[type="button"],.elementor-kit-13 input[type="submit"],.elementor-kit-13 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-13 button,.elementor-kit-13 input[type="button"],.elementor-kit-13 input[type="submit"],.elementor-kit-13 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Guardian Polish CSS — added by Optic QA fixes */

/* Header BRB review badge spacing */
header .elementor-widget-google_reviews,
header [class*="brb"] { padding: 8px 16px !important; }

/* Hide secondary phone in footer */
[href*="14149667983"] { display: none !important; }

/* Body text width on blog posts */
.single-post .entry-content > p { max-width: 75ch; margin-left: auto; margin-right: auto; }

/* Header capitalization */
/* legacy rule removed — replaced by Phase 2 nav styling */

/* Service area map contrast — issue 3030, 3032 */
img[src*="service-area"], img[src*="Counties-Visual"] {
  filter: contrast(1.2) saturate(1.1);
}
.service-areas-map text { fill: #1E2A3E !important; font-weight: 700 !important; }

/* Header alignment fix — issue 2959 */
header .elementor-section .elementor-column { align-items: center !important; }
header .elementor-widget-wrap { align-items: center !important; }

/* Section spacing normalization — issues 3044, 3045, 3046 */
.elementor-section { margin-bottom: 30px; }
.elementor-widget { margin-bottom: 15px; }

/* Elementor gallery alignment — issue 3165 */
.single-post .elementor-image-gallery .gallery-item img,
.single-post .elementor-widget-image-gallery .gallery img,
.single-post figure.gallery-item img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
}

/* Blog grid layout — issues 2996, 2997, 2998, 2999 */
.elementor-posts .elementor-post {
  display: flex;
  flex-direction: column;
  min-height: 320px;
}
.elementor-posts .elementor-post__thumbnail__link {
  display: block;
  background: #f0f0f0;
  min-height: 180px;
}
.elementor-posts .elementor-post__thumbnail__link img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}
.elementor-pagination,
.page-links { word-spacing: 0.5em; }

/* Blog/archive card placeholder when post has no featured image: the thumbnail-link element is absent entirely in Elementor markup so target the post itself */
.elementor-posts-container .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
  content: 'GUARDIAN';
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #1E2A3E 0%, #2c3e50 100%);
  color: #FFA200;
  font-weight: bold;
  font-size: 24px;
  letter-spacing: 2px;
  min-height: 180px;
  width: 100%;
  margin-bottom: 16px;
  border-radius: 4px 4px 0 0;
}

/* Table styling and content max-width — issues 2883, 2884 */
.entry-content table, .elementor-widget-text-editor table {
  border-collapse: collapse;
  width: 100%;
  margin: 20px 0;
}
.entry-content table td, .entry-content table th,
.elementor-widget-text-editor table td, .elementor-widget-text-editor table th {
  border: 1px solid #ddd;
  padding: 12px;
  text-align: left;
}
.entry-content table th, .elementor-widget-text-editor table th {
  background: #1E2A3E;
  color: #fff;
}
/* Content width for readability */
.entry-content > p, .elementor-widget-text-editor p {
  max-width: 75ch;
}
/* Heading top margin — issue 2882 */
.entry-content > h1, .entry-content > h2, .entry-content > h3 {
  margin-top: 30px;
}

/* Hide Uncategorized category labels — issue 2872 */
.elementor-post__meta-data a[href*="/category/uncategorized/"],
.cat-item-1, .category-uncategorized-item { display: none !important; }

/* Hide defunct Google+ icons in BRB widgets — issue 3092 */
.brb-g-plus-icon, [class*="g-plus"], [class*="googleplus"] { display: none !important; }

/* Hero contrast — issue 3103 */
.elementor-section.hero h1, .elementor-section.hero h2,
[class*="hero"] h1, [class*="hero"] h2 {
  text-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
/* Empty/broken slider fallback — issues 3101, 3102 */
.elementor-widget-image-carousel:empty,
.swiper-slide:empty { display: none !important; }

/* === Guardian Phase 2 tokens — start === */

:root {
  --g-space-lg: 80px;
  --g-space-md: 64px;
  --g-space-sm: 32px;
  --g-radius: 8px;
  --g-btn-radius: 6px;
  --g-container-max: 1400px;
}

/* Button variants */
.elementor-widget-button.g-cta-primary .elementor-button {
  box-shadow: 0 10px 25px rgba(245,122,0,0.25);
  transition: background-color .2s ease, box-shadow .2s ease;
}
.elementor-widget-button.g-cta-primary .elementor-button:hover {
  box-shadow: 0 14px 30px rgba(245,122,0,0.35);
}
.elementor-widget-button.g-cta-outline .elementor-button {
  background: transparent !important;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,0.4) !important;
  box-shadow: none !important;
}
.elementor-widget-button.g-cta-outline .elementor-button:hover {
  background: rgba(255,255,255,0.1) !important;
}

/* Header layout — flex sizing enforcement */
.g-header-logo { flex: 0 0 auto !important; width: auto !important; }
.g-header-nav { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; }
.g-header-right { flex: 0 0 auto !important; width: auto !important; }
.g-header-mobile { flex: 0 0 auto !important; width: auto !important; }

/* Logo lockup: keep square 32x32, wordmark hugs content */
.g-logo-square {
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
}
.g-logo-wordmark { flex: 0 0 auto !important; width: auto !important; }

/* Footer logo square (orange) */
.g-footer-logo-square {
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
}
.g-footer-logo-words { flex: 0 0 auto !important; width: auto !important; }
.g-footer-logo-lockup { flex: 0 0 auto !important; width: fit-content !important; }

/* Logo link styling */
.g-header-logo a, .g-header-logo a:hover,
.g-footer-logo-lockup a, .g-footer-logo-lockup a:hover {
  text-decoration: none !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* County pills */
.g-county-pills .elementor-inline-item {
  background: rgba(255,255,255,0.1);
  padding: 4px 8px !important;
  border-radius: 4px;
  margin-right: 6px !important;
  margin-bottom: 6px !important;
  display: inline-block;
  line-height: 16px;
}
.g-county-pills .elementor-icon-list-text { color: rgba(255,255,255,0.85); }

/* Footer grid — use CSS grid explicitly */

@media (max-width: 1024px) {
  
}
@media (max-width: 767px) {
  
}
.g-footer-col {
  min-width: 0;
  width: 100% !important;
  flex: 1 1 auto !important;
  max-width: 100% !important;
}

/* Icon List items — icon-box inline align fix for phone in header */
.g-header-phone .elementor-icon-box-wrapper {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.g-header-phone .elementor-icon-box-icon { margin: 0 !important; flex: 0 0 auto; }
.g-header-phone .elementor-icon-box-content { flex: 0 0 auto; }
.g-header-phone .elementor-icon-box-title { margin: 0 !important; }

/* Nav submenu dropdown styling (Lovable-style clean dropdown) */
.g-header-nav .sub-menu,
.g-header-nav .elementor-nav-menu ul {
  background: #FFFFFF !important;
  border: 1px solid #DFE1E2 !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08) !important;
  padding: 8px !important;
  min-width: 240px !important;
}
/* First-level submenu (direct child of main nav): 8px gap below the top bar */
.g-header-nav .elementor-nav-menu > ul > li > .sub-menu {
  margin-top: 8px !important;
}
/* Nested (3rd-level) submenus: align top with parent row, open to the right */
.g-header-nav .sub-menu .sub-menu {
  top: 0 !important;
  left: 100% !important;
  margin-top: 0 !important;
  margin-left: 6px !important;
}
.g-header-nav .sub-menu a {
  color: #212121 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3px !important;
  padding: 10px 14px !important;
  border-radius: 4px !important;
  text-transform: none !important;
}
.g-header-nav .sub-menu a:hover {
  background: #FAFAFA !important;
  color: #F57A00 !important;
}

/* Phase 2: footer 4-col grid — target .e-con-inner because boxed wrapper holds the children */
.g-footer-grid { width: 100% !important; }
.g-footer-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 40px !important;
  width: 100% !important;
  max-width: 100% !important;
}
@media (max-width: 1024px) {
  .g-footer-grid > .e-con-inner { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px) {
  .g-footer-grid > .e-con-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
}

/* Section grid — 3/2/1 cols via .e-con-inner (same pattern as footer) */
.g-grid-row > .e-con-inner { width: 100% !important; max-width: 100% !important; }
.g-grid-3 > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}
.g-grid-2 > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
}
@media (max-width: 1024px) {
  .g-grid-3 > .e-con-inner, .g-grid-2 > .e-con-inner {
    grid-template-columns: 1fr !important;
  }
}

/* Step circle — true 48x48 */
.g-step-circle {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  border-radius: 50% !important;
  flex: 0 0 48px !important;
  margin: 0 auto !important;
}
.g-path-step { text-align: center; }

/* Hero form card max-width nicely */
.g-hero-form-card { max-width: 480px; width: 100%; }
.g-hero-left { flex: 1 1 460px !important; min-width: 0; }

/* Section grid column fill */
.g-grid-row > .e-con-inner > .e-con { min-width: 0; }

/* Phase 2: Logo lockup (HTML-widget anchor) */
.g-logo-lockup-link {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  text-decoration: none !important;
  color: inherit;
  border: 0 !important;
}
.g-logo-lockup-link:hover { opacity: 0.9; }
.g-logo-lockup-link .g-logo-square {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: #1A2A37;
  color: #FFFFFF;
  border-radius: 4px;
  font-family: "Lato", sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 28px;
  flex: 0 0 32px;
}
.g-logo-lockup-link .g-logo-words {
  display: inline-flex;
  flex-direction: column;
  line-height: 1;
}
.g-logo-lockup-link .g-logo-brand {
  font-family: "Lato", sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 20px;
  color: #212121;
  letter-spacing: -0.35px;
}
.g-logo-lockup-link .g-logo-eyebrow {
  font-family: "Lato", sans-serif;
  font-weight: 400;
  font-size: 10px;
  line-height: 12.5px;
  color: #545859;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* Phase 2: Gravity Forms submit button — match primary CTA (orange) */
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button[type="submit"],
.gform_wrapper button.gform_button,
.gform_wrapper input.gform_button {
  background-color: #F57A00 !important;
  background: #F57A00 !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 6px !important;
  padding: 12px 32px !important;
  font-family: "Lato", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  letter-spacing: 0.25px !important;
  text-transform: none !important;
  cursor: pointer;
  transition: background-color 0.2s ease;
  box-shadow: 0 10px 25px rgba(245,122,0,0.25);
  width: auto !important;
  min-width: 160px;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper button.gform_button:hover {
  background-color: #E07000 !important;
  background: #E07000 !important;
}

/* Phase 2: clean up 'Required' label styling in GF */
.gform_wrapper .gfield_required {
  color: #F57A00 !important;
  font-weight: 500 !important;
}
.gform_wrapper .gfield_label {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: #555759 !important;
  margin-bottom: 6px !important;
}
.gform_wrapper .ginput_container input {
  border: 1px solid #DFE1E2 !important;
  border-radius: 6px !important;
  padding: 10px 12px !important;
  font-size: 14px !important;
  line-height: 20px !important;
  color: #212121 !important;
  background: #FAFAFA !important;
}
.gform_wrapper .ginput_container input:focus {
  border-color: #F57A00 !important;
  outline: none !important;
  background: #FFFFFF !important;
}

/* Phase 2: services image on left gets proper fit */
.g-services-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  min-height: 360px;
}
.g-services-2col > .e-con-inner { align-items: stretch !important; }

/* Phase 2 feedback: hide GF labels (placeholder-only form), hide required indicator */
.g-hero-form-card .gform_wrapper .gfield_label { display: block !important; }
.g-hero-form-card .gform_wrapper .gfield_required { display: none !important; }
.g-hero-form-card .gform_wrapper .ginput_container_name .ginput_complex {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.g-hero-form-card .gform_wrapper .ginput_container_name .name_first,
.g-hero-form-card .gform_wrapper .ginput_container_name .name_last {
  width: 100% !important;
}
.g-hero-form-card .gform_wrapper input[type="text"],
.g-hero-form-card .gform_wrapper input[type="email"],
.g-hero-form-card .gform_wrapper input[type="tel"] {
  padding: 12px 14px !important;
  border: 1px solid #DFE1E2 !important;
  border-radius: 6px !important;
  background: #FFFFFF !important;
  font-size: 15px !important;
}
.g-hero-form-card .gform_wrapper input::placeholder {
  color: #9AA0A3 !important;
  opacity: 1;
}
.g-hero-form-card .gform_wrapper .gfield {
  margin-bottom: 12px !important;
}
.g-hero-form-card .gform_wrapper .gform_footer {
  padding-top: 8px !important;
  margin-top: 0 !important;
}
.g-hero-form-card .gform_wrapper .gform_footer input[type="submit"] {
  width: 100% !important;
  padding: 14px 32px !important;
  font-size: 15px !important;
}

/* Phase 2 feedback: Path step badge (small numbered circle above icon) */
.g-step-badge {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  border-radius: 50% !important;
  flex: 0 0 32px !important;
  margin: 0 auto 8px !important;
}
.g-path-step { text-align: center; }

/* Phase 2 feedback v2: hide ALL GF sub-labels (First/Last name etc.) */
.g-hero-form-card .gform_wrapper .gform-field-label,
.g-hero-form-card .gform_wrapper label.gform-field-label--type-sub,
.g-hero-form-card .gform_wrapper label[class*="gform-field-label"] {
  display: block !important;
}
.g-hero-form-card .gform_wrapper .ginput_container_name .name_first input,
.g-hero-form-card .gform_wrapper .ginput_container_name .name_last input {
  width: 100% !important;
  padding: 12px 14px !important;
}

/* Phase 2 feedback v3: Lucide SVG icons — color via currentColor */
.g-icon { line-height: 0; }
.g-icon-gray svg   { color: #545859 !important; stroke: currentColor !important; }
.g-icon-orange svg { color: #F57A00 !important; stroke: currentColor !important; }
.g-icon-navy svg   { color: #1A2A37 !important; stroke: currentColor !important; }
.g-icon-white svg  { color: #FFFFFF !important; stroke: currentColor !important; }
/* For solid-fill icons (quote) override fill too */
.g-icon-orange svg[data-fill="solid"] path { fill: currentColor !important; }

/* Round 5: card borders matching Lovable */
.g-section-problems .e-con-boxed > .e-con-inner > .e-con,
.g-section-financing .e-con-boxed > .e-con-inner > .e-con {
  border: 1px solid #DFE1E2 !important;
  border-radius: 12px;
}

/* Round 5: Path step badge — absolute positioned over icon container */
.g-path-step {
  position: relative !important;
}
.g-step-badge {
  position: absolute !important;
  top: -8px !important;
  right: -8px !important;
  margin: 0 !important;
  z-index: 2;
}
/* Badge text should be dark #212121 on orange, not white */
.g-step-badge span,
.g-step-badge .elementor-heading-title {
  color: #212121 !important;
}
/* Icon container in path step needs relative for badge to anchor to */
.g-path-icon {
  position: relative;
}

/* Round 6: Why Guardian cards left-align text */
.g-section-why .e-con .e-con {
  text-align: left !important;
}
.g-section-why .elementor-widget-heading,
.g-section-why .elementor-widget-text-editor {
  text-align: left !important;
}
.g-section-why .elementor-heading-title {
  text-align: left !important;
}
.g-section-why .elementor-widget-text-editor .elementor-widget-container {
  text-align: left !important;
}

/* Round 8: Tinted icon containers matching Lovable exactly */

/* Problems: 40x40 rounded-8 gray/10 */
.g-section-problems .g-icon {
  width: 40px !important;
  height: 40px !important;
  background: rgba(84, 88, 89, 0.1) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

/* Why Guardian: 48x48 rounded-8 orange/15 */
.g-section-why .g-icon {
  width: 48px !important;
  height: 48px !important;
  background: rgba(245, 122, 0, 0.15) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  margin-bottom: 20px !important;
}

/* Your Path: 80x80 circle navy/10 */
.g-section-path .g-icon.g-path-icon {
  width: 80px !important;
  height: 80px !important;
  background: rgba(26, 42, 55, 0.1) !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

/* Financing: 48x48 rounded-8 navy/10 */
.g-section-financing .g-icon {
  width: 48px !important;
  height: 48px !important;
  background: rgba(26, 42, 55, 0.1) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  margin: 0 auto 16px !important;
}

/* No Sales Guy: 64x64 circle orange/10 */
.g-section-nosales .g-icon {
  width: 64px !important;
  height: 64px !important;
  background: rgba(245, 122, 0, 0.1) !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  margin: 0 auto 24px !important;
}

/* Testimonial cards: border matching Lovable */
.g-section-testimonials .e-con-boxed > .e-con-inner > .e-con {
  border: 1px solid #DFE1E2 !important;
  border-radius: 12px;
}

/* Also center the "That's our job" text properly */
.g-section-problems .elementor-widget-text-editor .elementor-widget-container {
  text-align: center !important;
}

/* Round 10: Orange divider under Why Guardian H2 */
.g-section-why h2.elementor-heading-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: #F57A00;
  margin: 20px auto 0;
  border-radius: 2px;
}

/* Sitewide: fix Elementor Pro sticky header width overflow */
.elementor-sticky, .elementor-sticky--active {
  max-width: 100vw !important;
  width: 100% !important;
}


/* Fix: hide empty product carousel/gallery sections that show as voids */
.elementor-widget-image-carousel:empty,
.elementor-widget-image-gallery .elementor-image-gallery:empty,
.elementor-widget-portfolio:empty {
  display: none !important;
}
/* Fix: gallery image overlap prevention */
.elementor-image-gallery .gallery {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px;
}
.elementor-image-gallery .gallery-item {
  flex: 0 0 auto;
  max-width: 200px;
}
.elementor-image-gallery .gallery-item img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
/* Fix: blog/archive card equal heights */
.elementor-posts-container .elementor-post {
  display: flex;
  flex-direction: column;
}
.elementor-posts-container .elementor-post__text {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.elementor-posts-container .elementor-post .elementor-post__read-more__link {
  margin-top: auto;
}
/* Fix: hide 'Category: Uncategorized' title */
.archive .page-title:has(> .cat-title:contains('Uncategorized')) { display: none; }

.g-text-constrained { max-width: 75ch; }

/* BATCH FIX: sitewide text max-width for readability */
.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-text-editor p,
.entry-content > p,
.elementor-widget-theme-post-content p {
  max-width: 75ch;
}
/* Center the constrained text on pages that need it */
.elementor-widget-text-editor .elementor-widget-container {
  margin-left: auto;
  margin-right: auto;
}

/* BATCH FIX: link colors — override pink/red/magenta to brand orange */
.elementor a:not(.elementor-button):not(.elementor-item),
.entry-content a,
.elementor-widget-text-editor a {
  color: #F57A00 !important;
}
.elementor a:not(.elementor-button):not(.elementor-item):hover,
.entry-content a:hover {
  color: #E07000 !important;
}

/* BATCH FIX: ALL form submit buttons → orange (not just hero) */
.gform_wrapper input[type="submit"],
.gform_wrapper button[type="submit"],
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button {
  background-color: #F57A00 !important;
  background: #F57A00 !important;
  color: #FFFFFF !important;
  border: 0 !important;
  border-radius: 6px !important;
  font-family: "Lato", sans-serif !important;
  font-weight: 700 !important;
  cursor: pointer;
}
.gform_wrapper input[type="submit"]:hover,
.gform_wrapper button[type="submit"]:hover {
  background-color: #E07000 !important;
}

/* BATCH FIX: form checkbox/radio alignment */
.gform_wrapper .gfield_checkbox li,
.gform_wrapper .gfield_radio li {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}
.gform_wrapper .gfield_checkbox input,
.gform_wrapper .gfield_radio input {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0;
}

/* BATCH FIX: footer serving pills consistent spacing */
.g-county-pills .elementor-icon-list-items {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}

/* BATCH FIX: Before/After gallery consistent image heights */
.single-post .elementor-image-gallery .gallery {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
  gap: 12px !important;
}
.single-post .elementor-image-gallery .gallery-item {
  margin: 0 !important;
  width: 100% !important;
}
.single-post .elementor-image-gallery .gallery-item img {
  width: 100% !important;
  height: 200px !important;
  object-fit: contain !important;
  border-radius: 4px;
  background: #fff;
}

/* BATCH FIX: blog/archive card equal heights + read-more bottom */
.elementor-posts-container .elementor-post {
  display: flex !important;
  flex-direction: column !important;
  height: 100%;
}
.elementor-posts-container .elementor-post__text {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
.elementor-posts-container .elementor-post .elementor-post__read-more {
  margin-top: auto !important;
  padding-top: 12px;
}

/* BATCH FIX: pagination styling */
.elementor-pagination,
.page-links,
nav.navigation.pagination {
  display: flex !important;
  gap: 8px !important;
  justify-content: center !important;
  padding: 24px 0 !important;
}
.elementor-pagination .page-numbers,
.page-links a,
.page-links span {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 36px !important;
  height: 36px !important;
  padding: 4px 12px !important;
  border: 1px solid #DFE1E2 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: #212121 !important;
  text-decoration: none !important;
}
.elementor-pagination .page-numbers.current,
.page-links > span:not(.page-links-title) {
  background: #F57A00 !important;
  color: #FFFFFF !important;
  border-color: #F57A00 !important;
}

/* BATCH FIX: job description readability */
.entry-content ul, .entry-content ol {
  max-width: 75ch;
  padding-left: 24px;
}

/* BATCH FIX: hero sub-headline contrast boost on service pages */
.elementor-section .elementor-widget-text-editor p[style*="color: rgba"] {
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

/* === Guardian Phase 2 tokens — end === */

/* scan43: constrain about-page text blocks */
.about-text, .about-text p { max-width: 75ch; margin-left: auto; margin-right: auto; }


/* scan43: swiper slide uniform heights (image-carousel widget, issue 16398) */
.elementor-widget-image-carousel .swiper-slide-inner img,
.elementor-widget-image-carousel .swiper-slide img {
  width: 100% !important;
  height: 140px !important;
  object-fit: cover !important;
}


/* scan43: extend 75ch to .page-content blog posts */
.single-post .page-content,
.single-post .page-content p,
.single-post .site-main > p,
.single-post .site-main {
  max-width: 75ch;
  margin-left: auto;
  margin-right: auto;
}
/* Allow gallery/comparison sections inside posts to expand */
.single-post .page-content [style*="flex-wrap"],
.single-post .page-content > div[style*="display: flex"] {
  max-width: 1200px !important;
  margin-left: auto;
  margin-right: auto;
}




/* scan43: page-content link color */
.page-content a:not(.elementor-button):not([class*="btn"]),
.single .page-content a,
.page .page-content a {
  color: #F57A00;
  text-decoration: underline;
}
.page-content a:hover { color: #e56a00; }


/* scan53: fix GUARDIAN placeholder for archive cards without thumbnails */
.elementor-post:not(:has(.elementor-post__thumbnail__link)) .elementor-post__text::before,
.elementor-post:not(:has(img.attachment-post-thumbnail)) .elementor-post__text::before {
    content: "GUARDIAN";
    display: flex;
    align-items: center;
    justify-content: center;
    color: #F57A00;
    font-weight: 900;
    letter-spacing: 2px;
    font-size: 16px;
    height: 100px;
    margin: -20px -20px 16px -20px;
    background: linear-gradient(135deg, #1A2A37 0%, #2a3f52 100%);
    border-radius: 4px 4px 0 0;
}


/* scan58: mobile header overflow fix + body overflow-x hidden */
/* Prevent sitewide horizontal scroll on mobile — header logo + hamburger overflow 305px viewport otherwise */
html, body { overflow-x: hidden; max-width: 100vw; }

/* Shrink logo lockup on narrow viewports */
@media (max-width: 480px) {
  .g-logo-brand { font-size: 12px !important; letter-spacing: 0.5px !important; }
  .g-logo-eyebrow { font-size: 9px !important; }
  .g-logo-square { width: 28px !important; height: 28px !important; font-size: 15px !important; }
  .g-logo-lockup-link { gap: 6px !important; }
  .g-header-mobile .elementor-menu-toggle { padding: 6px !important; }
  .g-header-mobile { flex-shrink: 1 !important; min-width: 0 !important; }
  .g-header-logo { flex-shrink: 1 !important; min-width: 0 !important; }
}
@media (max-width: 360px) {
  .g-logo-eyebrow { display: none !important; }
  .g-logo-brand { font-size: 13px !important; }
  header.elementor-location-header .e-con-inner { padding-left: 8px !important; padding-right: 8px !important; gap: 8px !important; }
}


/* scan57: mobile major-issue fixes (2026-04-17) */

/* --- Critical: /free-resources/ legacy tables mobile overflow --- */
/* Tables are legacy 24-col HTML — let user scroll them horizontally on mobile instead of squashing text to 9px */
@media (max-width: 767px) {
  .page-id-309 .page-content {
    overflow-x: auto !important;
  }
  .page-id-309 .page-content table {
    width: auto !important;
    min-width: 100% !important;
    font-size: 13px !important;
  }
  .page-id-309 .page-content table td,
  .page-id-309 .page-content table th,
  .page-id-309 .page-content table a,
  .page-id-309 .page-content table span,
  .page-id-309 .page-content table p {
    font-size: 13px !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }
  .page-id-309 .page-content table td,
  .page-id-309 .page-content table th {
    padding: 4px 6px !important;
    min-width: 60px !important;
  }
}

/* underline rule removed — Elementor specificity overrides it, and clone does not underline either */

/* --- Major: /infrared-surveys/, /free-resources/ body text <14px --- */
@media (max-width: 767px) {
  .page-id-309 .page-content,
  .page-id-309 .page-content p,
  .page-id-309 .page-content li {
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
  /* infrared-surveys bulleted lists */
  .elementor-widget-text-editor ul li,
  .elementor-widget-text-editor ol li {
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
}

/* --- Major: Recent Projects tap targets (milwaukee-siding pages etc) --- */
@media (max-width: 767px) {
  .elementor-widget-posts .elementor-post__thumbnail__link,
  .elementor-widget-loop-carousel .elementor-post__thumbnail__link,
  .elementor-widget-posts .elementor-post__title a,
  .elementor-widget-loop-carousel .elementor-post__title a {
    min-height: 44px !important;
    display: block !important;
  }
  .elementor-widget-posts .elementor-post__title,
  .elementor-widget-loop-carousel .elementor-post__title {
    padding: 8px 0 !important;
  }
}

/* --- /sitemap.html table layout horizontal overflow on mobile --- */
@media (max-width: 767px) {
  .page-template-sitemap table,
  body.page[class*="sitemap"] table {
    display: block !important;
    overflow-x: auto !important;
    width: 100% !important;
  }
  .page-template-sitemap .entry-content,
  body.page[class*="sitemap"] .entry-content {
    overflow-x: auto !important;
  }
}


/* scan57: swiper pagination/arrow hit-area on mobile (WCAG tap target ≥24px) */
@media (max-width: 767px) {
  .swiper-pagination-bullet {
    padding: 10px !important;
    background-clip: content-box !important;
    box-sizing: content-box !important;
    margin: 0 2px !important;
  }
  .swiper-button-prev,
  .swiper-button-next {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}


/* scan57: footer SERVICES link tap-target spacing on mobile */
@media (max-width: 767px) {
  footer .elementor-icon-list-items .elementor-icon-list-item {
    min-height: 40px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
  footer .elementor-icon-list-items .elementor-icon-list-item a {
    min-height: 32px !important;
    display: flex !important;
    align-items: center !important;
  }
}


/* Eric 4-17 review: sitewide blog post 60px top/bottom padding */
body.single-post .page-content,
body.single-post article.post .entry-content {
  padding-top: 60px !important;
  padding-bottom: 60px !important;
}


/* Eric 4-17: commercial pages mobile — center hero CTA + style Call Today as button */
@media (max-width: 767px) {
  /* Center the "Get a Free Diagnosis" CTA on commercial pages */
  .page-id-139 .elementor-element-43b011b5,
  .page-id-134 .elementor-element-460e6d0,
  .page-id-139 .elementor-element-43b011b5 .elementor-widget-container,
  .page-id-134 .elementor-element-460e6d0 .elementor-widget-container {
    text-align: center !important;
  }
  .page-id-139 .elementor-element-43b011b5 .elementor-button-wrapper,
  .page-id-134 .elementor-element-460e6d0 .elementor-button-wrapper {
    text-align: center !important;
  }
  /* Style "Call Today: (414) 226-5619" heading as a button on mobile */
  .page-id-139 .elementor-element-428176f1 .elementor-heading-title,
  .page-id-134 .elementor-element-59f66d4 .elementor-heading-title {
    display: inline-block !important;
    background: #F57A00 !important;
    color: #fff !important;
    padding: 0.75em 2em !important;
    border-radius: 6px !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    text-align: center !important;
    text-shadow: none !important;
    margin: 0 auto !important;
  }
  .page-id-139 .elementor-element-428176f1 .elementor-heading-title a,
  .page-id-134 .elementor-element-59f66d4 .elementor-heading-title a {
    color: #fff !important;
    text-decoration: none !important;
  }
  .page-id-139 .elementor-element-428176f1,
  .page-id-134 .elementor-element-59f66d4,
  .page-id-139 .elementor-element-428176f1 .elementor-widget-container,
  .page-id-134 .elementor-element-59f66d4 .elementor-widget-container {
    text-align: center !important;
  }
}


/* Eric 4-17 homepage review: centering + CTA outline + call-btn number */
/* Center the "That's our job." text inside Problems section (widget id 5084512) */
.elementor-element-5084512,
.elementor-element-5084512 .elementor-widget-container,
.elementor-element-5084512 p {
  text-align: center !important;
}

/* Center WHY GUARDIAN + "See why over 30,000 homeowners..." headings */
.elementor-element-ceb8d1a .elementor-heading-title,
.elementor-element-51b86ff .elementor-heading-title,
.elementor-element-ceb8d1a,
.elementor-element-51b86ff {
  text-align: center !important;
}

/* Remove grey outline on "See What You Qualify For" car-payment CTA (widget id dad66bc) */
.elementor-element-dad66bc .elementor-button,
.elementor-element-dad66bc a.elementor-button {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}
.elementor-element-dad66bc .elementor-button:hover,
.elementor-element-dad66bc a.elementor-button:hover {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}


/* Eric 4-17: /reviews/ page — center the global GMB widget */
.page-id-117 .elementor-element-e7327e0,
.page-id-117 .elementor-element-e7327e0 > .elementor-widget-container,
.page-id-117 .elementor-widget-global.elementor-element-e7327e0 .elementor-image-box-wrapper {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  justify-content: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}


/* scan58: Elementor slides widget — override 50% content_max_width on mobile (v2: dropped width, bumped specificity) */
@media (max-width: 767px) {
  body .elementor-widget-slides .swiper-slide-inner .swiper-slide-contents,
  body .elementor-widget-slides .swiper-slide .swiper-slide-contents,
  .elementor-widget.elementor-widget-slides .swiper-slide-contents {
    max-width: 100% !important;
  }
  body .elementor-widget-slides .swiper-slide-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* scan58: asphalt-roofing Recognized Leaders gallery — fix logo overlap
   (5 manufacturer logos in a 3-col image-gallery were overlapping due to mismatched aspect ratios) */
.page-id-160 .elementor-element-57f49e5 .elementor-image-gallery .gallery-item,
.page-id-160 .elementor-element-57f49e5 .gallery-item {
  padding: 12px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 120px !important;
}
.page-id-160 .elementor-element-57f49e5 .elementor-image-gallery .gallery-item img,
.page-id-160 .elementor-element-57f49e5 .gallery-item img {
  max-height: 96px !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
  height: auto !important;
}

/* Same pattern for any other page using Recognized Leaders image-gallery */
.elementor-image-gallery .gallery.gallery-columns-3 .gallery-item img {
  max-height: 96px !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

/* Elementor post full-width override (2026-04-22) */
.single-post .site-main:has(.elementor),
.single-post .page-content:has(.elementor) {
  max-width: 1200px !important;
}
.single-post .site-main:has(.elementor) > p,
.single-post .page-content:has(.elementor) > p,
.single-post .page-content:has(.elementor) p {
  max-width: none !important;
}

/* Before/After story carousels — force natural aspect heights at 960px container width.
   Elementor image-carousel's default 140px height is fine for small thumb sliders but
   not for feature photography. Heights mirror clone's per-gallery aspect ratios. */
.g-ba-before .swiper-slide-inner img,
.g-ba-before .swiper-slide img { height: 640px !important; object-fit: cover; }
.g-ba-damage .swiper-slide-inner img,
.g-ba-damage .swiper-slide img { height: 430px !important; object-fit: cover; }
.g-ba-after .swiper-slide-inner img,
.g-ba-after .swiper-slide img { height: 600px !important; object-fit: cover; }
@media (max-width: 767px) {
  .g-ba-before .swiper-slide img,
  .g-ba-before .swiper-slide-inner img { height: 260px !important; }
  .g-ba-damage .swiper-slide img,
  .g-ba-damage .swiper-slide-inner img { height: 200px !important; }
  .g-ba-after .swiper-slide img,
  .g-ba-after .swiper-slide-inner img { height: 240px !important; }
}

/* Text-editor auto-center for 75ch-capped content (2026-04-23) */
body.page .elementor-widget-text-editor .elementor-widget-container,
body.page .elementor-widget-text-editor p {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Image-gallery 4-column flex fix (2026-04-23) */
.elementor-widget-image-gallery .gallery {
  gap: 12px !important;
}
.elementor-widget-image-gallery .gallery-columns-4 .gallery-item {
  width: calc(25% - 9px) !important;
}
.elementor-widget-image-gallery .gallery-item img {
  width: 100% !important;
  height: auto !important;
}


/* Round 3: remove grey outline from Financing CTA per Eric 2026-04-24 */
.g-section-financing .e-con-boxed > .e-con-inner > .e-con.g-no-outline,
.g-section-financing .g-no-outline,
.g-no-outline {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* R3-LOVABLE-DESIGNS */
/* Kicker */
.g-kicker { letter-spacing: 1.4px !important; }

/* Grids */
.g-grid-2 > .e-con-inner { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.g-grid-3 > .e-con-inner { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1024px) {
  .g-grid-3 > .e-con-inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .g-grid-2 > .e-con-inner, .g-grid-3 > .e-con-inner { grid-template-columns: 1fr; }
}

/* Roofing hero */
.g-roofing-hero { min-height: 85vh; }
.g-hero-inner { align-items: center; }
.g-hero-left { flex: 1 1 520px; }
.g-hero-form-card { flex: 0 1 420px; box-shadow: 0 20px 40px rgba(0,0,0,0.25); }
@media (max-width: 900px) {
  .g-roofing-hero .g-hero-inner { flex-direction: column !important; gap: 32px; }
  .g-hero-left, .g-hero-form-card { flex: 1 1 100%; width: 100%; }
}

/* Cards */
.g-card, .g-feature-card, .g-testimonial-card { transition: border-color .2s, box-shadow .2s; }
.g-card:hover, .g-feature-card:hover, .g-testimonial-card:hover { border-color: rgba(245,122,0,0.35) !important; box-shadow: 0 8px 24px rgba(26,42,55,0.08); }

/* Financing CTA banner */
.g-financing-cta { border-radius: 12px; margin-top: 48px !important; }

/* Diagnosis hero */
.g-diag-hero-inner { gap: 48px; }
@media (max-width: 900px) {
  .g-diag-hero-inner { flex-direction: column !important; }
}
.g-diag-form-card { flex: 0 1 440px; box-shadow: 0 20px 40px rgba(0,0,0,0.20); }

/* Project cards in Trust section */
.g-project-card { width: 100%; height: 100%; }
.g-project-card > div { height: 100%; }

/* Case-study archive cards */
.g-casestudy-grid article {
  background: #fff; border: 1px solid #dfe1e2; border-radius: 12px;
  overflow: hidden; display: flex; flex-direction: column; height: 100%;
}
.g-casestudy-grid article a { color: #F57A00; font-weight: 700; letter-spacing: .5px; text-decoration: none; }
.g-casestudy-grid article .elementor-post__thumbnail { aspect-ratio: 16/10; overflow: hidden; }
.g-casestudy-grid article .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; }

/* AIRO post body styling */
.g-airo-prose h2 { margin: 32px 0 16px; font-weight: 800; }
.g-airo-prose h3 { margin: 24px 0 12px; font-weight: 700; }
.g-airo-prose blockquote { border-left: 3px solid #F57A00; padding: 8px 20px; margin: 24px 0; font-style: italic; }
.g-airo-prose ul, .g-airo-prose ol { padding-left: 24px; margin: 16px 0; }
.g-airo-prose ul li, .g-airo-prose ol li { margin: 8px 0; }

/* Hero form input */
.g-hero-form-card input[type="text"] { width: 100%; }

/* R3-HERO-FORM-LABELS */
/* Show labels inside hero form cards */
.g-hero-form-card .gfield label,
.g-hero-form-card .gfield_label {
  display: block !important;
  visibility: visible !important;
  color: #212121 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.g-hero-form-card .gfield { margin-bottom: 14px !important; }
.g-hero-form-card .gfield_visibility_hidden { display: none !important; }
.g-hero-form-card input[type="text"],
.g-hero-form-card input[type="email"],
.g-hero-form-card input[type="tel"],
.g-hero-form-card input[type="number"],
.g-hero-form-card textarea,
.g-hero-form-card select {
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid #dfe1e2 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  background: #fff !important;
}
.g-hero-form-card .gform_footer button,
.g-hero-form-card .gform_page_footer button,
.g-hero-form-card .gform_next_button,
.g-hero-form-card .gform_button {
  background: #F57A00 !important;
  color: #fff !important;
  padding: 12px 28px !important;
  border: none !important;
  border-radius: 6px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: .3px !important;
  cursor: pointer !important;
}
.g-hero-form-card .gform_previous_button {
  background: transparent !important;
  color: #555 !important;
  border: 1px solid #dfe1e2 !important;
}
/* Same treatment for diag form */
.g-diag-form-card .gfield label,
.g-diag-form-card .gfield_label { display: block !important; visibility: visible !important; color: #212121 !important; font-size: 13px !important; font-weight: 600 !important; margin-bottom: 6px !important; }
.g-diag-form-card input, .g-diag-form-card textarea, .g-diag-form-card select { width:100%!important; padding:10px 12px!important; border:1px solid #dfe1e2!important; border-radius:6px!important; font-size:14px!important; }
.g-diag-form-card .gform_button, .g-diag-form-card .gform_next_button { background:#F57A00!important; color:#fff!important; padding:14px 28px!important; border:none!important; border-radius:6px!important; font-weight:700!important; font-size:15px!important; width:100%!important; }

/* R3-LOVABLE-HERO-FORM */
.g-hero-form-card-wrap {
  flex: 0 1 460px;
}
.g-lovable-form-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 24px 48px rgba(0,0,0,0.28);
  width: 100%;
  max-width: 460px;
  margin-left: auto;
}
.g-lovable-form-card .g-tabs {
  display: flex;
  width: 100%;
  background: #f3f4f6;
}
.g-lovable-form-card .g-tab {
  flex: 1;
  padding: 14px 16px;
  border: none;
  background: transparent;
  color: #6b7280;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.6px;
  cursor: pointer;
  transition: background .15s, color .15s;
  font-family: inherit;
}
.g-lovable-form-card .g-tab.active {
  background: #F57A00;
  color: #fff;
}
.g-lovable-form-card .g-tab:not(.active):hover { color: #212121; }
.g-lovable-form-card .g-tab-body {
  padding: 28px 24px 24px;
}
.g-lovable-form-card .g-card-h {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
  color: #212121;
  font-family: Lato, sans-serif;
}
.g-lovable-form-card .g-card-sub {
  margin: 0 0 20px;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.5;
}
.g-lovable-form-card .g-instant-form { margin: 0; }
.g-lovable-form-card .g-input-with-icon {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 14px;
}
.g-lovable-form-card .g-input-with-icon svg {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7280;
  pointer-events: none;
}
.g-lovable-form-card .g-input-with-icon input {
  width: 100%;
  padding: 12px 14px 12px 42px;
  border: 1px solid #dfe1e2;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  font-family: inherit;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.g-lovable-form-card .g-input-with-icon input:focus {
  border-color: #F57A00;
  box-shadow: 0 0 0 3px rgba(245,122,0,0.12);
}
.g-lovable-form-card .g-estimate-btn {
  display: block;
  width: 100%;
  padding: 14px 20px;
  border: none;
  border-radius: 8px;
  background: #F57A00;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: background .15s, transform .05s;
  font-family: inherit;
}
.g-lovable-form-card .g-estimate-btn:hover { background: #d86b00; }
.g-lovable-form-card .g-estimate-btn:active { transform: translateY(1px); }
.g-lovable-form-card .g-dots {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-top: 18px;
}
.g-lovable-form-card .g-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #dfe1e2;
  display: inline-block;
}
.g-lovable-form-card .g-dot.active { background: #F57A00; }

@media (max-width: 900px) {
  .g-roofing-hero .g-hero-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 32px;
  }
  .g-hero-left, .g-hero-form-card-wrap {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .g-lovable-form-card { max-width: 100%; margin: 0 auto; }
}

/* JS-less tab switch using sibling-state hack via :has not reliable cross-browser, so add JS via Footer template later if needed */

/* R3-LOVABLE-HERO-PANES */
.g-lovable-form-card .g-pane { display: none; padding: 28px 24px 24px; }
.g-lovable-form-card .g-pane.active { display: block; }
.g-lovable-form-card .gform_wrapper { margin-top: 8px; }
.g-lovable-form-card .gfield { margin-bottom: 12px !important; }
.g-lovable-form-card .gfield label,
.g-lovable-form-card .gfield_label,
.g-lovable-form-card .gform-field-label {
  display: block !important;
  visibility: visible !important;
  color: #212121 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-bottom: 4px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.g-lovable-form-card .gfield_visibility_hidden { display: none !important; }
.g-lovable-form-card input[type="text"],
.g-lovable-form-card input[type="email"],
.g-lovable-form-card input[type="tel"],
.g-lovable-form-card input[type="number"],
.g-lovable-form-card textarea,
.g-lovable-form-card select {
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid #dfe1e2 !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  background: #fff !important;
  font-family: inherit !important;
}
.g-lovable-form-card input:focus,
.g-lovable-form-card textarea:focus,
.g-lovable-form-card select:focus {
  border-color: #F57A00 !important;
  box-shadow: 0 0 0 3px rgba(245,122,0,0.12) !important;
  outline: none !important;
}
.g-lovable-form-card .gform_footer button,
.g-lovable-form-card .gform_page_footer button,
.g-lovable-form-card .gform_button,
.g-lovable-form-card .gform_next_button {
  width: 100% !important;
  padding: 14px 20px !important;
  border: none !important;
  border-radius: 8px !important;
  background: #F57A00 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.3px !important;
  cursor: pointer !important;
  margin-top: 8px !important;
}
.g-lovable-form-card .gform_previous_button {
  width: auto !important;
  background: transparent !important;
  color: #555 !important;
  border: 1px solid #dfe1e2 !important;
  margin-right: 8px !important;
}


/* === Guardian Lovable B1 prose typography (added 2026-04-27) === */
/* v2 — values pulled live from preview--guardian-home-improvements.lovable.app/airo */

/* Page background — the whole site uses #FAFAFA except dark CTA + hero sections */
body { background-color: #FAFAFA !important; }

/* B1 page wrapper — light background, no navy hero, flat content layout */
.g-page-hero {
  background: #FAFAFA !important;
  padding-top: 64px !important;
  padding-bottom: 24px !important;
}
.g-page-hero > .e-con-inner {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

/* Kicker (e.g. "GUARDIAN" or "AIRO" small uppercase orange label) */
.g-page-hero p.elementor-heading-title,
.g-page-hero .elementor-widget-heading p.elementor-heading-title,
.g-airo-prose p.elementor-heading-title:first-child {
  font-family: "Lato", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  color: #F57A00 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  margin: 0 0 12px !important;
  text-align: left !important;
}

/* Hero H1 — dark on light, big bold */
.g-page-hero h1.elementor-heading-title {
  font-family: "Lato", sans-serif !important;
  font-size: 48px !important;
  font-weight: 900 !important;
  line-height: 1.0 !important;
  color: #212121 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  margin: 0 0 16px !important;
}
@media (max-width: 767px) {
  .g-page-hero h1.elementor-heading-title { font-size: 36px !important; line-height: 1.05 !important; }
}

/* Byline — short text-editor right after the H1 in the hero */
.g-page-hero .elementor-widget-text-editor,
.g-page-hero .elementor-widget-text-editor p {
  font-family: "Lato", sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 20px !important;
  color: #545859 !important;
  text-align: left !important;
  margin: 0 !important;
}

/* Boxed B1 / AIRO body container */
.g-page-content.g-airo-prose,
.g-airo-prose {
  background: #FAFAFA !important;
}
.g-page-content.g-airo-prose > .e-con-inner,
.g-airo-prose > .e-con-inner {
  max-width: 720px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-top: 24px !important;
  padding-bottom: 80px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

/* Force every text-editor inside g-airo-prose to use Lato body sizing */
.g-airo-prose .elementor-widget-text-editor,
.g-airo-prose .elementor-widget-text-editor .elementor-widget-container,
.g-airo-prose .elementor-widget-text-editor p {
  font-family: "Lato", sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.625 !important;
  color: #545859;
  text-align: left;
  letter-spacing: 0;
}
.g-airo-prose p {
  margin: 0 0 24px !important;
  color: #545859;
}
.g-airo-prose p:last-child { margin-bottom: 0 !important; }
.g-airo-prose strong { color: #212121; font-weight: 700; }
.g-airo-prose em { font-style: italic; color: #545859; }

/* Headings — dark on light, Lato, NO accent rule */
.g-airo-prose h1,
.g-airo-prose h2,
.g-airo-prose h3,
.g-airo-prose h4,
.g-airo-prose h5,
.g-airo-prose h6 {
  font-family: "Lato", sans-serif !important;
  color: #212121 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
}
.g-airo-prose h2 {
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 40px !important;
  margin: 56px 0 32px !important;
}
.g-airo-prose h3 {
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 36px !important;
  margin: 40px 0 16px !important;
}
.g-airo-prose h4 {
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 28px !important;
  margin: 32px 0 12px !important;
}
.g-airo-prose h5 {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 26px !important;
  margin: 24px 0 8px !important;
}
.g-airo-prose h6 {
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 20px !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  color: #F57A00 !important;
  margin: 24px 0 8px !important;
}
.g-airo-prose h2:first-child,
.g-airo-prose h3:first-child,
.g-airo-prose h4:first-child { margin-top: 0 !important; }

/* Inline links */
.g-airo-prose a {
  color: #F57A00 !important;
  text-decoration: none;
  font-weight: 600;
  border-bottom: 1px solid rgba(245,122,0,0.35);
  transition: color .15s ease, border-color .15s ease;
}
.g-airo-prose a:hover { color: #d76a00 !important; border-bottom-color: #F57A00; }

/* Button-like anchors */
.g-airo-prose a[href*="prelimquote"],
.g-airo-prose a[href*="free-diagnosis"],
.g-airo-prose a.button {
  display: inline-block;
  background: #F57A00;
  color: #FFFFFF !important;
  padding: 14px 28px;
  border-radius: 6px;
  font-weight: 700;
  font-family: "Lato", sans-serif;
  font-size: 15px;
  text-decoration: none !important;
  border: 0;
  letter-spacing: 0.3px;
  margin: 16px 0;
  border-bottom: 0 !important;
}
.g-airo-prose a[href*="prelimquote"]:hover,
.g-airo-prose a[href*="free-diagnosis"]:hover,
.g-airo-prose a.button:hover { background: #d76a00; color: #FFFFFF !important; }

/* Lists */
.g-airo-prose ul,
.g-airo-prose ol {
  font-family: "Lato", sans-serif !important;
  font-size: 18px;
  line-height: 32px;
  color: #545859;
  padding-left: 24px;
  margin: 8px 0 24px;
}
.g-airo-prose ul li,
.g-airo-prose ol li { margin: 12px 0; }
.g-airo-prose ul li::marker { color: #F57A00; }

/* Blockquote */
.g-airo-prose blockquote {
  border-left: 4px solid #F57A00;
  padding: 4px 18px;
  margin: 30px 0 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 32px !important;
  color: #212121 !important;
  font-style: italic;
}

/* Images — fit, rounded, never overflow */
.g-airo-prose img {
  max-width: 100% !important;
  height: auto !important;
  display: block;
  margin: 24px auto;
  border-radius: 8px;
}
.g-airo-prose p > img,
.g-airo-prose p:has(> img) { text-align: center; }
.g-airo-prose figure img { max-width: 100% !important; height: auto; border-radius: 8px; }
.g-airo-prose figcaption {
  font-family: "Lato", sans-serif;
  color: #545859;
  font-size: 13px;
  text-align: center;
  margin-top: 6px;
}

/* HR section breaks */
.g-airo-prose hr {
  border: none;
  border-top: 1px solid #E5E7EB;
  margin: 32px 0;
}

/* Final CTA dark navy section — match Lovable's */
.g-final-cta,
.g-section-slot.g-slot-1829 {
  background: #1A2A37 !important;
}

@media (max-width: 767px) {
  .g-airo-prose h2 { font-size: 24px !important; line-height: 32px !important; margin-top: 40px !important; margin-bottom: 24px !important; }
  .g-airo-prose h3 { font-size: 20px !important; line-height: 28px !important; }
  .g-airo-prose .elementor-widget-text-editor,
  .g-airo-prose .elementor-widget-text-editor p,
  .g-airo-prose ul, .g-airo-prose ol { font-size: 17px !important; line-height: 1.6 !important; }
}

/* === end Guardian Lovable B1 prose typography === */
/* g-rating-with-bbb (added 2026-04-27) */
.g-rating-with-bbb .elementor-widget-global,
.g-rating-with-bbb .elementor-widget-image { flex: 0 0 auto; margin: 0; }
.g-rating-with-bbb img { max-height: 102px; width: auto; }
@media (max-width:600px) { .g-rating-with-bbb { flex-direction: column !important; } }
/* end g-rating-with-bbb */
/* g-diag-form-card hide-required (added 2026-04-27) */
.g-diag-form-card .gfield_required,
.g-diag-form-card .gform_required_legend { display: none !important; }
.g-diag-form-card .gform_wrapper .gfield_label { font-size: 12px !important; font-weight: 600 !important; color: #212121 !important; text-transform: none !important; letter-spacing: 0 !important; }
.g-diag-form-card .gform_wrapper .gform_footer button.gform_button {
  width: 100% !important; padding: 14px 20px !important; border-radius: 8px !important; background: #F57A00 !important; color: #fff !important;
  font-family: 'Lato', sans-serif !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: 0.3px !important;
  border: 0 !important; cursor: pointer !important; transition: background-color .15s ease !important;
}
.g-diag-form-card .gform_wrapper .gform_footer button.gform_button:hover { background: #d76a00 !important; }
.g-diag-form-card .gfield--type-text input[type='text'] { padding-left: 40px !important; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="%23545859" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>') !important; background-repeat:no-repeat !important; background-position: 12px center !important; background-size: 18px !important; }
/* end g-diag-form-card hide-required */
/* g-diag-form-card hide-labels (added 2026-04-27) Talha removed the closing comment here to block the following css in order for it to work on ticket #56657891.....

.g-diag-form-card .gform_wrapper .gfield_label,
.g-diag-form-card .gform_wrapper .gform-field-label,
.g-diag-form-card .gform_wrapper .ginput_complex label,
.g-diag-form-card .gform_wrapper .name_first label,
.g-diag-form-card .gform_wrapper .name_last label,
.g-diag-form-card .gform_wrapper .gfield_label_before_complex,
.g-diag-form-card .gform_wrapper .gform_fields .gfield > label,
.g-diag-form-card .gform_wrapper .gfield > .gfield_label,
.g-diag-form-card .gform_wrapper legend.gfield_label { display: none !important; visibility: hidden !important; height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; }
.g-diag-form-card .gform_wrapper .ginput_complex.ginput_container_name { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; }
.g-diag-form-card .gform_wrapper .ginput_complex.ginput_container_name span { padding: 0 !important; margin: 0 !important; width: 100% !important; }
.g-diag-form-card .gform_wrapper .gfield input::placeholder, .g-diag-form-card .gform_wrapper .gfield textarea::placeholder { color: #6b7280 !important; opacity: 1 !important; font-family: 'Lato', sans-serif !important; }
/* end g-diag-form-card hide-labels */


/* Eric v4 Stack 3: kill white bg on GMB widget (Google Reviews global 1790) sitewide */
.elementor-widget-global.elementor-global-1790,
body .elementor-element.elementor-global-1790 {
    background-color: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
/* v5: GMB hero white text */
.g-hero-gmb-row .elementor-global-1790,
.g-hero-gmb-row .elementor-global-1790 *,
.g-hero-gmb-row .elementor-global-1790 .elementor-image-box-description,
.g-hero-gmb-row .elementor-global-1790 .elementor-image-box-content,
.g-hero-gmb-row .elementor-global-1790 .elementor-image-box-title { color: #FFFFFF !important; }

/* v5b: GMB hero white text — also when class is on the global widget itself */
.g-hero-gmb-row.elementor-element,
.g-hero-gmb-row.elementor-element *,
.g-hero-gmb-row .elementor-image-box-description,
.g-hero-gmb-row .elementor-image-box-title { color: #FFFFFF !important; }

/* v7: homepage hero 2/3 width (Eric v7, 2026-05-18) */
.g-hero-left.g-hero-left-66 { flex: 0 1 66% !important; max-width: 66%; }
@media (max-width: 1024px){ .g-hero-left.g-hero-left-66 { flex: 1 1 100% !important; max-width: 100%; } }

/* v8: homepage hero — text-editor flush-left (Eric v8: intro + serving line not aligned with H1/buttons) 2026-05-18 */
body.page-id-111 .g-hero-left .elementor-widget-text-editor .elementor-widget-container,
body.page-id-111 .g-hero-left .elementor-widget-text-editor p {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* Eric 2026-05-29 — GF select dropdown styled to match text inputs */
.gform_wrapper select.gfield_select,
.gform_wrapper select.medium {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='%23212121' d='M6 8L1.5 3.5h9z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 10px !important;
    padding: 10px 32px 10px 12px !important;
    background-color: #fff !important;
    border: 1px solid #ccc !important;
    border-radius: 4px !important;
    font-family: Lato, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: #212121 !important;
    width: 100% !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
}
.gform_wrapper select.gfield_select:focus,
.gform_wrapper select.medium:focus {
    outline: 2px solid #F57A00 !important;
    outline-offset: -1px !important;
}/* End custom CSS */