/*
Theme Name: Pesto Pest Control
Theme URI: https://pestopestcontrol.ca
Description: Custom child theme for Pesto Pest Control, built on Hello Elementor. Lightweight, Elementor-native, no page-builder bloat. Brand: Navy #0E2F48 / Red #FD2213 / Eco-green #2E9E44.
Author: Pesto
Template: hello-elementor
Version: 1.0.0
Text Domain: pesto-child
*/

/* Brand tokens only (variables — negligible weight, enforce consistency). No per-element CSS. */
:root{
  --pesto-navy:#0E2F48;
  --pesto-navy-800:#091F32;
  --pesto-red:#FD2213;
  --pesto-red-dark:#B22219;
  --pesto-green:#2E9E44;
  --pesto-green-dark:#1E7A34;
  --pesto-grey:#F2F4F7;
  --pesto-mid:#64707A;
  --pesto-text:#122028;
}

/* Fix: HFE Navigation Menu horizontal layout collapses to min-width in flex containers.
   Force single-line horizontal nav (third-party widget quirk, one global rule). */
.elementor-widget-navigation-menu{flex:0 0 auto!important;width:auto!important;max-width:none!important}
.elementor-widget-navigation-menu>.elementor-widget-container{width:auto!important}
.hfe-nav-menu.hfe-layout-horizontal{flex-wrap:nowrap!important;width:max-content!important;max-width:none!important}
.hfe-nav-menu.hfe-layout-horizontal .menu-item{white-space:nowrap;flex-shrink:0;flex-grow:0}

/* Header F: navy logo panel — angled right edge + tight width (matches design mockup) */
/* Navy logo panel: full-bleed to the LEFT edge, logo stays boxed-aligned, angled right edge */
.elementor-element-pestolgo{clip-path:polygon(0 0, 100% 0, calc(100% - 44px) 100%, 0 100%);flex:0 0 auto!important;max-width:none!important;width:calc(300px + (100vw - 1140px)/2)!important;margin-left:calc((1140px - 100vw)/2)!important;padding-left:calc((100vw - 1140px)/2 + 34px)!important}
/* header CTA buttons never wrap */
.elementor-widget-button .elementor-button{white-space:nowrap}
/* Footer CTA band: buttons size to content so the flex gap is real, not collapsed */
.elementor-element-pfgreen>.e-con-inner{gap:14px!important}
.elementor-element-pfgreen .elementor-widget-button{width:auto!important;max-width:none!important;flex:0 0 auto!important}
.elementor-element-pfgreen .elementor-widget-button .elementor-widget-container,
.elementor-element-pfgreen .elementor-button{margin:0!important}

/* Top bar: kill text-editor default paragraph margin + line-height so icons/text share one baseline */
.elementor-widget-text-editor p{margin:0}
.elementor-widget-text-editor,.elementor-widget-icon{line-height:1}
.elementor-widget-icon .elementor-icon{display:inline-flex;align-items:center}

/* Sticky main bar (top bar scrolls away, nav bar pins to top). Free-Elementor has no sticky, so JS toggles this class. */
/* Top bar: shrink each column to its content so space-between gives even gaps between the 4 items */
.elementor-element-pestotop>.e-con-inner>*{flex:0 0 auto!important;width:auto!important}
.elementor-element-pestotop .elementor-widget-text-editor{width:auto!important}
/* T1 top bar: faint vertical dividers between the 4 columns */
.elementor-element-pestotop>.e-con-inner>*:not(:first-child){border-left:1px solid rgba(255,255,255,.12);padding-left:26px}

.elementor-element-pestomain{transition:box-shadow .2s ease}
.elementor-element-pestomain.pesto-stuck{position:fixed;top:0;left:0;right:0;z-index:9999;box-shadow:0 3px 14px rgba(9,31,50,.14);transition:transform .28s ease,box-shadow .2s ease}
/* Mobile: reveal-on-scroll-up — the pinned header slides away on scroll down, returns on scroll up */
@media(max-width:880px){.elementor-element-pestomain.pesto-stuck.pesto-hide{transform:translateY(-100%)}}
/* Mobile sticky header: pin the whole HFE header (top bar is hidden on mobile, so only the main bar shows).
   position:sticky is bulletproof (no JS) — the JS-fixed approach is disabled on mobile to avoid conflict. */
@media(max-width:880px){
  #masthead{position:-webkit-sticky!important;position:sticky!important;top:0;z-index:9999;box-shadow:0 3px 14px rgba(9,31,50,.14);transition:transform .28s ease}
  #masthead .elementor-element-pestomain.pesto-stuck{position:static!important;box-shadow:none!important}
  /* reveal-on-scroll-up: hide the pinned header when scrolling down, slide back on scroll up */
  #masthead.mh-hide{transform:translateY(-100%)}
}

/* Service Area: stack the two columns full-width on mobile (pfarearow is e-con-full — no .e-con-inner, target direct children) */
@media(max-width:880px){.elementor-element-pfarearow{flex-wrap:wrap!important}.elementor-element-pfarearow>*{flex:0 0 100%!important;max-width:100%!important;width:100%!important}}

/* Reviews (M2) mobile: swipe carousel, card edge-to-edge with 18px inner padding */
@media(max-width:880px){
  .elementor-element-pfrev-out{padding-left:0!important;padding-right:0!important}
  .elementor-element-pfrev{padding:32px 18px 26px!important}
}

/* Why Pesto (M2) mobile: stack columns full-width, 2-col icon-top cards, tighter padding */
@media(max-width:880px){
  .elementor-element-pfcombo2-out{padding-left:0!important;padding-right:0!important}
  .elementor-element-pfwhy{padding:30px 18px 26px!important}
  .elementor-element-pfwhyrow{flex-wrap:wrap!important;gap:0!important;padding-left:0!important;padding-right:0!important}
  .elementor-element-pfwhyrow>*{flex:0 0 100%!important;max-width:100%!important;width:100%!important;padding-left:0!important;padding-right:0!important}
}

/* Full-Service (M2) mobile: stack columns full-width, tighter card padding */
@media(max-width:880px){
  .elementor-element-pfsv-out{padding-left:0!important;padding-right:0!important}
  .elementor-element-pfsv{padding:30px 18px 26px!important}
  .elementor-element-pfsvrow{flex-wrap:wrap!important;gap:0!important;padding-left:0!important;padding-right:0!important}
  .elementor-element-pfsvrow>*{flex:0 0 100%!important;max-width:100%!important;width:100%!important;padding-left:0!important;padding-right:0!important}
}

/* FAQ (M1) mobile: single column. Let section keep its natural 15px gutter so the
   side gap matches every other section (~25px). No full-bleed override here. */
@media(max-width:880px){
  .elementor-element-pffaq{padding:30px 18px 26px!important}
  .elementor-element-pffaqrow{flex-wrap:wrap!important;gap:0!important;padding-left:0!important;padding-right:0!important}
  .elementor-element-pffaqrow>*{flex:0 0 100%!important;max-width:100%!important;width:100%!important;padding-left:0!important;padding-right:0!important}
}

/* ============ MOBILE FOOTER (M3+): accordion + contact card + CTAs + newsletter ============ */
.pesto-mfooter{display:none}
@media(max-width:880px){
  /* hide the desktop footer sections (green CTA band, columns, legal bar) */
  .has-mfooter>.e-con{display:none!important}
  .pesto-mfooter{display:block;background:#0E2F48;color:#fff;font-family:'Hanken Grotesk',sans-serif}
  .pesto-mfooter .mf-top{padding:28px 20px 6px;text-align:center}
  .pesto-mfooter .mf-logo{height:34px;width:auto;margin:0 auto 12px;display:inline-block}
  .pesto-mfooter .mf-blurb{color:#9FB3C0;font-size:14px;line-height:1.6}
  .pesto-mfooter .mf-social{display:flex;justify-content:center;gap:10px;margin:16px 0 6px}
  .pesto-mfooter .mf-social a{display:inline-flex;width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.08);align-items:center;justify-content:center;color:#cfd9e1;text-decoration:none}
  .pesto-mfooter .mf-social a:hover{background:#FD2213;color:#fff}
  /* accordion */
  .pesto-mfooter .mf-item{border-top:1px solid rgba(255,255,255,.08)}
  .pesto-mfooter .mf-row{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:0;color:#fff;font-weight:700;font-size:15px;padding:16px 20px;cursor:pointer;font-family:'Hanken Grotesk',sans-serif}
  .pesto-mfooter .mf-row i{color:#9FB3C0;transition:.25s}
  .pesto-mfooter .mf-item.open .mf-row i{transform:rotate(180deg);color:#fff}
  .pesto-mfooter .mf-panel{max-height:0;overflow:hidden;transition:max-height .3s ease}
  .pesto-mfooter .mf-item.open .mf-panel{max-height:520px}
  .pesto-mfooter .mf-links{padding:0 20px 14px}
  .pesto-mfooter .mf-links a{display:block;color:#9FB3C0;font-size:14.5px;padding:8px 0;text-decoration:none}
  .pesto-mfooter .mf-links a:hover{color:#fff}
  /* contact card */
  .pesto-mfooter .mf-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;margin:18px 20px 6px;padding:18px}
  .pesto-mfooter .mf-card h4{color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}
  .pesto-mfooter .mf-nap{list-style:none;margin:0;padding:0}
  .pesto-mfooter .mf-nap li{display:flex;gap:10px;align-items:center;color:#9FB3C0;font-size:14.5px;margin-bottom:11px}
  .pesto-mfooter .mf-nap li i{color:#2E9E44;width:16px}
  /* CTA buttons */
  .pesto-mfooter .mf-acts{display:flex;flex-direction:column;gap:10px;margin:16px 20px 0}
  .pesto-mfooter .mf-btn{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;padding:14px;border-radius:10px;color:#fff;text-decoration:none}
  .pesto-mfooter .mf-btn.red{background:#FD2213}.pesto-mfooter .mf-btn.green{background:#25D366}
  .pesto-mfooter .mf-btn.ghost{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15)}
  /* newsletter */
  .pesto-mfooter .mf-newshead{color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:20px 20px 10px}
  .pesto-mfooter .mf-news{margin:0 20px 22px}
  .pesto-mfooter .mf-news form.fluent_form_2{max-width:none!important;width:100%}
  /* legal */
  .pesto-mfooter .mf-legal{border-top:1px solid rgba(255,255,255,.08);color:#7f909c;font-size:12.5px;text-align:center;padding:16px;line-height:1.8}
  .pesto-mfooter .mf-legal a{color:#9FB3C0;margin:0 6px;text-decoration:none}
}

/* ============ MOBILE HEADER (<=880px): hide top bar, collapse nav to hamburger ============ */
.pesto-mtoggle{display:none}
.pesto-mnav{display:none}   /* base: hide the JS-built mobile dropdown on all widths (shown only when open <=880) */
@media(max-width:880px){
  /* hide the whole top info bar on mobile */
  .elementor-element-pestotop{display:none!important}
  /* Variant A: navy bar + red underline, CENTERED logo, pill hamburger right */
  .elementor-element-pestomain{background-color:#0E2F48!important;border-bottom:2px solid #FD2213!important}
  /* logo: absolutely centered in the bar (bulletproof — flex centering fought leftover children) */
  .elementor-element-pestolgo{clip-path:none!important;background:transparent!important;width:auto!important;max-width:none!important;padding:0!important;margin:0!important;position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .elementor-element-pestolgo>.e-con-inner{display:flex!important;align-items:center!important;justify-content:center!important;height:auto!important;padding:0!important}
  .elementor-element-pestolgo .elementor-widget-image,.elementor-element-pestolgo .elementor-widget-image .elementor-widget-container{margin:0!important;line-height:0}
  .elementor-element-pestolgo img{width:auto!important;max-height:30px!important;display:block}
  /* hide desktop nav + inline CTA buttons */
  .elementor-element-pestomain .elementor-widget-navigation-menu,
  .elementor-element-pestomain .elementor-widget-button,
  .elementor-element-pestomain .elementor-widget-icon{display:none!important}
  /* center the logo across the bar; toggle floats to the right edge */
  /* the bar HAS an .e-con-inner flex row — force BOTH to 58px + center so the logo sits in the middle */
  .elementor-element-pestomain{padding-top:0!important;padding-bottom:0!important;position:relative!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:center!important;min-height:58px!important;height:58px!important}
  /* bar > boxed wrapper > .e-con-inner > logo — force the wrapper + inner to 58px + center (the logo panel stays 30px and centers) */
  .elementor-element-pestomain>.e-con-boxed{height:58px!important;min-height:58px!important;align-items:center!important;padding-top:0!important;padding-bottom:0!important}
  .elementor-element-pestomain>.e-con-boxed>.e-con-inner{height:58px!important;min-height:58px!important;align-items:center!important;justify-content:center!important;flex-wrap:nowrap!important;padding-top:0!important;padding-bottom:0!important}
  .pesto-mtoggle{display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:9px;cursor:pointer;padding:0;flex:0 0 auto;position:absolute;right:12px;top:50%;transform:translateY(-50%)}
  .pesto-mtoggle span{display:block;height:3px;width:24px;background:#fff;border-radius:2px;transition:.25s ease}
  .pesto-mtoggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .pesto-mtoggle.is-open span:nth-child(2){opacity:0}
  .pesto-mtoggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  /* slide-down panel */
  .pesto-mnav{display:none;background:#0E2F48;border-top:1px solid rgba(255,255,255,.10);padding:8px 16px 18px}
  /* fixed overlay under the bar so the menu opens at any scroll position (header goes position:fixed when sticky) */
  body.pesto-mnav-open .pesto-mnav{display:block;position:fixed;top:56px;left:0;right:0;z-index:9998;max-height:calc(100dvh - 56px);max-height:calc(100vh - 56px);overflow-y:auto;box-shadow:0 14px 26px rgba(9,31,50,.28)}
  body.pesto-mnav-open{overflow:hidden}
  .pesto-mnav ul{list-style:none;margin:0;padding:0}
  .pesto-mnav li a{display:block;color:#EAF2F8;font-weight:600;font-size:16px;padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.07);text-decoration:none;font-family:'Hanken Grotesk',sans-serif}
  .pesto-mnav li a:hover{color:#fff}
  .pesto-mcta{display:flex;flex-direction:column;gap:10px;margin-top:16px}
  .pesto-mcta a{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:9px;font-weight:700;font-size:15px;text-decoration:none;font-family:'Hanken Grotesk',sans-serif}
  .pesto-mcta .mc-call{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.15)}
  .pesto-mcta .mc-chat{background:#25D366;color:#fff}
  .pesto-mcta .mc-quote{background:#FD2213;color:#fff}
}

/* ============ FOOTER (Footer A / Variant 2) ============ */
/* Angled green CTA panel, full-bleed to the right viewport edge (mirror of header logo panel) */
.elementor-element-pfgreen{flex:1 1 auto!important;align-self:stretch!important;clip-path:polygon(60px 0,100% 0,100% 100%,0 100%);margin-right:calc((1140px - 100vw)/2)!important;padding-left:48px!important;padding-right:calc((100vw - 1140px)/2 + 24px)!important}
.elementor-element-pfcta .elementor-widget-button .elementor-button{white-space:nowrap}
/* 100vw includes the scrollbar: clip the bleed so it can't cause 8px horizontal scroll */
.elementor-element-pfcta{overflow:hidden}
/* Service-page hero: form card full-bleed (no L/R/bottom gaps) on mobile */
@media(max-width:880px){
  .elementor-element-pfshero,
  .elementor-element-pfshero .e-con-boxed,
  .elementor-element-pfshero .e-con-inner,
  .elementor-element-pfsherow,
  .elementor-element-pfsheror,
  .elementor-element-pfsheror .elementor-widget-container{padding-left:0!important;padding-right:0!important}
  .elementor-element-pfshero,
  .elementor-element-pfshero .e-con-boxed,
  .elementor-element-pfshero .e-con-inner,
  .elementor-element-pfsherow,
  .elementor-element-pfsheror,
  .elementor-element-pfsheror .elementor-widget-container{padding-bottom:0!important}
  .elementor-element-pfshero{padding-top:0!important}
  .elementor-element-pfsherow{gap:0!important}
  .elementor-element-pfsherol{padding:34px 18px 22px!important}
  .elementor-element-pfsheror .pf-hform{border-radius:18px 18px 0 0!important;box-shadow:0 -8px 30px -12px rgba(0,0,0,.4)!important}
  .elementor-element-pfstrustbar{padding-top:6px!important}
}
/* Service-page FAQ ask bar: stack + centre on mobile */
@media(max-width:880px){.elementor-element-pfaskbar{flex-direction:column!important;text-align:center;align-items:center!important}.elementor-element-pfaskbar>*{align-items:center!important}}
/* Kill default 10px top/bottom padding on the boxed inner wrapper so the green panel fills the band (no navy gap top/bottom) */
.elementor-element-pfcta>.e-con>.e-con-inner{padding-top:0!important;padding-bottom:0!important}
/* Footer columns: fixed left three, Contact grows (Elementor ignores % width on these containers) */
.elementor-element-pffootrow>.e-con-inner>:nth-child(1){flex:0 0 28%!important;max-width:28%}
.elementor-element-pffootrow>.e-con-inner>:nth-child(2){flex:0 0 15%!important;max-width:15%}
.elementor-element-pffootrow>.e-con-inner>:nth-child(3){flex:0 0 15%!important;max-width:15%}
.elementor-element-pffootrow>.e-con-inner>:nth-child(4){flex:1 1 auto!important;max-width:none}
/* Footer link lists */
.elementor-widget-text-editor ul.pf-links{list-style:none;margin:0;padding:0}
ul.pf-links li{margin-bottom:11px}
ul.pf-links a,ul.pf-nap a,.pf-legal a{color:#9FB3C0;text-decoration:none;transition:.2s}
ul.pf-links a:hover,ul.pf-nap a:hover,.pf-legal a:hover{color:#fff}
/* NAP list */
.elementor-widget-text-editor ul.pf-nap{list-style:none;margin:0;padding:0}
ul.pf-nap li{display:flex;gap:11px;align-items:flex-start;margin-bottom:13px;color:#9FB3C0;font-size:15px}
ul.pf-nap li i{color:#2E9E44;width:16px;margin-top:3px}
/* Social + legal */
.pf-social a{display:inline-flex;width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.08);align-items:center;justify-content:center;color:#cfd9e1;margin-right:10px;text-decoration:none;transition:.2s}
.pf-social a:hover{background:#FD2213;color:#fff}
.pf-legal a{margin-left:18px}
/* Newsletter: FluentForm styled as a compact inline pill with red submit */
.elementor-widget-shortcode form.fluent_form_2{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);border-radius:10px;overflow:hidden;max-width:380px}
.elementor-widget-shortcode form.fluent_form_2 fieldset{display:flex;align-items:stretch;border:0!important;margin:0!important;padding:0!important;min-width:0}
.elementor-widget-shortcode form.fluent_form_2 .pf-news-field{flex:1 1 auto;margin:0!important;min-width:0}
.elementor-widget-shortcode form.fluent_form_2 .pf-news-submit{flex:0 0 auto;margin:0!important;display:flex}
.elementor-widget-shortcode form.fluent_form_2 .ff-el-input--label{display:none!important}
.elementor-widget-shortcode form.fluent_form_2 .ff-el-input--content{margin:0!important}
.elementor-widget-shortcode form.fluent_form_2 input[type=email]{background:transparent!important;border:0!important;color:#fff!important;box-shadow:none!important;padding:13px 15px!important;height:100%!important;min-height:0!important;width:100%!important}
.elementor-widget-shortcode form.fluent_form_2 input[type=email]::placeholder{color:#7f909c}
.elementor-widget-shortcode form.fluent_form_2 .ff-btn-submit{background:#FD2213!important;border:0!important;border-radius:0!important;color:#fff!important;padding:0 20px!important;margin:0!important;height:100%;font-weight:700;font-family:'Hanken Grotesk',sans-serif;white-space:nowrap}
.elementor-widget-shortcode form.fluent_form_2 .ff-btn-submit:hover{background:#B22219!important}
.elementor-widget-shortcode .ff-message-success{color:#8fe3a0}

/* Trust bar: force the HTML widget to fill the boxed width (flex-column parent otherwise shrinks it to content) */
.elementor-widget-html:has(.ts-row){width:100%}
.elementor-widget-html:has(.ts-row)>.elementor-widget-container{width:100%}

/* ===== Global button hover interactivity (Elementor + custom HTML + form submits) ===== */
.elementor-button,.p6-btn,.cm6-btn,.wf3-btn,.ff-btn-submit,.pf-social a{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background-color .18s ease,color .18s ease!important}
.elementor-button:hover,.p6-btn:hover,.cm6-btn:hover,.ff-btn-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(9,31,50,.22)}
.elementor-button:active,.p6-btn:active,.cm6-btn:active,.ff-btn-submit:active{transform:translateY(0);box-shadow:0 4px 10px rgba(9,31,50,.18)}
/* solid red/green buttons deepen slightly on hover */
.p6-btn:hover,.cm6-btn:hover{filter:brightness(.94)}

/* Page body = light grey so boxed-card sides + gaps read as open grey space (not filled bands) */
body{background-color:#F2F4F7}

/* Hero: photographic background (technician spraying, garden) + navy left-fade scrim for legibility.
   Self-hosted stock photo (Pexels, free license). Client can swap spray-a.jpg for their own photo. */
.elementor-element-pfhero{background-image:linear-gradient(90deg,rgba(14,47,72,.95) 0%,rgba(14,47,72,.78) 42%,rgba(14,47,72,.38) 100%),url('/wp-content/themes/pesto-child/img/spray-a.jpg')!important;background-size:cover!important;background-position:center right!important}
@media(max-width:880px){.elementor-element-pfhero{background-image:linear-gradient(rgba(14,47,72,.92),rgba(14,47,72,.92)),url('/wp-content/themes/pesto-child/img/spray-a.jpg')!important}}
/* Hero split: left 60% content, right 36% form card (Elementor ignores % width here) */
.elementor-element-herorow>.e-con-inner{gap:70px!important}
.elementor-element-herorow>.e-con-inner>:nth-child(1){flex:0 0 50%!important;max-width:50%}
.elementor-element-herorow>.e-con-inner>:nth-child(2){flex:0 0 34%!important;max-width:34%}
@media(max-width:880px){
  .elementor-element-herorow>.e-con-inner>:nth-child(1),.elementor-element-herorow>.e-con-inner>:nth-child(2){flex:1 1 100%!important;max-width:100%!important;width:100%!important}
  .elementor-element-herorow>.e-con-inner{gap:0!important}
  /* form full-bleed: zero the hero section side padding, pad the content instead, form card edge-to-edge */
  .elementor-element-pfhero{padding-left:0!important;padding-right:0!important;padding-top:0!important;padding-bottom:0!important}
  .elementor-element-pfhero>.e-con-inner{padding-left:0!important;padding-right:0!important;max-width:none!important;width:100%!important}
  .elementor-element-pfhero>.e-con-boxed{padding:0!important;max-width:none!important}
  .elementor-element-pfhero>.e-con-boxed>.e-con-inner,.elementor-element-herorow,.elementor-element-herorow>.e-con-inner{padding-bottom:0!important}
  .elementor-element-herorow{padding-left:0!important;padding-right:0!important}
  .elementor-element-herorow>.e-con-inner>:nth-child(1){padding:38px 18px 22px!important}
  .elementor-element-herorow>.e-con-inner>:nth-child(2),
  .elementor-element-herorow>.e-con-inner>:nth-child(2)>.e-con-inner,
  .elementor-element-herocard>.e-con-inner{padding-left:0!important;padding-right:0!important}
  .elementor-element-herorow>.e-con-inner>:nth-child(2){padding-top:0!important;padding-bottom:0!important}
  .elementor-element-herocard{border-radius:0!important;box-shadow:none!important;margin:0!important;padding:22px 18px 24px!important}
}

/* Hero Free Quote form card (FluentForm 3) */
.elementor-element-herocard{box-shadow:0 30px 60px rgba(0,0,0,.30)}
.elementor-element-herocard .fluentform{margin:0}
.elementor-element-herocard .ff-el-group{margin-bottom:11px!important}
.elementor-element-herocard .ff-el-input--label{display:none!important}
.elementor-element-herocard form.fluent_form_3 input,.elementor-element-herocard form.fluent_form_3 select{width:100%!important;border:1px solid #E4E9EE!important;border-radius:10px!important;padding:13px 14px!important;font-size:14.5px!important;color:#122028!important;background:#fff!important;height:auto!important;min-height:0!important;box-shadow:none!important;font-family:'Hanken Grotesk',sans-serif}
.elementor-element-herocard .ff-el-group.ff-el-form-bottom,.elementor-element-herocard .ff_submit_btn_wrapper{margin:6px 0 0!important}
.elementor-element-herocard .ff-btn-submit{width:100%!important;background:#FD2213!important;color:#fff!important;border:0!important;border-radius:10px!important;padding:15px!important;font-weight:700!important;font-size:16px!important;font-family:'Hanken Grotesk',sans-serif}
.elementor-element-herocard .ff-btn-submit:hover{background:#B22219!important}
.elementor-element-herocard .ff-message-success{color:#2E9E44}

/* ============ FAQ (Variant 1) — premium accordion ============ */
#pfaqacc .elementor-accordion-item{background:#fff;border:1px solid #E4E9EE!important;border-radius:12px;margin-bottom:12px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
#pfaqacc .elementor-accordion-item:has(.elementor-active){box-shadow:0 10px 26px rgba(9,31,50,.10);border-color:transparent!important}
#pfaqacc .elementor-tab-title{border:0!important;padding:19px 22px!important;color:#0E2F48;display:flex;align-items:center;justify-content:space-between;gap:14px}
#pfaqacc .elementor-tab-title a,#pfaqacc .elementor-tab-title .elementor-accordion-title{color:#0E2F48!important;order:1}
#pfaqacc .elementor-accordion-icon{order:2;margin:0!important;width:30px;height:30px;border-radius:50%;background:#F2F4F7;display:flex;align-items:center;justify-content:center;font-size:12px;transition:.25s;color:#0E2F48}
#pfaqacc .elementor-tab-title.elementor-active .elementor-accordion-icon{background:#FD2213;color:#fff}
#pfaqacc .elementor-accordion-icon i{transition:.2s}
#pfaqacc .elementor-accordion-icon i:before{color:inherit}
#pfaqacc .elementor-tab-content{border:0!important;padding:0 22px 20px!important;color:#64707A;font-family:'Hanken Grotesk';font-size:15.5px;line-height:1.6}

/* Process (P5): navy gradient + soft dot texture + red corner glow */
.elementor-element-pfproc{background-color:transparent!important;background-image:linear-gradient(160deg,#0E2F48,#091F32)!important;position:relative;overflow:hidden}
.elementor-element-pfproc::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1.3px,transparent 1.3px);background-size:24px 24px;z-index:0;pointer-events:none}
.elementor-element-pfproc::after{content:"";position:absolute;top:-40%;right:-10%;width:60%;height:180%;background:radial-gradient(circle,rgba(253,34,19,.16),transparent 60%);z-index:0;pointer-events:none}
.elementor-element-pfproc>.e-con-inner,.elementor-element-pfproc>*{position:relative;z-index:1}

/* ============ Commercial (Variant 6) — two-tone panel; clip panels to rounded card ============ */
.elementor-element-pfcomm{overflow:hidden}

/* Combined Guarantee + Service Area: one card, panels clipped to rounded corners */
.elementor-element-pfcombo,.elementor-element-pfcombo2{overflow:hidden}
/* Guarantee band: angled darker panel bleeding from the left (behind the seal) */
.elementor-element-pfguar{position:relative;overflow:hidden}
.elementor-element-pfguar::before{content:"";position:absolute;top:0;left:0;height:100%;width:44%;background:rgba(0,0,0,.15);clip-path:polygon(0 0,80% 0,100% 100%,0 100%);z-index:0;pointer-events:none}
.elementor-element-pfguar>.e-con-inner,.elementor-element-pfguar>*{position:relative;z-index:1}

/* Mosquito band: green gradient + angled darker panel on the right */
.elementor-element-pfmosq{background-color:transparent!important;background-image:linear-gradient(120deg,#2E9E44,#1E7A34)!important;position:relative;overflow:hidden}
.elementor-element-pfmosq::after{content:"";position:absolute;top:0;right:0;height:100%;width:40%;background:rgba(0,0,0,.10);clip-path:polygon(20% 0,100% 0,100% 100%,0 100%);z-index:0;pointer-events:none}
.elementor-element-pfmosq>.e-con-inner,.elementor-element-pfmosq>*{position:relative;z-index:1}

/* Header CTA row: enforce gap between phone / Chat / Free Quote (container had no flex gap, buttons touched) */
.elementor-18 .elementor-element.elementor-element-db1d47a{gap:10px!important;--gap:10px;--row-gap:10px;--column-gap:10px}
.elementor-18 .elementor-element-db1d47a .elementor-widget-button,
.elementor-18 .elementor-element-db1d47a .elementor-widget-icon{flex-shrink:0}
.elementor-18 .elementor-element.elementor-element-794a59e .menu-item a.hfe-menu-item{padding-left:9px;padding-right:9px}
