/* Dave's Speedy Header Styles v2.7.0 */
@import url('https://use.typekit.net/rvd2qbl.css');

.dsh {
  position: relative;
  display: block;
  width: 100%;
  min-height: var(--dsh-min-h, 700px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.dsh.dsh--bleed {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw);
  margin-right: calc(-50vw);
}

.dsh .dsh__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* Video element as background */
.dsh .dsh__video {
  position: absolute;
  inset: 0;
  margin: auto;
  width: var(--dsh-video-w, 100%);
  height: var(--dsh-video-h, 100%);
  object-fit: var(--dsh-video-fit, cover);
  object-position: center center;
  z-index: 0;
  pointer-events: none; /* background only */
}

/* Mobile overrides for video sizing */
@media (max-width: 768px) {
  .dsh { min-height: var(--dsh-min-h-mobile, 700px); }
  .dsh .dsh__video {
    width: var(--dsh-video-w-mobile, var(--dsh-video-w, 100%));
    height: var(--dsh-video-h-mobile, var(--dsh-video-h, 100%));
    object-fit: var(--dsh-video-fit-mobile, var(--dsh-video-fit, contain));
  }
}

.dsh .dsh__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: var(--dsh-overlay-rgba, rgba(0, 0, 0, .35));
  z-index: 1;
}

.dsh .dsh__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: grid;
  align-items: var(--dsh-ai, center);
  justify-items: var(--dsh-ji, center);
  padding: var(--dsh-overlay-padding, 30px);
  box-sizing: border-box;
}

.dsh .dsh__content {
  max-width: var(--dsh-inner-max-w, 1100px);
  text-align: var(--dsh-text-align, center);
  background: var(--dsh-content-bg, transparent);
  padding: var(--dsh-content-padding, 20px);
  border-radius: var(--dsh-content-radius, 8px);
  margin-left: auto;
  margin-right: auto;
}

.dsh .dsh__content-overlay {
  background: var(--dsh-overlay-rgba, rgba(0, 0, 0, .35));
  padding: var(--dsh-overlay-padding, 30px);
  border-radius: var(--dsh-content-radius, 8px);
}

/* Title (Antonia variable with custom settings) */
.dsh .dsh__heading,
.dsh .dsh__heading-box h1,
.dsh .dsh__heading-box h2 {
  letter-spacing: normal;
  text-transform: inherit;
  font-family: var(--dsh-heading-font, "antonia-variable", sans-serif) !important;
  font-variation-settings: var(--dsh-font-variation, "'wght' 600, 'opsz' 8");
  font-optical-sizing: auto;
  font-size: var(--dsh-heading-size) !important;
  color: var(--dsh-heading-color, #fff) !important;
  font-weight: 600;
  font-style: var(--dsh-heading-style);
  line-height: 1.2;
  margin: 0 0 15px 0;
  white-space: nowrap;
}

.dsh .dsh__text {
  font-family: var(--dsh-text-font, inherit);
  font-size: var(--dsh-text-size, 18px) !important;
  color: var(--dsh-text-color, #f0f0f0) !important;
  line-height: 1.6;
  margin: 0 0 20px 0;
}

/* Button defaults */
.dsh .dsh__btn {
  line-height: var(--dsh-btn-size, clamp(24px, 3.6vw, 34px)) !important;
  display: inline-block;
  padding: 20px 21px;
  border-radius: var(--dsh-btn-radius, 50px);
  font-size: var(--dsh-btn-size, clamp(24px, 3.6vw, 34px)) !important;
  margin-top: 20px;
  font-weight: 600;
  background: var(--dsh-btn-bg, #2c5593);
  color: var(--dsh-btn-color, #ffffff) !important;
  text-decoration: none;
  transition: background .25s ease, color .25s ease;
}

.dsh .dsh__btn:hover {
  background: var(--dsh-btn-bg-hover, #9bc8ff);
  color: var(--dsh-btn-color-hover, #000000) !important;
}

/* Carousel */
.dsh-carousel {
  position: relative;
  width: 100%;
}

.dsh-carousel.dsh--bleed {
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw);
  margin-right: calc(-50vw);
}

.dsh-carousel .dsh-carousel__viewport {
  position: relative;
  width: 100%;
  min-height: var(--dsh-min-h, 700px);
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
}

.dsh-carousel .dsh-carousel__viewport > .dsh {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 0;
  transition: opacity 280ms ease-out, visibility 0s linear 280ms;
}

/* First slide visible BEFORE JS init */
.dsh-carousel .dsh-carousel__viewport:not(.is-initialized) > .dsh:first-child {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

/* Active/Leaving transitions AFTER JS init */
.dsh-carousel .dsh-carousel__viewport > .dsh.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 2;
  transition: opacity 280ms ease-out;
}

.dsh-carousel .dsh-carousel__viewport > .dsh.is-leaving {
  opacity: 0;
  visibility: visible;
  pointer-events: none;
  z-index: 1;
  transition: opacity 280ms ease-out;
}

.dsh-carousel .dsh-carousel__viewport > .dsh.dsh--bleed {
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.dsh-carousel .dsh-carousel__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 22px;
  background: rgba(0, 0, 0, .45);
  color: #fff;
  cursor: pointer;
  transition: background .2s ease;
}

.dsh-carousel .dsh-carousel__nav:hover {
  background: rgba(0, 0, 0, .6);
}

.dsh-carousel .dsh-carousel__prev { left: 12px; }
.dsh-carousel .dsh-carousel__next { right: 12px; }

@media (max-width: 768px) {
  .dsh-carousel .dsh-carousel__nav {
    width: 38px;
    height: 38px;
    border-radius: 19px;
  }
}

/* Presets */
.dsh.dsh--preset-minimal .dsh__overlay {
  --dsh-overlay-rgba: rgba(0, 0, 0, .30);
}

.dsh.dsh--preset-bold .dsh__overlay {
  --dsh-overlay-rgba: rgba(255, 255, 255, .15);
  --dsh-heading-color: #222;
  --dsh-text-color: #333;
}

.dsh.dsh--preset-elegant .dsh__overlay {
  --dsh-overlay-rgba: rgba(0, 115, 230, .40);
  --dsh-btn-bg: #ff6600;
  --dsh-btn-bg-hover: #cc5200;
}

/* Container padding fixes */
.vc_column_container .dsh,
.wpb_wrapper .dsh {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* === Dave's Speedy Header: Logo Support === */
.dsh__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
  margin-bottom: 0;
}

.dsh__logo img {
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

/* When logo is before the button */
.dsh__logo.logo-before {
  margin-bottom: 15px;
}

/* When logo is after the button */
.dsh__logo.logo-after {
  margin-top: 15px;
}

/* If there’s no button, center and add extra spacing */
.dsh__logo:only-child {
  margin-top: 20px;
  margin-bottom: 20px;
}
