/* Port corrections — hand-written, DECLARED. Everything here stands in for something
 * Elementor's JS, the child theme's jQuery, or a stylesheet that only loads on demand did on
 * www.one86energy.com. Scoped to the site chrome marker so nothing reaches /admin.
 */

/* Header: Elementor's sticky JS sets position/top/width/left inline (O86Header does the same
 * after hydration); until then these hold the header where live keeps it. The child theme's
 * `position: fixed !important` is in 10-wp.css. */
:where(html:has([data-o86-chrome])) header.elementor-section.HeaderMain {
  top: 0;
  left: 0;
  width: 100%;
  margin-top: 0;
  margin-bottom: 0;
}

/* Elementor sizes a background video with JS to cover its section (live: 1762.94×991.66 in a
 * 1440×992 section, i.e. 16:9 cover, centred). object-fit does the same without the script. */
:where(html:has([data-o86-chrome])) .elementor-background-video-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
  direction: ltr;
  pointer-events: none;
}
:where(html:has([data-o86-chrome])) .elementor-background-video-container .elementor-background-video-hosted {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  transform: none;
}

/* Gravity Forms' AJAX validation state, as the theme styles it (wp-custom-css): the summary box
 * is hidden, the per-field message is white and bold under the input. Printed by GfForm. */
:where(html:has([data-o86-chrome])) .form-design .gform_validation_errors {
  display: none;
}

/* Core's honeypot field (GfForm prints it as GF's own `gform_validation_container` item). Live had
 * no such item in the DOM, so the prune dropped Gravity Forms' rule for it; this is that rule
 * (legacy/css/formsmain.min.css 2.7.10) at its live rank. */
:where(html:has([data-o86-chrome])) .gform_legacy_markup_wrapper .gform_validation_container,
:where(html:has([data-o86-chrome])) div:where(.o86-body) .gform_legacy_markup_wrapper .gform_body ul.gform_fields li.gfield.gform_validation_container,
:where(html:has([data-o86-chrome])) div:where(.o86-body) .gform_legacy_markup_wrapper li.gform_validation_container,
:where(html:has([data-o86-chrome])) div:where(.o86-body) .gform_legacy_markup_wrapper ul.gform_fields li.gfield.gform_validation_container {
  display: none !important;
  left: -9000px;
  position: absolute !important;
}

/* The Nav Menu widget's open/closed dropdown (elementor-pro widget-nav-menu.min.css 3.14): the
 * toggle's `elementor-active` state drives the sibling container. The prune could not test these
 * (state selectors), so they are carried here at their live rank. */
:where(html:has([data-o86-chrome])) .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
  transform: scaleY(0);
  max-height: 0;
  overflow: hidden;
}
:where(html:has([data-o86-chrome])) .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  transform: scaleY(1);
  max-height: var(--menu-height);
  animation: hide-scroll 0.3s backwards;
}
@keyframes hide-scroll {
  0%, 100% { overflow: hidden; }
}

/* Privacy Policy — a new page (Bo 2026-10-21; live's footer link went nowhere). Set in the site's own
 * system: the Contact/Landowners heading faces (nexa-heavy, Libre Baskerville for the date) and Martel
 * Sans copy at the sizes the Elementor pages use, inside the 70% container, under the fixed header. */
:where(html:has([data-o86-chrome])) .o86-pp {
  padding: 11vw 0 8vw;
  background-color: #ffffff;
}
:where(html:has([data-o86-chrome])) .o86-pp .elementor-widget-wrap {
  padding: 0;
}
:where(html:has([data-o86-chrome])) .o86-pp .headingMain .elementor-heading-title {
  color: #333333;
  font-family: "nexa-heavy", Sans-serif;
  font-size: 5.4vw;
  font-weight: 700;
  line-height: 1;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-date {
  margin-top: 1vw;
  margin-bottom: 3vw;
  color: #333333;
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  font-size: 1.4vw;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-h .elementor-heading-title {
  color: #333333;
  font-family: "nexa-heavy", Sans-serif;
  font-size: 2.1vw;
  font-weight: 600;
  line-height: 1.2;
  margin-top: 2.4vw;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t {
  max-width: 48em;
  color: #333333;
  font-family: "Martel Sans", Sans-serif;
  font-size: 1.3vw;
  font-weight: 400;
  line-height: 1.6em;
  letter-spacing: 0.4px;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t p + p,
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t ul {
  margin-top: 1em;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t ul {
  padding-left: 1.4em;
  list-style: disc;
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t a {
  color: #fa4515;
  text-decoration: underline;
}
@media (max-width: 1024px) {
  :where(html:has([data-o86-chrome])) .o86-pp { padding-top: 16vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-date { font-size: 2vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-h .elementor-heading-title { font-size: 3vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t { font-size: 1.9vw; }
}
@media (max-width: 767px) {
  :where(html:has([data-o86-chrome])) .o86-pp { padding: 28vw 0 14vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .headingMain .elementor-heading-title { font-size: 11vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-date { font-size: 4vw; margin-bottom: 8vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-h .elementor-heading-title { font-size: 5.5vw; margin-top: 7vw; }
  :where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t { font-size: 4.2vw; }
}

/* Footer © line (Bo 2026-10-21): white, smaller and regular weight so the menu above it reads
 * first. Live: 0.9vw bold #666 (12px at ≤1024), link #666. Same selector rank as the live rules
 * (the link rule outranks the theme's `.MainFooterRow .elementor-widget-text-editor p a`), later file wins. */
:where(html:has([data-o86-chrome])) .elementor-227 .elementor-element.elementor-element-1c16ff4 {
  font-size: 0.7vw;
  font-weight: 400;
  letter-spacing: 0.2px;
  color: #ffffff;
}
:where(html:has([data-o86-chrome])) .elementor-227 .MainFooterRow .elementor-element-1c16ff4.elementor-widget-text-editor p a {
  font-weight: 400;
  color: #ffffff;
}
@media (max-width: 1024px) {
  :where(html:has([data-o86-chrome])) .elementor-227 .elementor-element.elementor-element-1c16ff4 { font-size: 11px; }
}
:where(html:has([data-o86-chrome])) .o86-pp .o86-pp-t ul + p {
  margin-top: 1em;
}
/* The footer's white logo and menu sit on the page's last band on every live page; the privacy
 * page is white, so its footer gets the site's charcoal (#231f20, the button colour). */
:where(html:has([data-o86-chrome])) div:where(.o86-body).o86-privacy .elementor-location-footer .MainFooterRow {
  background-color: #231f20;
  margin-top: 0;
}
:where(html:has([data-o86-chrome])) div:where(.o86-body).o86-privacy .elementor-location-footer {
  margin-top: 0 !important;
  position: relative;
}

/* Contact form Submit (Bo 2026-10-23): live printed a bare text input — dark text, no background —
 * meant to sit beside an arrow image that 404s (/images/button-arrow.png), so on the blue band it
 * read as faint text. Now a solid button in the site's charcoal (#231f20, its CTA colour), square
 * like the white fields above it, in the fields' face (nexa-bold); hover/focus turn the logo orange.
 * Overrides the live `!important` rules, at a higher rank. */
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer::before {
  content: none !important;
}
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer {
  margin-top: 0.4vw !important;
  padding: 1vw 0 !important;
}
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button {
  display: inline-block;
  width: auto !important;
  height: auto !important;
  top: 0 !important;
  margin: 0 !important;
  padding: 0.95vw 2.8vw 0.85vw !important;
  background: #231f20 !important;
  color: #ffffff !important;
  font-family: nexa-bold, sans-serif !important;
  font-size: 1.1vw !important;
  font-weight: normal;
  letter-spacing: 0.08em;
  line-height: 1.2;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button:hover,
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button:focus-visible {
  background: #fa4515 !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
}
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button:focus-visible {
  outline: 2px solid #ffffff !important;
  outline-offset: 3px;
}
:where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button:disabled {
  opacity: 0.6;
  cursor: progress;
}
@media (max-width: 1024px) {
  :where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button {
    font-size: 15px !important;
    padding: 13px 30px 12px !important;
  }
}
@media (max-width: 767px) {
  :where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer { padding: 14px 0 !important; }
  :where(html:has([data-o86-chrome])) .elementor-593 .form-design .gform_footer input.gform_button.button {
    width: 100% !important;
    font-size: 16px !important;
    padding: 15px 20px 14px !important;
  }
}
