:root {
  --up-sans: "DejaVu Sans", Arial, Helvetica, sans-serif;
  --up-serif: "DejaVu Serif", Georgia, "Times New Roman", serif;
  --up-navy: #213d31;
  --up-navy-deep: #172d25;
  --up-navy-mid: #2b5042;
  --up-ink: #243d34;
  --up-green: #c7ee6d;
  --up-lime: #dff7a8;
  --up-green-dark: #597b25;
  --up-muted: #586b62;
  --up-mist: #f4f7f4;
  --up-line: #d8e1dc;
  --up-event-navy: #213d31;
  --up-event-deep: #172d25;
  --up-event-green: #c7ee6d;
  --up-event-green-ink: #597b25;
  --up-event-mist: #f3f7f4;
  --up-event-ink: #243d34;
  --up-event-muted: #586b62;
  --up-event-line: rgba(33, 61, 49, 0.16);
  --dy-button-height: 50px;
  --dy-button-radius: 6px;
  --dy-button-padding-y: 13px;
  --dy-button-padding-x: 24px;
}

/* Elementor owns the global button colours and typography. These shared
   geometry rules also bring plugin forms and custom Event actions into the
   same system. */
:where(.elementor-button, .fluentform .ff-btn-submit, #zcWebOptin, .up-event-button) {
  box-sizing: border-box !important;
  display: inline-flex !important;
  width: auto;
  max-width: 100%;
  height: var(--dy-button-height) !important;
  min-height: var(--dy-button-height) !important;
  align-items: center !important;
  justify-content: center !important;
  padding: var(--dy-button-padding-y) var(--dy-button-padding-x) !important;
  border-radius: var(--dy-button-radius) !important;
  font-family: var(--up-sans) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 22px !important;
  letter-spacing: 0 !important;
  text-align: center;
  text-decoration: none !important;
  white-space: nowrap !important;
}

:where(.elementor-button, .up-event-button) :where(.elementor-button-content-wrapper, .elementor-button-text) {
  align-items: center;
  justify-content: center;
  line-height: inherit !important;
  white-space: inherit;
}

.page-id-6084 .up-home-actions .elementor-button {
  width: auto !important;
  min-width: 180px !important;
}

body.page-id-617 #zcWebOptin {
  height: var(--dy-button-height) !important;
  min-height: var(--dy-button-height) !important;
  padding: var(--dy-button-padding-y) var(--dy-button-padding-x) !important;
  border-radius: var(--dy-button-radius) !important;
  font-family: var(--up-sans) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 22px !important;
  white-space: nowrap !important;
}

@media (max-width: 480px) {
  :where(.elementor-button, .fluentform .ff-btn-submit, #zcWebOptin, .up-event-button) {
    height: auto !important;
    min-height: var(--dy-button-height) !important;
    white-space: normal !important;
  }

  .page-id-6084 .up-home-actions .elementor-button {
    width: 100% !important;
  }
}

/* Shared custom components that sit outside Elementor's visual controls. */
.up-footer::before {
  background: linear-gradient(90deg, #c7ee6d 0 16%, rgba(199, 238, 109, 0.16) 16% 100%) !important;
}

.up-events-hero,
.up-event-single-hero,
.up-event-booking {
  background: radial-gradient(circle at 88% 12%, rgba(199, 238, 109, 0.11), transparent 28%), linear-gradient(135deg, #172d25, #2b5042) !important;
}

.up-event-card-placeholder,
.up-event-date-panel {
  background: linear-gradient(145deg, #213d31, #172d25) !important;
}

.up-event-button--navy {
  background: #213d31 !important;
}

.up-event-button--green,
.up-button .elementor-button,
.elementor-popup-modal .ff-btn-submit {
  border-color: #c7ee6d !important;
  background: #c7ee6d !important;
  color: #213d31 !important;
}

.up-button .elementor-button:hover,
.elementor-popup-modal .ff-btn-submit:hover,
.up-event-button--green:hover {
  border-color: #dff7a8 !important;
  background: #dff7a8 !important;
  color: #172d25 !important;
}

body[class*="page-id-"] [data-elementor-type="wp-page"] .elementor-widget.up-button .elementor-button:hover,
body [data-elementor-type="header"] .elementor-widget.up-header-cta .elementor-button:hover,
body .elementor-popup-modal .ff-btn-submit:hover,
body .up-event-button--green:hover {
  border-color: #dff7a8 !important;
  background: #dff7a8 !important;
  color: #172d25 !important;
  transform: translateY(-1px);
}

body[class*="page-id-"] [data-elementor-type="wp-page"] .elementor-widget.up-text-link .elementor-button:hover {
  border-color: #fff !important;
  background: #fff !important;
  color: #213d31 !important;
  transform: translateY(-1px);
}

.up-native-nav .elementor-item:hover,
.up-native-nav .elementor-item-active {
  color: #c7ee6d !important;
}

.up-plan-tiers button[aria-checked="true"],
.up-plan-tiers button:hover {
  border-color: #c7ee6d !important;
}

.up-back-to-top {
  width: 48px !important;
  height: 48px !important;
  padding: 0 !important;
  border: 1px solid rgba(199, 238, 109, 0.62) !important;
  border-radius: 50% !important;
  background: #213d31 !important;
  color: #fff !important;
}

.up-back-to-top:hover {
  border-color: #c7ee6d !important;
  background: #c7ee6d !important;
  color: #213d31 !important;
}

.up-back-to-top svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.up-footer .elementor-icon-list-text {
  padding-left: 0 !important;
}

.up-responsive-table,
.table-wrapper,
.investment-table-wrapper {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.up-responsive-table:focus-visible,
.up-table-wrap:focus-visible,
.table-wrapper:focus-visible,
.investment-table-wrapper:focus-visible {
  outline: 3px solid #c7ee6d;
  outline-offset: 3px;
}

.page-id-629 .elementor-posts-container {
  align-items: stretch;
}

.page-id-629 .elementor-post,
.page-id-629 .elementor-post__card {
  height: 100%;
}

.page-id-629 .elementor-post__card,
.page-id-629 .elementor-post__text {
  display: flex !important;
  flex-direction: column;
}

.page-id-629 .elementor-post__text {
  flex: 1 1 auto;
}

.page-id-629 .elementor-post__read-more-wrapper {
  margin-top: auto;
  padding-top: 22px;
}

.page-id-629 .elementor-post__read-more {
  display: inline-flex !important;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  padding: 13px 24px !important;
  border: 1px solid #c7ee6d;
  border-radius: 6px;
  background: #c7ee6d;
  color: #213d31 !important;
  font-family: var(--up-sans) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 22px !important;
  text-decoration: none !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.page-id-629 .elementor-post__read-more:hover {
  border-color: #dff7a8 !important;
  background: #dff7a8 !important;
  color: #172d25 !important;
  transform: translateY(-1px);
}

.up-event-details-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch;
}

.up-event-date-panel,
.up-event-location-panel {
  width: 100%;
  height: 100%;
  min-height: 266px;
}

.up-event-location-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

::selection {
  background: #c7ee6d;
  color: #172d25;
}

/* Elementor owns header colours, typography, spacing, logo sizes and CTA styling.
   Custom CSS is retained only for the centred desktop navigation and call badge. */
.up-header-phone,
.up-header-phone .elementor-widget-container {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: flex-end;
}

.up-header-phone .elementor-widget-container {
  width: 100%;
}

.up-header-phone p {
  margin: 0 !important;
}

.up-header-phone a {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  color: inherit;
  text-decoration: none !important;
}

.up-header-phone a::before {
  margin-right: 10px;
  padding: 4px 8px 3px;
  border: 1px solid rgba(199, 238, 109, 0.42);
  border-radius: 999px;
  color: #c7ee6d;
  content: "Call us";
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.up-header-phone a span {
  margin-left: 10px;
  padding-left: 10px;
  border-left: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.68);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.up-header-main > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(205px, 1fr) auto minmax(205px, 1fr);
  align-items: center !important;
  column-gap: 20px !important;
}

.up-native-logo {
  grid-column: 1;
  justify-self: start;
}

.up-native-nav {
  grid-column: 2;
  width: auto !important;
  justify-self: center;
}

.up-native-nav .elementor-widget-container,
.up-native-nav .elementor-nav-menu--main,
.up-native-nav .elementor-nav-menu--main > ul {
  width: auto !important;
  justify-content: center !important;
}

.up-native-nav .elementor-nav-menu--main .elementor-item {
  padding-inline: 4px !important;
}

.up-native-nav .elementor-item-active {
  font-weight: 700 !important;
}

.up-header-cta {
  grid-column: 3;
  justify-self: end;
}

.up-header-cta .elementor-button {
  min-width: 142px;
  box-shadow: 0 12px 26px -16px rgba(199, 238, 109, 0.9) !important;
}

@media (min-width: 1241px) {
  .up-header-main > .e-con-inner {
    position: relative;
  }

  .up-native-nav {
    position: absolute;
    left: calc(50% + 14px);
    grid-column: auto !important;
    width: max-content !important;
    max-width: none !important;
    justify-self: auto;
    transform: translateX(-50%);
  }

  .up-native-nav .elementor-nav-menu--main > ul {
    flex-wrap: nowrap !important;
  }
}

@media (min-width: 1025px) and (max-width: 1240px) {
  .up-header-main > .e-con-inner {
    grid-template-columns: minmax(190px, 1fr) auto minmax(160px, 1fr);
    column-gap: 12px !important;
  }

  .up-native-nav .elementor-nav-menu--main .elementor-item {
    padding-inline: 3px !important;
    font-size: 13px !important;
  }

}

@media (max-width: 1024px) {
  .up-header-main > .e-con-inner {
    grid-template-columns: 1fr auto;
    column-gap: 18px !important;
  }

  .up-native-logo {
    grid-column: 1;
  }

  .up-native-nav {
    grid-column: 2;
    justify-self: end;
  }

  .page-id-553 .elementor-element-f4ae388 {
    width: 100% !important;
    max-width: 100% !important;
    animation: none !important;
    transform: none !important;
  }

  .page-id-553 .elementor-element-f4ae388 img,
  .page-id-617 #imgBlock,
  .page-id-617 #imgBlock img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

@media (max-width: 768px) {
  .page-id-6084 .up-opportunities {
    overflow: hidden;
    backdrop-filter: none;
  }

  .page-id-6084 .up-opportunities h2 {
    max-width: 100%;
    font-size: clamp(20px, 6vw, 22px) !important;
    line-height: 1.16 !important;
    letter-spacing: 0.04em !important;
    overflow-wrap: anywhere;
  }

  .page-id-6084 .up-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .page-id-6084 .up-native-table {
    width: 520px;
    min-width: 520px;
  }

  .page-id-6084 .up-native-table-row {
    padding-inline: 8px;
  }

  .up-event-details-grid {
    grid-template-columns: 1fr !important;
  }

  .up-event-date-panel,
  .up-event-location-panel {
    min-height: 0;
  }
}

@media (max-width: 600px) {
  .up-header-phone,
  .up-header-phone .elementor-widget-container {
    justify-content: center;
  }

  .up-header-phone a::before {
    margin-right: 8px;
    padding-inline: 7px;
    content: "Call";
  }

  .up-header-phone a span {
    display: none;
  }

  .up-header-main > .e-con-inner {
    column-gap: 12px !important;
  }
}

/* Newsletter / ambassador popup: premium DriveYield presentation. */
#elementor-popup-modal-6798 {
  box-sizing: border-box;
  padding: 24px;
  background: rgba(10, 31, 24, 0.82) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

#elementor-popup-modal-6798 .dialog-widget-content {
  width: min(660px, calc(100vw - 48px)) !important;
  max-width: 660px !important;
  max-height: calc(100dvh - 48px);
  border: 1px solid rgba(33, 61, 49, 0.14);
  border-top: 6px solid #c7ee6d;
  border-radius: 18px !important;
  background: #f7faf4 !important;
  box-shadow: 0 32px 90px -30px rgba(0, 0, 0, 0.72) !important;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #9ebd5d transparent;
}

#elementor-popup-modal-6798 .elementor-location-popup,
#elementor-popup-modal-6798 .elementor-element-7a42bd1 {
  background: #f7faf4 !important;
}

#elementor-popup-modal-6798 .elementor-element-7a42bd1 {
  gap: 14px !important;
}

#elementor-popup-modal-6798 .elementor-element-398df12 {
  width: min(100%, 520px);
  margin-inline: auto;
}

#elementor-popup-modal-6798 .elementor-element-398df12 .elementor-heading-title {
  color: #213d31 !important;
  font-family: var(--up-serif) !important;
  font-size: clamp(34px, 4vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
  text-wrap: balance;
}

#elementor-popup-modal-6798 .elementor-element-a92ec41 {
  width: min(100%, 500px);
  margin-inline: auto;
  color: #3f5a4f !important;
  font-family: var(--up-sans) !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}

#elementor-popup-modal-6798 .elementor-element-a92ec41 p {
  margin: 0 !important;
}

#elementor-popup-modal-6798 .fluentform {
  margin-top: 8px;
}

#elementor-popup-modal-6798 .ff-el-group {
  margin-bottom: 16px;
}

#elementor-popup-modal-6798 .ff-el-input--label label {
  margin-bottom: 7px;
  color: #213d31 !important;
  font-family: var(--up-sans) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

#elementor-popup-modal-6798 .ff-el-form-control {
  min-height: 50px;
  padding: 12px 15px !important;
  border: 1px solid #c8d4cd !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #213d31 !important;
  font-family: var(--up-sans) !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  box-shadow: 0 1px 2px rgba(23, 45, 37, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

#elementor-popup-modal-6798 .ff-el-form-control::placeholder {
  color: #718078 !important;
  opacity: 1;
}

#elementor-popup-modal-6798 .ff-el-form-control:hover {
  border-color: #8da39a !important;
}

#elementor-popup-modal-6798 .ff-el-form-control:focus {
  border-color: #597b25 !important;
  outline: 0 !important;
  box-shadow: 0 0 0 3px rgba(199, 238, 109, 0.34) !important;
}

#elementor-popup-modal-6798 .ff_submit_btn_wrapper {
  margin-top: 6px;
  margin-bottom: 0;
}

#elementor-popup-modal-6798 .ff-btn-submit {
  min-width: 160px;
  height: 50px;
  border-radius: 6px !important;
  box-shadow: 0 12px 24px -16px rgba(33, 61, 49, 0.75);
}

#elementor-popup-modal-6798 .dialog-close-button {
  top: 18px !important;
  right: 18px !important;
  z-index: 3;
  display: grid !important;
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  padding: 0 !important;
  place-items: center;
  border: 1px solid rgba(33, 61, 49, 0.18);
  border-radius: 50%;
  background: #fff !important;
  color: #213d31 !important;
  box-shadow: 0 10px 26px -18px rgba(23, 45, 37, 0.8);
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

#elementor-popup-modal-6798 .dialog-close-button:hover {
  border-color: #c7ee6d;
  background: #c7ee6d !important;
  color: #172d25 !important;
  transform: rotate(4deg);
}

#elementor-popup-modal-6798 .dialog-close-button:focus-visible {
  outline: 3px solid #c7ee6d;
  outline-offset: 3px;
}

#elementor-popup-modal-6798 .dialog-close-button svg {
  width: 15px;
  height: 15px;
}

@media (max-width: 767px) {
  #elementor-popup-modal-6798 {
    align-items: center;
    padding: 14px;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }

  #elementor-popup-modal-6798 .dialog-widget-content {
    width: calc(100vw - 28px) !important;
    max-height: calc(100dvh - 28px);
    border-top-width: 5px;
    border-radius: 14px !important;
  }

  #elementor-popup-modal-6798 .elementor-element-7a42bd1 {
    padding: 32px 20px 24px !important;
  }

  #elementor-popup-modal-6798 .elementor-element-398df12 {
    padding-inline: 30px;
  }

  #elementor-popup-modal-6798 .elementor-element-398df12 .elementor-heading-title {
    font-size: clamp(28px, 8vw, 34px) !important;
    line-height: 1.08 !important;
  }

  #elementor-popup-modal-6798 .elementor-element-a92ec41 {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }

  #elementor-popup-modal-6798 .ff-el-group {
    margin-bottom: 13px;
  }

  #elementor-popup-modal-6798 .ff-btn-submit {
    width: 100%;
  }

  #elementor-popup-modal-6798 .dialog-close-button {
    top: 12px !important;
    right: 12px !important;
    width: 38px;
    height: 38px;
    min-width: 38px;
    min-height: 38px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #elementor-popup-modal-6798 .dialog-widget-content,
  #elementor-popup-modal-6798 .dialog-close-button,
  #elementor-popup-modal-6798 .ff-btn-submit {
    animation: none !important;
    transition: none !important;
  }
}

/* Complianz controls use the same theme without changing consent behaviour. */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {
  border-color: #c7ee6d !important;
  background: #c7ee6d !important;
  color: #213d31 !important;
  font-family: var(--up-sans) !important;
  font-weight: 700 !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover {
  border-color: #dff7a8 !important;
  background: #dff7a8 !important;
  color: #172d25 !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-manage-options {
  border-color: rgba(33, 61, 49, 0.2) !important;
  background: #f7faf4 !important;
  color: #213d31 !important;
  font-family: var(--up-sans) !important;
}

.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-manage-options:hover {
  border-color: #597b25 !important;
  background: #edf4e8 !important;
  color: #172d25 !important;
}

.cmplz-cookiebanner .cmplz-btn:focus-visible,
.cmplz-cookiebanner .cmplz-close:focus-visible {
  outline: 3px solid #c7ee6d !important;
  outline-offset: 3px;
}
