/* ==========================================================================
   Arrow Lift - Global Overrides (consolidated + order-proofed)
   --------------------------------------------------------------------------
   Sources: custom-overrides.css + customizer.css (WP Customizer "Additional CSS").
   Landing-template styles live in cleaned-landing-page.css.

   NitroPack note: this stack is combined/reordered/inlined, so any rule that
   depends on source order to beat an equal-specificity rule is fragile. Rules
   that intentionally out-specify a same-specificity theme rule are tagged
   [order-proofed] inline. The responsive sections (10-11) use a deliberate
   pattern: base selector plain, mobile override `body`-prefixed, so the mobile
   rule wins by specificity rather than order.

   TABLE OF CONTENTS
   -----------------
   1.  Fonts and Base Typography
   2.  Buttons and CTAs
   3.  Header and Navigation
   4.  Header Search
   5.  Global Layout and Page Structure
   6.  Page Titles
   7.  Home Page Sections and Heroes
   8.  Card Layouts
   9.  Forms
   10. Locations, Lists, and Contact Layouts
   11. Search Results
   12. Content, Posts, Featured Content, and Reviews
   13. Utility Classes
   14. Plugins, Embeds, and Miscellaneous
   15. Visibility Helpers
   16. Responsive Header
   17. Footer and Footer Widgets
   ========================================================================== */

@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,600,700&display=swap');
@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap');

/* ==========================================================================
   1. Fonts and Base Typography
   ========================================================================== */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .genesis-nav-menu {
  font-family: 'Roboto', sans-serif;
}

body .genesis-nav-menu {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

html body {
  color: #555;
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  overflow-x: hidden;
}

html body blockquote {
  color: #555;
}

form label {
  color: #000;
}

.content li {
  margin-bottom: 8px;
}

/* ==========================================================================
   2. Buttons and CTAs
   ========================================================================== */
.editor-styles-wrapper .wp-block-button__link,
.wp-block-button__link,
.simple-button,
.wpforms-submit,
.cta-button {
  background-color: #c00000 !important;
  border: none !important;
  border-radius: 80px;
  color: #fff !important;
  display: inline-block;
  font-size: 16px;
  margin: 4px 2px;
  padding: 6px 25px !important;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease-in-out;
}

.editor-styles-wrapper .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-button__link:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.simple-button:hover,
.simple-button:focus,
.wpforms-submit:hover,
.wpforms-submit:focus,
.cta-button:hover,
.cta-button:focus {
  background-color: #a00000 !important;
  color: #fff !important;
  outline: none;
  text-decoration: none !important;
}

.editor-styles-wrapper .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline>.wp-block-button__link {
  background-color: transparent !important;
  border: 2px solid #c00000 !important;
  border-radius: 80px;
  color: #c00000 !important;
  padding: 6px 25px !important;
  transition: all 0.2s ease-in-out;
}

.editor-styles-wrapper .wp-block-button.is-style-outline .wp-block-button__link:hover,
.editor-styles-wrapper .wp-block-button.is-style-outline .wp-block-button__link:focus,
.wp-block-button.is-style-outline>.wp-block-button__link:hover,
.wp-block-button.is-style-outline>.wp-block-button__link:focus {
  background-color: #c00000 !important;
  border-color: #c00000 !important;
  color: #fff !important;
  text-decoration: none !important;
}



/* [order-proofed] The theme's `.enterprise-pro-red a` (0,2,0) outspecifies plain
   `a.cta-button` (0,1,1) and would tint button text red on red-theme pages, so the
   body.enterprise-pro-red form forces the intended white. If unsure white was
   already rendering, eyeball one red-theme page to confirm nothing shifts. */
a.cta-button,
body.enterprise-pro-red a.cta-button {
  font-size: 18px;
  font-weight: 600;
}

/* a.cta-button:hover,
body.enterprise-pro-red a.cta-button:hover {
  background-color: #a00000;
  color: #fff;
} */

.read-more-wrapper {
  text-align: end;
}

.read-more-button {
  border-radius: 4px;
  display: inline-block;
  font-weight: 600;
  margin-top: 0.75rem;
  padding: 0.5rem 0.9rem;
  text-decoration: none;
}

.free-consultation-block {
  margin: 0;
}

.wp-block-button.glass-button {
  border-radius: 12px;
  display: inline-block;
  overflow: hidden;
  padding: 10px;
  transition: transform 0.3s ease;
}

.wp-block-button.glass-button .wp-block-button__link {
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  color: #fff !important;
  display: block;
  font-weight: 600;
  padding: 15px 30px;
  text-decoration: none;
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-button.glass-button:hover {
  transform: translateY(-2px);
}

.wp-block-button.glass-button .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

/* ==========================================================================
   3. Header and Navigation
   ========================================================================== */
body .site-header .wrap {
  padding: 20px 20px 20px 10px;
}

body .site-header .widget-area {
  padding-top: 20px;
}

body .genesis-nav-menu a {
  padding: 20px;
}

body.enterprise-pro-red .genesis-nav-menu .current-menu-item {
  background-color: #c00000;
  color: #fff;
}

/* [order-proofed] Theme sets this exact selector to #c00000 at (0,4,0); the
   `body` prefix (0,4,1) wins without needing !important. */
body.enterprise-pro-red .genesis-nav-menu .current-menu-item>a {
  color: #fff;
}

/* [order-proofed] Kept the original broad reach (.menu .menu-item a:hover) so
   footer/widget menus keep their hover; `body` raises specificity above the
   theme's nav-hover rules without scoping to a single body class. */
body .menu .menu-item a:hover {
  background-color: #c00000;
  color: #fff;
}

nav.nav-primary .wrap {
  max-width: 1140px;
}

body .header-wrapper .textwidget {
  align-items: end;
  flex-direction: column-reverse;
  gap: 20px;
}

/* ==========================================================================
   4. Header Search
   ========================================================================== */
.header-search {
  display: inline-block;
  position: relative;
}

.search-form-minimal {
  align-items: center;
  display: flex;
}

.search-field-minimal {
  border: 1px solid #ccc;
  border-radius: 4px 0 0 4px;
  border-right: none;
  box-sizing: border-box;
  color: #333;
  height: 32px;
  padding: 5px 12px;
}

.search-submit-minimal {
  align-items: center;
  background: #aaa !important;
  border: 1px solid #ccc;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  display: flex;
  height: 32px;
  justify-content: center;
  padding: 0 10px;
}

.search-submit-minimal:hover {
  background: #666 !important;
}

#mobile-search-icon,
.header-search {
  margin: -10px 0 12px;
}

#mobile-search-link {
  color: #333 !important;
}

/* ==========================================================================
   5. Global Layout and Page Structure
   ========================================================================== */
/* [order-proofed] Theme sets `.site-inner { background-color:#f5f5f5 }` at the
   same (0,1,0); `body` (0,1,1) makes white deterministic under reorder. */
body .site-inner {
  background-color: #fff;
}

.page .site-inner {
  border-top: none;
  padding-top: 0;
}

.page .entry {
  border: none;
  box-shadow: none;
  padding-top: 0;
}

.alignwide {
  margin-left: 0;
  margin-right: 0;
  max-width: 100vw;
}

.alignfull {
  margin-left: calc(-100vw / 2 + 100% / 2);
  margin-right: calc(-100vw / 2 + 100% / 2);
  max-width: 100vw;
}

.alignfull img {
  width: 100vw;
}

body .page .featured-content .entry-header {
  background-color: #fff;
  margin: inherit;
  max-width: inherit;
}

/* ==========================================================================
   6. Page Titles
   ========================================================================== */
.page .entry>.entry-header:has(> h1.entry-title) {
  background-color: #f6f6f6;
  border-bottom: none;
  margin: 0;
  margin-left: calc(-100vw / 2 + 50%);
  margin-right: calc(-100vw / 2 + 50%);
  max-width: 100vw;
  padding-block: clamp(18px, 4vw, 48px);
}

.page .entry>.entry-header>h1.entry-title {
  font-size: clamp(26px, 4vw, 44px);
  line-height: 1.15;
  margin: 0;
  margin-inline: auto;
  max-width: 1140px;
  padding-inline: clamp(16px, 5vw, 56px);
}

.page-header {
  font-size: clamp(1.5rem, 4vw, 2.25rem);
}

@media (max-width: 768px) {
  body .page-header {
    font-size: 1.90rem;
  }
}

.page-title {
  background-color: #f6f6f6;
  padding: 3% 0;
}

.page-title-image {
  margin-bottom: 34px;
  padding: 20% 0;
}

/* ==========================================================================
   7. Home Page Sections and Heroes
   ========================================================================== */
.home-top {
  background-color: #f6f6f6;
}

body .home-top .widget {
  margin-bottom: 0;
  max-height: 600px;
}

.home-top .textwidget {
  background-color: #f6f6f6;
  padding: 20% 2%;
}

@media only screen and (min-width: 770px) {
  .home-top .widget_media_image div {
    display: inline-block;
    position: relative;
  }

  .home-top .widget_media_image div::before {
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(249, 249, 249, 0) 82%, rgba(246, 246, 246, 1) 96%);
    content: '';
    height: 100%;
    left: 0;
    max-height: 600px;
    position: absolute;
    top: 0;
    width: 100%;
  }
}

.home-extra-section-1 {
  background-color: #f6f6f6;
  border-top: 2px solid #f6f6f6;
  font-size: 1.1rem;
  line-height: 1.7;
  padding: 5%;
}

.home-extra-section-1 .textwidget {
  margin: auto;
  width: 96%;
}

.home-extra-section-1 .widget {
  margin-bottom: 0;
}

.home-extra-section-1 ul {
  margin: 6%;
}

.home-extra-section-2 {
  border-top: 2px solid #ececec;
  padding-top: 40px;
}

.home-extra-section-2 .widget-title {
  border-bottom: none;
  font-size: 2.3rem;
  font-weight: 700;
  text-align: center;
}

.home-bottom {
  padding-top: 40px;
}

body .home-bottom .widget {
  border: none;
  box-shadow: none;
  margin-top: 30px;
}

.home-top-hero-block .home-hero-image-col .gb-block-layout-column-inner,
.section-hero-block .section-hero-image-col .gb-block-layout-column-inner {
  height: 100%;
}

.home-top-hero-block .home-hero-image-col #home-top-image,
.section-hero-block .section-hero-image-col #section-hero-image {
  height: 100%;
  margin: 0;
}

.home-top-hero-block .home-hero-image-col #home-top-image img,
.section-hero-block .section-hero-image-col #section-hero-image img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

@media only screen and (max-width: 900px) {

  .home-top-hero-block.gb-layout-columns-2>.gb-layout-column-wrap.gb-is-responsive-column,
  .section-hero-block.gb-layout-columns-2>.gb-layout-column-wrap.gb-is-responsive-column {
    grid-template-areas:
      'col1'
      'col2';
    grid-template-columns: 1fr;
  }
}

#home-top-image {
  height: auto;
  margin: 0;
  max-width: 100%;
}

#home-hero-cta-wrapper {
  margin-bottom: 20px;
}

#home-hero-2 .wp-block-cover__inner-container {
  max-width: 980px;
}

.home-product img {
  height: 80px;
  margin-bottom: 20px;
}

.home-product .entry-title {
  font-size: 1.3rem;
}

.home-check-list {
  margin: 6% 1%;
}

.home-check-list li {
  font-size: 1.2em;
  font-weight: 300;
  margin-bottom: 10px;
  padding-bottom: 10px;
}

@media only screen and (max-width: 767px) {
  .home-product-col {
    margin-bottom: 40px;
  }

  #home-hero-cta-wrapper {
    justify-content: center;
  }

  .home-hero-text-col {
    padding: 5%;
    text-align: center;
  }

  .home-hero-text {
    font-size: 1.2em;
    font-weight: 300;
  }
}

/* ==========================================================================
   8. Card Layouts
   ========================================================================== */
@media (min-width: 768px) {
  .cards-row .gb-layout-column-wrap {
    align-items: stretch;
    display: flex;
  }

  .cards-row .card-col {
    display: flex;
    flex-direction: column;
  }
}

.cards-row {
  padding-bottom: 40px;
}

.cards-wrapper {
  margin-top: -50px;
}

.cards-wrapper-2 {
  margin-top: -20px;
}

.cards-row .card-col .gb-block-layout-column-inner {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 2%;
  width: 100%;
}

.cards-row .card-col .card {
  display: flex;
  flex: 1;
  flex-direction: column;
  width: 100%;
}

.cards-row .card {
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  color: #333;
  padding: 24px;
  transition: all 0.25s ease;
}

.cards-row .card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
  transform: translateY(-4px);
}

.cards-row .card .gb-container-inside,
.cards-row .card .gb-container-content {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.cards-row .card .gb-container-content {
  align-items: center;
  gap: 12px;
  justify-content: flex-start;
  text-align: center;
}

.cards-row .card img {
  display: block;
  margin: 0 auto;
}

.cards-row .card .card-heading,
.card-1-heading {
  font-size: 1.25rem;
  margin: 0;
}

.card-1-image:hover {
  opacity: 0.85;
}

.card-heading a,
.card-1-heading a {
  color: #000 !important;
  text-decoration: none;
}

.card-heading a:hover,
.card-1-heading a:hover {
  color: #c00000 !important;
}

.card-learn-more {
  align-self: flex-start;
}

/* ==========================================================================
   9. Forms
   ========================================================================== */
div.wpforms-container-full .wpforms-form button[type='submit'] {
  background-color: #c00000;
  border: none;
  border-radius: 80px;
  color: #fff;
  display: inline-block;
  font-size: 18px;
  font-weight: 500;
  margin: 4px 2px;
  padding: 10px 24px;
  text-align: center;
  text-decoration: none;
}

div.wpforms-container-full .wpforms-form button[type='submit']:hover {
  background-color: #a00000;
  border: none;
}

div.wpforms-container {
  background-color: #ececec;
  border-radius: 20px;
  padding: 16px;
}

div.wpforms-title {
  color: #000;
  font-weight: 600;
  padding-bottom: 10px;
  text-align: center;
}

/* ==========================================================================
   10. Locations, Lists, and Contact Layouts
   ========================================================================== */
.location-sidebar-links {
  margin: 16px 0 !important;
}

.location-sidebar-links a.ccpage_title_link {
  color: #c00000 !important;
  font-weight: normal !important;
  text-decoration: none;
}

.location-sidebar-links a.ccpage_title_link:hover {
  color: #333 !important;
}

.location-sidebar-links h3 {
  color: #c00000 !important;
  font-family: 'Open Sans', sans-serif !important;
  font-size: 1em !important;
  font-weight: 400 !important;
  margin: 0 20px 0 10px !important;
}

.location-sidebar-links .ccchildpage {
  line-height: 1.4;
  margin: 0 !important;
  padding: 8px 0 !important;
}

#footer-locations-list {
  margin-left: 0;
}

#sidebar-locations-list,
#contact-locations-list {
  margin-left: 10px;
}

#sidebar-locations-list li {
  font-size: 1em;
  margin-bottom: 1em;
}

ul.no-bullets {
  list-style: none !important;
  padding-left: 0;
}

ul.no-bullets li {
  list-style-type: none !important;
}

.column-list-2-col {
  column-count: 2;
  column-gap: 20px;
  list-style-position: inside;
}

/* Order-proofing pattern used through sections 10-11: base rule stays plain and
   each responsive override is `body`-prefixed, so the mobile rule wins by
   specificity rather than source order. */
@media (max-width: 600px) {
  body .column-list-2-col {
    column-count: 1;
  }
}

.ccchildpages ul {
  margin: 24px 20px 0 10px;
}

.ccchildpages ul>li {
  list-style-type: none;
  padding-bottom: 15px;
}

.contact-info-wrapper {
  border-bottom: 1px solid #ddd;
  margin: 0;
  padding: 0;
}

.contact-info-wrapper>.gb-container-inside {
  margin: 2% 0;
}

.contact-info-wrapper>.gb-container-inside>.gb-container-content {
  align-items: center;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr 1fr;
  justify-items: center;
}

.contact-locations-col>.gb-block-layout-column-inner .location-pages-wrapper {
  padding-left: 20px;
}

.contact-form-wrapper>.gb-layout-column-wrap {
  grid-template-columns: 1fr 280px;
}

@media (max-width: 768px) {
  .contact-form-wrapper.gb-layout-columns-2>.gb-layout-column-wrap.gb-is-responsive-column {
    grid-template-areas: 'col1' 'col2';
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  body .contact-info-wrapper>.gb-container-inside>.gb-container-content {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  .contact-locations-col {
    border-top: 1px solid #ddd;
    margin-top: 20px;
    padding-top: 20px;
  }
}

.location-content-block+.location-content-block {
  border-top: 1px solid #ddd;
  margin-top: 30px;
  padding-top: 30px;
}

.locations-wrapper {
  border-bottom: 1px solid #ccc;
  margin: 0 0 30px;
  padding: 0 0 30px;
}

.locations-wrapper>.gb-layout-column-wrap {
  grid-template-columns: 230px 1fr;
}

.locations-wrapper>.gb-container-inside>.gb-container-content {
  display: grid;
  gap: 50px;
  grid-template-areas: none;
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 768px) {
  body .locations-wrapper>.gb-container-inside>.gb-container-content {
    grid-template-areas: none;
    grid-template-columns: 1fr;
  }
}

.location-header {
  margin-bottom: 20px;
}

.locations-menu-col {
  margin-bottom: 30px;
}

@media (max-width: 768px) {
  .locations-menu-col .gb-block-layout-column-inner {
    padding: 8px 4% !important;
    position: sticky;
    top: 175px;
    z-index: 100;
  }

  .locations-menu-col .wp-block-heading {
    display: none;
  }

  .locations-menu-col .locations-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    justify-content: space-between;
    margin: 0;
    padding: 0;
  }

  .locations-menu-col .locations-menu li {
    margin: 0;
  }
}

.horizontal-list,
.horizontal-list-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  margin: 0 !important;
  padding: 0;
}

.horizontal-list li,
.horizontal-list-menu li {
  border-right: 1px solid #ccc;
  list-style-type: none !important;
  margin: 0;
  padding: 0 20px;
}

.horizontal-list li:last-child,
.horizontal-list-menu li:last-child {
  border-right: none;
}

.horizontal-list li:first-child,
.horizontal-list-menu li:first-child {
  padding-left: 0;
}

.locations-states-menu-wrapper {
  padding: 2%;
  position: sticky;
  top: 223px;
  z-index: 100;
}

@media (max-width: 768px) {
  body .locations-states-menu-wrapper {
    position: sticky;
    top: 175px;
    z-index: 100;
  }
}

.locations-wrapper.gb-2-col-wideright>.gb-layout-column-wrap>.gb-block-layout-column:first-child>.gb-block-layout-column-inner {
  align-self: start;
  position: sticky;
  top: 275px;
}

@media (max-width: 768px) {
  body .locations-wrapper.gb-2-col-wideright>.gb-layout-column-wrap>.gb-block-layout-column:first-child>.gb-block-layout-column-inner {
    position: static;
    top: auto;
  }
}

/* ==========================================================================
   11. Search Results
   ========================================================================== */
.search-results-form {
  margin-bottom: 2rem;
}

.search-results-count {
  color: #666;
  font-size: 0.9rem;
  margin-bottom: 1.5rem;
}

.search-results-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.search-results-list .type-post.entry {
  margin: 0;
  max-width: none;
}

.search-results-list .entry {
  margin-bottom: 0;
  padding: 0 !important;
}

.search-result-item {
  align-items: start;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 280px 1fr;
  padding: 1.5rem;
}

mark.search-highlight {
  background-color: #fcf7da;
  border-radius: 2px;
  color: inherit;
  padding: 0 0.1em;
}

.search-result-thumbnail {
  aspect-ratio: 1200 / 630;
  display: block;
  overflow: hidden;
}

.search-result-thumb-img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.search-result-content {
  display: flex;
  flex-direction: column;
}

.search-result-header {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 0.75rem;
}

[class*='search-result-type-pill'] {
  background-color: #e3e0e3;
  border-radius: 2em;
  color: #333;
  display: inline-block;
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-top: 0.2em;
  padding: 0.15em 0.65em;
  text-transform: uppercase;
  white-space: nowrap;
}

.search-result-title {
  font-size: 1.2rem;
  line-height: 1.3;
  margin: 0;
}

.search-result-title a {
  text-decoration: none;
}

.search-result-title a:hover,
.search-result-title a:focus {
  text-decoration: underline;
}

.search-result-excerpt p {
  color: #444;
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0 0 0.75rem;
}

.search-result-footer {
  margin-top: 0.5rem;
}

.search-result-read-more {
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
}

.search-result-read-more:hover,
.search-result-read-more:focus {
  text-decoration: underline;
}

.search-no-results {
  background: #f9f9f9;
  border-left: 4px solid #ccc;
  color: #444;
  padding: 1.5rem;
}

.search-results-list+.pagination,
.search-results-list+.archive-pagination {
  margin-top: 2.5rem;
}

.dedicated-search-page {
  margin: 20px 0;
  padding: 5% 0;
}

.search-results-form .search-form,
.dedicated-search-page .search-form {
  align-items: stretch;
  display: flex;
  gap: 0;
  max-width: 100%;
}

.search-results-form .search-field,
.dedicated-search-page .search-field {
  border-radius: 4px 0 0 4px;
  border-right: none;
  flex: 1;
  margin: 0;
}

.search-results-form .search-submit,
.dedicated-search-page .search-submit {
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
}

.search-results-form .search-form .search-form-input {
  color: #333;
}

@media (max-width: 600px) {
  body .search-result-item {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   12. Content, Posts, Featured Content, and Reviews
   ========================================================================== */
body.enterprise-pro-red .entry-title {
  text-align: center;
}

body.enterprise-pro-red .widget-area .entry-title {
  font-size: 1.3rem;
}

body.enterprise-pro-red h1 a,
body.enterprise-pro-red h2 a {
  color: #000;
}

body.enterprise-pro-red h1 a:hover,
body.enterprise-pro-red h2 a:hover {
  color: #c00000;
}

.entry-header .entry-meta {
  color: #000;
  padding-top: 10px;
  text-align: center;
}

.type-post.entry {
  margin: 0 auto 40px;
  max-width: 860px;
}

.type-post .entry-header {
  background-color: #ececec;
}

.type-post .entry-title {
  font-size: 36px;
}

body .before-footer h2,
body .before-footer h2 a {
  color: #fff;
}

body .widget li {
  border-bottom: none;
}

.footer-widget-area .widget-title {
  font-size: 20px;
}

.footer-widget-area .site-title>a {
  background-position: left !important;
}

body .featured-content .entry,
body .featured-content .entry-header {
  border-bottom: none;
}

.featured-content img {
  max-width: 100px;
}

.hreview {
  display: table;
  margin-bottom: 50px;
}

.details {
  display: table-footer-group;
  font-size: 1.2em;
  font-weight: bold;
}

.comments {
  display: table-header-group;
  font-size: 20px;
  font-weight: 300;
  line-height: 1.4em;
}

.comments p {
  margin-bottom: 10px;
}

#reviews-link {
  font-size: 20px;
  margin-top: 30px;
}

ul.testimonials-list li {
  font-size: 1.2rem;
}

.social-icons {
  padding: 8px;
}

/* ==========================================================================
   13. Utility Classes
   ========================================================================== */
.bg-gray {
  background-color: #f5f5f5;
  padding: 20px;
}

.bg-light-gray {
  background: #f6f6f6;
}

.bg-dark-gray {
  background: #4d4d4d;
  color: #fff;
  margin: 0;
  padding: 30px;
}


.img-fade-right {
  background: #f6f6f6;
}

.padding-30 {
  padding: 30px;
}

.padding-top-24 {
  padding-top: 24px;
}

.padding-top-130 {
  padding-top: 130px;
}

.padding-tb {
  padding: 12% 5%;
}

.no-margin,
.no-margin figure {
  margin: 0;
}

.mw-840 {
  margin: auto;
  max-width: 840px;
}

.text-red {
  color: #c00000;
}

.text-white {
  color: #fff;
}

.font-size-medium {
  font-size: 1.2em;
  font-weight: 300;
}

.font-size-md {
  font-size: 1.2em;
}

.font-weight-600 {
  font-weight: 600;
}


@media only screen and (min-width: 1060px) {
  .border-right {
    border-right: 2px solid #333;
  }
}

/* ==========================================================================
   14. Plugins, Embeds, and Miscellaneous
   ========================================================================== */
.accordion-faq .rank-math-list-item {
  position: relative;
}

.accordion-faq .rank-math-list-item h2,
.accordion-faq .rank-math-list-item h3 {
  background: #f1f2f6;
  cursor: pointer;
  font-size: 18px !important;
  font-weight: normal !important;
  margin-bottom: 0;
  padding: 10px 12px 10px 18px;
  position: relative;
}

.accordion-faq .rank-math-list-item h2::before,
.accordion-faq .rank-math-list-item h3::before {
  border-color: transparent transparent transparent #000;
  border-style: solid;
  border-width: 6px 0 6px 12px;
  content: '';
  display: inline-block;
  height: 0;
  margin-right: 8px;
  transition: transform 0.2s ease;
  width: 0;
}

.accordion-faq .rank-math-answer {
  max-height: 0;
  overflow: hidden;
  padding: 10px 10px 0;
  transition: all 0.3s ease;
}

.accordion-faq .rank-math-list-item.is-open .rank-math-answer {
  max-height: 100vh;
  overflow: visible;
}

.accordion-faq .rank-math-list-item.is-open h3::before {
  transform: rotate(90deg);
}

.holiday-message {
  background-color: #f5f5f5;
  border-left: 4px solid #cc0000;
  border-radius: 4px;
  color: #333;
  font-size: 1rem;
  line-height: 1.6;
  margin: 20px 0;
  padding: 16px 20px;
}

.geo-phone .geo-phone,
.geo-phone a {
  color: #fff !important;
  text-decoration: none;
}

.geo-phone:hover,
.geo-phone a:hover {
  color: #c00000 !important;
}

h2.geo-phone {
  margin-top: 30px;
}

.gts-rating .star {
  height: 24px;
  width: 24px;
}

.grecaptcha-badge {
  visibility: hidden;
}

.stair-lift-icon img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 30%;
}

.video-wrap {
  float: left;
  min-width: 290px;
  padding: 0 40px 5px 0;
}

.wp-block-media-text__media {
  padding-bottom: 15px;
}

/* ==========================================================================
   15. Visibility Helpers
   ========================================================================== */
@media only screen and (max-width: 768px) {
  .desktop-only {
    display: none !important;
  }
}

body .mobile-only,
body .menu-item-search {
  display: none !important;
}

@media screen and (max-width: 768px) {

  html body .mobile-only,
  html body .menu-item-search {
    display: block !important;
  }
}

/* NOTE: no !important here, so this cannot override the two !important rules
   above - it is effectively inert for .menu-item-search. Left in place pending a
   look at the markup to confirm what it was meant to target. */
@media (max-width: 960px) {
  .menu-item-search {
    display: none;
  }
}

/* ==========================================================================
   16. Responsive Header
   ========================================================================== */
@media only screen and (min-width: 767px) {
  .header-right {
    align-items: center;
    display: flex;
    justify-content: end;
  }

  .phone-span {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 0;
    margin-right: 16px;
  }

  /* [order-proofed] Ties the theme's `.header-image .site-title > a` at (0,2,1);
     `body` lets the non-!important height/aspect-ratio survive a reorder. */
  body .header-image .site-title a {
    aspect-ratio: auto 300 / 120;
    background-size: 300px 120px !important;
    height: 120px;
  }

  .header-wrapper .site-header .wrap {
    align-items: center;
    display: flex;
  }

  .header-wrapper .site-header .widget-area {
    flex-grow: 1;
    padding: 0;
  }
}

@media only screen and (max-width: 767px) {
  .header-wrapper .header-widget-area {
    font-size: 0.9em;
    margin-left: 8px;
    padding-top: 0;
    width: fit-content;
  }

  .header-wrapper .header-widget-area a.cta-button {
    font-size: 0.9em !important;
  }

  body .phone-span {
    font-size: 1em !important;
    font-weight: 700;
    margin-right: 8px;
  }

  .header-wrapper .site-header {
    min-height: 72px;
  }

  .header-wrapper .site-header .wrap {
    align-items: center;
    display: flex;
  }

  .header-wrapper .site-header .wrap .title-area {
    flex-basis: 45%;
    margin-left: 8px;
  }

  .header-wrapper .site-header .wrap .widget-area {
    flex-basis: 55%;
    text-align: right;
  }

  .header-wrapper .title-area {
    width: 180px;
  }

  .header-image .header-wrapper .site-title a {
    background-size: 180px 72px !important;
    height: 72px;
    aspect-ratio: auto 300 / 120;
  }
}

/* ==========================================================================
   17. Footer
   ========================================================================== */

.footer-widget-area>.widget>.widget-wrap>.textwidget>.trustpilot-widget {
  display: flex;
  justify-content: start;
  align-items: start;
}

@media only screen and (max-width: 767px) {
.footer-widget-area>.widget>.widget-wrap>.widget-title {
    text-align: center;
  }

  .footer-widget-area>.widget>.widget-wrap>.textwidget>.trustpilot-widget {
    justify-content: center;
    align-items: center;
  }
}