.dsp-global-shell-section,
.dsp-global-shell-section > .et_pb_row,
.dsp-global-shell-section > .et_pb_row > .et_pb_column,
.dsp-global-shell-code,
.dsp-global-shell-code .et_pb_code_inner {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.dsp-global-shell-section { min-height: 0 !important; background: transparent !important; }
.dsp-global-shell-section::before,
.dsp-global-shell-section::after,
.dsp-global-shell-section > .et_pb_row::before,
.dsp-global-shell-section > .et_pb_row::after { content: none !important; display: none !important; }

/* Removing the clearfix above also removed the only thing containing Divi's
   floated columns, so the row collapsed to height 0 and #page-container
   (overflow: clip) cut the footer off entirely. flow-root re-establishes
   containment without bringing the pseudo-elements back. */
.dsp-global-shell-section,
.dsp-global-shell-section > .et_pb_row { display: flow-root !important; }
body.et-db #page-container .et-l--header,
body.et-db #page-container .et-l--footer,
body.et-db #page-container .et-l--header .et_builder_inner_content,
body.et-db #page-container .et-l--footer .et_builder_inner_content,
body.et-db #page-container .et-l--footer .dsp-global-shell-section {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  opacity: 1 !important;
}
body.et-db #page-container .et-l--footer { position: relative !important; z-index: 5 !important; }
body.et-db #page-container > .et-l--footer,
body.et-db #page-container > .et-l--footer > .et_builder_inner_content,
body.et-db #page-container > .et-l--footer .dsp-global-shell-code,
body.et-db #page-container > .et-l--footer .dsp-site-footer {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 1px !important;
  max-height: none !important;
  overflow: visible !important;
  float: none !important;
  clear: both !important;
  visibility: visible !important;
}
body.et-db #page-container > .et-l--footer .dsp-global-shell-section {
  padding: 0 !important;
  margin: 0 !important;
}
/* Older landing-page content also contains a Divi footer section. Keep it
   suppressed so the Theme Builder remains the single canonical footer. */
body.et-db #page-container #et-boc .et-l--body .et_pb_section.site-footer {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
body.et-db #page-container .et-l--footer .et_pb_section.site-footer {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}
.dsp-site-header {
  position: fixed;
  inset: 18px 0 auto;
  z-index: 1000;
  pointer-events: none;
  transition: transform .35s var(--ease);
}
.dsp-site-header.is-hidden:not(.menu-open) { transform: translateY(calc(-100% - 28px)); }
.dsp-site-header.is-scrolled .dsp-header-pill {
  border-color: rgba(255,255,255,.28);
  background: rgba(13,13,15,.96);
  box-shadow: 0 14px 42px rgba(0,0,0,.48), 0 0 0 1px rgba(255,0,25,.08);
  backdrop-filter: blur(24px) saturate(170%);
  -webkit-backdrop-filter: blur(24px) saturate(170%);
}
.dsp-header-pill {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(920px,calc(100% - 2 * var(--gutter)));
  min-height: 60px;
  margin-inline: auto;
  padding: 7px 7px 7px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(16,16,18,.88);
  box-shadow: 0 16px 45px rgba(0,0,0,.35);
  backdrop-filter: blur(20px) saturate(145%);
  -webkit-backdrop-filter: blur(20px) saturate(145%);
  pointer-events: auto;
}
.dsp-header-brand { display: inline-flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.dsp-header-brand img { width: 31px; height: 31px; object-fit: contain; }
.dsp-header-brand span { font-family: var(--f-display); font-size: .9rem; font-weight: 750; letter-spacing: -.02em; }
.dsp-desktop-nav { display: flex; align-items: center; gap: 23px; }
.dsp-desktop-nav a { position: relative; color: var(--text-2); font-size: .92rem; font-weight: 600; text-decoration: none; }
.dsp-desktop-nav a:not(.dsp-header-cta)::after { content: ""; position: absolute; inset: auto 100% -6px 0; height: 2px; background: var(--red); transition: right .22s var(--ease); }
.dsp-desktop-nav a:hover::after,
.dsp-desktop-nav a:focus-visible::after { right: 0; }
.dsp-header-cta { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; background: var(--red); color: #fff !important; box-shadow: 0 8px 24px -10px var(--red-glow); }
.dsp-header-cta:hover { background: #ff2033; transform: translateY(-1px); }

.dsp-menu-toggle { display: none; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--line-strong); border-radius: 50%; background: rgba(255,255,255,.05); cursor: pointer; }
.dsp-menu-toggle__lines { display: grid; gap: 5px; }
.dsp-menu-toggle__lines i { display: block; width: 19px; height: 2px; border-radius: 2px; background: #fff; transition: transform .24s var(--ease),opacity .2s; }
.menu-open .dsp-menu-toggle__lines i:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-open .dsp-menu-toggle__lines i:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.dsp-menu-overlay { position: fixed; inset: 0; z-index: -1; background: rgba(0,0,0,.58); opacity: 0; pointer-events: none; backdrop-filter: blur(4px); transition: opacity .28s; }
.menu-open .dsp-menu-overlay { opacity: 1; pointer-events: auto; }
.dsp-mobile-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: min(88vw,390px);
  padding: 24px;
  border-left: 1px solid var(--line);
  background: #141416;
  box-shadow: -28px 0 70px rgba(0,0,0,.45);
  transform: translateX(104%);
  visibility: hidden;
  pointer-events: auto;
  transition: transform .34s var(--ease),visibility 0s .34s;
}
.menu-open .dsp-mobile-drawer { transform: none; visibility: visible; transition-delay: 0s; }
.dsp-drawer-top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.dsp-drawer-top strong { font-family: var(--f-display); font-size: 1.05rem; }
.dsp-drawer-close { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: #fff; font-size: 1.7rem; cursor: pointer; }
.dsp-drawer-nav { display: grid; margin-top: 30px; }
.dsp-drawer-nav a { display: flex; align-items: center; justify-content: space-between; padding: 18px 2px; border-bottom: 1px solid var(--line); color: #fff; font-family: var(--f-display); font-size: clamp(1.5rem,7vw,2rem); font-weight: 750; line-height: 1; text-decoration: none; }
.dsp-drawer-nav a::after { content: "→"; color: var(--red); font-size: .8em; }
.dsp-drawer-cta { margin-top: auto; }
.dsp-drawer-cta a { display: flex; align-items: center; justify-content: center; min-height: 54px; border-radius: 999px; background: var(--red); color: #fff; font-weight: 700; text-decoration: none; }
.dsp-drawer-note { margin-top: 16px; color: var(--muted); font-size: .8rem; text-align: center; }
html.dsp-menu-lock { overflow: hidden; }

/* Black at the base fading to nothing at the top, so the fixed portrait behind
   it is uninterrupted as the footer rises. No top edge. */
.dsp-site-footer {
  position: relative; z-index: 2;
  padding: clamp(58px,7vw,96px) 0 26px;
  border-top: 0;
  background: linear-gradient(to top,
    rgba(10,10,11,.97) 0%,
    rgba(10,10,11,.90) 28%,
    rgba(10,10,11,.62) 58%,
    rgba(10,10,11,.26) 82%,
    rgba(10,10,11,0) 100%);
}
.dsp-footer-shell { width: min(var(--shell),calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.dsp-footer-main { display: grid; grid-template-columns: minmax(260px,1.4fr) 1fr 1.2fr; gap: clamp(38px,6vw,88px); }
.dsp-footer-brand img { width: 156px; height: auto; }
.dsp-footer-brand p { max-width: 34ch; margin-top: 20px; color: var(--muted); font-size: .92rem; line-height: 1.65; }
.dsp-footer-heading { margin: 0 0 19px; color: var(--muted); font-family: var(--f-body); font-size: .75rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.dsp-footer-links { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.dsp-footer-links a { color: var(--text-2); text-decoration: none; }
.dsp-footer-links a:hover { color: var(--red-soft); }
.dsp-footer-contact a { overflow-wrap: anywhere; }
.dsp-footer-social { display: flex; gap: 10px; margin-top: 24px; }
.dsp-footer-social a { display: inline-flex; align-items: center; justify-content: center; width: auto; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 12px; color: var(--text-2); font-size: .78rem; line-height: 1; }
.dsp-footer-social a:hover { border-color: var(--red); color: var(--red); }
.dsp-footer-social svg { width: 18px; height: 18px; fill: currentColor; }
.dsp-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: clamp(48px,6vw,72px); padding-top: 24px; border-top: 1px solid var(--line); }
.dsp-footer-legal { display: flex; flex-wrap: wrap; gap: 9px 22px; margin: 0; padding: 0; list-style: none; }
.dsp-footer-legal a,.dsp-footer-copy { color: var(--muted); font-size: .78rem; }
.dsp-footer-legal a { text-underline-offset: 4px; }

@media (max-width: 860px) {
  .dsp-site-header { inset-block-start: 10px; }
  .dsp-header-pill { width: calc(100% - 20px); min-height: 56px; padding: 5px 5px 5px 14px; }
  .dsp-header-brand span { display: none; }
  .dsp-desktop-nav { display: none; }
  .dsp-menu-toggle { display: grid; }
  .dsp-footer-main { grid-template-columns: 1fr 1fr; }
  .dsp-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .dsp-footer-main { grid-template-columns: 1fr; gap: 36px; }
  .dsp-footer-brand { grid-column: auto; }
  .dsp-footer-bottom { align-items: flex-start; flex-direction: column; }
  .dsp-footer-legal { gap: 10px 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .dsp-site-header,.dsp-mobile-drawer,.dsp-menu-overlay,.dsp-menu-toggle__lines i { transition: none !important; }
}

/* Divi applies list-style: disc and padding-left to any <ul> inside a Code
   module, which outranks the plain class rules above and put bullets on every
   footer link. Match its specificity to remove them. */
body.et-db #page-container .dsp-site-footer .dsp-footer-links,
body.et-db #page-container .dsp-site-footer .dsp-footer-legal,
body.et-db #page-container .dsp-site-footer ul {
  list-style: none !important;
  padding-left: 0 !important;
}
body.et-db #page-container .dsp-site-footer .dsp-footer-links li,
body.et-db #page-container .dsp-site-footer .dsp-footer-legal li,
body.et-db #page-container .dsp-site-footer li {
  list-style: none !important;
  display: block !important;
}
body.et-db #page-container .dsp-site-footer .dsp-footer-links li::marker,
body.et-db #page-container .dsp-site-footer .dsp-footer-legal li::marker,
body.et-db #page-container .dsp-site-footer li::marker {
  content: none;
}
/* The legal row is a horizontal list, so its items stay inline. */
body.et-db #page-container .dsp-site-footer .dsp-footer-legal li {
  display: inline-block !important;
}
