@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/portal/affiliate-assets/dreampos-font-7.ttf) format('truetype');
}

/* Shared footer: Contact reference; independent of the current page scope. */
footer.fh-footer { padding:72px 0 32px; margin:0; background:#0a1a33; color:#fff; font:400 14px/1.4 'Hanken Grotesk',sans-serif; }
.fh-footer-container { width:min(1200px,calc(100% - 64px)); margin:auto; }
.fh-footer-newsletter { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-bottom:48px; }
.fh-footer .fh-footer-newsletter h2 { margin:0 0 8px; color:#fff; font:700 18px/1.3 'Hanken Grotesk',sans-serif; }
.fh-footer-newsletter p { margin:0; font-size:14px; }
.fh-footer-subscribe { display:grid; grid-template-columns:minmax(0,320px) auto; gap:8px 12px; flex-shrink:0; }
.fh-footer-email { min-width:0; }
.fh-footer-subscribe input { box-sizing:border-box; width:100%; height:44px; padding:12px 16px; border:1px solid #bac6d4; border-radius:8px; color:#fff; background:transparent; font:inherit; opacity:1; }
.fh-footer-subscribe input::placeholder { color:#e0e5ec; opacity:1; }
.fh-footer-subscribe button { border:0; border-radius:8px; padding:12px 24px; background:#ffbf2e; color:#111; font:600 16px/1.2 'Hanken Grotesk',sans-serif; opacity:1; }
.fh-footer-subscribe :disabled { cursor:not-allowed; }
.fh-footer-subscribe small { grid-column:1/-1; color:#bac6d4; font-size:12px; }
.fh-footer-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.fh-footer-columns { display:grid; grid-template-columns:1.7fr repeat(5,minmax(0,1fr)); gap:40px; padding:56px 0; border-top:1px solid #ffffffaa; border-bottom:1px solid #ffffffaa; }
.fh-footer-columns > * { min-width:0; }
.fh-footer .brand { display:flex; gap:10px; text-decoration:none; color:#fff; align-items:center; }
.fh-footer .brand .mark { flex:none; width:56px; height:56px; background:none; border:0; border-radius:0; font-size:0; }
.fh-footer .brand b { color:#fff; font:700 23px/1.2 Archivo,sans-serif; letter-spacing:-1.2px; }
.fh-footer .brand small { display:block; font:300 7px/1.5 'Hanken Grotesk',sans-serif; letter-spacing:1.2px; text-transform:uppercase; margin-top:2px; }
.fh-footer-brand p { margin:22px 0; max-width:260px; }
.fh-footer address { font-style:normal; margin:0 0 20px; }
.fh-footer a { color:#fff; text-decoration:none; overflow-wrap:anywhere; }
.fh-footer a:hover { text-decoration:underline; }
.fh-footer a:focus-visible { outline:3px solid #ffbf2e; outline-offset:4px; }
.fh-footer .fh-footer-demo { display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:12px 24px; min-height:44px; box-sizing:border-box; border-radius:8px; background:#ffbf2e; color:#111; font-weight:600; font-size:16px; }
.fh-footer h2 { margin:0 0 18px; color:#ffbf2e; font:700 22px/1.2 'Hanken Grotesk',sans-serif; }
.fh-footer h3 { margin:0 0 10px; color:#fff; font:700 11px/1.4 'JetBrains Mono',monospace; letter-spacing:2px; }
.fh-footer-brand h3 { margin-top:22px; }
.fh-footer-group + .fh-footer-group { margin-top:18px; }
.fh-footer-group { display:flex; flex-direction:column; gap:9px; }
.fh-footer-group h3 { margin-bottom:2px; }
.fh-social-icons { display:flex; gap:10px; }
.fh-social-icon { display:flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:#fff; color:#0a1a33; }
.fh-social-icon svg { width:23px; height:23px; fill:currentColor; }
.fh-footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:24px; font-size:11px; }
.fh-footer-bottom nav { display:flex; flex-wrap:wrap; gap:24px; }
@media(max-width:1200px) { .fh-footer-columns { grid-template-columns:1.5fr repeat(3,minmax(0,1fr)); gap:36px 24px; } .fh-footer-newsletter { align-items:flex-start; flex-direction:column; } .fh-footer-subscribe { width:min(100%,460px); grid-template-columns:minmax(0,1fr) auto; } }
@media(max-width:760px) { .fh-footer-columns { grid-template-columns:repeat(2,minmax(0,1fr)); } .fh-footer-brand { grid-column:1/-1; } .fh-footer-bottom { flex-direction:column; align-items:flex-start; } }
@media(max-width:640px) {
 footer.fh-footer { padding:40px 0 24px; }
 .fh-footer-container { width:calc(100% - 40px); }
 .fh-footer-columns { padding:36px 0; gap:32px 20px; }
 .fh-footer h2 { font-size:20px; }
 .fh-footer-bottom nav { gap:16px; }
 .fh-footer-subscribe button { padding:12px 16px; }
}

/* Exact navigation resets used by dreampos.ca's shared footer. */
.fh-footer nav.fh-footer-column { display:block; position:static; width:auto; max-width:none; padding:0; margin:0; background:transparent; border:0; box-shadow:none; font:inherit; text-align:left; }
.fh-footer nav a { display:block; padding:0; margin:0; background:transparent; border:0; color:#fff; font:400 14px/1.4 'Hanken Grotesk',sans-serif; }
.fh-footer .fh-footer-bottom nav { display:flex; position:static; width:auto; max-width:none; padding:0; margin:0; background:transparent; border:0; font:inherit; }
.fh-footer .fh-footer-bottom nav a { font-size:12px; }

/* These source-site overrides were originally loaded after the shared footer rules. */
.fh-footer .brand .dp-approved-logo { display:block; width:240px; max-width:100%; height:auto; flex:none; object-fit:contain; }
.fh-footer .fh-footer-brand > .brand { display:flex; width:240px; max-width:100%; min-width:0; }
.fh-footer .fh-footer-brand > .brand img { width:240px; max-width:100%; height:auto; }
.fh-footer-optin { display:flex; align-items:flex-start; gap:8px; margin-top:10px; font:400 14px/1.4 'Hanken Grotesk',sans-serif; }
.fh-footer-optin input { flex:none; width:16px; height:16px; margin:2px 0 0; accent-color:#ffbf2e; }
.fh-footer nav[aria-label="Footer Pricing"] .fh-footer-group + .fh-footer-group h3 { margin-top:10px; color:#ffbf2e; font:700 20px/1.2 'Hanken Grotesk',sans-serif; letter-spacing:0; }
.fh-footer a.fh-social-icon { color:#0a1a33; }
.fh-footer a.fh-social-icon:hover { background:#ffbf2e; }
.fh-footer a.fh-social-icon svg { display:block; width:23px; height:23px; flex:none; fill:currentColor; }
.fh-footer-demo .fh-demo-arrow { display:block; flex:none; width:18px; height:18px; object-fit:contain; }
