.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-container > .elementor-column > .elementor-widget-wrap{align-content:center;align-items:center;}.elementor-50065 .elementor-element.elementor-element-a7b1c20:not(.elementor-motion-effects-element-type-background), .elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#004055;}.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-container{max-width:1360px;}.elementor-50065 .elementor-element.elementor-element-a7b1c20{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:hover,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-accent );fill:var( --e-global-color-accent );}.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:before,
					.elementor-widget-nav-menu .elementor-nav-menu--main:not(.e--pointer-framed) .elementor-item:after{background-color:var( --e-global-color-accent );}.elementor-widget-nav-menu .e--pointer-framed .elementor-item:before,
					.elementor-widget-nav-menu .e--pointer-framed .elementor-item:after{border-color:var( --e-global-color-accent );}.elementor-widget-nav-menu{--e-nav-menu-divider-color:var( --e-global-color-text );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );}.elementor-50065 .elementor-element.elementor-element-a7b1c24{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-a7b1c24 .elementor-button-content-wrapper{flex-direction:row;}.elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-column > .elementor-widget-wrap{align-content:center;align-items:center;}.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-repeater-item-ed6f689.jet-parallax-section__layout .jet-parallax-section__image{background-size:auto;}.elementor-50065 .elementor-element.elementor-element-3d953d0.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-50065 .elementor-element.elementor-element-3d953d0.elementor-column.raven-column-flex-vertical > .elementor-widget-wrap{align-content:center;align-items:center;flex-wrap:wrap;}.elementor-50065 .elementor-element.elementor-element-3d953d0 > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;}.elementor-50065 .elementor-element.elementor-element-3d953d0 > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-50065 .elementor-element.elementor-element-3d953d0.elementor-column{order:1;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );}.elementor-50065 .elementor-element.elementor-element-31eacbc > .elementor-widget-container{margin:5px 0px 5px 0px;}.elementor-50065 .elementor-element.elementor-element-31eacbc{text-align:center;}.elementor-50065 .elementor-element.elementor-element-31eacbc img{width:120px;}.elementor-50065 .elementor-element.elementor-element-799b07a > .elementor-element-populated{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;padding:0px 0px 0px 0px;}.elementor-50065 .elementor-element.elementor-element-799b07a > .elementor-element-populated > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-50065 .elementor-element.elementor-element-799b07a.elementor-column{order:2;}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu .elementor-item{font-size:16px;font-weight:400;text-transform:capitalize;letter-spacing:0.4px;}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-630fde7 );fill:var( --e-global-color-630fde7 );}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main .elementor-item:focus{color:#fff;}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--dropdown .elementor-item, .elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--dropdown  .elementor-sub-item{font-size:16px;font-weight:600;}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--dropdown li:not(:last-child){border-style:dotted;border-color:var( --e-global-color-bb8c888 );border-bottom-width:1px;}.elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-50065 .elementor-element.elementor-element-4229334 .elementor-nav-menu__container.elementor-nav-menu--dropdown{margin-top:5px !important;}.elementor-bc-flex-widget .elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column:not(.raven-column-flex-vertical) .elementor-widget-wrap{align-items:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column.elementor-element[data-element_type="column"]:not(.raven-column-flex-vertical) > .elementor-widget-wrap.elementor-element-populated{align-content:center;align-items:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column.elementor-element[data-element_type="column"].raven-column-flex-vertical > .elementor-widget-wrap.elementor-element-populated{justify-content:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46 > .elementor-widget-wrap > .elementor-widget:not(.elementor-widget__width-auto):not(.elementor-widget__width-initial):not(:last-child):not(.elementor-absolute){margin-block-end:8px;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column{order:4;}.elementor-50065 .elementor-element.elementor-element-15a457c{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-eb36edb{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-eb36edb .elementor-menu-toggle{margin:0 auto;}.elementor-50065 .elementor-element.elementor-element-f698971.elementor-column{order:3;}.elementor-widget-icon-box.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon-box.elementor-view-framed .elementor-icon, .elementor-widget-icon-box.elementor-view-default .elementor-icon{fill:var( --e-global-color-primary );color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box:has(:hover) .elementor-icon-box-title,
					 .elementor-widget-icon-box:has(:focus) .elementor-icon-box-title{color:var( --e-global-color-primary );}.elementor-widget-icon-box .elementor-icon-box-description{color:var( --e-global-color-text );}.elementor-50065 .elementor-element.elementor-element-1c0c2c0{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0:hover .elementor-widget-container{background-color:#0707072E;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 > .elementor-widget-container{transition:background 0.7s;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-title{margin-block-end:0px;color:#FFFFFF;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-title, .elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-title a{font-size:15px;font-weight:500;letter-spacing:2.2px;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-description{font-size:14px;font-weight:400;text-transform:lowercase;color:#E3E3E3;}.elementor-widget-search-form .elementor-search-form__input,
					.elementor-widget-search-form .elementor-search-form__icon,
					.elementor-widget-search-form .elementor-lightbox .dialog-lightbox-close-button,
					.elementor-widget-search-form .elementor-lightbox .dialog-lightbox-close-button:hover,
					.elementor-widget-search-form.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-widget-search-form .elementor-search-form__submit{background-color:var( --e-global-color-secondary );}.elementor-50065 .elementor-element.elementor-element-01f788b{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form{text-align:center;}.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form__toggle{--e-search-form-toggle-size:30px;--e-search-form-toggle-color:var( --e-global-color-primary );}.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form__input,
					.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form__icon,
					.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-lightbox .dialog-lightbox-close-button,
					.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-lightbox .dialog-lightbox-close-button:hover,
					.elementor-50065 .elementor-element.elementor-element-01f788b.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input{color:#FFFFFF;fill:#FFFFFF;}.elementor-50065 .elementor-element.elementor-element-01f788b:not(.elementor-search-form--skin-full_screen) .elementor-search-form__container{border-radius:3px;}.elementor-50065 .elementor-element.elementor-element-01f788b.elementor-search-form--skin-full_screen input[type="search"].elementor-search-form__input{border-radius:3px;}.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form__toggle:hover{--e-search-form-toggle-color:var( --e-global-color-1413eb5 );}.elementor-50065 .elementor-element.elementor-element-01f788b .elementor-search-form__toggle:focus{--e-search-form-toggle-color:var( --e-global-color-1413eb5 );}.elementor-50065 .elementor-element.elementor-element-ea22d31:not(.elementor-motion-effects-element-type-background), .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#E3E3E3;}.elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container{max-width:1360px;}.elementor-50065 .elementor-element.elementor-element-ea22d31{transition:background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-background-overlay{transition:background 0.3s, border-radius 0.3s, opacity 0.3s;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-50065 .elementor-element.elementor-element-3d953d0.elementor-column{order:1;}.elementor-50065 .elementor-element.elementor-element-31eacbc img{width:120px;}.elementor-50065 .elementor-element.elementor-element-799b07a.elementor-column{order:4;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column{order:2;}.elementor-50065 .elementor-element.elementor-element-15a457c{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-eb36edb{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-f698971.elementor-column{order:3;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-01f788b{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-ea22d31{padding:0px 0px 0px 0px;}}@media(min-width:768px){.elementor-50065 .elementor-element.elementor-element-3d953d0{width:14%;}.elementor-50065 .elementor-element.elementor-element-799b07a{width:50%;}.elementor-50065 .elementor-element.elementor-element-6e32e46{width:27.999%;}.elementor-50065 .elementor-element.elementor-element-f698971{width:20%;}}@media(max-width:1024px) and (min-width:768px){.elementor-50065 .elementor-element.elementor-element-3d953d0{width:38%;}.elementor-50065 .elementor-element.elementor-element-799b07a{width:8%;}.elementor-50065 .elementor-element.elementor-element-6e32e46{width:62%;}.elementor-50065 .elementor-element.elementor-element-f698971{width:100%;}}@media(max-width:767px){.elementor-50065 .elementor-element.elementor-element-3d953d0{width:38%;}.elementor-50065 .elementor-element.elementor-element-3d953d0.elementor-column{order:1;}.elementor-50065 .elementor-element.elementor-element-31eacbc img{width:100px;}.elementor-50065 .elementor-element.elementor-element-799b07a{width:8%;}.elementor-50065 .elementor-element.elementor-element-799b07a.elementor-column{order:4;}.elementor-50065 .elementor-element.elementor-element-6e32e46{width:62%;}.elementor-bc-flex-widget .elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column .elementor-widget-wrap{align-items:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column.elementor-element[data-element_type="column"] > .elementor-widget-wrap.elementor-element-populated{align-content:center;align-items:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column > .elementor-widget-wrap{justify-content:center;}.elementor-50065 .elementor-element.elementor-element-6e32e46.elementor-column{order:2;}.elementor-50065 .elementor-element.elementor-element-15a457c{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-eb36edb{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-f698971{width:100%;}.elementor-50065 .elementor-element.elementor-element-f698971.elementor-column{order:3;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-wrapper{text-align:center;}.elementor-50065 .elementor-element.elementor-element-1c0c2c0 .elementor-icon-box-title{margin-block-end:0px;}.elementor-50065 .elementor-element.elementor-element-01f788b{width:auto;max-width:auto;}.elementor-50065 .elementor-element.elementor-element-01f788b > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-50065 .elementor-element.elementor-element-ea22d31{padding:0px 0px 0px 0px;}}/* Start custom CSS for section, class: .elementor-element-a7b1c20 *//* ---- Desktop utility tier -------------------------------------------------
   Hidden at <=1150px, where the hamburger takes over and already carries these
   same links - Elementor's "Desktop" starts at 1025, which would double them up
   between 1025 and 1150. Deliberately NOT sticky: sticky lives on the main row
   only, so this scrolls away on first scroll and the pinned header stays 108px. */
@media (max-width: 1150px) { .elementor-50065 .elementor-element.elementor-element-a7b1c20 { display: none !important; } }

.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-container { min-height: 36px; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-widget-wrap { padding: 0; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu__container { width: 100%; }

/* the nav is display:flex, so the ul is a flex item and shrink-wrapped to its
   content at 554px - justify-content had nothing to distribute. */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul {
  display: flex; flex-wrap: nowrap; align-items: center;
  justify-content: flex-start; gap: 26px; margin: 0;
  flex: 1 1 auto; width: 100%;
  /* the logo column carries 10px of inner padding, so the container's own left
     edge sits 10px short of the logo. Match it and "Sale" lands on the logo's
     left edge exactly. (The original spec had these right-aligned; left-aligned
     to the logo is a deliberate change.) */
  padding: 0 0 0 10px;
}
/* the theme's clearfix ::after becomes a flex item here, so the 26px gap was
   landing between "Financing" and a zero-width pseudo-element holding the edge */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul::after,
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul::before { display: none; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li { margin: 0; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a {
  padding: 0; margin: 0; border: 0; background: none;
  font-size: 14px; font-weight: 500; line-height: 36px; letter-spacing: .01em;
  color: #FFFFFF; white-space: nowrap; text-decoration: none;
  transition: color .15s ease;
}
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a:hover,
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a:focus { color: #FFFFFF; background: none; }

/* Sale is the promotional link and carries the accent.
   The site gold #B1822C only reaches 3.2:1 on this navy, which fails AA at 13px,
   so the strip uses a lighter tint of the same hue at 6.0:1. */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li:first-child > a { color: #E4B95C; font-weight: 700; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li:first-child > a:hover { color: #FFFFFF; }

.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a:focus-visible {
  outline: 2px solid #FFFFFF; outline-offset: 2px;
}

/* Financing points at barnlender.com - flag it the way the main menu does */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a[href^="http"]:not([href*="//www.horizonstructures.com"]):not([href*="//horizonstructures.com"])::after {
  content: "\2197"; position: static; margin-left: 4px;
  font-size: .85em; opacity: .75; width: auto; height: auto;
  background: none; transform: none;
}

/* the widget renders a mobile toggle we never want here */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-menu-toggle { display: none !important; }

/* ---- strip now also carries search + the phone ---------------------------- */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-container > .elementor-column > .elementor-widget-wrap {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 20px; padding: 0;
}
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c22 { flex: 1 1 auto; min-width: 0; }   /* links take the slack */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 { flex: 0 0 auto; width: auto; }


/* phone: one anchor, so CallRail cannot swap the glyph and the digits apart */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button {
  background-color: transparent; border: 0; padding: 0; border-radius: 0;
  display: flex; align-items: center; gap: 8px; line-height: 36px;
  color: #FFFFFF; font-size: 14px; font-weight: 600; letter-spacing: .14em;
  /* trailing letter-space counts as width, so a right-aligned number would sit
     ~2px left of the container edge. Pull it back by the same amount. */
  margin-right: -.14em;
  transition: color .15s ease;
}
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button:hover { background-color: transparent; color: #E4B95C; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button .elementor-button-icon { font-size: 13px; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button .elementor-button-icon svg { width: 13px; height: 13px; fill: currentColor; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button-content-wrapper { align-items: center; gap: 8px; }
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c24 .elementor-button:focus-visible {
  outline: 2px solid #FFFFFF; outline-offset: 2px;
}

/* Elementor gives every non-last widget a bottom margin. In a flex row that
   margin still counts toward the row's height and pushed the bar to 56px. */
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-widget-wrap > .elementor-element,
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-widget-wrap > .elementor-widget {
  margin-block-end: 0 !important; margin-bottom: 0 !important;
}
.elementor-50065 .elementor-element.elementor-element-a7b1c20 > .elementor-container,
.elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-element-a7b1c21 > .elementor-widget-wrap { min-height: 36px; height: 36px; padding: 0; }


/* The main nav steps down to 15px and 14px in the narrower bands. Step the
   utility links down with it so this tier never reads larger than the primary
   nav below it. */
@media (max-width: 1279px) {
  .elementor-50065 .elementor-element.elementor-element-a7b1c20 .elementor-nav-menu--main > ul > li > a { font-size: 13px; }
}/* End custom CSS */
/* Start custom CSS for nav-menu, class: .elementor-element-4229334 */.elementor-nav-menu .menu-item b {
    padding-right: 3px;
}/* End custom CSS */
/* Start custom CSS for search-form, class: .elementor-element-01f788b */.fa-search{
    color: white !important;
    background-color: #004055 !important ;
}/* End custom CSS */
/* Start custom CSS for nav-menu, class: .elementor-element-4229334 */.elementor-nav-menu .menu-item b {
    padding-right: 3px;
}/* End custom CSS */
/* Start custom CSS for search-form, class: .elementor-element-01f788b */.fa-search{
    color: white !important;
    background-color: #004055 !important ;
}/* End custom CSS */
/* Start custom CSS for section, class: .elementor-element-ea22d31 *//* ---- column widths, pinned: Elementor redistributes _inline_size ---- */
@media (min-width: 1025px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 { width: 11%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-799b07a { width: 59%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 { width: 18%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { width: 12%; }
}
@media (max-width: 1024px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 { width: 38%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { width: 62%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 { width: 100%; }
}

/* ---- row one: Contact + menu, right aligned ---- */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap {
  flex-wrap: nowrap; justify-content: flex-end; align-items: center; gap: 12px;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap > .elementor-element {
  width: auto; max-width: none; margin: 0;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 .elementor-button { white-space: nowrap; }

/* ---- phone + search column ---- */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap {
  flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 12px;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap > .elementor-element {
  width: auto; max-width: none; margin: 0;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-description { display: none; }
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-wrapper { display: flex; align-items: center; gap: 3px; }
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title { margin: 0; white-space: nowrap; }
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title,
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title a { color: #0A5585; }

/* ---- the two tiles are one component: 30px navy square, white glyph ---- */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon,
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i {
  width: 30px;
  height: 30px;
  min-width: 30px;
  padding: 0;
  margin: 0;
  background-color: var(--e-global-color-bb8c888, #004055) !important;
  border-radius: 3px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  line-height: 1;
}
/* the magnifier reads optically smaller than the handset at equal size */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i { font-size: 25px; }
/* the solid handset carries more ink than the magnifier at equal size */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon i { font-size: 15px; color: #FFFFFF; }
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon svg { width: 16px; height: 16px; }
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon svg path { fill: #FFFFFF !important; }
/* toggle box matches the tile so right edges line up with the hamburger */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle {
  width: 30px; height: 30px; min-width: 30px;
  display: flex; align-items: center; justify-content: center;
}

@media (max-width: 1024px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 {
    background: #F4F5F6;
    border-top: 1px solid #D3DBE1;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap {
    justify-content: space-between;
    min-height: 40px;
    padding: 0 10px;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title { font-size: 10px; letter-spacing: .02em; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap { gap: 8px; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb { flex: 0 0 auto; width: 46px; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button { font-size: 14px; font-weight: 700; letter-spacing: .03em; text-indent: .03em; padding: 9px 16px; }
  /* logo inherited text-align:center and floated off its own left edge */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc .elementor-widget-container { text-align: left; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc .elementor-widget-container,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc figure,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc .elementor-image { margin: 0; padding: 0; line-height: 0; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 > .elementor-widget-wrap,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 > .elementor-widget-wrap {
    padding-top: 5px; padding-bottom: 5px;
  }
}

@media (min-width: 1025px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    padding-left: 8px; padding-right: 8px; font-size: 14px;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul {
    flex-wrap: nowrap; justify-content: flex-end;
  }
}

/* ---- merged dropdown ---- */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown a {
  min-height: 46px; display: flex; align-items: center; text-align: left;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown li.nav-utility-start::before {
  content: "Company";
  display: block; padding: 8px 20px;
  background: #EDF0F2; color: #5A6B78;
  font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  border-top: 1px solid #D3DBE1; border-bottom: 1px solid #E2E7EA;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown li.nav-utility-start ~ li > a,
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown li.nav-utility-start > a {
  font-size: 13px; font-weight: 400; opacity: .86;
}
/* Marks links that leave the site. Testing for "horizonstructures.com" alone
   wrongly treated commercial.horizonstructures.com as internal, so the two real
   site hosts are excluded explicitly instead.
   Elementor claims a::after for its pointer effect, so geometry is reset here. */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown a[href^="http"]:not([href*="//www.horizonstructures.com"]):not([href*="//horizonstructures.com"])::after {
  content: "\2197"; position: static; margin-left: auto;
  width: auto; height: auto; background: none; transform: none;
  font-size: 12px; opacity: .55;
}

/* Editor canvas only. Elementor edit mode centres these columns, which made the
   hamburger look misaligned against the search tile in the canvas while the live
   page was correct. body.elementor-editor-active exists only inside the editor,
   so this can never reach visitors. */
body.elementor-editor-active .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap,
body.elementor-editor-active .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap {
  justify-content: flex-end !important;
}
@media (max-width: 1024px) {
  body.elementor-editor-active .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap {
    justify-content: space-between !important;
  }
}

/* ---- inverted call strip: brand navy ground, white content ----
   Mobile/tablet only. On desktop the phone and search sit inline in the light
   row and keep their navy tiles. */
@media (max-width: 1024px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 {
    background: var(--e-global-color-bb8c888, #004055);
    border-top: none;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title a {
    color: #FFFFFF;
  }
  /* navy tiles would disappear on a navy ground, so the glyphs stand alone */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i {
    background-color: transparent !important;
    color: #FFFFFF;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon i { color: #FFFFFF; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon svg path { fill: #FFFFFF !important; }
  /* without a tile the glyph would float inside its 30px tap box and break the
     edge alignment with the logo above, so pin each to its own side */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon { justify-content: flex-start; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i { justify-content: flex-end; }
}

/* The Contact button is an inline-block, so it sat on the parent text baseline
   and rode ~2.5px low inside its own widget — 1.2px off the hamburger centre.
   Taking it out of the line box aligns the two by geometry rather than nudging. */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button-wrapper {
  display: flex;
  align-items: center;
  line-height: 0;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* the fixed 30px icon box was padding 15px of dead space between the glyph
   and the number — the gap property could never close it */
@media (max-width: 1024px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon {
    width: auto;
    min-width: 0;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-wrapper { gap: 7px; }
}

/* Menu hierarchy. Categories were inheriting 13px and sub-items 0.85em of that
   (11.05px), while the secondary utility links rendered larger than both. */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown > ul > li > a {
  font-size: 15px;
  font-weight: 600;
}
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown ul ul li > a {
  font-size: 14px;
  font-weight: 400;
}

@media (min-width: 1025px) {
  /* the 10px number size is mobile-only; desktop was inheriting something larger */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title { font-size: 13px; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap { gap: 10px; }
}

/* ---- intermediate desktop widths ----
   The six category labels need ~780px. Below roughly 1360px there is not enough
   room for that plus logo, phone, search and Contact, and the nav overflowed its
   column instead of wrapping. Shed the least important thing at each step.
   Everything here is >=1025px, so the mobile build is untouched. */

/* 1151-1359: drop the phone number, keep the tile. Nav takes the space. */
@media (min-width: 1151px) and (max-width: 1359px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-title { display: none; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 { width: 10%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-799b07a { width: 67%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 { width: 10%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { width: 13%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    padding-left: 6px; padding-right: 6px; font-size: 13px;
  }
}

/* 1025-1150: six labels cannot fit at a readable size, so use the merged
   hamburger rather than shrinking type into illegibility. */
@media (min-width: 1025px) and (max-width: 1150px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 { display: none !important; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb { display: block !important; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 { width: 26%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-799b07a { width: 4%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 { width: 34%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { width: 36%; }
}

/* ================= OPTION-C START =================
   Desktop utility cluster: search mark -> outlined call button -> solid CTA.
   The two buttons share height and radius so the pair reads as one unit;
   outline vs solid keeps gold as the only dominant accent.
   Every rule here is >=1025px, so the mobile/tablet build is untouched. */
@media (min-width: 1025px) {

  /* search sits before the call button; 16px between all three */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 > .elementor-widget-wrap {
    gap: 16px; align-items: center; justify-content: flex-end;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b { order: 1; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 { order: 2; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap { gap: 16px; }

  /* ---- search: a bare mark, no tile ---- */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle {
    width: 40px; height: 40px; min-width: 40px; background: none !important;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i {
    width: auto !important; height: auto !important; min-width: 0 !important;
    background-color: transparent !important; border-radius: 0;
    color: var(--e-global-color-bb8c888, #004055) !important;
    font-size: 25px; transition: opacity .15s ease;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle:hover i { opacity: .65; }

  /* ---- phone: outlined secondary button ---- */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper {
    position: relative;
    display: flex; align-items: center; gap: 9px;
    height: 46px; padding: 0 20px;
    border: 2px solid var(--e-global-color-bb8c888, #004055);
    border-radius: 6px; background: transparent;
    transition: background-color .15s ease;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-icon .elementor-icon {
    width: auto !important; height: auto !important; min-width: 0 !important;
    background-color: transparent !important; border-radius: 0; line-height: 1;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-icon .elementor-icon i {
    font-size: 15px; color: var(--e-global-color-bb8c888, #004055);
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-icon .elementor-icon svg path {
    fill: var(--e-global-color-bb8c888, #004055) !important;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-title,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-title a {
    font-size: 15px; font-weight: 700; letter-spacing: .02em;
    color: var(--e-global-color-bb8c888, #004055);
  }
  /* the padded ring should dial too, not just the glyph and the digits */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-icon .elementor-icon::after {
    content: ""; position: absolute; inset: 0; border-radius: 6px;
  }
  /* pulse-grow was for a 30px tile; it fights a real button hover */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon:hover { transform: none !important; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0:hover > .elementor-widget-container {
    background-color: transparent !important;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover {
    background-color: var(--e-global-color-bb8c888, #004055);
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover .elementor-icon-box-title,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover .elementor-icon-box-title a,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover .elementor-icon i {
    color: #FFFFFF;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover .elementor-icon svg path {
    fill: #FFFFFF !important;
  }

  /* ---- primary CTA: same height and radius as the call button ---- */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button {
    height: 46px; padding: 0 26px; border-radius: 6px; line-height: 1;
    font-size: 15px; font-weight: 700; letter-spacing: .02em; text-indent: .02em;
    transition: background-color .15s ease;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button:hover { background-color: #966E24; }

  /* ---- keyboard focus ---- */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle:focus-visible,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 a:focus-visible,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button:focus-visible {
    outline: 2px solid var(--e-global-color-bb8c888, #004055); outline-offset: 2px;
  }
}

/* where the number is shed, the call button collapses to a square icon button
   rather than leaving a wide empty outline */
@media (min-width: 1151px) and (max-width: 1359px) {
  /* with the number hidden the outline had nothing to contain and read as an
     empty box beside a bare magnifier. Drop it: two marks, matched sizes. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper {
    border: 0; padding: 0; width: 40px; height: 40px; justify-content: center;
    background-color: transparent;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover {
    background-color: transparent;
  }
  /* the handset is a solid glyph, the magnifier a stroke one - matching the
     font sizes makes the phone read far heavier. 25/16 is the pairing that
     was already signed off on the old tiles. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-icon .elementor-icon i {
    font-size: 16px;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper:hover .elementor-icon i {
    color: var(--e-global-color-bb8c888, #004055); opacity: .65;
  }
  /* the earlier band used display:none, which also hides the number from
     screen readers and leaves the icon link with no accessible name.
     Clip it instead so the digits stay in the a11y tree. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-title {
    display: block !important;
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
}
/* ================= OPTION-C END ================= */

/* The cluster is wider than the tiles it replaced, and fixed column
   percentages left the nav overlapping the search by 8px. Above 1360 let the
   logo and the two right columns size to their content and give the nav the
   remainder, so this cannot drift again. This also replaces the percentage
   widths in the 1025-1150 and 1151-1359 bands, which were sized for the old
   30px tiles and left the cluster stranded mid-bar at 1100. */
@media (min-width: 1025px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 {
    flex: 0 0 auto; width: auto;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-799b07a {
    flex: 1 1 auto; width: auto; min-width: 0;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 > .elementor-widget-wrap,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 > .elementor-widget-wrap {
    padding-left: 0; padding-right: 0;
  }
  /* 16px between the call button and the CTA, matching the rest of the cluster */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { margin-left: 16px; }
}

/* The container is capped at 1360px, so the fit above is the same at 1360 and
   at 1920 - and it lands at exactly 0px of slack. Reclaim ~20px so renaming a
   menu item does not put the nav back on top of the search. */
@media (min-width: 1360px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    padding-left: 7px; padding-right: 7px;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper { padding: 0 18px; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-15a457c .elementor-button { padding: 0 24px; }
}

/* Logo: 120 -> 180 on desktop and tablet, 100 -> 130 on phones. The bar is
   allowed to grow to take it. */
@media (min-width: 768px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc img { width: 180px; }
}
@media (max-width: 767px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-31eacbc img { width: 130px; }
}

/* 130px logo needs more than the 122.5px content box that a 38% column with
   10px padding leaves - max-width:100% was silently clamping it. */
@media (max-width: 767px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-3d953d0 { width: 42%; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-6e32e46 { width: 58%; }
}

/* The open menu panel was anchored to the 33px toggle widget, so it started
   just under the toggle and clipped the bottom of the logo (and covered the
   phone strip). Neutralise the positioned ancestors between the panel and the
   header section: the section then becomes the offset parent, and top:100%
   means "the bottom of the header" at whatever height the header happens to
   be - so this stays correct if the logo is resized again.
   Elementor's JS writes top/left/width inline, hence !important. */
@media (max-width: 1150px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-column,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-6e32e46 > .elementor-widget-wrap,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb { position: static; }

  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown {
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    margin-top: 0 !important;
  }
}

/* Flip the navy strip: search on the left, phone on the right.
   The parent is justify-content:space-between, so swapping the flex order is
   enough. The two justify-content values below were set when the phone hugged
   the left edge and the magnifier the right - they swap with them. */
@media (max-width: 1024px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b { order: 1; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 { order: 2; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-f698971 .elementor-icon-box-icon .elementor-icon { justify-content: flex-end; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i { justify-content: flex-start; }
}

/* ---- phone + search moved into the navy bar above 1151 --------------------
   The strip is display:none at <=1150, so the widgets there cannot serve mobile.
   The main-row pair stays in the DOM and simply hides above 1151; below it, the
   mobile navy strip is exactly as before. */
@media (min-width: 1151px) {
  /* the phone moved to the navy bar; SEARCH stays here, beside Contact Us */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 { display: none !important; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 > .elementor-container > .elementor-element-f698971 > .elementor-widget-wrap {
    justify-content: flex-end; padding: 0;
  }
  /* bigger, so it reads unmistakably as search next to the gold button */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle { width: 40px; height: 40px; min-width: 40px; }
  /* Elementor paints the magnifier from i::before at .55em, so setting the <i>
     to 28px only produced a 15.4px glyph. Size the pseudo-element directly. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i { font-size: 28px; }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-01f788b .elementor-search-form__toggle i::before { font-size: 20px; }
  /* nav sits centred in whatever gap is left between the logo and that group */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul {
    flex: 1 1 auto; width: 100%; justify-content: center;
  }
  /* The navy bar is sticky too, so the main row has to pin beneath it rather
     than at 0. Elementor offsets sticky elements by the WP admin bar's 32px for
     logged-in users, so the strip lands at 32 rather than 0 - the main row has
     to follow, or it covers the bar completely. Visitors never see the admin
     bar, so the base value stays 36. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31.elementor-sticky--active { top: 36px !important; }
  body.admin-bar .elementor-50065 .elementor-element.elementor-element-ea22d31.elementor-sticky--active { top: 68px !important; }
}
/* Nav type, now that the phone and search have vacated this row.
   Available width for the six labels is roughly (viewport - 346).
   They need 767px at 14px, 816 at 15px, 864 at 16px - hence these boundaries,
   each with 30-70px of margin rather than sitting on the limit. */
@media (min-width: 1280px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    font-size: 16px; padding-left: 7px; padding-right: 7px;
  }
}
@media (min-width: 1200px) and (max-width: 1279px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    font-size: 15px; padding-left: 7px; padding-right: 7px;
  }
}
@media (min-width: 1151px) and (max-width: 1199px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--main > ul > li > a {
    font-size: 14px; padding-left: 7px; padding-right: 7px;
  }
}

/* ---- open menu panel, mobile/tablet -------------------------------------- */
@media (max-width: 1150px) {
  /* Company links were 13px at .86 opacity - smaller and fainter than the
     sub-items above them, which read as a mistake rather than a hierarchy. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown li.nav-utility-start ~ li > a,
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown li.nav-utility-start > a {
    font-size: 14.5px; opacity: .95;
  }
  /* The panel is white on a white page, so its bottom edge disappeared and the
     menu appeared to bleed into the content. Give it a real edge and a shadow. */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-eb36edb .elementor-nav-menu--dropdown {
    border-bottom: 1px solid rgba(0, 64, 85, .14);
    box-shadow: 0 16px 26px -10px rgba(0, 40, 55, .30);
  }
}

/* The external-link arrow was only ever applied to the hamburger menu and the
   utility strip. On desktop, Dog Kennels > Government Buyers opens a new tab on
   a different host with no indication at all. Same treatment here. */
.elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-4229334 .elementor-nav-menu--dropdown a[href^="http"]:not([href*="//www.horizonstructures.com"]):not([href*="//horizonstructures.com"])::after {
  content: "\2197"; position: static; margin-left: auto;
  width: auto; height: auto; background: none; transform: none;
  font-size: 12px; opacity: .55;
}

/* ---- mobile phone: one anchor -------------------------------------------
   Elementor's icon-box renders TWO anchors (icon and title) for a single link,
   and CallRail swaps them independently - so the glyph could dial a different
   number than the digits displayed. Removing the widget's icon leaves only the
   digits' anchor; the handset is re-added as a ::before on that same link, so
   there is exactly one thing for CallRail to rewrite.
   Colour is inherited, so it is white on the navy strip and navy inside the
   outlined button at 1025-1150 without further rules. */
@media (max-width: 1150px) {
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-title a::before {
    font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f879";
    display: inline-block; vertical-align: baseline;
    margin-right: 9px; font-size: 15px; letter-spacing: 0;
  }
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-wrapper { gap: 0; }
  /* the icon anchor used to supply a 30px target; the text link alone is 19px,
     so give it a real one without moving the digits */
  .elementor-50065 .elementor-element.elementor-element-ea22d31 .elementor-element-1c0c2c0 .elementor-icon-box-title a {
    display: inline-flex; align-items: center; min-height: 40px;
  }
}/* End custom CSS */