/*
 * Waste Removal USA - Modern layout additions only
 * Load after style.css (dependency: primary). Contains overrides and
 * modern-only rules (split-section, city-hero, post-layout-update,
 * location-finder, etc.). Do not duplicate base theme rules here.
 */

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Manrope:wght@200..800&display=swap');

/* ======== 2. Text ======== */

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
a {
  font-family: "Inter", sans-serif;
}

:root {
  --primary-color: #1b335f; /* Blue */
  --primary-color-rgb: 27, 51, 95; /* Blue (RGB for rgba()) */
  --secondary-color: #a81d3e; /* Red */
  --secondary-color-rgb: 168, 29, 62; /* Red (RGB for rgba()) */
  --tertiary-color: #1A8943; /* Green */
  --tertiary-color-rgb: 26, 137, 67; /* Green (RGB for rgba()) */
  --rating-star-color: #e7711b;
  --trustpilot-green: #00b67a;
  --footer-blue: #122240;
  
  /* Gutter System - Consistent horizontal spacing */
  --gutter-mobile: 12px;        /* Mobile: 12px on each side */
  --gutter-tablet: 16px;        /* Tablet: 16px on each side */
  --gutter-desktop: 20px;       /* Desktop: 20px on each side */
  --gutter-large: 24px;         /* Large screens: 24px on each side */
  
  /* Container max-widths */
  --container-max-width: 1200px; /* Max content width */
  --container-max-width-wide: 1400px; /* Wide container option */
  
  /* Split section spacing */
  --split-gap-mobile: 20px;     /* Gap between split items on mobile */
  --split-gap-tablet: 24px;     /* Gap between split items on tablet */
  --split-gap-desktop: 32px;   /* Gap between split items on desktop */
  --split-gap-large: 40px;      /* Gap between split items on large screens */
  
  /* Split content max-widths */
  --split-content-max-width: 500px; /* Max width for content in split sections */
  --split-content-max-width-wide: 600px; /* Wide option for split content */
}

.split-section {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-left: var(--gutter-mobile);
  padding-right: var(--gutter-mobile);
  box-sizing: border-box;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  margin-left: 0;
  margin-right: 0;
}

@media (min-width: 992px) {
  [class*="col-"] .split-section {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
  }
}

.split-section__half {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center; /* Center content vertically */
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.split-section__half:first-child {
  padding-right: calc(var(--split-gap-mobile) / 2);
}

.split-section__half:last-child {
  padding-left: calc(var(--split-gap-mobile) / 2);
}

@media (max-width: 991px) {
  .split-section__half:last-child {
    margin-top: var(--split-gap-mobile);
  }
}

.split-section__content {
  width: 100%;
  max-width: 100%; /* Let content fill the half by default */
  margin: 0 auto;
}

.split-section__content figure {
  margin: 0;
  height: auto;
  width: 100%;
  max-width: 100%;
}

.split-section__content figure img {
  height: auto !important;
  max-height: none !important;
  width: 100%;
  max-width: 100%;
  display: block;
}

@media (min-width: 992px) {
  .split-section__content figure {
    max-width: 600px; /* Prevent image from getting too large */
  }
}

@media (min-width: 1200px) {
  .split-section__content figure {
    max-width: 800px; /* Slightly larger on desktop but still constrained */
  }
}

.split-section__content--constrained {
  max-width: var(--split-content-max-width);
}

@media (min-width: 992px) {
  .split-section {
    flex-direction: row;
    padding-left: var(--gutter-tablet);
    padding-right: var(--gutter-tablet);
  }
  
  .split-section__half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  
  .split-section__half:first-child {
    padding-right: calc(var(--split-gap-tablet) / 2);
  }
  
  .split-section__half:last-child {
    padding-left: calc(var(--split-gap-tablet) / 2);
  }
}

@media (min-width: 1200px) {
  .split-section {
    padding-left: var(--gutter-desktop);
    padding-right: var(--gutter-desktop);
  }
  
  .split-section__half:first-child {
    padding-right: calc(var(--split-gap-desktop) / 2);
  }
  
  .split-section__half:last-child {
    padding-left: calc(var(--split-gap-desktop) / 2);
  }
}

@media (min-width: 1400px) {
  .split-section {
    padding-left: var(--gutter-large);
    padding-right: var(--gutter-large);
  }
  
  .split-section__half:first-child {
    padding-right: calc(var(--split-gap-large) / 2);
  }
  
  .split-section__half:last-child {
    padding-left: calc(var(--split-gap-large) / 2);
  }
}

.split-section__content--wide {
  max-width: var(--split-content-max-width-wide);
}

.dumpster-btn {
  background-color: var(--tertiary-color);
  border: 2px solid var(--tertiary-color);
  color: #fff;
  box-shadow: 0 4px 12px rgba(var(--tertiary-color-rgb), 0.28);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, filter 0.2s ease; 
}

.dumpster-btn svg{
	width: 20px;
  height: 20px;
	fill:#fff;
  margin-right: 2px;
}

#splashCarousel a.btn:hover,
.types-of-jobs .city-head a:hover{
	text-decoration:none !Important;
	border: 2px solid var(--tertiary-color);
	background-color: var(--tertiary-color) !important;
	color:#fff !important;
  transform: translateY(-2px);
  filter: brightness(0.97);
  box-shadow: 0 6px 20px rgba(var(--tertiary-color-rgb), 0.38);
}

.dumpster-btn:hover{
	text-decoration:none !Important;
	border: 2px solid var(--tertiary-color);
	background-color: var(--tertiary-color) !important;
	color:#fff !important;
  transform: translateY(-2px);
  filter: brightness(0.97);
  box-shadow: 0 6px 20px rgba(var(--tertiary-color-rgb), 0.38);
	/* transform:scale(1.01); */
}

.dumpster-btn:hover svg{
	fill: #fff !important;
}

.btn-unified,
.dumpster-btn,
.info-btns {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 0.875rem 1.5rem;
  margin: 0;
  font-weight: 600;
  font-size: 1.1rem;
}

.btn-unified.btn-lg,
.dumpster-btn.btn-lg,
.info-btns.btn-lg {
  padding: 1rem 2rem;
}

.btn:focus-visible {
  outline: 2px solid rgba(var(--primary-color-rgb), 0.35);
  outline-offset: 3px;
}

#city-hero h1,
#whyUs h1,
.articles h1,
.calculator h1,
.reviews-panel h1,
#dumpsters h1 {
  font-size: 30px;
  font-weight: 700;
}

.city-content h2 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

.post-layout-update #city-hero.section,
.post-layout-update #whyUs.section {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.post-layout-update .city-other-section {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

#splashCarousel {
  font-family: "Inter", sans-serif;
}

#splashCarousel a.btn {
  background: var(--tertiary-color);
  border: 2px solid var(--tertiary-color);
  padding: 10px 30px 10px 30px;
  text-transform: none;
  font-weight: 400;
  line-height: 1.5;
  color: #ffffff;
  font-size: 25px;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(var(--tertiary-color-rgb), 0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

#splashCarousel a.btn:hover {
  background: var(--tertiary-color);
  border: 2px solid var(--tertiary-color);
  color: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(var(--tertiary-color-rgb), 0.38);
}

#calculator {
  position: relative;
  overflow: hidden;
}

#calculator::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.08) 0%,
    rgba(255, 255, 255, 0.03) 50%,
    rgba(0, 0, 0, 0.05) 100%
  );
  pointer-events: none;
}

#calculator > * {
  position: relative;
  z-index: 1;
}

@media only screen and (max-device-width: 500px) {
  .quote-button {
    margin: 1px;
    padding: 5px;
    border-radius: 6px;
  }
}

@media only screen and (max-device-width: 370px) {
  .quote-button {
    margin: -8px;
    padding: 5px;
    font-size: 12px;
    border-radius: 6px;
  }

  a.btn.btn-cta.dumpster-btn.my-3 {
    padding: 6px !important;
    font-size: 12px !important;
  }
  .fa-2x {
    font-size: 32px !important;
  }

  .logo-primary img {
    width: 95px !important;
  }
}

@media only screen and (max-width: 767px) {
  #splashCarousel .searchBoxWrap .mt-2 a {
    text-shadow: #000 10px 10px 10px, #000 5px 5px 10px, #000 2px 2px 10px,
      #000 1px 1px 10px;
  }

  #table-lg,
  #table-lg.competition-table-chart {
    display: none;
  }

  #table-sm,
  .hide-for-large,
  #table-sm.competition-table-chart {
    display: block;
  }

  .order-md-1 {
    padding-top: 15px;
  }

  .order-md-1 p,
  .offering-description,
  .mb-0,
  .my-2 {
    text-align: justify;
  }

  .background-cover {
    /*height: 400px;*/
    height: 500px;
    padding-top: 110px;
  }

  .section {
    padding-top: 2rem;
  }

  /* Intro keeps 1.5rem when generic .section is 2rem at this breakpoint */
  .post-layout-update #city-intro.section,
  .post-layout-update .city-intro-section {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .post-351.section-tall,
  .post-2.section-tall,
  .local.section-tall {
    padding-top: 4rem;
  }

  .postid-351 .px-5,
  .postid-351 .p-5 {
    padding-left: 0rem !important;
    padding-right: 0rem !important;
  }

  .post-68.splash {
    /*background-position: 70%, 0 !important;*/
    height: 440px;
    background-position: 55%, 0 !important;
  }

  .post-333.splash {
    background-position: 70%, 0 !important;
  }

  .splash {
    /*background-position: 85%, 0 !important;*/
    background-position: center center !important;
  }

  .postid-330 .splash {
    background-position: center center !important;
  }

  .postid-331 .splash {
    background-position: left center !important;
  }

  .post-332 .splash {
    height: 400px;
    background-position: 30%, 0 !important;
  }

  .faq {
    background-position: 80%, 0 !important;
  }

  .local-main {
    background-position: 47%, 0 !important;
  }

  #splashCarousel .bg-image {
    background-position: 16% 20% !important;
  }

  .postid-319 .section-tall {
    padding-top: 6rem;
  }

  .logo-container {
    text-align: center;
  }

  .post-330.section-tall {
    padding-top: 100px;
    height: 400px;
  }

  .post-330.section-tall h1.display-3 {
    font-size: 21px;
  }

  .post-330.section-tall h3 {
    font-size: 19px;
  }

  .post-330.section-tall a.dumpster-btn {
    font-size: 18px;
  }

  .faq.section-tall {
    padding-top: 6rem;
  }

  .n2-ss-button-container {
    font-size: 11px !important;
  }

  .local-main.section-tall {
    padding-top: 7rem;
  }

  #splashCarousel h1 {
    /*font-size: 26px;*/
    font-size: 20px;
  }

  #splashCarousel p {
    font-size: 17px;
  }

  #splashCarousel a.btn {
    font-size: 17px;
  }

  #splashCarousel .carousel-item {
    height: 400px;
  }

  #menu-footer-menu .sub-menu {
    padding-left: 0px;
  }

  .quote-heading {
    font-size: 28px;
  }

  .select-wrap
    .wpcf7-form-control-wrap.dumpster-size
    .wpcf7-form-control.wpcf7-checkbox.wpcf7-validates-as-required.dumpster-size {
    display: unset !important;
  }

  #ck-button > label,
  #ck-button span.wpcf7-list-item,
  #ck-button label span.wpcf7-list-item-label {
    display: block !important;
  }

  #ck-button label span.wpcf7-list-item-label {
    margin-right: 0px !important;
    margin-bottom: 10px;
  }

  #wpcf7-f692-p686-o1 .mr-50 {
    margin-right: 0;
  }

  #ck-button span.wpcf7-list-item:not(:last-child) {
    margin-right: 0px !important;
  }

  #city-intro h2,
  #whyUs h2 {
    text-align: left;
    font-size: 20px;
  }

  #city-intro h4,
  #whyUs h4 {
    font-size: 20px;
  }

  #city-intro p,
  #whyUs p {
    font-size: 14px;
    text-align: left !important;
  }

  .searchBoxWrap .list-group.searchList {
    top: 64px !important;
    width: 100%;
  }

  #city-hero h1,
  #whyUs h1,
  .articles h1,
  .calculator h1,
  .reviews-panel h1,
  #dumpsters h1 {
    font-size: 28px;
  }

  .city-content ul {
    text-align: left;
  }

  .city-content h2 {
    font-size: 24px;
  }

  .call-detail-frame .text-block {
    font-size: 24px;
  }

  /************** Blog Page ***********/
  .postid-122 .splash {
    height: 350px;
    padding-top: 150px;
    background-position: right center !important;
  }

  .postid-122 .splash h1.display-3 {
    font-size: 42px;
  }

  .postid-122 .splash a.dumpster-btn {
    font-size: 18px;
    margin-top: 10px !important;
  }

  .postid-334 .splash {
    background-position: right center !important;
  }

  #splashCarousel a.btn.for-mobile,
  #splashCarousel a.btn.for-desktop {
    margin-bottom: 110px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .postid-678 .splash.section-tall .text-left,
  .postid-678 .splash.section-tall .mt-2 {
    text-align: center !important;
  }

  .home-google-ratings .star-rating {
    justify-content: center;
  }

  .postid-678 .searchBoxWrap {
    min-width: auto;
    position: relative;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }

  .postid-678 .search-cities-form .input-group,
  .postid-678 .searchList {
    max-width: 100%;
    min-width: 100%;
  }

  .post-678 #splashCarousel {
    position: relative;
    z-index: 2;
  }

  .postid-678 .section-tall::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0px;
    /* background: rgba(0, 0, 0, 0.5); */
    top: 0px;
    z-index: 1;
    background: linear-gradient(299deg, #21252900, black 90%) !important;
    opacity: 0.4;
  }

  .postid-678 .section-tall {
    position: relative;
  }

  .outer-wrapper figure h4 {
    font-size: 18px;
    margin-bottom: 0px;
  }

  .footer-contact h2 {
    font-size: 25px;
  }
}

#city-hero h1,
#whyUs h1 {
  font-size: 28px;
  font-weight: 700;
}

@media screen and (max-width: 1024px) {
  #city-hero h1,
  #whyUs h1 {
    font-size: 24px;
    font-weight: 600;
  }
}

.a_flotingCallNowBtn a:before {
  /*content: 'CALL NOW 844-762-8449';*/
  background: #fff;
  color: #212529;
  position: absolute;
  left: -172px;
  top: 11px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  box-shadow: 0px 7px 15px rgba(0, 0, 0, 0.15);
  padding: 5px 10px;
  box-sizing: border-box;
  border-radius: 6px;
}

.a_flotingCallNowBtn a span {
  padding-left: 10px;
  font-family: "Inter", sans-serif;
  font-weight: bold;
  line-height: 1.5;
  color: #ffffff;
  display: none;
}

.post-layout-update #city-hero .city-head--fullbleed,
.post-layout-update #whyUs .city-head--fullbleed {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  border-radius: 0;
}

.post-layout-update .city-head a {
	position: relative;
	z-index: 1;
	background: #20a651;
	padding: 4px 20px;
	display: block;
	margin: 10px 0 0;
	font-size: 28px;
	line-height: unset;
	color: #fff !important;
	border-radius: 6px;
	border:2px solid #20a651;
	transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease; 
}

.post-layout-update .city-head a:hover{
	background-color:#fff;
	border:2px solid #20a651;
	color:#20a651 !important;
}

.post-layout-update .city-head a:hover i{
	color:#20a651;
}

.types-of-jobs .city-head a{
	border:2px solid #20a651;
	transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease; 
}

.post-layout-update #city-hero h1,
.post-layout-update #whyUs h1 {
  font-weight: 500;
  position: relative;
  z-index: 2;
  color: #fff;
}

.city-head__hours {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
  color: rgba(255, 255, 255, 0.9);
  font-size: 1.1rem;
  line-height: 1.4;
}

.city-head__hours-icon {
  flex-shrink: 0;
  fill: rgba(255, 255, 255, 0.9);
}

.city-head__hours-label {
  font-weight: 600;
}

.city-head__hours-time {
  font-weight: 400;
}

@media all and (max-width: 767px) {
  .post-layout-update .city-head {
    margin: 0 auto;
    text-align: center;
    border-radius: 0;
    height: 66.8vw;
    min-height: 220px;
    max-height: 400px;
  }

  .post-layout-update #city-hero h1,
  .post-layout-update #whyUs h1 {
    font-size: 23px;
  }

  .post-layout-update .city-head a {
    font-size: 22px;
  }

  .post-layout-update .city-head img {
    height: 100%;
  }

  .city-head__hours {
    font-size: 1rem;
  }

  .post-layout-update #city-hero.section,
  .post-layout-update #whyUs.section {
    padding-top: 12px;
  }

  .post-layout-update .container-fluid {
    padding: 0;
  }

  .post-layout-update .container {
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
  }

  .post-layout-update .row {
    margin-right: 0;
    margin-left: 0;
  }

  .post-layout-update .col,
  .post-layout-update .col-1,
  .post-layout-update .col-10,
  .post-layout-update .col-11,
  .post-layout-update .col-12,
  .post-layout-update .col-2,
  .post-layout-update .col-3,
  .post-layout-update .col-4,
  .post-layout-update .col-5,
  .post-layout-update .col-6,
  .post-layout-update .col-7,
  .post-layout-update .col-8,
  .post-layout-update .col-9,
  .post-layout-update .col-auto,
  .post-layout-update .col-lg,
  .post-layout-update .col-lg-1,
  .post-layout-update .col-lg-10,
  .post-layout-update .col-lg-11,
  .post-layout-update .col-lg-12,
  .post-layout-update .col-lg-2,
  .post-layout-update .col-lg-3,
  .post-layout-update .col-lg-4,
  .post-layout-update .col-lg-5,
  .post-layout-update .col-lg-6,
  .post-layout-update .col-lg-7,
  .post-layout-update .col-lg-8,
  .post-layout-update .col-lg-9,
  .post-layout-update .col-lg-auto,
  .post-layout-update .col-md,
  .post-layout-update .col-md-1,
  .post-layout-update .col-md-10,
  .post-layout-update .col-md-11,
  .post-layout-update .col-md-12,
  .post-layout-update .col-md-2,
  .post-layout-update .col-md-3,
  .post-layout-update .col-md-4,
  .post-layout-update .col-md-5,
  .post-layout-update .col-md-6,
  .post-layout-update .col-md-7,
  .post-layout-update .col-md-8,
  .post-layout-update .col-md-9,
  .post-layout-update .col-md-auto,
  .post-layout-update .col-sm,
  .post-layout-update .col-sm-1,
  .post-layout-update .col-sm-10,
  .post-layout-update .col-sm-11,
  .post-layout-update .col-sm-12,
  .post-layout-update .col-sm-2,
  .post-layout-update .col-sm-3,
  .post-layout-update .col-sm-4,
  .post-layout-update .col-sm-5,
  .post-layout-update .col-sm-6,
  .post-layout-update .col-sm-7,
  .post-layout-update .col-sm-8,
  .post-layout-update .col-sm-9,
  .post-layout-update .col-sm-auto,
  .post-layout-update .col-xl,
  .post-layout-update .col-xl-1,
  .post-layout-update .col-xl-10,
  .post-layout-update .col-xl-11,
  .post-layout-update .col-xl-12,
  .post-layout-update .col-xl-2,
  .post-layout-update .col-xl-3,
  .post-layout-update .col-xl-4,
  .post-layout-update .col-xl-5,
  .post-layout-update .col-xl-6,
  .post-layout-update .col-xl-7,
  .post-layout-update .col-xl-8,
  .post-layout-update .col-xl-9,
  .post-layout-update .col-xl-auto {
    padding-right: 0;
    padding-left: 0;
  }

  .post-layout-update .review.section,
  .post-layout-update .city-content,
  .post-layout-update .city-searchity-content {
    padding: 0 15px;
  }

  .post-layout-update .wp-video {
    margin: 0 auto;
  }

  .post-layout-update .show-mobile-only {
    display: block;
  }
}

@media only screen and (min-width: 550px) and (max-width: 1920px) {
  span.date {
    float: left;
    font-size: 14px;
  }

  span.author {
    float: left;
    font-size: 14px;
  }

  .post-layout-update #city-hero h1,
  .post-layout-update #whyUs h1 {
    text-align: center !important;
  }
}

@media only screen and (max-width: 600px) {
ol.breadcrumb.ml-auto.d-lg-flex.align-items-center.mb-0.py-2 {
    font-size: 14px;
}

/* City pages: tighten breadcrumb-to-hero spacing */
.post-layout-update #navigation nav[aria-label="breadcrumb"] .breadcrumb {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

li.breadcrumb-item.blog-single {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    width: 130px;
	text-align: left;
}

.breadcrumb-item+.breadcrumb-item {
    padding-left: 5px;
}


.breadcrumb-item+.breadcrumb-item::before {
    padding-right: 5px;
}
li.breadcrumb-item.item-4 {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    width: 100px;
	text-align: left;
}
	#splashCarousel a.btn.for-mobile {
        max-width:max-content;
        padding: 8px 20px;
        font-size: 16px;
    }

	.dumpster-btn,
	.splash .dumpster-btn,
	.types-of-jobs .col-12.city-head a{
		font-size:18px;
	}
	.container-dots-blue .dumpster-btn{
		font-size:13px;
	}
	.container-dots-blue h3,
	.container-dots h3{
		font-size: 22px;
	}
	.container-dots-blue hr.w-50,
	.container-dots .card hr.w-50{
		    margin: 5px auto !important;
	}
	.support-state h2{
		font-size:18px;
	}
	.support-state h4{
		font-size:16px;
		margin-bottom: 4px;
	}
	.btn-Wrapper .btn.dumpster-btn{
		font-size: 15px;
        padding: 6px 10px;
	}
	#calculator .calcContent h2{
		font-size:26px;
	}
	#calculator .calcContent p{
		margin:15px 0px;
	}
	#calculator .calcContent{
		padding:12px;
	}
}

.location-finder-section {
  margin: 0;
  padding: 3rem 24px;
  background: transparent;
}

.location-finder {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
}

.location-finder__header {
  background: var(--primary-color, #1b335f);
  color: #fff;
  padding: 1.5rem;
  text-align: center;
}

.location-finder__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
  color: #fff;
  text-align: center;
}

.location-finder__subtitle {
  font-size: 0.95rem;
  margin: 0;
  opacity: 0.9;
  color: #fff;
}

.location-finder__content {
  display: flex;
  flex-direction: column;
}

.location-finder__primary {
  padding: 1.5rem;
  border-bottom: 1px solid #e9ecef;
}

.location-finder__search {
  margin-bottom: 0;
}

.location-finder__search-label {
  font-size: 0.95rem;
  color: #6c757d;
  margin: 0 0 0.75rem 0;
  font-weight: 500;
}

.location-finder__search .input-group {
  display: flex;
  flex-wrap: nowrap;
  border: 2px solid #e9ecef;
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}

.location-finder__search .input-group:focus-within {
  border-color: var(--primary-color, #1b335f);
}

.location-finder__search .input-group-prepend {
  display: flex;
  align-items: center;
}

.location-finder__search .input-group-text {
  background: #f8f9fa;
  border: none;
  padding: 0.75rem 0.75rem 0.75rem 1rem;
  color: #6c757d;
}

.location-finder__search .form-control {
  border: none;
  padding: 0.75rem 0.5rem;
  font-size: 1rem;
  flex: 1;
  min-width: 0;
}

.location-finder__search .form-control:focus {
  box-shadow: none;
  outline: none;
}

.location-finder__map {
  margin-top: 0;
  margin-bottom: 0;
}

.location-finder__map-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--primary-color, #1b335f);
  margin: 0 0 1rem 0;
}

.location-finder__map-container {
  position: relative;
  margin-bottom: 0.75rem;
  line-height: 0;
  font-size: 0;
  border-radius: 8px;
  overflow: hidden;
}

.location-finder__map-container iframe {
  width: 100%;
  height: 300px;
  display: block;
  border: none;
  vertical-align: bottom;
  margin: 0;
  padding: 0;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.location-finder__map-container > * {
  display: block;
  line-height: 0;
}

.location-finder__map-overlay {
  display: none;
}

.location-finder__map-info {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.location-finder__map-detail {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: #495057;
}

.location-finder__map-detail svg {
  flex-shrink: 0;
  color: var(--primary-color, #1b335f);
}

.location-finder__map-detail--phone a {
  color: var(--secondary-color, #a81d3e);
  font-weight: 600;
  text-decoration: none;
}

.location-finder__map-detail--phone a:hover {
  text-decoration: underline;
}

.location-finder__secondary {
  padding: 1.5rem;
  background: #f8f9fa;
  display: flex;
  flex-direction: column;
}

.location-finder__cities-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--primary-color, #1b335f);
  margin: 0 0 0.75rem 0;
}

.location-finder__cities-details {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e9ecef;
}

.location-finder__cities-details summary {
  list-style: none;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 600;
  color: var(--primary-color, #1b335f);
  margin: 0 0 0.75rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.location-finder__cities-details summary::-webkit-details-marker {
  display: none;
}

.location-finder__cities-details summary::after {
  content: '▼';
  font-size: 0.75rem;
  transition: transform 0.2s ease;
  color: var(--primary-color, #1b335f);
}

.location-finder__cities-details[open] summary::after {
  transform: rotate(180deg);
}

.location-finder__cities-details summary:focus-visible {
  outline: 2px solid rgba(27, 51, 95, 0.35);
  outline-offset: 3px;
  border-radius: 4px;
}

@media (max-width: 767px) {
  .location-finder__map-info {
    display: flex;
  }

  .location-finder__map-overlay {
    display: none;
  }

  .location-finder__cities-details summary {
    cursor: pointer;
  }
}

.location-finder__cities-grid {
  max-height: 250px;
  overflow-y: auto;
  padding-right: 0.5rem;
  position: relative;
}

.location-finder__cities-fade-top,
.location-finder__cities-fade-bottom {
  position: sticky;
  left: 0;
  right: 0.5rem;
  height: 30px;
  pointer-events: none;
  z-index: 2;
  margin: 0;
  padding: 0;
}

.location-finder__cities-fade-top {
  top: 0;
  background: linear-gradient(to bottom, #f8f9fa 0%, rgba(248, 249, 250, 0.8) 50%, transparent 100%);
  margin-bottom: -30px;
}

.location-finder__cities-fade-bottom {
  bottom: 0;
  background: linear-gradient(to top, #f8f9fa 0%, rgba(248, 249, 250, 0.8) 50%, transparent 100%);
  margin-top: -30px;
}

.location-finder__cities-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  padding-top: 25px;
  padding-bottom: 25px;
}

.location-finder__city-link {
  display: block;
  padding: 0.75rem 0.65rem;
  background: #fff;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  color: #495057;
  font-size: 0.85rem;
  text-decoration: none;
  transition: all 0.2s ease;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.location-finder__city-link:hover {
  background: var(--primary-color, #1b335f);
  color: #fff;
  border-color: var(--primary-color, #1b335f);
  text-decoration: none;
  transform: translateY(-1px);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (min-width: 768px) {
  .city-head__hours {
    font-size: 1.15rem;
    margin-top: 1rem;
  }

  .location-finder-section {
    padding: 3rem 24px;
  }

  .location-finder__header {
    padding: 1.5rem 2rem;
  }

  .location-finder__title {
    font-size: 1.75rem;
  }

  .location-finder__content {
    flex-direction: row;
  }

  .location-finder__primary {
    flex: 1;
    padding: 1.5rem;
    border-bottom: none;
    border-right: 1px solid #e9ecef;
    display: flex;
    flex-direction: column;
  }

  .location-finder__map {
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  .location-finder__map-container {
    flex: 1;
    min-height: 0;
  }

  .location-finder__secondary {
    width: 380px;
    padding: 1.5rem;
  }

  .location-finder__map-container iframe {
    height: 100%;
    min-height: 400px;
  }

  /* Keep map info below on tablet sizes to avoid covering Google Maps button */
  .location-finder__map-info {
    display: flex;
  }

  .location-finder__map-overlay {
    display: none;
  }

  /* Disable collapse on tablet+ - always show nearby cities */
  .location-finder__cities-details {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
  }

  .location-finder__cities-details summary {
    cursor: default;
    margin-bottom: 1rem;
  }

  .location-finder__cities-details summary::after {
    display: none;
  }

  /* Edge case: if user collapsed on mobile then resized up, allow reopening */
  .location-finder__cities-details:not([open]) summary {
    cursor: pointer;
    pointer-events: auto;
  }

  .location-finder__cities-details[open] summary {
    pointer-events: none;
  }

  .location-finder__cities-details:not([open]) summary::after {
    display: inline-block;
  }

  .location-finder__cities-details[open] {
    display: block;
  }

  /* 3-column grid on tablet */
  .location-finder__cities-grid {
    max-height: 300px;
  }

  .location-finder__cities-list {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .location-finder__content {
    flex-direction: column;
  }

  .location-finder__primary {
    border-right: none;
    border-bottom: 1px solid #e9ecef;
  }

  .location-finder__secondary {
    width: 100%;
  }
}

@media (min-width: 992px) {
  .location-finder__header {
    padding: 1.5rem 2rem;
  }

  .location-finder__title {
    font-size: 2rem;
  }

  .location-finder__primary {
    padding: 1.5rem 2rem;
  }

  .location-finder__secondary {
    width: 420px;
    padding: 1.5rem 2rem;
  }

  .location-finder__map-container iframe {
    min-height: 480px;
  }

  /* Single-column list for nearby cities / major markets */
  .location-finder__cities-grid {
    max-height: 450px;
  }

  .location-finder__cities-list {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1200px) {
  .location-finder__secondary {
    width: 450px;
  }

  .location-finder__map-container iframe {
    min-height: 520px;
  }
}

@media (min-width: 1600px) {
  .location-finder {
    max-width: 1600px;
  }
}

@media (min-width: 1628px) {
  .location-finder__map-info {
    display: none;
  }

  .location-finder__map-overlay {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    position: absolute;
    top: 16px;
    right: 16px;
    background: rgba(15, 23, 42, 0.78);
    color: #fff;
    border-radius: 12px;
    padding: 10px 12px;
    z-index: 10;
  }

  .location-finder__map-overlay-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
  }

  .location-finder__map-overlay-item svg {
    color: #fff;
    flex-shrink: 0;
  }

  .location-finder__cities-grid {
    max-height: 350px;
  }
}

.location-finder__cities-grid::-webkit-scrollbar {
  width: 6px;
}

.location-finder__cities-grid::-webkit-scrollbar-track {
  background: #e9ecef;
  border-radius: 3px;
}

.location-finder__cities-grid::-webkit-scrollbar-thumb {
  background: #adb5bd;
  border-radius: 3px;
}

.location-finder__cities-grid::-webkit-scrollbar-thumb:hover {
  background: #6c757d;
}

.price-table-container {
  background: #fff;
  border: 1px solid #dee2e6;
  border-radius: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  margin: 1.5rem 0;
}

.dumpster-table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.dumpster-price-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Inter", sans-serif;
  margin: 0;
}

.dumpster-price-table thead th {
  background-color: var(--secondary-color);
  color: #fff;
  padding: 1rem 0.75rem;
  font-weight: 600;
  font-size: 0.95rem;
  text-align: center;
  letter-spacing: 0.025em;
  border: none;
}

.dumpster-price-table tbody td {
  padding: 0.875rem 0.75rem;
  font-size: 0.9rem;
  color: #333;
  border-bottom: 1px solid #e9ecef;
  transition: background-color 0.2s ease;
}

.dumpster-price-table tbody tr:last-child td {
  border-bottom: none;
}

.dumpster-price-table tbody tr.row-white {
  background-color: #fff;
}

.dumpster-price-table tbody tr.row-grey {
  background-color: #f8f9fa;
}

.dumpster-price-table tbody tr:hover {
  background-color: #f1f3f5;
}

.dumpster-price-table tbody td[data-label]::before {
  content: attr(data-label) ": ";
  font-weight: 600;
  display: none;
}

.price-table-footer {
  padding: 1rem 1.5rem;
  background-color: #f8f9fa;
  border-top: 1px solid #e9ecef;
}

.price-table-disclaimer,
.price-table-updated {
  margin: 0;
  padding: 0.25rem 0;
  font-size: 0.8rem;
  color: #6c757d;
  text-align: center;
  line-height: 1.5;
}

.price-table-disclaimer {
  margin-bottom: 0.25rem;
}

.price-table-disclaimer a {
  color: var(--secondary-color);
  text-decoration: underline;
  transition: color 0.2s ease;
}

.price-table-disclaimer a:hover {
  color: #7a1528;
}

@media (min-width: 768px) {
  .price-table-container {
    margin: 2rem 0;
  }

  .dumpster-price-table thead th {
    padding: 1.125rem 1rem;
    font-size: 1rem;
  }

  .dumpster-price-table tbody td {
    padding: 1rem;
    font-size: 0.95rem;
  }

  .price-table-footer {
    padding: 1.25rem 1.5rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.85rem;
  }
}

@media (min-width: 992px) {
  .price-table-container {
    margin: 2.5rem 0;
  }

  .dumpster-price-table thead th {
    padding: 1.25rem 1.5rem;
    font-size: 1.05rem;
  }

  .dumpster-price-table tbody td {
    padding: 1.125rem 1.5rem;
    font-size: 1rem;
  }

  .price-table-footer {
    padding: 1.5rem 2rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.875rem;
  }
}

@media (max-width: 480px) {
  .price-table-container {
    max-width: 100%;
    box-sizing: border-box;
    margin: 1.25rem 0;
    border-radius: 6px;
    overflow: hidden;
  }

  .dumpster-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .dumpster-price-table {
    width: 100%;
    min-width: 240px;
  }

  .dumpster-price-table thead th {
    padding: 0.7rem 0.6rem;
    font-size: 0.9rem;
  }

  .dumpster-price-table tbody td {
    padding: 0.6rem 0.6rem;
    font-size: 0.9rem;
  }

  .price-table-footer {
    padding: 0.75rem 1rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.8rem;
  }
}

@media (max-width: 425px) {
  .dumpster-price-table thead th {
    padding: 0.65rem 0.55rem;
    font-size: 0.85rem;
  }

  .dumpster-price-table tbody td {
    padding: 0.55rem 0.55rem;
    font-size: 0.85rem;
  }

  .price-table-footer {
    padding: 0.65rem 0.875rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.75rem;
  }
}

@media (max-width: 375px) {
  .price-table-container {
    margin: 1rem 0;
  }

  .dumpster-price-table thead th {
    padding: 0.6rem 0.5rem;
    font-size: 0.8rem;
  }

  .dumpster-price-table tbody td {
    padding: 0.5rem 0.5rem;
    font-size: 0.8rem;
  }

  .price-table-footer {
    padding: 0.6rem 0.75rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.7rem;
  }
}

@media (max-width: 320px) {
  .price-table-container {
    margin: 0.75rem 0;
  }

  .dumpster-price-table {
    min-width: 200px;
  }

  .dumpster-price-table thead th {
    padding: 0.55rem 0.45rem;
    font-size: 0.75rem;
  }

  .dumpster-price-table tbody td {
    padding: 0.45rem 0.45rem;
    font-size: 0.75rem;
  }

  .price-table-footer {
    padding: 0.55rem 0.65rem;
  }

  .price-table-disclaimer,
  .price-table-updated {
    font-size: 0.65rem;
  }
}

/* ======== City page shared styles (intro split, other content, content-styled) ======== */

.dumpster-type-city {
  flex: 0 0 33.333333%;
  max-width: 33.333333%;
}

.city-content {
  margin-bottom: 1rem;
  margin-top: 1rem;
}

/* Hero CTA icon alignment (local pages) */
.post-layout-update .city-head .phone-and-quote-wrapper svg.icon,
.post-layout-update .city-head .phone-and-quote-wrapper svg.quote_icon {
  display: block;
}

.post-layout-update .city-head .phone-and-quote-wrapper svg.quote_icon {
  transform: translateY(-2px);
}

@media only screen and (max-width: 1500px) {
  .dumpster-type-city {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

@media only screen and (max-width: 991px) {
  .dumpster-type-city {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

@media (max-width: 425px) {
  .city-content .wp-caption,
  .city-content .wp-caption.alignleft,
  .city-content .wp-caption.alignright {
    width: 95% !important;
    max-width: 95% !important;
  }

  .city-content img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
  }
}

/* City intro split (text + pricing table) */
.city-intro-split-row { align-items: stretch; margin-bottom: 1.5rem; }
.city-intro-split-col { display: flex; justify-content: center; }
.city-intro-split-inner { width: 100%; }

.city-intro-split-text { align-items: center; }
.city-intro-split-table { align-items: center; }

@media (min-width: 992px) {
  .city-intro-split-table .city-intro-split-inner { max-width: 100%; }
  .city-intro-split-text .city-intro-split-inner { max-width: 100%; }

  .city-intro-split-row .dumpster-price-table thead th {
    padding: 0.9rem 1rem;
    font-size: 0.98rem;
  }

  .city-intro-split-row .dumpster-price-table tbody td {
    padding: 0.8rem 1rem;
    font-size: 0.98rem;
    line-height: 1.4;
  }

  .city-intro-split-row .price-table-footer {
    padding: 0.8rem 1rem;
  }

  .city-intro-split-row .price-table-disclaimer,
  .city-intro-split-row .price-table-updated {
    font-size: 0.8rem;
    line-height: 1.4;
  }
}

@media (min-width: 1550px) {
  .city-intro-split-row .dumpster-price-table thead th {
    padding: 0.85rem 1rem;
    font-size: 0.95rem;
  }

  .city-intro-split-row .dumpster-price-table tbody td {
    padding: 0.75rem 1rem;
    font-size: 0.95rem;
    line-height: 1.35;
  }

  .city-intro-split-row .price-table-footer {
    padding: 0.75rem 1rem;
  }

  .city-intro-split-row .price-table-disclaimer,
  .city-intro-split-row .price-table-updated {
    font-size: 0.78rem;
    line-height: 1.35;
  }
}

.city-intro-text--plain {
  columns: auto;
  column-count: 1;
  -webkit-column-count: 1;
  column-gap: normal;
  max-width: 70ch;
}

.city-intro-text--plain .wp-block-columns {
  display: block !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.city-intro-text--plain .wp-block-column {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 100% !important;
  margin-left: 0 !important;
}

.city-intro-text--plain > :first-child { margin-top: 0; }
.city-intro-text--plain > :last-child { margin-bottom: 0; }

.city-intro-split-text .city-content-variant { height: auto; }
.city-intro-split-table .price-table-container { height: auto; margin-top: 0; margin-bottom: 0; }

.city-content-other {
  margin-top: 2.5rem;
}

@media (min-width: 992px) {
  .city-content-other {
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}

.city-other-split-row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -15px;
  align-items: center;
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
}

.city-other-split-col {
  display: flex;
  justify-content: center;
  flex: 0 0 100%;
  max-width: 100%;
  padding: 0 15px;
  box-sizing: border-box;
}

.city-other-split-inner { width: 100%; }
.city-other-split-text {
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.city-other-split-media {
  align-items: center;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.city-other-split-text .city-content-styled {
  text-align: center;
}

@media (min-width: 992px) {
  .city-other-split-row {
    margin-top: 0;
  }

  .city-other-split-col {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .city-other-split-media-col {
    order: 1;
    padding-top: 0;
    padding-bottom: 0;
  }

  .city-other-split-text-col {
    order: 2;
    padding-top: 0;
    padding-bottom: 0;
  }
}

@media (min-width: 992px) {
  .city-other-split .split-section__half:first-child .split-section__content {
    display: flex;
    justify-content: center;
    width: 100%;
  }
  .city-other-split .split-section__half:first-child .city-other-featured {
    margin: 0 auto;
  }
}

.city-other-featured {
  width: 100%;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
  margin: 0;
  text-align: center;
  aspect-ratio: unset;
  max-height: none;
  height: auto;
}

.city-other-featured img {
  width: 100%;
  height: auto;
  object-fit: unset;
  display: block;
  margin: 0 auto;
  border-radius: 6px;
}

.city-content-styled {
  max-width: 100%;
  margin: 0;
  background: transparent;
  padding: 0;
}

.city-content-styled :is(h2, h3, h4) {
  line-height: 1.15;
  margin: 1.5rem 0 0.75rem;
}

.city-content-styled > :first-child { margin-top: 0; }
.city-content-styled > :last-child { margin-bottom: 0; }

.city-content-styled h2 {
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-family: "Manrope", sans-serif;
  font-weight: 700;
}

.city-content-styled h3 {
  font-size: 1.125rem;
  font-family: "Manrope", sans-serif;
}

.city-content-styled p {
  font-size: 1rem;
  line-height: 1.65;
  color: #1f2937;
  margin: 0 0 1rem;
  font-family: "Inter", sans-serif;
}

.city-content-styled :is(ul, ol) {
  margin: 0 0 1.1rem;
  padding-left: 1.15rem;
}

.city-content-styled li {
  margin: 0.35rem 0;
  line-height: 1.55;
}

.city-content-styled a {
  color: #3666BF;
  font-weight: 500;
}

.city-content-styled a:focus-visible {
  outline: 2px solid rgba(var(--primary-color-rgb), 0.35);
  text-decoration: underline;
  text-underline-offset: 2px;
  outline-offset: 3px;
  border-radius: 4px;
}

.city-content-styled img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}

.city-content-styled blockquote {
  border-left: 4px solid rgba(var(--primary-color-rgb), 0.35);
  padding-left: 1rem;
  margin: 1.25rem 0;
  color: rgba(31, 41, 55, 0.9);
}

@media (min-width: 992px) {
  .city-content-styled p {
    font-size: 1.05rem;
  }
}
