.huu-uib-hero {
  background: var(--huu-uib-color-bg, var(--huu-uib-bg, var(--huu-uib-background, #f5f7f0)));
  color: var(--huu-uib-color-text, var(--huu-uib-text, var(--huu-uib-text-color, #52607a)));
  padding: var(--huu-uib-section-padding-top, var(--huu-uib-section-pad-top, 80px)) var(--huu-uib-content-pad-x, var(--huu-uib-pad-x, 12px)) var(--huu-uib-section-padding-bottom, var(--huu-uib-section-pad-bottom, 80px));
}

.huu-uib-hero__wrap {
  width: 100%;
  max-width: var(--huu-uib-inner-max-width, var(--huu-uib-max-width, 1240px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: var(--huu-uib-hero-columns, 1.25fr 0.85fr);
  gap: var(--huu-uib-grid-gap, 18px);
  align-items: var(--huu-uib-hero-align, center);
}

.huu-uib-hero--width-full .huu-uib-hero__wrap {
  max-width: none;
}

.huu-uib-hero__copy {
  max-width: 760px;
  display: grid;
  gap: 22px;
}

.huu-uib-hero__kicker {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  color: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  font-size: var(--huu-uib-small-size, 16px);
  font-weight: var(--huu-uib-small-weight, 700);
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.huu-uib-hero__title {
  margin: 0;
  color: var(--huu-uib-color-heading, var(--huu-uib-heading, var(--huu-uib-heading-color, #111827)));
  font-size: var(--huu-uib-hero-title-size, var(--huu-uib-h1-size, 60px));
  font-weight: var(--huu-uib-hero-title-weight, var(--huu-uib-h1-weight, 800));
  line-height: 1.05;
  letter-spacing: -.045em;
}

.huu-uib-hero__title--h1 { --huu-uib-hero-title-size: var(--huu-uib-h1-size, 60px); --huu-uib-hero-title-weight: var(--huu-uib-h1-weight, 800); }
.huu-uib-hero__title--h2 { --huu-uib-hero-title-size: var(--huu-uib-h2-size, 54px); --huu-uib-hero-title-weight: var(--huu-uib-h2-weight, 700); }
.huu-uib-hero__title--h3 { --huu-uib-hero-title-size: var(--huu-uib-h3-size, 36px); --huu-uib-hero-title-weight: var(--huu-uib-h3-weight, 600); }
.huu-uib-hero__title--h4 { --huu-uib-hero-title-size: var(--huu-uib-h4-size, 28px); --huu-uib-hero-title-weight: var(--huu-uib-h4-weight, 600); }
.huu-uib-hero__title--h5 { --huu-uib-hero-title-size: var(--huu-uib-h5-size, 22px); --huu-uib-hero-title-weight: var(--huu-uib-h5-weight, 500); }
.huu-uib-hero__title--h6 { --huu-uib-hero-title-size: var(--huu-uib-h6-size, 18px); --huu-uib-hero-title-weight: var(--huu-uib-h6-weight, 500); }

.huu-uib-hero__description {
  margin: 0;
  max-width: 68ch;
  color: var(--huu-uib-color-text, var(--huu-uib-text, var(--huu-uib-text-color, #52607a)));
  font-size: var(--huu-uib-body-size, 18px);
  font-weight: var(--huu-uib-body-weight, 400);
  line-height: 1.75;
}

.huu-uib-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
}

.huu-uib-hero__action-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.huu-uib-hero__action-slot > * {
  margin: 0;
}

.huu-uib-hero__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  content: ''; 
  min-height: 48px;
  padding: 13px 24px;
  border-radius: 10px;
  font-size: var(--huu-uib-body-size, 18px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}

.huu-uib-hero__button:hover {
  transform: translateY(-1px);
}

.huu-uib-hero__button--primary {
  background: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  color: var(--huu-uib-color-primary-contrast, var(--huu-uib-color-primary-contrast, var(--huu-uib-primary-contrast, #fff)));
}

.huu-uib-hero__button--secondary {
  background: var(--huu-uib-color-surface, var(--huu-uib-surface, #fff));
  color: var(--huu-uib-color-heading, var(--huu-uib-heading, #111827));
  box-shadow: inset 0 0 0 1px var(--huu-uib-color-border, var(--huu-uib-border, #dbe4bf));
}

.huu-uib-hero__card {
  width: 100%;
  max-width: 520px;
  justify-self: end;
  order: 0;
  display: grid;
  gap: 18px;
  padding: 32px;
  border: 1px solid var(--huu-uib-color-border, var(--huu-uib-border, #dbe4bf));
  border-radius: var(--huu-uib-radius-xl, 28px);
  background: var(--huu-uib-color-surface, var(--huu-uib-surface, #fff));
  color: var(--huu-uib-color-text, var(--huu-uib-text, #52607a));
  box-shadow: var(--huu-uib-shadow, 0 22px 60px rgba(17, 24, 39, .08));
  overflow: hidden;
}

.huu-uib-hero__side-title {
  margin: 0;
  color: var(--huu-uib-color-heading, var(--huu-uib-heading, #111827));
  font-size: var(--huu-uib-h3-size, 36px);
  font-weight: var(--huu-uib-h3-weight, 600);
  line-height: 1.15;
  letter-spacing: -.025em;
}

.huu-uib-hero__side-text {
  margin: 0;
  font-size: var(--huu-uib-body-size, 18px);
  line-height: 1.65;
}

.huu-uib-hero__features {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--huu-uib-body-size, 18px);
  line-height: 1.5;
}

.huu-uib-hero__features li {
  position: relative;
  padding-left: 28px;
}

.huu-uib-hero__features li::before {
  content: ''; 
  position: absolute;
  left: 0;
  top: .45em;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  box-shadow: inset 0 0 0 4px var(--huu-uib-color-primary-contrast, var(--huu-uib-primary-contrast, #fff));
}

.huu-uib-hero-media {
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.huu-uib-hero-media__visual {
  position: relative;
  min-height: 260px;
  overflow: hidden;
  border-radius: var(--huu-uib-radius-lg, 20px);
  background: var(--huu-uib-color-bg, var(--huu-uib-background, #f5f7f0));
}

.huu-uib-hero-media__slide {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  opacity: 0;
  transition: opacity .35s ease;
}

.huu-uib-hero-media__slide.is-active {
  opacity: 1;
}

.huu-uib-hero-media__play {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 58px;
  height: 58px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  color: var(--huu-uib-color-primary-contrast, var(--huu-uib-color-primary-contrast, var(--huu-uib-primary-contrast, #fff)));
  display: inline-flex;
  align-items: center;
  content: ''; 
}

.huu-uib-hero-media__play i,
.huu-uib-hero-media__play svg {
  width: 20px;
  height: 20px;
  font-size: 20px;
  line-height: 1;
}

.huu-uib-hero-media__play i,
.huu-uib-hero-media__play svg,
.huu-uib-hero-media__play svg * {
  color: currentColor;
  fill: currentColor;
  stroke: currentColor;
}

.huu-uib-hero-media__play--radar::before,
.huu-uib-hero-media__play--radar::after {
  content: ''; 
  position: absolute;
  inset: -8px;
  border: 2px solid currentColor;
  border-radius: inherit;
  opacity: .38;
  pointer-events: none;
  animation: huu-uib-hero-radar 1.8s ease-out infinite;
}

.huu-uib-hero-media__play--radar::after {
  animation-delay: .9s;
}

.huu-uib-hero-media__play--radar:empty::before {
  animation: none;
  inset: auto;
  opacity: 1;
  border-radius: 0;
}

@keyframes huu-uib-hero-radar {
  0% { transform: scale(.92); opacity: .42; }
  70%, 100% { transform: scale(1.65); opacity: 0; }
}

.huu-uib-hero-media__play:empty::before {
  content: ''; 
  position: absolute;
  left: 23px;
  top: 18px;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 16px solid var(--huu-uib-color-primary-contrast, var(--huu-uib-color-primary-contrast, var(--huu-uib-primary-contrast, #fff)));
}

.huu-uib-hero-media__footer {
  display: flex;
  align-items: center;
  content: ''; 
  gap: 16px;
  margin-top: 16px;
  font-size: var(--huu-uib-small-size, 16px);
}

.huu-uib-hero-media__caption {
  color: var(--huu-uib-color-heading, var(--huu-uib-heading, #111827));
}

.huu-uib-hero-media__link {
  color: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  font-weight: 700;
}

@media (max-width: 1024px) {
  .huu-uib-hero__wrap {
    grid-template-columns: 1fr;
  }

  .huu-uib-hero__card {
    justify-self: stretch;
    max-width: none;
    order: var(--huu-uib-hero-card-mobile-order, 2);
  }
}

@media (max-width: 767px) {
  .huu-uib-hero__copy {
    gap: 18px;
  }

  .huu-uib-hero__actions,
  .huu-uib-hero__button {
    width: 100%;
  }

  .huu-uib-hero__card {
    padding: 24px;
    border-radius: var(--huu-uib-radius-lg, 22px);
  }
}

/* Hero Services v2 media modes */
.huu-uib-hero__card--photo,
.huu-uib-hero__card--video {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.huu-uib-hero-media--photo {
  cursor: default;
  pointer-events: none;
}

.huu-uib-hero-media--video {
  cursor: pointer;
}

.huu-uib-hero-media__visual,
.huu-uib-hero-media--video .huu-uib-hero-media__visual {
  display: block;
  width: 100%;
}

.huu-uib-hero__card--photo .huu-uib-hero-media__visual,
.huu-uib-hero__card--video .huu-uib-hero-media__visual {
  min-height: clamp(260px, 34vw, 520px);
}

.huu-uib-hero-modal[hidden] {
  display: none !important;
}

.huu-uib-hero-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: 24px;
}

.huu-uib-hero-modal__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(2, 6, 23, .72);
  cursor: pointer;
}

.huu-uib-hero-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  border-radius: 0;
  background: #000;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .35);
}

.huu-uib-hero-modal__close {
  position: absolute;
  top: -14px;
  right: -14px;
  z-index: 2;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: var(--huu-uib-color-surface, var(--huu-uib-surface, #fff));
  color: var(--huu-uib-color-heading, var(--huu-uib-heading, #111827));
  cursor: pointer;
  font-size: 26px;
  line-height: 1;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
}

.huu-uib-hero-modal__frame {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 0;
  aspect-ratio: 16 / 9;
}

.huu-uib-hero-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.huu-uib-modal-open {
  overflow: hidden;
}

@media (max-width: 767px) {
  .huu-uib-hero-modal {
    padding: 16px;
  }

  .huu-uib-hero-modal__close {
    top: 8px;
    right: 8px;
  }
}

/* Hero Services controls: colors, buttons and video icon styles */
.huu-uib-hero__button {
  border-style: solid;
  border-width: 1px;
}

.huu-uib-hero__button--primary {
  border-color: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
}

.huu-uib-hero__button--secondary {
  border-color: var(--huu-uib-color-border, var(--huu-uib-border, #dbe4bf));
  box-shadow: none;
}

.huu-uib-hero-media__play--outline {
  background: transparent;
  border: 2px solid currentColor;
}

.huu-uib-hero-media__play--glass {
  background: color-mix(in srgb, var(--huu-uib-color-surface, #ffffff) 72%, transparent);
  color: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  backdrop-filter: blur(10px);
  box-shadow: 0 16px 42px rgba(15, 23, 42, .18);
}

/* Card feature icons: real Elementor icon control, not a hardcoded pseudo bullet. */
.huu-uib-hero__features li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding-left: 0;
}

.huu-uib-hero__features li::before {
  content: ''; 
  display: none;
}

.huu-uib-hero__feature-icon {
  width: 18px;
  min-width: 18px;
  height: 18px;
  margin-top: .18em;
  display: inline-flex;
  align-items: center;
  content: ''; 
  color: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  background: transparent;
  border: 0 solid transparent;
  border-radius: 0;
  line-height: 1;
}

.huu-uib-hero__feature-icon i,
.huu-uib-hero__feature-icon svg {
  width: 10px;
  height: 10px;
  font-size: 10px;
  line-height: 1;
  display: block;
}

.huu-uib-hero__feature-text {
  min-width: 0;
}

.huu-uib-hero__card--card {
  position: relative;
}

.huu-uib-hero__card--card::before {
  content: ''; 
  position: absolute;
  inset: 0 0 auto 0;
  height: 0;
  background: var(--huu-uib-color-primary, var(--huu-uib-primary, #02820b));
  opacity: 1;
  pointer-events: none;
}

.huu-uib-hero-media,
.huu-uib-hero-media__visual,
.huu-uib-hero-media__slide {
	width: 100%;
	height: 100%;
	min-height: inherit;
}

.huu-uib-hero-media__slide {
	position: relative;
	overflow: hidden;
	border-radius: inherit;
}

.huu-uib-hero-media__image {
	width: 100%;
	height: 100%;
	min-height: inherit;
	display: block;
	object-fit: cover;
	border-radius: inherit;
}
/* Fix: keep Elementor icon color controls effective for SVG icons. */
.huu-uib-hero__feature-icon i,
.huu-uib-hero__feature-icon svg,
.huu-uib-hero-media__play i,
.huu-uib-hero-media__play svg {
  color: currentColor;
  fill: currentColor;
  stroke: currentColor;
}

.huu-uib-hero__feature-icon svg *,
.huu-uib-hero-media__play svg * {
  fill: currentColor;
  stroke: currentColor;
}

/* Mobile button text alignment safety */
@media (max-width: 767px) {
  .huu-uib-hero__button {
    justify-content: center;
    text-align: center;
  }
}

/* Button icon system */
.huu-uib-hero__button {
  gap: var(--huu-uib-hero-button-icon-gap, 8px);
}

.huu-uib-hero__button-icon,
.huu-uib-hero__button-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.huu-uib-hero__button-icon {
  flex: 0 0 auto;
  line-height: 1;
  color: currentColor;
  transition: color .2s ease, transform .2s ease;
}

.huu-uib-hero__button-icon svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.huu-uib-hero__button-icon svg path,
.huu-uib-hero__button-icon svg circle,
.huu-uib-hero__button-icon svg rect,
.huu-uib-hero__button-icon svg polygon,
.huu-uib-hero__button-icon svg line,
.huu-uib-hero__button-icon svg polyline {
  fill: currentColor;
  stroke: currentColor;
}

.huu-uib-hero__button--icon-right .huu-uib-hero__button-icon {
  order: 2;
}

.huu-uib-hero__button--icon-right .huu-uib-hero__button-text {
  order: 1;
}
