/* Adjust navigation font size */
nav.main-navigation ul li a {
    font-size: 22px !important; /* Adjust this value as needed */
}
/* Navigation Button Hover Effect */
nav.main-navigation ul li a {
    transition: all 0.3s ease;
}

nav.main-navigation ul li a:hover {
    color: #2b78e4 !important; /* Change to desired hover color */
    transform: scale(1.1); /* Slightly enlarges button */
}
.elementor-column,
.elementor-widget-icon-box {
    transition: all 0.3s ease;
}

.elementor-column:hover,
.elementor-widget-icon-box:hover {
    background-color: rgba(255, 255, 255, 0.3); /* transparent white */
    backdrop-filter: blur(3px); /* subtle blur */
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    border-radius: 12px;
}

/* Optional: Adjust spacing on smaller screens */
@media (max-width: 767px) {
    .elementor-widget-icon-box {
        padding: 16px;
    }
}

/* Add spacing so page content isn't hidden behind fixed header */
header.site-header {
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}

/* === Nav Container Styling === */
.site-header .main-navigation .menu {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  padding: 10px 30px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

/* === Nav Link Base Style === */
.site-header .main-navigation .menu li a {
  font-weight: 700;
	text-transform: none;
  font-size: 14px;
  letter-spacing: 0.4px;
  color: #000;
  padding: 10px 24px;
  border-radius: 999px;
  transition: all 0.3s ease;
}

/* === Hover / Active / Focus === */
.site-header .main-navigation .menu li a:hover,
.site-header .main-navigation .menu li.current-menu-item a {
  background: #ffe68a; /* softer golden highlight */
  color: #000;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.site-header .main-navigation .menu {
  padding: 8px 3px;
	margin-top: 60px;
  gap: 40px;
  border-radius: 50px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
  backdrop-filter: blur(10px);
}
.site-header .main-navigation .menu li a:hover::before,
.site-header .main-navigation .menu li.current-menu-item a::before {
  content: "👑";
  margin-right: 6px;
  font-size: 14px;
  vertical-align: middle;
}
.site-logo img {
  max-height: 60px;
}
.site-header .header-container {
  align-items: center;
  padding-top: 1px;
  padding-bottom: 1px;
}
.site-logo img {
  max-height: 100px; /* or whatever height fits nicely */
  height: auto; /* maintain vertical ratio */
  width: auto;  /* allow natural width */
  aspect-ratio: auto;
  object-fit: contain;
}
.site-logo {
  max-width: none;
  width: auto;
}
.site-logo img {
  height: auto !important;
  width: auto !important;
  max-height: 80px; /* Adjust as needed */
  max-width: 100%; 
  aspect-ratio: attr(width) / attr(height);
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.site-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  height: auto;
  max-height: 200px; /* Optional: you can fine-tune this */
}
.site-logo img {
  height: auto !important;
  width: auto !important;
  max-height: 120px; /* ⬅️ Increase this until it looks right */
  max-width: 100%;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
/* Smooth transition for all buttons in the nav */
.main-navigation .menu li a {
  transition: background-color 0.3s ease, color 0.3s ease, transform 0.2s ease;
  display: inline-block;
}

/* Hover effect to slightly scale the button */
.main-navigation .menu li:hover a {
  background-color: #ffe585; /* update if needed */
  color: #000; /* update if needed */
  border-radius: 30px;
  transform: scale(1.05); /* subtle scale-up */
}

/* Prevent instant "snap" when moving across buttons */
.main-navigation .menu li a:before {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  transition: background 0.3s ease;
}
/* Better hover text color */
.main-navigation .menu li:hover a {
  color: #0057a3; /* stronger blue */
}
.main-navigation .menu li:hover a {
  text-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
.main-navigation .menu .current-menu-item a {
  background-color: #ffe585;
  color: #0057a3;
  box-shadow: 0 0 6px rgba(0, 87, 163, 0.4);
}
.header-buttons {
  display: flex;
  gap: 10px;
  align-items: center;
}
/* Adjust header padding */
.elementor-sticky--effects, 
.elementor-section.elementor-top-section {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}
.site-header .header-container {
    padding-top: 15px !important;
    padding-bottom: 1px !important;
}
.elementor-widget-icon-box {
  background-color: #ffffff !important;
  border-radius: 24px !important;
  padding: 48px 32px !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.05) !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
  text-align: left !important;
  height: 100% !important;
}

.elementor-widget-icon-box:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.08) !important;
}

.elementor-widget-icon-box .elementor-icon {
  font-size: 40px !important;
  color: #000 !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: 32px !important;
  line-height: 1 !important;
}

.elementor-widget-icon-box .elementor-icon-box-title {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  margin-bottom: 16px !important;
  line-height: 1.4 !important;
}

.elementor-widget-icon-box .elementor-icon-box-description {
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: #444 !important;
  max-width: 100% !important;
}

@media (max-width: 768px) {
  .elementor-widget-icon-box {
    text-align: center !important;
    padding: 32px 24px !important;
  }

  .elementor-widget-icon-box .elementor-icon {
    margin: 0 auto 24px !important;
  }

}
.elementor-section {
  padding-left: 20px;
  padding-right: 20px;
}
.top-header {
  position: sticky;
  top: 0;
  z-index: 1002;
  background-color: #1d78d0; /* adjust to match your blue */
  transition: none !important;
  backface-visibility: hidden;
  will-change: transform;
}
.top-header {
  position: sticky;
  top: 0;
  z-index: 1002;
  background-color: #1d78d0;
  transition: none !important;
  backface-visibility: hidden;
  will-change: transform;
}

.site-header {
  transform: translateZ(0); /* GPU-accelerated rendering */
}
/* Sticky Blue Social Header */
.top-header {
  position: sticky;
  top: 0;
  z-index: 1002;
  background-color: #1d78d0; /* Adjust this to your preferred blue */
  color: #fff;
  transition: none;
  backface-visibility: hidden;
  will-change: transform;
}

/* Optional: make the full header sticky */
.site-header {
  z-index: 1001;
  background-color: white; /* or transparent/blurred if needed */
  transform: translateZ(0);
}

/* Prevent flicker from nested content */
.site-header,
.site-header * {
  backface-visibility: hidden;
  will-change: transform;
}
.top-header {
  transition: all 0.4s ease;
  opacity: 1;
  transform: translateY(0);
  max-height: 100px;
  overflow: visible;
}

.top-header.fade-out {
  opacity: 0;
  transform: translateY(-100%);
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  height: 0 !important;
  transition: all 0.4s ease;
}


.site-header {
  min-height: 200px; /* or whatever height your menu below the bar takes */
  z-index: 1001;
  background-color: white;
}
.top-header {
  transition: all 0.4s ease;
  height: auto;
  max-height: 200px; /* or whatever your normal value is */
  overflow: visible;
}
.guttered-section {
  padding-left: 40px;
  padding-right: 40px;
}
/* Force theme containers to respect padding */
body .elementor-section {
  padding-left: 40px !important;
  padding-right: 40px !important;
  box-sizing: border-box;
}

/* Prevent theme from stretching content edge to edge */
body .container,
body .site-content,
body .content-area,
body .site-main {
  padding-left: 20px !important;
  padding-right: 20px !important;
  box-sizing: border-box;
}

@media (max-width: 768px) {
  body .elementor-section,
  body .container,
  body .site-content,
  body .content-area,
  body .site-main {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
.sng-public-container {
  border-radius: 24px; /* smooth rounded corners */
  overflow: hidden; /* clip inside content to match */
  background: #ffffff; /* ensure white background */
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); /* optional soft lift */
  padding: 40px 30px; /* optional: make inside breathing room bigger */
  max-width: 700px; /* optional: limit max width if you want better balance */
  margin: 0 auto; /* center it horizontally */
}
.sng-public-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.page-header {
    margin-bottom: 20px; /* spacing between title and form */
}
.mark-values {
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}
/* Residential Banner Upgrade */
.residential-banner {
  background: linear-gradient(90deg, #1E40AF 0%, #3B82F6 100%); /* Royal blue gradient */
  color: #fff;
  font-weight: 700;
  font-size: 1.5rem;
  text-align: center;
  padding: 20px 0;
  margin: 30px 0;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  letter-spacing: 1px;
}
@media (max-width: 768px) {
  /* Kill weird bubble */
  .sng-public-container {
    display: none !important;
  }
@media (max-width: 768px) {
  .sng-page-content .entry-title {
    font-size: 7vw !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    text-align: center !important;
    line-height: 1.2 !important;
    padding-top: 20px !important; /* Optional: add breathing room */
  }
}

@media (max-width: 768px) {
  header.site-header {
    min-height: 80px !important; /* Shrinks header height */
    padding: 5px 10px !important; /* Tightens the padding */
    background-color: #ffffff !important; /* Optional: make sure background stays clean white */
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important; /* Optional: softer shadow */
    align-items: center !important;
    display: flex !important;
  }

  .site-header .elementor-container {
    min-height: auto !important;
    padding: 0 !important;
  }

  /* Shrink logo inside header */
  .site-header img {
    max-height: 70px !important;
  }

  /* Adjust Free Quote button */
  .site-header a.button, .site-header .elementor-button {
    padding: 6px 12px !important;
    font-size: 14px !important;
  }
}
@media (max-width: 768px) {
  /* Align checkbox and label properly */
  .sng-page-content .sng-form-group.sng-no-marketing {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    padding-left: 10px !important; /* NEW: tighter left indent */
    padding-right: 10px !important; /* (optional) */
  }

  /* Keep checkbox tight and clean */
  .sng-page-content .sng-form-group.sng-no-marketing input[type="checkbox"] {
    flex: 0 0 auto !important;
    margin-top: 4px !important;
  }

  /* Allow label text to flow and wrap nicely */
  .sng-page-content .sng-form-group.sng-no-marketing label {
    flex: 1 1 auto !important;
    font-size: 14px !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.4 !important;
  }
}
@media (max-width: 768px) {
  .sng-input-group.sng-note.sng-marketing {
    display: flex !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .sng-input-group.sng-note.sng-marketing input[type="checkbox"] {
    flex-shrink: 0 !important;
    margin-top: 2px !important;
    width: 18px !important;
    height: 18px !important;
  }

  .sng-input-group.sng-note.sng-marketing label {
    display: inline-block !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    flex-grow: 1 !important;
  }
}
@media (max-width: 768px) {
  .sng-page-content {
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5) !important;
    border-radius: 18px !important;
    width: 100% !important;
    max-width: 500px !important;
    margin: 20px auto !important;
    padding: 0 !important; /* NO padding to prevent shrink */
    box-sizing: border-box !important;
  }
}
@media (max-width: 768px) {
  .mobile-navigation-container {
    position: fixed;
    top: 0;
    right: -100%; /* start hidden off the screen */
    width: 80%; /* width of drawer, adjust if you want 100% */
    height: 100vh;
    background-color: #fff; /* or your background color */
    z-index: 9999;
    transition: right 0.3s ease-in-out;
    overflow-y: auto;
    padding-top: 80px; /* adjust for header/logo space */
    box-shadow: -2px 0 8px rgba(0,0,0,0.15);
  }

  /* When active (menu open) */
  .mobile-menu-open .mobile-navigation-container {
    right: 0; /* slide in */
  }
}
@media (max-width: 768px) {
  .mobile-navigation-container {
    position: fixed !important;
    top: 0 !important;
    right: -100%;
    height: 100vh !important;
    width: 80%;
    background: #fff;
    overflow-y: auto;
    z-index: 9999;
    padding-top: 80px;
    transition: right 0.3s ease-in-out;
    box-shadow: -2px 0 8px rgba(0,0,0,0.15);
  }

  .mobile-menu-open .mobile-navigation-container {
    right: 0 !important;
  }

  /* FORCE header containers to allow overflow */
  .container-header-container,
  .site-header,
  .header-container,
  .site-main,
  .main-navigation {
    overflow: visible !important;
    position: relative !important;
  }
}
@media (max-width: 768px) {
  /* Overlay behind the drawer */
  .mobile-menu-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0,0,0,0.5); /* semi-transparent black */
    z-index: 9998; /* Behind the menu, in front of page */
    backdrop-filter: blur(2px); /* optional blur effect */
    transition: opacity 0.3s ease;
    opacity: 0;
  }

  /* Show overlay when menu is open */
  .mobile-menu-open .mobile-menu-overlay {
    display: block;
    opacity: 1;
  }
}
@media (max-width: 768px) {
  .mobile-navigation-container {
    box-shadow: -8px 0 20px rgba(0,0,0,0.2); /* bigger shadow */
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
  }
}
@media (max-width: 768px) {
  .mobile-menu-overlay {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  .mobile-menu-open .mobile-menu-overlay {
    opacity: 1;
    visibility: visible;
  }
}
@media (max-width: 768px) {
  .elementor-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
html, body {
  overflow-x: hidden;
}

body {
  max-width: 100vw;
}
@media only screen and (max-width: 767px) {
  .elementor-element.mobile-top-image {
    order: -1 !important;
  }
}
/* Default - Mobile & Tablet (keep full width) */
.custom-desktop-img img {
  width: 100% !important;
  height: auto;
}

/* Desktop Only - reduce image width */
@media (min-width: 1025px) {
  .custom-desktop-img img {
    width: 80% !important;  /* Adjust this percentage to your liking */
    max-width: 600px;       /* Optional: limits image scaling */
    margin: 0 auto;
    display: block;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .tablet-icon-box {
    max-height: 250px;  /* Adjust as needed */
    overflow: hidden;
    padding: 20px 15px;  /* Reduce padding */
  }

  .tablet-icon-box .elementor-icon-box-content {
    justify-content: center;
    align-items: center;
  }
}
@media (max-width: 768px) {
  body.sng_page-template-sng-client-onboarding-template .custom-quote-wrapper {
    padding-top: 1px !important; /* Less than the default 40px */
  }
}
@media (max-width: 768px) {
  body.sng_page-template-sng-out-of-area-template #sng_out_of_area_form {
    padding-bottom: 60px !important;
  }
}
@media (max-width: 768px) {
  body.sng_page-template-sng-out-of-area-template {
    background: #e5f3ff url('https://scoopking.com/wp-content/uploads/2024/04/paws-bg.svg') no-repeat center top;
    background-size: cover;
  }
}
@media (max-width: 768px) {
  #sng_out_of_area_form {
    padding-left: 24px;
    padding-right: 24px;
    box-sizing: border-box;
  }
}
/* Stronger rounding for popup container */
#zipCheckerWrapper.modal.active {
  border-radius: 24px !important;
  overflow: hidden !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2) !important;
  background-color: #ffffff !important;
}

/* Make all inner text black by default */
#zipCheckerWrapper.modal.active,
#zipCheckerWrapper.modal.active * {
  color: #000000 !important;
}

/* Keep "Free Quote" button text white */
#zipCheckerWrapper.modal.active button,
#zipCheckerWrapper.modal.active .modal-button {
  color: #ffffff !important;
  background-color: #1d78d0 !important; /* Or your brand blue */
  border-radius: 12px !important;
  padding: 10px 16px !important;
  font-weight: 600;
}
/* Target modal container */
body .zipCheckerWrapper.modal.active {
  border-radius: 24px !important;
  background: #ffffff !important;
  color: #000000 !important;
  padding: 32px !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;
}

/* Force black text inside modal */
body .zipCheckerWrapper.modal.active * {
  color: #000000 !important;
}

/* Keep "Free Quote" button text white */
body .zipCheckerWrapper.modal.active button,
body .zipCheckerWrapper.modal.active .btn,
body .zipCheckerWrapper.modal.active input[type="submit"] {
  color: #ffffff !important;
  background-color: #1d78d0 !important; /* Or your preferred blue */
  border-radius: 12px !important;
}
@media (min-width: 768px) and (max-width: 1199px) {
  /* Override desktop styling for landscape tablets */
  body.page-id-50 .elementor-container > .elementor-section {
    flex-direction: column !important;
    align-items: center !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  body.page-id-50 .elementor-container .elementor-icon-box {
    width: 100% !important;
    max-width: 700px !important;
    margin: 0 0 30px !important;
    transform: none !important;
  }

  body.page-id-50 .elementor-container .elementor-icon-box .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
  }
}
/* === FORCE A LIGHT BACKGROUND AND DARK TEXT ON THAT PROMO BOX === */
.sng-special-promo {
  background: #ffffff !important;      /* override the plugin’s gradient/color */
  background-image: none      !important;
  color: #222222               !important; /* force all inner text dark */
}

/* make absolutely sure the title & description inside are dark */
.sng-special-promo .sng-promo-title,
.sng-special-promo .sng-promo-description {
  color: #222222 !important;
}
.how-it-works-card .package-header h2 {
  font-family: 'Fredoka One', cursive !important;
}
