/* Main site footer. Content is managed in Theme Settings > Footer. */
.cfd { scroll-margin-top: 123px; --cfd-ink: #fff; --cfd-muted: #ede5f4; --cfd-line: rgb(255 255 255 / 22%); color: var(--cfd-ink); font-family: 'Outfit', sans-serif; }
.cfd-wrap { width: min(1280px, calc(100% - 80px)); margin-inline: auto; }
.cfd a, .cfd button { -webkit-tap-highlight-color: transparent; transition: color .2s, background .2s, border-color .2s; }
.cfd :is(a, button):focus-visible { outline: 3px solid #ff91bf; outline-offset: 5px; border-radius: 4px; }
.cfd .cfd-logo { display: block; width: 270px; max-width: 100%; }
.cfd .cfd-logo img { display: block; width: 100%; height: auto; }
.cfd p { margin: 0; }
/* The source theme hides every br on mobile with !important. */
.cfd br { display: revert !important; }
.cfd-eyebrow { display: block; font-size: 12px; line-height: 1.5; font-weight: 500; letter-spacing: .13em; }
.cfd-socials { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.cfd-socials a { width: 44px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 6px; }
.cfd-socials a:hover { background: rgb(255 255 255 / 15%); }
.cfd-socials img { width: 27px; height: 27px; object-fit: contain; }
.cfd-nav h3 { margin: 0 0 18px; font-size: 19px; line-height: 1.4; font-weight: 600; }
.cfd-nav ul, .cfd-legal ul { list-style: none; padding: 0; margin: 0; }
.cfd-nav li + li { margin-top: 3px; }
.cfd-nav a, .cfd-nav button { display: inline-flex; align-items: center; min-height: 40px; color: var(--cfd-muted); font-size: 18px; line-height: 1.5; text-align: left; font-family: inherit; background: transparent; padding: 0; cursor: pointer; border: 0; }
.cfd-nav a:hover, .cfd-nav button:hover, .cfd-legal a:hover { color: var(--cfd-ink); text-decoration: underline; text-underline-offset: 4px; }
/* Visual treatment comes from the site's existing .primary-button component. */
.cfd .primary-button { width: fit-content; flex-shrink: 0; }
.cfd-phone { display: inline-block; font-size: 29px; letter-spacing: -.025em; font-weight: 500; white-space: nowrap; }
.cfd-phone:hover { text-decoration: underline; text-underline-offset: 6px; }
.cfd-badges { display: flex; align-items: center; flex-wrap: nowrap; gap: 16px; flex-shrink: 1; min-width: 0; max-width: 100%; }
.cfd-badges > * { flex: 0 1 auto; min-width: 0; }
.cfd-badges img { width: auto; height: 96px; max-width: 100%; object-fit: contain; display: block; }
.cfd-legal { border-top: 1px solid var(--cfd-line); padding: 24px 0 28px; margin-top: 0; }
.cfd-legal ul { display: flex; flex-wrap: wrap; gap: 7px 26px; }
.cfd-legal a { display: inline-block; padding-block: 7px; }
.cfd-legal, .cfd-copyright { font-size: 15px; line-height: 1.5; color: var(--cfd-muted); }
.cfd-copyright { margin-top: 12px; }
.cfd-copyright a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) {
  .cfd .cfd-logo { width: 250px; }
}
@media (max-width: 600px) {
  .cfd { scroll-margin-top: 70px; }
  .cfd-wrap { width: calc(100% - 40px); }
  .cfd .cfd-logo { width: 260px; }
  .cfd-nav h3 { font-size: 18px; margin-bottom: 13px; }
  .cfd-nav a, .cfd-nav button { min-height: 44px; }
  .cfd-socials { gap: 2px; }
  .cfd-socials a { width: 44px; }
  .cfd-legal ul { flex-direction: column; gap: 0; }
  .cfd-legal a { padding-block: 10px; }
  .cfd-copyright { margin-top: 16px; }
  .cfd-badges { gap: 12px; }
  .cfd-badges img { height: 88px; }
}
@media (prefers-reduced-motion: reduce) { .cfd * { transition: none; scroll-behavior: auto; } }

/* Brand, navigation and contacts. */
.cfd { background: #5a308b; padding-top: 42px; margin-top: 50px; }
.cfd .cfd-main { display: grid; grid-template-columns: 1.4fr 1fr .9fr 1.15fr; gap: 32px; padding-bottom: 36px; }
.cfd .cfd-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; }
.cfd .cfd-brand-intro p { margin-top: 26px; font-size: 18px; line-height: 1.75; color: var(--cfd-muted); }
.cfd .cfd-brand > .cfd-badges { flex-wrap: nowrap; max-width: 100%; gap: 16px; }
.cfd .cfd-brand > .cfd-badges > * { flex: 0 1 auto; min-width: 0; }
.cfd .cfd-socials { margin-left: -8px; }
.cfd .cfd-contact-label { display: block; font-size: 19px; font-weight: 600; margin-bottom: 16px; }
.cfd .cfd-contact .primary-button { margin-top: 18px; white-space: nowrap; }
.cfd .cfd-contact .cfd-nav { margin-top: 18px; }
.cfd .cfd-contact .cfd-nav h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 1100px) {
  .cfd .cfd-main { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
  .cfd .cfd-brand { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px 30px; }
  .cfd .cfd-brand > .cfd-badges { grid-column: 2; grid-row: 1; }
  .cfd .cfd-brand > .cfd-socials { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .cfd .cfd-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cfd .cfd-contact { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .cfd { padding-top: 30px; }
  .cfd .cfd-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 18px; padding-bottom: 30px; }
  .cfd .cfd-brand { display: flex; flex-direction: column; align-items: flex-start; }
  .cfd .cfd-contact .cfd-nav ul { display: flex; flex-wrap: wrap; gap: 0 22px; }
  .cfd .cfd-contact .cfd-nav li { margin: 0; }
  .cfd .cfd-brand > .cfd-badges { gap: 12px; }
}
@media (max-width: 380px) { .cfd .cfd-socials { display: grid; grid-template-columns: repeat(4, 44px); } }
