/* Isolated Hero Breadcrumb – do not use Elementor button classes or image globals. */
.dc-hhhero {
  --dc-hhhero-overlay-top: rgba(5,26,83,0);
  --dc-hhhero-overlay-middle: rgba(5,26,83,.12);
  --dc-hhhero-overlay-bottom: rgba(5,26,83,1);
  --dc-hhhero-animate-duration: 700ms;
  --dc-hhhero-animate-delay: 80ms;
  --dc-hhhero-animate-distance: 22px;
  --dc-hhhero-title-origin: left center;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: clamp(340px, 26.04vw, 500px);
  padding: 40px 24px 36px;
  background-color: #051A53;
  color: #fff;
  overflow-wrap: anywhere;
}
.dc-hhhero *, .dc-hhhero *::before, .dc-hhhero *::after { box-sizing: border-box; }
.dc-hhhero__media {
  position: absolute;
  z-index: -2;
  inset: 0;
  overflow: hidden; /* clip decorative media only, not text / nav */
  pointer-events: none;
}
.dc-hhhero .dc-hhhero__image {
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  max-width: none;
  inset: 0;
  object-fit: cover;
  object-position: center center;
  border: 0;
  margin: 0;
  padding: 0;
}
.dc-hhhero__overlay {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg,
    var(--dc-hhhero-overlay-top) 0%,
    var(--dc-hhhero-overlay-middle) 56%,
    var(--dc-hhhero-overlay-bottom) 100%);
  pointer-events: none;
}
/* Bundled screenshot already contains its own purple tint; uploads never get this exception. */
.dc-hhhero--bundled:not(.dc-hhhero--overlay-on-bundled) .dc-hhhero__overlay { opacity: 0; }
.dc-hhhero__inner {
  width: 100%;
  min-width: 0;
  max-width: 1320px;
  margin-inline: auto;
  position: relative;
  z-index: 1;
  text-align: left;
}
.dc-hhhero .dc-hhhero__title {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  padding: 0;
  margin: 0;
  border: 0;
  color: #fff;
  background: none;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  font-size: 56px;
  font-stretch: condensed;
  line-height: 1.08;
  letter-spacing: .015em;
  text-transform: uppercase;
  text-wrap: pretty;
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
  text-shadow: none;
}
.dc-hhhero__title-text {
  display: inline-block;
  min-width: 0;
  max-width: 100%;
  transform-origin: var(--dc-hhhero-title-origin);
  transform: scaleX(1);
  overflow-wrap: anywhere;
  white-space: normal;
}
.dc-hhhero__breadcrumb {
  max-width: 100%;
  min-width: 0;
  margin: 0 0 20px;
  font: 600 19px/1.35 Arial, Helvetica, sans-serif;
  color: #fff;
}
.dc-hhhero .dc-hhhero__crumb-list,
.elementor .dc-hhhero .dc-hhhero__crumb-list {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 4px 16px;
  padding: 0;
  margin: 0;
  max-width: 100%;
  list-style: none;
}
.dc-hhhero .dc-hhhero__crumb-item,
.elementor .dc-hhhero .dc-hhhero__crumb-item {
  position: relative;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  overflow-wrap: anywhere;
}
.dc-hhhero__crumb-item + .dc-hhhero__crumb-item::before {
  content: '/';
  display: inline-block;
  margin-inline-end: 16px;
  opacity: .72;
}
.dc-hhhero .dc-hhhero__crumb-link,
.elementor .dc-hhhero .dc-hhhero__crumb-link {
  color: inherit;
  background: transparent !important; /* Elementor kit / theme link backgrounds must not bleed through */
  background-image: none !important;
  box-shadow: none !important;
  border: 0;
  border-radius: 0;
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color .18s ease;
  overflow-wrap: anywhere;
}
.dc-hhhero .dc-hhhero__crumb-link:hover,
.dc-hhhero .dc-hhhero__crumb-link:focus-visible { color: #fff; text-decoration: underline; }
.dc-hhhero .dc-hhhero__crumb-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.dc-hhhero__crumb-item [aria-current='page'] { font-weight: 600; }
.dc-hhhero--animate .dc-hhhero__reveal {
  opacity: 0;
  transform: translate3d(0, var(--dc-hhhero-animate-distance), 0);
  transition-property: opacity, transform;
  transition-duration: var(--dc-hhhero-animate-duration);
  transition-delay: var(--dc-hhhero-animate-delay);
  transition-timing-function: cubic-bezier(.22,1,.36,1);
}
/* CSS-only escape hatch if frontend JS fails to load; text never stays hidden. */
@keyframes dc-hhhero-css-failsafe {
  to { opacity: 1; transform: none; }
}
.dc-hhhero--animate:not(.is-visible) .dc-hhhero__reveal {
  animation: dc-hhhero-css-failsafe 0s linear 3.2s both;
}
.dc-hhhero--animate.is-visible .dc-hhhero__reveal { animation: none; }
.dc-hhhero--animate .dc-hhhero__breadcrumb { transition-delay: calc(var(--dc-hhhero-animate-delay) + 110ms); }
.dc-hhhero--animate.is-visible .dc-hhhero__reveal { opacity: 1; transform: none; }
.dc-hhhero--animate-image .dc-hhhero__image { transform: scale(1.035); transition: transform 1400ms cubic-bezier(.22,1,.36,1); }
.dc-hhhero--animate-image.is-visible .dc-hhhero__image { transform: scale(1); }
/* Keep layout content-sized: a long title or breadcrumbs grows the section instead of clipping. */
@media (max-width: 1024px) {
  .dc-hhhero { min-height: 320px; padding: 32px 26px 32px; }
  .dc-hhhero .dc-hhhero__title { font-size: 46px; }
}
@media (max-width: 767px) {
  .dc-hhhero { min-height: 260px; padding: 30px 20px 26px; }
  .dc-hhhero .dc-hhhero__title { font-size: 36px; line-height: 1.17; letter-spacing: -.025em; }
  .dc-hhhero__crumb-list { column-gap: 8px; }
  .dc-hhhero__breadcrumb { font-size: 14px; }
  .dc-hhhero__overlay { background: linear-gradient(180deg, var(--dc-hhhero-overlay-top), var(--dc-hhhero-overlay-middle) 42%, var(--dc-hhhero-overlay-bottom)); }
}
@media (max-width: 359px) {
  .dc-hhhero { padding-inline: 16px; }
  .dc-hhhero .dc-hhhero__title { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .dc-hhhero--animate .dc-hhhero__reveal,
  .dc-hhhero--animate-image .dc-hhhero__image {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
/* Never animate hidden editor content during repeated widget controls updates. */
.elementor-editor-active .dc-hhhero--animate .dc-hhhero__reveal,
.elementor-editor-preview .dc-hhhero--animate .dc-hhhero__reveal { opacity: 1; transform: none; }

/* Design parity: text stays in document flow and never clips on long page titles. */
.dc-hhhero .dc-hhhero__breadcrumb { margin-top: 0; }
.dc-hhhero .dc-hhhero__title,
.elementor .dc-hhhero .dc-hhhero__title { margin-block: 0; }
.dc-hhhero .dc-hhhero__crumb-list { list-style: none; }
@media (max-width: 767px) {
  .dc-hhhero__breadcrumb { margin-bottom: 14px; }
  .dc-hhhero .dc-hhhero__title { font-size: 36px; }
}
