/* ==========================================================================\n   Blue Line Media - Modern UI layer v1\n   Loads AFTER bootstrap.min.css and style.css.\n   Goal: modern Google-inspired spacing, typography, surfaces and controls\n   without changing Bootstrap 3 or page-specific PHP functionality.\n   ========================================================================== */

:root {
  --blm-blue: #0b57d0;
  --blm-blue-hover: #0842a0;
  --blm-blue-soft: #d3e3fd;
  --blm-orange: #f4511e;
  --blm-orange-hover: #d94316;
  --blm-bg: #f7f9fc;
  --blm-surface: #ffffff;
  --blm-surface-soft: #f2f6fa;
  --blm-text: #1f1f1f;
  --blm-muted: #5f6368;
  --blm-border: #dde3ea;
  --blm-border-strong: #c7cdd4;
  --blm-radius-sm: 10px;
  --blm-radius: 16px;
  --blm-radius-lg: 22px;
  --blm-shadow: 0 1px 2px rgba(60, 64, 67, .08), 0 2px 8px rgba(60, 64, 67, .06);
  --blm-shadow-hover: 0 5px 18px rgba(60, 64, 67, .14);
}

/* ---------- Foundation ---------- */
html {
  padding-top: 0 !important;
  background: var(--blm-bg);
}

body {
  padding-top: 74px !important;
  background: var(--blm-bg);
  color: var(--blm-text);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body > .container,
.container {
  background: transparent;
  font-size: 1em; /* neutralize the legacy desktop .container { font-size:1.25em } rule */
}

a {
  color: var(--blm-blue);
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--blm-blue-hover);
  text-decoration: none;
}

hr {
  margin: 34px 0;
  border: 0;
  border-top: 1px solid var(--blm-border);
}

::selection {
  background: var(--blm-blue-soft);
}

@media (min-width: 992px) {
  body > .container,
  .container {
    width: calc(100% - 48px);
    max-width: 1480px;
  }

  /* Main three-column shell used across standard pages. */
  body > .container > .row > .col-md-1.sidebar,
  .container > .row > .col-md-1.sidebar {
    width: 13%;
    padding-left: 8px;
    padding-right: 18px;
  }

  body > .container > .row > .col-md-1.sidebar + .col-md-9,
  .container > .row > .col-md-1.sidebar + .col-md-9 {
    width: 65%;
    padding-left: 30px;
    padding-right: 30px;
  }

  body > .container > .row > .col-md-9 + .col-md-2.sidebar,
  .container > .row > .col-md-9 + .col-md-2.sidebar {
    width: 22%;
    padding-left: 18px;
    padding-right: 8px;
  }
}

/* ---------- Fixed header / main navigation ---------- */
.navbar-fixed-top {
  max-width: none !important;
  background: rgba(255, 255, 255, .96) !important;
  border-bottom: 1px solid rgba(218, 220, 224, .9);
  box-shadow: 0 1px 4px rgba(60, 64, 67, .08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.navbar-fixed-top > .header {
  max-width: 1480px;
  margin: 0 auto;
  border-bottom: 0 !important;
}

.main-menu.navbar {
  position: relative;
  min-height: 72px;
  margin: 0;
  padding: 9px 18px 8px !important;
  border: 0;
  background: transparent;
}

.main-menu .pull-left > a {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
}

.main-menu .pull-left img {
  width: 50px;
  height: 50px;
}

@media (min-width: 992px) {
  .main-menu .navbar-header {
    float: right;
    display: flex;
    align-items: center;
    min-height: 52px;
  }

  #bs-example-navbar-collapse-1.navbar-collapse {
    position: absolute;
    top: 50%;
    left: 50%;
    float: none;
    width: auto;
    padding: 0;
    border: 0;
    transform: translate(-50%, -50%);
  }

  .navbar-nav {
    display: flex;
    align-items: center;
    width: auto !important;
    margin: 0 !important;
    font-size: 24px !important;
  }

  .navbar-nav > li {
    float: none;
    margin: 0 2px !important;
  }
	
  .navbar-default .navbar-nav > li > a.btn.btn-primary {
  	font-size: 24px !important;
  }
}

.navbar-default .navbar-nav > li > a,
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  min-height: 44px;
  padding: 11px 16px !important;
  border-radius: 22px;
  background: transparent;
  color: #3c4043;
  font-weight: 500;
  line-height: 22px;
}

.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background: #eef2f6;
  color: var(--blm-text);
}

/* Keep the existing orange Pricing CTA but make it a modern pill. */
.navbar-default .navbar-nav > li > a.btn.btn-primary {
  width: auto;
  min-width: 98px;
  margin-left: 6px;
  padding: 11px 20px !important;
  border: 0 !important;
  border-radius: 22px;
  background: var(--blm-orange) !important;
  color: #fff !important;
  box-shadow: none;
}

.navbar-default .navbar-nav > li > a.btn.btn-primary:hover,
.navbar-default .navbar-nav > li > a.btn.btn-primary:focus {
  background: var(--blm-orange-hover) !important;
}

.header-icons.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  margin: 0 2px !important;
  padding: 0 !important;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #444746;
  box-shadow: none;
  font-size: 18px !important;
}

.header-icons.btn:hover,
.header-icons.btn:focus {
  background: #eef2f6;
  color: var(--blm-text);
}

.navbar-toggle {
  margin: 6px 0 0 8px;
  border: 0;
  border-radius: 50%;
  background: transparent;
}

.navbar-toggle:hover,
.navbar-toggle:focus {
  background: #eef2f6 !important;
}

.dropdown-menu {
  min-width: 270px;
  padding: 8px;
  border: 1px solid var(--blm-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(60, 64, 67, .18);
  font-size: 14px !important;
}

.dropdown-menu > li > a,
.dropdown-menu li a.nav-pop {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 9px 12px !important;
  border-radius: 10px;
  color: #3c4043;
  line-height: 1.25 !important;
  white-space: normal;
}

.dropdown-menu > li > a br {
  display: none;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.dropdown-menu > li > a.activelink {
  background: #eef2f6 !important;
  color: var(--blm-text) !important;
  text-decoration: none !important;
}

.dropdown-menu .material-symbols-outlined {
  flex: 0 0 23px;
  width: 23px;
  font-size: 21px;
  color: var(--blm-muted);
}

.scrollable-menu {
  max-height: min(70vh, 620px);
}

#collapsePhone,
#collapseSearch,
#collapseShare {
  background: #fff;
  border-top: 1px solid var(--blm-border);
  border-bottom: 1px solid var(--blm-border);
  color: var(--blm-text);
}

#collapsePhone h2 {
  margin: 16px 0;
  color: var(--blm-text);
  font-size: 18px;
  font-weight: 500;
}

#collapseSearch .input-field {
  width: min(560px, calc(100% - 60px));
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--blm-border-strong);
  border-radius: 22px;
  outline: 0;
  font-size: 15px;
}

/* ---------- Breadcrumbs ---------- */
.breadcrumb {
  margin: 0 15px 8px;
  padding: 18px 0 10px;
  border-radius: 0;
  background: transparent;
  color: var(--blm-muted);
  font-size: 13px;
  line-height: 1.4;
}

.breadcrumb > li + li:before {
  padding: 0 8px;
  color: #9aa0a6;
  content: "/";
}

.breadcrumb > li > a {
  color: var(--blm-muted);
}

.breadcrumb > li > a:hover,
.breadcrumb > li > a:focus {
  color: var(--blm-blue);
}

.breadcrumb > .active {
  color: #3c4043;
}

/* ---------- Left format navigation ---------- */
.menu-sidebar {
  margin: 8px 0 32px;
  padding: 0;
  list-style: none;
  line-height: 1.2;
}

.menu-sidebar > li {
  margin: 2px 0;
}

.menu-sidebar li a,
.menu-sidebar li a.nav-pop {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 11px;
  min-height: 44px;
  padding: 9px 13px !important;
  border-radius: 22px;
  color: #3c4043 !important;
  font-size: 14px !important;
  font-weight: 500;
  line-height: 1.2 !important;
  text-align: left !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}

.menu-sidebar li a br {
  display: none;
}

.menu-sidebar li a .material-symbols-outlined {
  flex: 0 0 24px;
  width: 24px;
  font-size: 22px;
  font-weight: 400;
  color: #5f6368;
  text-align: center;
}

.menu-sidebar li a:hover,
.menu-sidebar li a:focus {
  background: #eef2f6 !important;
  color: var(--blm-text) !important;
}

.menu-sidebar li a.activelink,
.menu-sidebar li a.activelink:hover,
.menu-sidebar li a.activelink:focus,
a.activelink {
  background: var(--blm-blue-soft) !important;
  color: #174ea6 !important;
  text-decoration: none !important;
}

.menu-sidebar li a.activelink .material-symbols-outlined {
  color: #174ea6;
}

/* Preserve the existing hover-preview functionality, but modernize the popover. */
.menu-sidebar .nav-pop img {
  left: calc(100% + 10px) !important;
  top: 50% !important;
  width: 250px;
  max-width: 250px;
  height: auto;
  transform: translateY(-50%);
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 30px rgba(60, 64, 67, .22);
  z-index: 1100;
}

/* ---------- Page titles and text hierarchy ---------- */
.page-header {
  margin: 12px 0 28px;
  padding: 0;
  border: 0;
}

.page-header h1 {
  margin: 0;
  color: var(--blm-text);
  font-size: 38px;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.45px;
}

.page-header h1 span {
  font-weight: 500;
}

.col-md-9 > h1,
.col-md-9 > h2,
.col-md-9 > h3,
.campaigns-container > h3:first-child {
  color: var(--blm-text);
}

.campaigns-container > h3:first-child {
  margin: 12px 0 24px;
  padding-left: 0;
  font-size: 32px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.3px;
}

p,
li {
  color: #303134;
}

.text-muted,
small {
  color: var(--blm-muted) !important;
}

/* ---------- Section jump navigation ---------- */
.btn-group-justified {
  display: flex !important;
  gap: 4px;
  width: 100%;
  margin: 0 0 28px;
  padding: 5px;
  border: 1px solid #e6ebf0;
  border-radius: 18px;
  background: #eef2f6;
}

.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  display: flex;
  flex: 1 1 0;
  width: auto;
}

.btn-group-justified > .btn {
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 46px;
  padding: 9px 10px;
  border: 0 !important;
  border-radius: 13px !important;
  background: transparent !important;
  color: #444746 !important;
  box-shadow: none !important;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.btn-group-justified > .btn:hover,
.btn-group-justified > .btn:focus {
  background: #fff !important;
  color: var(--blm-blue) !important;
}

.btn-group-justified > .btn br {
  display: none;
}

.btn-group-justified .btn .glyphicon {
  margin-right: 1px;
  font-size: 17px !important;
}

/* ---------- Buttons ---------- */
.btn {
  border-radius: 999px;
  box-shadow: none;
  font-weight: 500;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.btn:not(.btn-xs):not(.btn-sm):not(.btn-lg) {
  padding: 9px 16px;
}

.btn-primary,
.btn-info {
  border-color: var(--blm-blue);
  background: var(--blm-blue);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-info:hover,
.btn-info:focus {
  border-color: var(--blm-blue-hover);
  background: var(--blm-blue-hover);
  color: #fff;
}

.btn-default {
  border-color: var(--blm-border-strong);
  background: #fff;
  color: #3c4043;
}

.btn-default:hover,
.btn-default:focus {
  border-color: #aeb4ba;
  background: #f8fafd;
  color: var(--blm-text);
}

.btn-success {
  border-color: #188038;
  background: #188038;
}

.btn-xs {
  padding: 5px 10px;
  font-size: 12px !important;
}

.btn-sm {
  padding: 7px 13px;
}

.btn-lg {
  padding: 11px 20px;
  font-size: 16px !important;
}

/* ---------- Image format cards / carousels ---------- */
.imageGalleryNew,
.imageGalleryNewCarousel,
.imageGalleryNewCarouselSingle {
  margin-top: 8px;
  margin-bottom: 34px;
}

.imageGalleryNew a,
.imageGalleryNewCarousel .carousel-wrap {
  padding: 9px;
}

.imageGalleryNew a div,
.imageGalleryNewCarousel .carousel-wrap .carousel-inner,
.imageGalleryNewCarouselSingle .carousel-wrap .carousel-inner,
.image-gallery-single,
.image-75-percent {
  overflow: hidden;
  border-radius: 18px !important;
  background-color: #e9eef3;
  box-shadow: var(--blm-shadow);
}

.imageGalleryNew img,
.imageGalleryNewCarousel img,
.imageGalleryNewCarouselSingle img,
.campaigns-container img {
  border-radius: 16px;
}

.imageGalleryNew a div,
.imageGalleryNewCarousel .carousel-wrap .carousel-inner {
  transition: transform .18s ease, box-shadow .18s ease;
}

.imageGalleryNew a:hover div,
.imageGalleryNewCarousel .carousel-wrap:hover .carousel-inner {
  transform: translateY(-2px);
  box-shadow: var(--blm-shadow-hover);
}

.imageGalleryNew a span,
.imageGalleryNewCarousel .carousel-wrap > a:last-child > span {
  left: 18px !important;
  right: 18px;
  bottom: 18px !important;
  width: auto !important;
  padding: 10px 14px;
  transform: none !important;
  border: 1px solid rgba(218, 220, 224, .85);
  border-radius: 13px;
  background: rgba(255, 255, 255, .94) !important;
  color: #202124;
  box-shadow: 0 2px 8px rgba(60, 64, 67, .12);
  opacity: 1 !important;
  font-size: 16px !important;
  font-weight: 500;
  line-height: 1.3;
}

.carousel {
  border-radius: 18px;
}

.carousel-inner {
  border-radius: 18px;
}

.carousel-control {
  opacity: .72;
}

#thumbcarousel {
  margin-top: 10px;
  padding: 6px;
  border-radius: 14px;
  background: #eef2f6;
}

#thumbcarousel .thumb img {
  border-radius: 10px;
}

/* ---------- Standard cards / Bootstrap panels ---------- */
.panel,
.panel.panel-default {
  border: 1px solid var(--blm-border);
  border-radius: var(--blm-radius-lg);
  background: var(--blm-surface);
  box-shadow: none;
}

.panel-default > .panel-heading,
.panel-heading {
  padding: 18px 22px;
  border-bottom: 1px solid var(--blm-border);
  border-radius: var(--blm-radius-lg) var(--blm-radius-lg) 0 0;
  background: #fff !important;
  color: var(--blm-text) !important;
}

.panel-title,
.panel-heading .panel-title,
.panel-heading h2,
.panel-heading h3 {
  margin: 0;
  color: var(--blm-text) !important;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.35;
}

.panel-body {
  padding: 22px;
}

.sidebar .panel {
  margin-bottom: 24px;
  border-radius: 20px;
  box-shadow: var(--blm-shadow);
}

/* The first right-sidebar module is Get Pricing. Preserve brand orange as an accent instead of a solid bar. */
.col-md-2.sidebar > .row.panel:first-child {
  overflow: hidden;
  border-top: 4px solid var(--blm-orange);
}

.col-md-2.sidebar > .row.panel:first-child > .panel-heading,
.col-md-2.sidebar > .row.panel:first-child > .panel-heading[style] {
  background: #fff !important;
  color: var(--blm-text) !important;
}

.col-md-2.sidebar > .row.panel:first-child .panel-title,
.col-md-2.sidebar > .row.panel:first-child .panel-title[style] {
  color: var(--blm-text) !important;
  font-size: 21px;
}

/* Main page section panels (Description, Rates, Specs, FAQ, etc.). */
.collapseContainer > .panel {
  overflow: visible;
  margin: 0 0 24px;
  padding-bottom: 0 !important;
  border: 1px solid var(--blm-border) !important;
  border-radius: var(--blm-radius-lg) !important;
  background: #fff;
  box-shadow: none;
}

.collapseContainer > .panel > h2,
.collapseContainer .panel h2 {
  margin: 0;
  padding: 20px 22px !important;
  border-radius: var(--blm-radius-lg) var(--blm-radius-lg) 0 0 !important;
  background: #fff !important;
  color: var(--blm-text);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.35;
}

.collapseContainer > .panel > h2:hover {
  background: #f8fafd !important;
}

.collapseContainer > .panel > .collapse,
.collapseContainer > .panel > .collapsing {
  padding: 0 22px 26px;
  border-radius: 0 0 var(--blm-radius-lg) var(--blm-radius-lg);
}

.collapseContainer > .panel > .collapse.in {
  border-top: 1px solid #edf0f3;
  padding-top: 20px;
}

.collapseContainer h2 .indicator {
  color: var(--blm-muted) !important;
  font-size: 15px !important;
}

/* ---------- Forms ---------- */
.form-control,
input.form-control,
select.form-control,
textarea.form-control {
  min-height: 46px;
  padding: 10px 13px;
  border: 1px solid var(--blm-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--blm-text);
  box-shadow: none;
  font-size: 15px !important;
  line-height: 1.45;
}

textarea.form-control {
  min-height: 120px;
}

.form-control:focus {
  border-color: var(--blm-blue);
  outline: 0;
  box-shadow: 0 0 0 1px var(--blm-blue);
}

label,
.control-label {
  margin-bottom: 6px;
  color: #3c4043;
  font-size: 14px;
  font-weight: 500;
}

/* Override the inline form spacing emitted by get-free-quote-form-sidebar.php. */
.sidebar form .form-control,
.sidebar form input.form-control,
.sidebar form select.form-control {
  min-height: 46px;
  height: auto;
  margin-bottom: 15px !important;
  padding: 10px 12px !important;
}

.sidebar form {
  padding-bottom: 4px;
}

.sidebar form > br:first-of-type {
  display: none;
}

.sidebar form .panel {
  margin: 8px 0 16px;
  border-radius: 14px;
  box-shadow: none;
}

.sidebar form .panel-heading {
  padding: 12px 14px;
  border-radius: 14px 14px 0 0;
}

.sidebar form .panel-title {
  font-size: 15px;
}

.sidebar form .panel-body {
  padding: 14px;
}

.sidebar form .g-recaptcha {
  max-width: 100%;
  margin: 16px 0 !important;
  transform-origin: 0 0;
}

.sidebar form .btn-success.btn-block {
  min-height: 48px;
  margin: 12px 0 8px !important;
  border: 0;
  background: var(--blm-orange);
  color: #fff;
}

.sidebar form .btn-success.btn-block:hover,
.sidebar form .btn-success.btn-block:focus {
  background: var(--blm-orange-hover);
}

/* ---------- Billboard/map search ---------- */
.filter-container {
  margin: 4px 0 16px !important;
  padding: 16px 12px 8px;
  border: 1px solid var(--blm-border);
  border-radius: 16px;
  background: #f8fafd;
}

.filter-container .control-label {
  margin-bottom: 6px;
}

#postal-code-options.dropdown-menu {
  padding: 6px;
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(60, 64, 67, .18);
}

#postal-code-options li {
  margin: 2px 0;
  padding: 8px 10px !important;
  border-radius: 8px;
}

#postal-code-options li:hover {
  background: #eef2f6 !important;
}

.selected-pills {
  margin: 8px 0 12px;
}

.selected-pills .label {
  display: inline-flex;
  align-items: center;
  margin: 3px;
  padding: 7px 11px !important;
  border-radius: 999px !important;
  background: var(--blm-blue) !important;
  font-size: 13px !important;
  font-weight: 500;
}

#txtCurAdd.form-control {
  /* Reserve enough room for Search, Reset and Copy-Link controls on desktop. */
  width: calc(100% - 180px) !important;
  max-width: 660px;
  margin-right: 4px;
  vertical-align: middle;
}

#txtCurAdd.form-control ~ .btn {
  min-width: 42px;
  padding-left: 12px;
  padding-right: 12px;
  vertical-align: middle;
}

#radius-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 10px !important;
  color: var(--blm-muted);
}

#radius-filter.form-control {
  min-height: 40px;
  height: 40px;
  padding-top: 6px;
  padding-bottom: 6px;
  border-radius: 20px;
}

#clear-filters-link {
  color: #b3261e !important;
}

#filter-results-count {
  color: var(--blm-muted) !important;
}

#divMap {
  overflow: hidden;
  margin-top: 14px;
  border: 1px solid var(--blm-border);
  border-radius: 18px;
  background: #e9eef3;
}

.alert {
  border: 0;
  border-radius: 14px;
  box-shadow: none;
}

.alert-info {
  background: #e8f0fe;
  color: #174ea6;
}

.alert-warning {
  background: #fef7e0;
  color: #7a4f01;
}

/* ---------- Tables ---------- */
.table {
  margin: 18px 0 24px;
  border: 1px solid var(--blm-border);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  font-size: 15px;
}

.table > thead > tr > th {
  padding: 13px 14px;
  border-bottom: 1px solid var(--blm-border);
  background: #f8fafd;
  color: #3c4043;
  font-size: 14px !important;
  font-weight: 600;
  vertical-align: top;
}

.table > tbody > tr > th,
.table > tbody > tr > td,
.panel .panel-body .table > tbody > tr > th,
.panel .panel-body .table > tbody > tr > td {
  padding: 13px 14px;
  border-top: 1px solid #edf0f3;
  color: #303134;
  font-size: 15px !important;
  vertical-align: top;
}

.table > tbody > tr:first-child > th,
.table > tbody > tr:first-child > td {
  border-top: 0;
}

.table > tbody > tr:hover > td,
.table > tbody > tr:hover > th {
  background: #fbfcfe;
}

/* ---------- Jumbotrons, wells and supporting surfaces ---------- */
.jumbotron {
  margin: 24px 0;
  padding: 26px 28px !important;
  border: 1px solid var(--blm-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: none;
}

.jumbotron h2,
.jumbotron h3 {
  margin-top: 0;
  color: var(--blm-text);
  font-weight: 500;
}

.jumbotron p {
  font-size: 16px;
  line-height: 1.6;
}

.well {
  border: 1px solid #e5e9ee;
  border-radius: 16px;
  background: #f8fafd;
  box-shadow: none;
}

/* ---------- Campaign/news index and article pages ---------- */
.campaigns-new.list-group {
  margin-top: 16px;
}

.campaigns-new .list-group-item {
  min-height: 108px;
  margin: 0 0 10px;
  padding: 14px;
  border: 1px solid var(--blm-border);
  border-radius: 16px !important;
  background: #fff;
  color: var(--blm-text);
  box-shadow: none;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.campaigns-new .list-group-item:hover,
.campaigns-new .list-group-item:focus {
  background: #fbfcfe;
  box-shadow: var(--blm-shadow-hover);
  transform: translateY(-1px);
}

.campaigns-new img.img-thumbnail {
  border: 0;
  border-radius: 10px;
  background: transparent;
}

.campaigns-new p {
  color: #303134;
  line-height: 1.45;
}

.campaigns-container .carousel-inner {
  overflow: hidden;
  border-radius: 18px;
  background: #e9eef3;
}

.campaigns-container .carousel-control {
  border-radius: 18px;
}

/* ---------- Footer ---------- */
.pricing-footer {
  margin-top: 42px;
}

.pricing-footer .btn,
.pricing-footer .btn[style] {
  max-width: 520px;
  margin: 20px auto 28px !important;
  border: 0 !important;
  border-radius: 999px;
  background: var(--blm-orange) !important;
  color: #fff !important;
  box-shadow: none;
  font-size: 18px !important;
  font-weight: 500;
}

.pricing-footer .btn:hover,
.pricing-footer .btn:focus {
  background: var(--blm-orange-hover) !important;
}

.footer-menu,
.footer-menu.border,
.footer-menu.well {
  margin: 0 0 28px;
  padding: 30px 26px;
  border: 0 !important;
  border-radius: 24px;
  background: #eef3f8;
  box-shadow: none !important;
}

.footer-menu h3 {
  margin-top: 0;
  margin-bottom: 12px;
  color: var(--blm-text);
  font-size: 17px;
  font-weight: 600;
}

.footer-menu li,
.footer-menu li a {
  color: #4a4d51;
  font-size: 14px;
  line-height: 1.75;
}

.footer-menu li a:hover,
.footer-menu li a:focus {
  color: var(--blm-blue);
}

.footer-menu + .row,
.footer-menu ~ .row {
  color: var(--blm-muted);
}

.footer-menu ~ .row p,
.footer-menu + .row p {
  color: var(--blm-muted);
  font-size: 13px;
  line-height: 1.55;
}

#back-to-top {
  right: 22px;
  bottom: 22px;
  width: 46px;
  height: 46px;
  padding: 12px 0;
  border: 0;
  border-radius: 50%;
  background: var(--blm-blue);
  box-shadow: 0 4px 14px rgba(60, 64, 67, .22);
}

/* ---------- Utility/legacy cleanup ---------- */
.sell-sheet {
    position: absolute !important;
    top: 75px !important;
    right: 125px !important;
    z-index: 1001;
    white-space: nowrap;
    visibility: hidden;
}

.question-mark,
.need-pics-question {
  color: var(--blm-blue);
}

.answer-rates,
.need-pics-answer {
  border: 1px solid var(--blm-border) !important;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(60, 64, 67, .16);
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px) and (min-width: 992px) {
  body > .container,
  .container {
    width: calc(100% - 30px);
  }

  body > .container > .row > .col-md-1.sidebar,
  .container > .row > .col-md-1.sidebar {
    width: 14%;
    padding-right: 12px;
  }

  body > .container > .row > .col-md-1.sidebar + .col-md-9,
  .container > .row > .col-md-1.sidebar + .col-md-9 {
    width: 64%;
    padding-left: 20px;
    padding-right: 20px;
  }

  body > .container > .row > .col-md-9 + .col-md-2.sidebar,
  .container > .row > .col-md-9 + .col-md-2.sidebar {
    width: 22%;
    padding-left: 12px;
  }

  .menu-sidebar li a,
  .menu-sidebar li a.nav-pop {
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 13px !important;
  }

  .menu-sidebar li a .material-symbols-outlined {
    flex-basis: 21px;
    width: 21px;
    font-size: 20px;
  }
}

@media (max-width: 991.98px) {
  .container {
    width: auto;
    margin-left: 15px;
    margin-right: 15px;
  }

  .col-md-9 {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .page-header {
    margin-top: 8px;
  }

  .page-header h1 {
    font-size: 34px;
  }
}

@media (max-width: 991.98px) {
  /* Keep Bootstrap 3 in collapsed/mobile navbar mode through tablet widths.
     Bootstrap's native breakpoint is 768px, which is too narrow for BLM's large Ads/See menus. */
  .main-menu .navbar-header {
    float: none !important;
  }

  .navbar-toggle {
    display: block !important;
  }

  #bs-example-navbar-collapse-1.navbar-collapse {
    clear: both;
    float: none !important;
  }

  #bs-example-navbar-collapse-1.navbar-collapse.collapse {
    display: none !important;
    height: auto !important;
    overflow: visible !important;
  }

  #bs-example-navbar-collapse-1.navbar-collapse.collapse.in {
    display: block !important;
    height: auto !important;
    max-height: calc(100vh - 70px) !important;
    max-height: calc(100dvh - 70px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  #bs-example-navbar-collapse-1.collapsing {
    display: block !important;
    max-height: calc(100vh - 70px) !important;
    max-height: calc(100dvh - 70px) !important;
    overflow: hidden !important;
  }

  .navbar-nav {
    float: none !important;
  }

  .navbar-nav > li {
    float: none !important;
  }

  /* Mobile/tablet dropdowns behave like accordion sections inside the
     hamburger sheet. Keep them in normal document flow so they expand the
     white navigation panel instead of floating over page content. The outer
     navbar-collapse is the single scrolling surface. */
  .navbar-nav .open .dropdown-menu {
    position: static !important;
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 6px 0 8px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .navbar-nav .dropdown-menu.scrollable-menu {
    max-height: none !important;
    overflow: visible !important;
  }

  body {
    padding-top: 62px !important;
    font-size: 15px;
  }

  .navbar-fixed-top > .header {
    width: 100%;
  }

  .main-menu.navbar {
    min-height: 60px;
    padding: 5px 10px !important;
  }

  .main-menu .pull-left img {
    width: 48px;
    height: 48px;
  }

  .main-menu .navbar-header {
    margin: 0;
  }

  #bs-example-navbar-collapse-1.navbar-collapse {
    position: static;
    transform: none;
    width: auto;
    margin: 6px -10px -5px;
    padding: 8px 12px calc(28px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--blm-border);
    background: #fff;
    box-shadow: 0 8px 18px rgba(60, 64, 67, .12);
  }

  .navbar-nav {
    width: 100% !important;
    margin: 0 !important;
  }

  .navbar-default .navbar-nav > li > a,
  .navbar-default .navbar-nav > li > a.btn.btn-primary {
    width: 100%;
    margin: 2px 0;
    text-align: left;
    font-size: 15px !important;
	  
  }

  .dropdown-menu {
    min-width: 100%;
    border: 0;
    border-radius: 12px;
    box-shadow: none;
  }

  .breadcrumb {
    margin-left: 10px;
    margin-right: 10px;
    padding-top: 14px;
  }

  .page-header h1,
  .campaigns-container > h3:first-child {
    font-size: 29px;
  }

  .btn-group-justified {
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .btn-group-justified > .btn {
    flex: 0 0 auto;
    min-width: 112px;
  }

  .imageGalleryNew a,
  .imageGalleryNewCarousel .carousel-wrap {
    padding: 6px;
  }

  .imageGalleryNew a span,
  .imageGalleryNewCarousel .carousel-wrap > a:last-child > span {
    left: 12px !important;
    right: 12px;
    bottom: 12px !important;
    padding: 8px 10px;
    font-size: 14px !important;
  }

  .collapseContainer > .panel,
  .panel,
  .panel.panel-default,
  .jumbotron,
  .well {
    border-radius: 16px;
  }

  .collapseContainer > .panel > h2,
  .collapseContainer .panel h2 {
    padding: 17px 16px !important;
    border-radius: 16px 16px 0 0 !important;
    font-size: 20px;
  }

  .collapseContainer > .panel > .collapse,
  .collapseContainer > .panel > .collapsing {
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 20px;
  }

  .panel-heading,
  .panel-body {
    padding-left: 16px;
    padding-right: 16px;
  }

  .table {
    font-size: 14px;
  }

  .table > thead > tr > th,
  .table > tbody > tr > th,
  .table > tbody > tr > td {
    padding: 10px 9px;
    font-size: 14px !important;
  }

  #txtCurAdd.form-control {
    display: block !important;
    width: 100% !important;
    max-width: none;
    margin: 0 0 8px;
  }

  #divMap {
    border-radius: 14px;
  }

  .footer-menu,
  .footer-menu.border,
  .footer-menu.well {
    padding: 24px 18px;
    border-radius: 18px;
  }
}

/* Print should remain content-first and avoid decorative backgrounds/shadows. */
@media print {
  body,
  .container {
    background: #fff !important;
  }

  .panel,
  .jumbotron,
  .well,
  .footer-menu,
  .table {
    box-shadow: none !important;
  }
}

/* V1.3: Center expanded header utility content (search/share) */
@media (min-width: 768px) {
  #collapseSearch .search-wrapper {
    text-align: center;
  }

  #collapseSearch #search-form {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: min(760px, calc(100% - 80px));
    margin: 0 auto;
  }

  #collapseSearch .input-field {
    flex: 1 1 auto;
    width: auto;
    max-width: 680px;
  }

  #collapseShare .sharethis-inline-share-buttons,
  #collapseShare .st-inline-share-buttons {
    text-align: center !important;
  }
}

/* ==========================================================
   V1.9 — Keep desktop mega dropdowns inside the viewport
   ========================================================== */
@media (min-width: 992px) {
  /* The legacy stylesheet makes these menus 875px wide. Anchoring an
     875px menu to the Ads/See <li> can push its right edge outside a
     992–1200px viewport. Center the mega menu on the viewport instead. */
  .navbar-nav .dropdown-menu.scrollable-menu {
    position: fixed !important;
    top: 72px !important;
    left: 50% !important;
    right: auto !important;
    width: min(875px, calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px) !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    overflow-x: hidden !important;
  }
}

/* Mobile search fit fix */
@media (max-width: 991.98px) {
    #collapseSearch #search-form {
        display: flex;
        width: calc(100% - 30px);
    }

    #collapseSearch #query {
        flex: 1;
        min-width: 0;
        width: auto !important;
        box-sizing: border-box;
    }

    #collapseSearch .search-button {
        flex-shrink: 0;
    }
}

/* Mobile horizontal-nav scroll cue */
@media (max-width: 767.98px) {
    .btn-group-justified {
        position: relative;
        overflow-y: hidden;
        white-space: nowrap;
        padding-right: 28px;
    }

    .btn-group-justified::after {
        content: "›";
        position: sticky;
        right: 0;
        display: inline-block;
        padding: 6px 8px;
        font-size: 24px;
        font-weight: 500;
        background: linear-gradient(to right, transparent, #fff 45%);
        pointer-events: none;
    }
}

/* Mobile Google Maps InfoWindow fit */
@media (max-width: 575.98px) {

    .gm-style .gm-style-iw-c {
        width: calc(100vw - 85px) !important;
        max-width: 330px !important;
        padding: 10px !important;
    }

    .gm-style .gm-style-iw-d {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .billboard-map-info {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
        overflow: hidden;
    }

    .billboard-map-info ul,
    .billboard-map-info li {
        max-width: 100%;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .billboard-map-info .billboard-image-wrap {
        width: 100% !important;
        max-width: 178px;
    }
}