/**
 * OHI RC7.1 — structural support for approved Header/Footer Elementor documents.
 *
 * Visual controls (colors, typography, links, images, button content) live in
 * the Elementor widgets themselves. This file only handles layout behaviors
 * that are awkward/impossible to express consistently across Hub's legacy
 * section/column renderer.
 */

.ohi-header-utility,
.ohi-header-main,
.ohi-header-mobile,
.ohi-footer-approved {
  font-family: "IBM Plex Sans", Arial, sans-serif;
}

.ohi-footer-approved > .elementor-container {
  width: min(1420px, calc(100% - 48px));
  max-width: 1420px;
  margin-inline: auto;
}

/* Header sections are intentionally full-width Elementor sections.
 * Elementor/Hub updates can temporarily drop/regenerate the per-document CSS
 * that normally carries section padding and legacy column percentages. Keep
 * the approved header geometry self-contained here so the header cannot
 * collapse into a left-packed content row or inherit Hub's 1170px container. */
.elementor-section.ohi-header-utility,
.elementor-section.ohi-header-main {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.elementor-section.ohi-header-utility {
  padding: 5px 28px;
}
.elementor-section.ohi-header-main {
  padding: 15px 28px;
}
.elementor-section.ohi-header-utility > .elementor-container,
.elementor-section.ohi-header-main > .elementor-container {
  display: flex;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Elementor's generated element stylesheet normally emits these widths from
 * _column_size. Preserve the same source values as a structural fallback. */
.ohi-header-utility > .elementor-container > .elementor-column {
  width: 100% !important;
  max-width: 100%;
  flex: 0 0 100%;
}
@media (min-width: 1025px) {
  .ohi-header-main > .elementor-container > .elementor-column:nth-child(1) {
    width: 18% !important;
    max-width: 18%;
    flex: 0 0 18%;
  }
  .ohi-header-main > .elementor-container > .elementor-column:nth-child(2) {
    width: 57% !important;
    max-width: 57%;
    flex: 0 0 57%;
  }
  .ohi-header-main > .elementor-container > .elementor-column:nth-child(3) {
    width: 25% !important;
    max-width: 25%;
    flex: 0 0 25%;
  }
}
.ohi-header-utility > .elementor-container > .elementor-column > .elementor-widget-wrap,
.ohi-header-utility .elementor-widget-ld_custom_menu,
.ohi-header-main > .elementor-container > .elementor-column > .elementor-widget-wrap,
.ohi-header-main .elementor-widget-ld_header_menu {
  width: 100%;
}

/* Utility strip */
.ohi-header-utility {
  min-height: 30px;
}
.ohi-header-utility .lqd-custom-menu,
.ohi-header-utility ul {
  margin: 0;
}
.ohi-header-utility ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 24px;
  list-style: none;
}
.ohi-header-utility li:nth-last-child(2) {
  margin-left: 18px;
  padding-left: 24px;
  border-left: 1px solid rgba(255,255,255,.22);
}
.ohi-header-utility a {
  white-space: nowrap;
}

/* Desktop main navigation */
.ohi-header-main {
  min-height: 80px;
}
.ohi-header-main > .elementor-container {
  align-items: center;
}
.ohi-header-main .module-logo img,
.ohi-header-mobile .module-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 190px;
  max-height: 54px;
  object-fit: contain;
}
.ohi-header-main .elementor-column:nth-child(2) {
  display: flex;
  align-items: center;
}
.ohi-header-main .main-nav {
  width: 100%;
  justify-content: space-between;
}
.ohi-header-main .main-nav > li > a {
  white-space: nowrap;
}
.ohi-header-main .main-nav .sub-menu {
  min-width: 240px;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #D9D9D9;
  box-shadow: 0 12px 30px rgba(42,17,64,.14);
}
.ohi-header-main .main-nav .sub-menu a {
  border-radius: 8px;
}
.ohi-header-main .main-nav .sub-menu a:hover {
  background: #FDECE6;
}

/* Header buttons */
.ohi-header-actions {
  width: 100%;
}
.ohi-header-actions > .elementor-container {
  width: 100%;
  max-width: none;
  margin: 0;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.ohi-header-actions .elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.ohi-header-estimate .btn,
.ohi-header-estimate a,
.ohi-header-estimate .elementor-button {
  min-height: 40px;
  padding: 12px 24px !important;
  border: 1px solid #F05024 !important;
  border-radius: 999px !important;
  background: #F05024 !important;
  color: #FFFFFF !important;
  font-family: "IBM Plex Sans", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-transform: uppercase;
  box-shadow: none !important;
}
.ohi-header-estimate .btn:hover,
.ohi-header-estimate a:hover,
.ohi-header-estimate .elementor-button:hover {
  background: #F36D49 !important;
  border-color: #F36D49 !important;
  color: #FFFFFF !important;
}
.ohi-header-switch .btn,
.ohi-header-switch a,
.ohi-header-switch .elementor-button {
  min-height: 40px;
  padding: 12px 24px !important;
  border: 1px solid #FFFFFF !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #FFFFFF !important;
  font-family: "IBM Plex Sans", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-transform: none;
  box-shadow: none !important;
}
.ohi-header-switch .btn:hover,
.ohi-header-switch a:hover,
.ohi-header-switch .elementor-button:hover {
  background: rgba(255,255,255,.08) !important;
  color: #FFFFFF !important;
}

/* Mobile header / fullscreen menu */
.ohi-header-mobile {
  min-height: 68px;
}
.ohi-header-mobile > .elementor-container {
  align-items: center;
}
.ohi-header-mobile .elementor-column:last-child {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.ohi-header-mobile .nav-trigger {
  margin-left: auto;
}
.ohi-mobile-nav-template .lqd-custom-menu ul {
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
.ohi-mobile-nav-template .lqd-custom-menu li {
  margin: 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.ohi-mobile-nav-template .lqd-custom-menu a {
  display: block;
  padding: 14px 0;
  font-size: 18px;
  line-height: 1.25;
}
.ohi-mobile-nav-primary,
.ohi-mobile-nav-secondary {
  margin-top: 12px;
}

/* Footer */
.ohi-footer-main > .elementor-container {
  align-items: flex-start;
}
.ohi-footer-logo img {
  display: block;
  width: auto;
  max-width: 178px;
  height: auto;
}
.ohi-footer-heading {
  margin-bottom: 18px;
}
.ohi-footer-heading .lqd-fh-element,
.ohi-footer-heading h6 {
  margin: 0;
  letter-spacing: .02em;
}
.ohi-footer-main .lqd-custom-menu ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ohi-footer-main .lqd-custom-menu li {
  margin: 0 0 10px;
}
.ohi-footer-main .lqd-custom-menu a {
  line-height: 1.35;
}
.ohi-footer-social-icons {
  margin-bottom: 28px;
}
.ohi-footer-social-icons > .elementor-container {
  width: 92px;
  max-width: 92px;
  margin: 0;
  align-items: center;
}
.ohi-social-icon img {
  width: 18px !important;
  height: 18px !important;
  object-fit: contain;
}
.ohi-footer-app-badges > .elementor-container {
  width: 210px;
  max-width: 210px;
  margin: 0;
  gap: 8px;
}
.ohi-footer-app-badges .elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.ohi-app-badge img {
  display: block;
  width: auto;
  height: 34px;
  object-fit: contain;
}
.ohi-footer-bottom > .elementor-container {
  align-items: center;
}
.ohi-footer-bottom .lqd-fh-element,
.ohi-footer-bottom p {
  margin: 0;
}
.ohi-footer-legal-links > .elementor-container {
  justify-content: flex-end;
}
.ohi-footer-legal-links .elementor-column {
  width: auto !important;
  flex: 0 0 auto;
}
.ohi-footer-legal-link .btn,
.ohi-footer-legal-link a,
.ohi-footer-legal-link .elementor-button {
  padding: 0 0 0 24px !important;
  background: transparent !important;
  border: 0 !important;
  color: #FFFFFF !important;
  font-family: "IBM Plex Sans", Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  box-shadow: none !important;
}
.ohi-footer-legal-link a:hover {
  color: #F05024 !important;
}

/* Tablet/mobile stacking follows the approved hierarchy rather than squeezing
 * the desktop columns into an unreadable row. */
@media (max-width: 1024px) {
  .ohi-header-desktop {
    display: none !important;
  }
  .ohi-header-mobile {
    display: block !important;
  }
  .ohi-footer-main > .elementor-container {
    flex-wrap: wrap;
    row-gap: 38px;
  }
  .ohi-footer-main > .elementor-container > .elementor-column {
    width: 33.333% !important;
  }
  .ohi-footer-main > .elementor-container > .elementor-column:first-child {
    width: 100% !important;
  }
}

@media (min-width: 1025px) {
  .ohi-header-mobile {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .ohi-header-mobile > .elementor-container {
    width: 100%;
  }
  .ohi-header-mobile .module-logo img {
    max-width: 150px;
    max-height: 46px;
  }
  .ohi-footer-main,
  .ohi-footer-bottom {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
  .ohi-footer-main > .elementor-container,
  .ohi-footer-bottom > .elementor-container {
    width: 100%;
  }
  .ohi-footer-main > .elementor-container > .elementor-column {
    width: 100% !important;
  }
  .ohi-footer-main > .elementor-container > .elementor-column:first-child {
    margin-bottom: 8px;
  }
  .ohi-footer-bottom > .elementor-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .ohi-footer-bottom > .elementor-container > .elementor-column {
    width: 100% !important;
  }
  .ohi-footer-legal-links > .elementor-container {
    justify-content: flex-start;
  }
  .ohi-footer-legal-link .btn,
  .ohi-footer-legal-link a,
  .ohi-footer-legal-link .elementor-button {
    padding-left: 0 !important;
    padding-right: 24px !important;
  }
}
