/* =====================================================================
   SITE FOOTER COMPONENT — styles for the closing CTA box + footer on every page.
   Source of truth (was the Advisory footer, assets/revamp/advisory.css). Scoped by html.sfx,
   which assets/components/site-footer.js adds after mounting the template.
   ===================================================================== */
.sfx { --sfx-night: #0e1020; --sfx-line: rgba(255, 255, 255, .1); --sfx-max: 100%; }

/* night tone shared by the CTA band and the footer (the CTA card itself keeps its design) */
.sfx .lastCta, .sfx .ft, .sfx .ft__copyright { background: var(--sfx-night); }
.sfx .lastCta { padding: clamp(56px, 6vw, 88px) var(--pad-x) 0; }
.sfx .lastCta__inner { max-width: var(--sfx-max); margin: 0 auto; }

/* footer body: same container as the page, quieter type, hairlines, link sweep */
.sfx .ft .ft__desktop { padding: clamp(80px, 8vw, 112px) var(--pad-x) 56px; gap: 0; }
.sfx .ft__top, .sfx .ft__cols { width: 100%; max-width: var(--sfx-max); margin: 0 auto; }
.sfx .ft__tagline { color: rgba(255, 255, 255, .62); font-size: 15px; line-height: 1.6; max-width: 380px; }
.sfx .ft__badge { border-color: rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .8); }
.sfx .ft__reachTitle { font-family: "Geologica", sans-serif; font-weight: 600; letter-spacing: -.02em; text-align: left; margin: 0; }
.sfx .ft__mail { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 2px no-repeat; transition: background-size .5s cubic-bezier(.65, 0, .35, 1); padding-bottom: 2px; }
.sfx .ft__mail:hover { background-size: 0 2px; background-position: 100% 100%; }
.sfx .ft__cols { margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--sfx-line); }
.sfx .ft__colTitle { font: 500 13px/1 "Inter", sans-serif; color: rgba(255, 255, 255, .45); margin-bottom: 20px; }
.sfx .ft__links a { color: rgba(255, 255, 255, .78); font-size: 15px; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s cubic-bezier(.65, 0, .35, 1), color .3s; }
.sfx .ft__links a:hover, .sfx .ft__links a[aria-current="page"] { color: #fff; background-size: 100% 1px; }
.sfx .ft__copyInner { max-width: var(--sfx-max); margin: 0 auto; padding: 24px 0 32px; border-top: 1px solid var(--sfx-line); width: calc(100% - 2 * var(--pad-x)); }
.sfx .ft__copyText, .sfx .ft__legal a { color: rgba(255, 255, 255, .5); font-size: 13px; }
.sfx .ft__legal a { text-decoration: none; transition: color .3s; }
.sfx .ft__legal a:hover { color: #fff; }

/* balanced top: two equal columns, both reading from the left */
.sfx .ft__top { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(32px, 6vw, 96px); row-gap: 28px; align-items: start; }
.sfx .ft__logo { grid-column: 1; grid-row: 1; }
.sfx .ft__topRow { display: contents; }
.sfx .ft__brand { grid-column: 1; grid-row: 2; }
.sfx .ft__reach { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-start; text-align: left; gap: 18px; padding-left: clamp(24px, 3vw, 48px); border-left: 1px solid var(--sfx-line); }

@media (max-width: 760px) {
  .sfx .ft__top { grid-template-columns: 1fr; }
  .sfx .ft__reach { grid-column: 1; grid-row: auto; padding-left: 0; border-left: 0; }
  .sfx .ft__cols { gap: 40px; }
  .sfx .ft__col + .ft__col { margin-top: 0; }
  .sfx .ft__colTitle { margin-bottom: 14px; }
}

/* CTA box: rounded like the rest of the site; heading in the site weight (medium, tight) */
.sfx .lastCta__inner { border-radius: 20px !important; overflow: hidden; }
.sfx .lastCta__title { font-weight: 500 !important; letter-spacing: -.03em !important; line-height: 1.12 !important; font-size: clamp(32px, 3.6vw, 56px) !important; }
@media (max-width: 900px) { .sfx .lastCta__inner { border-radius: 16px !important; } .sfx .lastCta__title { font-size: clamp(28px, 7.5vw, 36px) !important; } }

/* CTA band runs edge to edge: no padding around it, no rounded corners */
.sfx .lastCta { padding: 0 !important; }
.sfx .lastCta__inner { max-width: none !important; border-radius: 0 !important; }
@media (max-width: 900px) { .sfx .lastCta__inner { border-radius: 0 !important; } }
.sfx .lastCta__inner { padding-left: var(--pad-x) !important; padding-right: var(--pad-x) !important; }
/* taller band */
.sfx .lastCta__inner { min-height: clamp(380px, 46vw, 560px) !important; padding-top: clamp(64px, 7vw, 112px) !important; padding-bottom: clamp(64px, 7vw, 112px) !important; align-items: center !important; }
@media (max-width: 900px) { .sfx .lastCta__inner { min-height: 0 !important; padding-top: 72px !important; padding-bottom: 72px !important; } }
.sfx .lastCta__eyebrow { align-self: flex-start !important; }

/* frame lines continue through the CTA: outer lines + the centre line (the title starts just right of it) */
.sfx .lastCta { position: relative; }
.sfx .lastCta::after { content: ""; position: absolute; top: 0; bottom: 0; left: var(--pad-x); right: var(--pad-x); z-index: 2; pointer-events: none; border-left: 1px solid rgba(255, 255, 255, .14); border-right: 1px solid rgba(255, 255, 255, .14); background: linear-gradient(rgba(255, 255, 255, .1), rgba(255, 255, 255, .1)) 50% 0 / 1px 100% no-repeat; }
.sfx .lastCta__eyebrow { margin-left: 24px; }
@media (max-width: 900px) { .sfx .lastCta::after { background: none; } }
/* CTA takes half the screen, so CTA and footer share the view 50/50 when you reach the end */
.sfx .lastCta__inner { min-height: max(360px, 50vh) !important; padding-top: 56px !important; padding-bottom: 56px !important; }
@media (max-width: 900px) { .sfx .lastCta__inner { min-height: 0 !important; padding-top: 72px !important; padding-bottom: 72px !important; } }
/* never past the centre line, never left of the frame */
.sfx .lastCta__sphere { clip-path: inset(0 50% 0 var(--pad-x)); }
@media (max-width: 900px) { .sfx .lastCta__sphere { clip-path: none; } }

/* footer as a hairline board, like the rest of the site: the CTA's frame lines carry on (outer + centre), full-bleed lines
   between the rows, the four link columns as cells. Every line runs in the gaps between cells, never through text. */
.sfx .ft { position: relative; isolation: isolate; }
.sfx .ft::after { content: ""; position: absolute; top: 0; bottom: 0; left: var(--pad-x); right: var(--pad-x); z-index: 2; pointer-events: none; border-left: 1px solid rgba(255, 255, 255, .14); border-right: 1px solid rgba(255, 255, 255, .14); }
.sfx .ft .ft__desktop { padding: 0 var(--pad-x) !important; gap: 0 !important; }
.sfx .ft__top { column-gap: 0; row-gap: 0; position: relative; }
.sfx .ft__logo { padding: 64px 24px 0; box-sizing: content-box; }
.sfx .ft__brand { padding: 28px 24px 56px; }
.sfx .ft__reach { padding: 64px 24px 56px 32px; border-left: 1px solid rgba(255, 255, 255, .14); align-self: stretch; }
.sfx .ft__cols { margin-top: 0; padding-top: 0; border-top: 0; gap: 0 !important; align-items: stretch; }
.sfx .ft__cols::before, .sfx .ft__copyright::before { content: ""; position: absolute; top: 0; left: calc(-1 * var(--pad-x)); right: calc(-1 * var(--pad-x)); height: 1px; background: rgba(255, 255, 255, .14); }
.sfx .ft__copyright { position: relative; }
.sfx .ft__copyright::before { left: 0; right: 0; }
.sfx .ft__col { padding: 48px 24px 64px; }
.sfx .ft__col + .ft__col { border-left: 1px solid rgba(255, 255, 255, .1); }
.sfx .ft__copyInner { border-top: 0; padding: 24px 24px 32px; width: calc(100% - 2 * var(--pad-x)); box-sizing: border-box; }

@media (max-width: 1024px) {
  .sfx .ft__col + .ft__col { border-left: 0; }
  .sfx .ft__col:nth-child(even) { border-left: 1px solid rgba(255, 255, 255, .1); }
  .sfx .ft__col:nth-child(n + 3) { border-top: 1px solid rgba(255, 255, 255, .1); }
}
@media (max-width: 760px) {
  .sfx .ft__logo { padding: 48px 20px 0; }
  .sfx .ft__brand { padding: 24px 20px 40px; }
  .sfx .ft__reach { padding: 40px 20px; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .14); }
  .sfx .ft__col { padding: 32px 20px 40px; }
  .sfx .ft__copyInner { padding: 20px 20px 28px; }
}
@media (max-width: 620px) {
  .sfx .ft__cols { grid-template-columns: 1fr 1fr !important; }
}
/* the tagline fills its cell, up to the cell padding (no width cap) */
.sfx .ft__brand { width: auto !important; min-width: 0; }
.sfx .ft__tagline { max-width: none !important; }

/* certification marks: ISO 27001 and SNAP, white on the night footer */
.sfx .ft__badges { display: flex !important; align-items: center; gap: 28px !important; }
.sfx .ft__certLogo { display: block; width: auto; opacity: .9; transition: opacity .3s, transform .45s cubic-bezier(.2, .8, .2, 1); }
.sfx .ft__certLogo--iso { height: 64px; }
.sfx .ft__certLogo--snap { height: 48px; }
.sfx .ft__certLogo--aftech { height: 44px; }
.sfx .ft__certLogo--iaf { height: 46px; }
.sfx .ft__certLogo--kan { height: 28px; }
.sfx .ft__certLogo:hover { opacity: 1; transform: translateY(-2px); }

/* reach: the email leads; phone, office and LinkedIn sit underneath as one compact row of labelled columns */
.sfx .ft__contact { display: grid; grid-template-columns: auto auto auto; justify-content: start; gap: 12px clamp(28px, 3.4vw, 52px); margin: 8px 0 0; }
.sfx .ft__cItem { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sfx .ft__cItem dt { font: 600 11px/1 "Geologica", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .42); }
.sfx .ft__cItem dd { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.sfx .ft__cItem dd a { width: fit-content; color: rgba(255, 255, 255, .78); text-decoration: none; font: 400 15px/1.5 "Inter", sans-serif;
  background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: color .3s, background-size .5s cubic-bezier(.65, 0, .35, 1); }
.sfx .ft__cItem dd a:hover { color: #fff; background-size: 100% 1px; }
.sfx .ft__li { display: inline-flex; align-items: center; gap: 6px; }
.sfx .ft__li svg { width: 14px; height: 14px; transition: transform .45s cubic-bezier(.65, 0, .25, 1); }
.sfx .ft__li:hover svg { transform: rotate(45deg); }
@media (max-width: 640px) {
  .sfx .ft__contact { grid-template-columns: 1fr 1fr; gap: 24px 20px; }
  .sfx .ft__cItem:nth-child(2) { grid-column: 1 / -1; order: 3; }
}

/* legal links hidden until the Privacy, Terms, Security and Cookie pages exist (remove this rule to show them again) */
.ft__legal { display: none !important; }
