@font-face {
  font-family: "MPE Fraunces";
  src: url("../fonts/fraunces-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-300.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-500.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-700.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* Full faces are declared first; matching Western text uses the ranged subsets below. */
@font-face {
  font-family: "MPE Fraunces";
  src: url("../fonts/fraunces-400-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-300-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-400-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-500-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-600-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "MPE Inter";
  src: url("../fonts/inter-700-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  unicode-range: U+0000-024F, U+02BB-02FF, U+0300-036F, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2100-214F, U+2190-21FF, U+2212, U+2215, U+25A0, U+25A1, U+25AA, U+25AB, U+25CF, U+25CB, U+2713, U+2C60-2C7F, U+A720-A7FF, U+FB00-FB06, U+FEFF, U+FFFD;
}

:root {
  --dv-blue-50: #eff7ff;
  --dv-blue-100: #daedff;
  --dv-blue-200: #bcdfff;
  --dv-blue-300: #8ecbff;
  --dv-blue-400: #58aeff;
  --dv-blue-500: #2f8eff;
  --dv-blue-600: #1a6fe6;
  --dv-blue-700: #1657b8;
  --dv-blue-800: #164a93;
  --dv-blue-900: #0d2e5c;
  --dv-mist: #f4faff;
  --dv-neutral-50: #f8fbff;
  --dv-neutral-900: #0a1f3f;
  --dv-font-sans: "MPE Inter", system-ui, sans-serif;
  --dv-font-display: "MPE Fraunces", Georgia, serif;
  --dv-radius-card: 16px;
  --dv-radius-soft: 12px;
  --dv-radius-pill: 999px;
  --dv-shadow-soft: 0 20px 60px -20px rgb(26 111 230 / 25%);
  --dv-shadow-glow: 0 10px 40px -10px rgb(46 142 255 / 40%);
}

html {
  font-family: var(--dv-font-sans) !important;
}

body {
  font-family: var(--dv-font-sans);
}

.dvhm-logo span,
.dvhm-cta-wa {
  font-family: var(--dv-font-display) !important;
}

.dvhm-cta-wa .wa-hl {
  font-family: var(--dv-font-sans) !important;
}

@keyframes float {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-12px);
  }
}

.dv-page {
  color: var(--dv-blue-900);
  font-family: var(--dv-font-sans);
}

.dv-page .font-display,
.font-display {
  font-family: var(--dv-font-display) !important;
}

.font-sans {
  font-family: var(--dv-font-sans) !important;
}

.font-serif {
  font-family: var(--dv-font-display) !important;
}

.dv-container {
  width: 100%;
  max-width: 84rem;
  margin-inline: auto;
  padding-inline: 1.25rem;
}

.ds-container {
  width: 100%;
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: 1.5rem;
}

.dv-eyebrow,
.ds-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 1rem;
  border: 1px solid var(--dv-blue-200);
  border-radius: var(--dv-radius-pill);
  background: rgb(255 255 255 / 70%);
  color: var(--dv-blue-800);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.dv-eyebrow-dot,
.ds-eyebrow-dot {
  width: 0.375rem;
  height: 0.375rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--dv-blue-500);
}

.dv-btn,
.ds-btn {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  border-radius: var(--dv-radius-pill);
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.dv-btn:hover,
.ds-btn:hover {
  transform: translateY(-1px);
}

.dv-btn-primary,
.ds-btn-primary {
  background: var(--dv-blue-700);
  color: #fff;
  box-shadow: var(--dv-shadow-glow);
}

.dv-btn-primary:hover,
.ds-btn-primary:hover {
  background: var(--dv-blue-800);
}

.dv-btn-secondary,
.ds-btn-secondary {
  border: 1px solid var(--dv-blue-200);
  background: rgb(255 255 255 / 72%);
  color: var(--dv-blue-800);
  backdrop-filter: blur(10px);
}

.dv-btn-secondary:hover,
.ds-btn-secondary:hover {
  background: #fff;
}

.dv-card,
.ds-card {
  position: relative;
  padding: 2rem;
  border: 1px solid var(--dv-blue-100);
  border-radius: var(--dv-radius-card);
  background: linear-gradient(135deg, var(--dv-blue-50), #fff);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.dv-card:hover,
.ds-card:hover {
  box-shadow: var(--dv-shadow-soft);
  transform: translateY(-2px);
}

.dv-card-accent,
.ds-card-accent {
  position: relative;
  overflow: hidden;
  padding: 2rem;
  border-radius: var(--dv-radius-card);
  background: linear-gradient(135deg, var(--dv-blue-600), var(--dv-blue-800));
  color: #fff;
}

.dv-icon-tile,
.ds-icon-tile {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: var(--dv-radius-soft);
  background: var(--dv-blue-600);
  color: #fff;
}

.dv-chip,
.ds-chip {
  position: absolute;
  padding: 0.5rem 1rem;
  border: 1px solid var(--dv-blue-100);
  border-radius: var(--dv-radius-pill);
  background: rgb(255 255 255 / 86%);
  color: var(--dv-blue-800);
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: var(--dv-shadow-soft);
  backdrop-filter: blur(10px);
}

.dv-page :is(a, button):focus-visible {
  outline: 2px solid var(--dv-blue-600);
  outline-offset: 3px;
}

a:focus-visible,
button:focus-visible {
  border-radius: 8px;
  outline: 2px solid var(--dv-blue-600);
  outline-offset: 3px;
}

@media (min-width: 640px) {
  .dv-container {
    padding-inline: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .dv-container {
    padding-inline: 2rem;
  }

  /* Compatibility bridge for confirmed Home page classes. */
  .ds-container {
    padding-inline: 2.5rem;
  }

  .hero-water-bg {
    display: block;
  }

  .hero-visual {
    display: block;
    min-height: 26rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .dv-page *,
  .dv-page *::before,
  .dv-page *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
