/*
 * DSB reusable CTA — exact diagonal fade treatment from the original DSB source.
 * The line pattern is intentionally NOT a generic 135deg stripe.
 */
.dsb-diagonal-fade-cta {
  --dsb-cta-navy: #0A1A2F;
  --dsb-cta-midnight: #12233F;
  --dsb-cta-gold: #CF9F55;
  --dsb-cta-warm-gold: #C8A55A;
  --dsb-cta-champagne: #E6DCC1;
  --dsb-cta-serif: 'Cormorant Garamond', Garamond, Georgia, serif;
  --dsb-cta-sans: 'Barlow', system-ui, sans-serif;

  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: var(--dsb-cta-midnight) !important;
  color: #fff !important;
  text-align: center !important;
}

/* Exact original DSB "bg-diag on-dark" pattern + fade mask. */
.dsb-diagonal-fade-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    24deg,
    currentColor 0 1px,
    transparent 1px 26px,
    currentColor 26px 27px,
    transparent 27px 96px
  );
  color: var(--dsb-cta-champagne);
  opacity: .08;
  -webkit-mask-image: linear-gradient(105deg, #000 0 34%, transparent 74%);
          mask-image: linear-gradient(105deg, #000 0 34%, transparent 74%);
}

.dsb-diagonal-fade-cta .dsb-diagonal-fade-cta__row {
  position: relative !important;
  z-index: 1 !important;
}

.dsb-diagonal-fade-cta .et_pb_module {
  margin-bottom: 0 !important;
}

.dsb-diagonal-fade-cta__heading h2 {
  max-width: 760px !important;
  margin: 0 auto 24px !important;
  padding: 0 !important;
  color: #fff !important;
  font-family: var(--dsb-cta-serif) !important;
  font-size: clamp(30px, 4vw, 46px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: .4px !important;
  text-align: center !important;
}

.dsb-diagonal-fade-cta__copy p {
  max-width: 760px !important;
  margin: 0 auto 38px !important;
  padding: 0 !important;
  color: var(--dsb-cta-champagne) !important;
  font-family: var(--dsb-cta-sans) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  text-align: center !important;
}

/* Native Divi Button module — matches the original solid DSB CTA button. */
.dsb-diagonal-fade-cta__button .et_pb_button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 17px 38px !important;
  border: 1px solid var(--dsb-cta-gold) !important;
  border-radius: 0 !important;
  background: var(--dsb-cta-gold) !important;
  color: var(--dsb-cta-navy) !important;
  box-shadow: none !important;
  font-family: var(--dsb-cta-sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.7 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: background-color .35s ease, color .35s ease, transform .35s ease !important;
}

.dsb-diagonal-fade-cta__button .et_pb_button::after,
.dsb-diagonal-fade-cta__button .et_pb_button::before {
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .dsb-diagonal-fade-cta__button .et_pb_button:hover {
    background: var(--dsb-cta-warm-gold) !important;
    border-color: var(--dsb-cta-warm-gold) !important;
    color: var(--dsb-cta-navy) !important;
  }
}

@media (max-width: 980px) {
  .dsb-diagonal-fade-cta__heading h2 {
    font-size: clamp(30px, 7vw, 42px) !important;
  }
}

@media (max-width: 600px) {
  .dsb-diagonal-fade-cta__heading h2 {
    max-width: 340px !important;
    margin-bottom: 20px !important;
    font-size: clamp(30px, 9vw, 38px) !important;
  }

  .dsb-diagonal-fade-cta__copy p {
    max-width: 340px !important;
    margin-bottom: 30px !important;
    font-size: 16px !important;
    line-height: 1.65 !important;
  }

  .dsb-diagonal-fade-cta__button .et_pb_button {
    min-height: 54px !important;
    padding: 15px 28px !important;
    font-size: 12px !important;
    letter-spacing: 1.7px !important;
  }
}
