/* The homepage consultation layout, shared by every consultation surface.
   Preserve the approved navy, gold panel, real photo and responsive hierarchy. */
body #page :is(#content, #colophon) section.db-contact-section {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(48px, 6vw, 96px) clamp(24px, 5vw, 80px);
  background:
    repeating-linear-gradient(125deg, transparent 0 110px, rgb(255 255 255 / 0.025) 111px 112px),
    #1d2d45;
  border-top: 1px solid rgb(244 188 65 / 0.25);
  border-bottom: 0;
  color: var(--db-off-white);
  text-align: left;
}
body #page :is(#content, #colophon) section.db-contact-section::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  background: none;
  transform: none;
  pointer-events: none;
}
body #page :is(#content, #colophon) section.db-contact-section > .home-contact-layout {
  position: static;
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  align-items: start;
  gap: clamp(32px, 5vw, 80px);
  width: 100%;
  max-width: 1360px;
  height: auto;
  min-height: 0;
  margin-inline: auto;
  padding: 0;
  background: none;
  border-radius: 0;
  box-shadow: none;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-intro {
  min-width: 0;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-eyebrow {
  margin: 0 0 20px;
  color: var(--db-yellow);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.5;
  text-transform: uppercase;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-title {
  margin: 0 0 24px;
  padding: 0;
  color: var(--db-off-white);
  font-size: clamp(48px, 5.2vw, 78px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.03;
  text-shadow: none;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-title span {
  color: var(--db-yellow);
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-description {
  max-width: 34ch;
  margin: 0 0 28px;
  color: #d4deeb;
  font-size: 18px;
  line-height: 1.65;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-phone {
  display: inline-flex;
  flex-direction: column;
  gap: 8px;
  color: var(--db-off-white);
  text-decoration: none;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-phone > span {
  color: #c9d3e1;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-phone strong {
  font-size: clamp(24px, 2.5vw, 34px);
  line-height: 1.2;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-phone strong span {
  margin-left: 14px;
  color: var(--db-yellow);
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-photo {
  position: relative;
  isolation: isolate;
  width: calc(100% + 24px);
  max-width: none;
  margin: 40px 0 0;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-photo::before {
  position: absolute;
  inset: 3px 6px;
  z-index: -1;
  border-radius: 20px;
  background: var(--db-gold-gradient);
  content: "";
  transform: rotate(-3deg);
  pointer-events: none;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-photo img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 20px;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel {
  position: relative;
  isolation: isolate;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 24px;
  background: none;
  box-shadow: none;
}
/* Separate transform and fade tracks keep the outward motion continuous.
   CSS owns the clock; visibility only pauses/resumes it, never restarts a wave. */
body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel::before,
body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border: 1px solid rgb(244 188 65 / 0.8);
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  animation:
    db-contact-ripple-expand 12s linear 4s infinite both paused,
    db-contact-ripple-fade 12s ease-in-out 4s infinite both paused;
}
body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel::after {
  animation-delay: 4.65s;
}
body
  #page
  :is(#content, #colophon)
  section.db-contact-section
  .home-contact-panel[data-contact-ripple="active"]::before,
body
  #page
  :is(#content, #colophon)
  section.db-contact-section
  .home-contact-panel[data-contact-ripple="active"]::after {
  animation-play-state: running;
  will-change: transform, opacity;
}
@keyframes db-contact-ripple-expand {
  0% {
    transform: scale(1);
  }
  32%,
  100% {
    transform: scale(1.045, 1.022);
  }
}
@keyframes db-contact-ripple-fade {
  0%,
  32%,
  100% {
    opacity: 0;
  }
  8% {
    opacity: 0.58;
  }
}
body.local-reduce-motion
  #page
  :is(#content, #colophon)
  section.db-contact-section
  .home-contact-panel::before,
body.local-reduce-motion
  #page
  :is(#content, #colophon)
  section.db-contact-section
  .home-contact-panel::after {
  display: none;
  animation: none;
}
@media (prefers-reduced-motion: reduce), print, (forced-colors: active) {
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel::before,
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel::after {
    display: none;
    animation: none;
  }
}
@media print, (forced-colors: active) {
  body #page :is(#content, #colophon) section.db-contact-section {
    background: #1d2d45;
  }
  body #page :is(#content, #colophon) section.db-contact-section::before {
    background: none;
  }
}
body #page :is(#content, #colophon) section.db-contact-section .gform_wrapper.db-contact-form {
  max-width: none;
  margin: 0;
}
body #page :is(#content, #colophon) section.db-contact-section :is(a, button):focus-visible {
  outline: 2px solid var(--db-yellow);
  outline-offset: 5px;
}
body #page :is(#content, #colophon) section.db-contact-section [data-contact-reveal="waiting"] {
  opacity: 0;
  transform: translateY(24px);
}
body #page :is(#content, #colophon) section.db-contact-section [data-contact-reveal="visible"] {
  animation: contact-arrive 900ms cubic-bezier(0.22, 0.65, 0.3, 1) var(--contact-delay, 0ms) both;
}
@keyframes contact-arrive {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Campaign sections fill the former page-content inset. Campaign information
   remains ahead of the form instead of competing with it in a narrow column. */
body #page #content section.db-contact-section--embedded {
  width: auto;
  margin-inline: -24px;
}
body #page #content .db-contact-campaign-copy > :is(p, ul) {
  max-width: 70ch;
}
body.page-id-78 #content .entry-content:has(> .db-contact-section) {
  padding: 0;
}
@media (min-width: 640px) {
  body #page #content section.db-contact-section--embedded {
    margin-inline: -40px;
  }
}
@media (min-width: 1920px) {
  body #page #content section.db-contact-section--embedded {
    margin-inline: 0;
  }
}
@media (max-width: 1100px) {
  body #page :is(#content, #colophon) section.db-contact-section > .home-contact-layout {
    grid-template-columns: 1fr;
    gap: 40px;
    max-width: 960px;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-photo {
    width: 100%;
    margin-top: 32px;
  }
}
@media (min-width: 641px) and (max-width: 1100px) {
  body #page :is(#content, #colophon) section.db-contact-section {
    padding: 48px clamp(28px, 5vw, 56px) 56px;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-intro {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    column-gap: clamp(24px, 3.5vw, 40px);
    align-content: center;
  }
  body
    #page
    :is(#content, #colophon)
    section.db-contact-section
    .home-contact-intro
    > :not(.home-contact-photo) {
    grid-column: 1;
  }
  body
    #page
    :is(#content, #colophon)
    section.db-contact-section
    .home-contact-intro
    > .home-contact-photo {
    grid-column: 2;
    grid-row: 1 / 5;
    align-self: center;
    margin: 0;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-eyebrow {
    margin-bottom: 16px;
    font-size: 11px;
    letter-spacing: 0.12em;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-title {
    margin-bottom: 20px;
    font-size: clamp(42px, 5.5vw, 60px);
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-description {
    margin-bottom: 24px;
    line-height: 1.6;
  }
}
@media (min-width: 576px) and (max-width: 900px) {
  body #page :is(#content, #colophon) section.db-contact-section {
    padding: 36px clamp(24px, 4vw, 36px) 44px;
  }
  body #page :is(#content, #colophon) section.db-contact-section > .home-contact-layout {
    gap: 28px;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-intro {
    display: block;
  }
  body
    #page
    :is(#content, #colophon)
    section.db-contact-section
    .home-contact-intro
    > .home-contact-photo {
    display: none;
  }
  body
    #page
    :is(#content, #colophon)
    section.db-contact-section
    .home-contact-intro
    > .home-contact-eyebrow {
    margin-bottom: 12px;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-title {
    margin-bottom: 16px;
    font-size: clamp(40px, 5.8vw, 52px);
    line-height: 1.1;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-title br {
    display: none;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-description {
    max-width: 56ch;
    margin-bottom: 18px;
  }
}
@media (max-width: 575px) {
  body #page :is(#content, #colophon) section.db-contact-section {
    padding-inline: 20px;
  }
  body #page :is(#content, #colophon) section.db-contact-section .home-contact-panel {
    border-radius: 18px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body #page :is(#content, #colophon) section.db-contact-section [data-contact-reveal] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}
body.local-reduce-motion
  #page
  :is(#content, #colophon)
  section.db-contact-section
  [data-contact-reveal] {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}
@media print {
  body #page :is(#content, #colophon) section.db-contact-section [data-contact-reveal] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}
