/* ==========================================================================
   Site chrome: the parts printed on every front page around the content.
   The top navigation (#frontNav), the trust strip under it (.subNavContainer),
   the partner showcase, the register call to action and the footer, restyled
   in the approved design language (landing-page.css tokens: Plus Jakarta Sans
   for display, Inter for body, the 1180px measure, the glass card, the deep
   navy plate, the arrow pill). Loaded by front/app.blade.php after the
   global sheets. The legacy component sheets (frontnav.*.css, main.css,
   registerinclude.*.css, brandswiper.*.css) are linked inside the includes,
   after this file, and several of their rules carry !important; the same
   weight is used here only where needed to win.
   ========================================================================== */

:root {
    --sc-scale: 1;
    --sc-font-display: 'Plus Jakarta Sans', Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --sc-font-body: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --sc-ink: #0b1220;
    --sc-ink-2: #253247;
    --sc-ink-3: #3f4d66;
    --sc-line: rgba(30, 58, 138, 0.1);
    --sc-navy: #0d1b2a;
    --sc-navy-2: #0f2340;
    --sc-blue: #2563eb;
    --sc-blue-deep: #1d4ed8;
    --sc-green: #059669;
    --sc-gold: #ffd000;
    --sc-measure: calc(1180px * var(--sc-scale));
    --sc-pad-x: 24px;
    --sc-radius: 26px;
    --sc-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --sc-shadow: 0 24px 60px -32px rgba(15, 23, 42, 0.28);
    --sc-plate: linear-gradient(150deg, #0b1f3a 0%, #12325c 55%, #16407a 100%);
    --sc-nav-scale: min(var(--sc-scale), 1.08);
}

@media (min-width: 1600px) { :root { --sc-scale: 1.08; } }
@media (min-width: 1800px) { :root { --sc-scale: 1.16; } }
@media (min-width: 2200px) { :root { --sc-scale: 1.28; } }

/* ==========================================================================
   1. Top navigation
   ========================================================================== */

/* The bar is full width, its content sits on the page measure: the logo
   starts where the sections start and the pills end where they end, on a
   1440 as on a 2560 monitor. The surface is the deep plate with a blue
   light top left and a faint aurora hairline along the bottom edge. */
body #frontNav {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    column-gap: clamp(16px, 2vw, 32px);
    min-height: calc(74px * var(--sc-nav-scale));
    padding: 0 max(24px, calc((100% - var(--sc-measure)) / 2 + var(--sc-pad-x))) !important;
    box-sizing: border-box;
    font-family: var(--sc-font-display);
    background:
        radial-gradient(70% 160% at 8% 0%, rgba(37, 99, 235, 0.38) 0%, rgba(37, 99, 235, 0) 60%),
        radial-gradient(50% 160% at 92% 100%, rgba(5, 150, 105, 0.22) 0%, rgba(5, 150, 105, 0) 60%),
        linear-gradient(180deg, #0f2238 0%, #0b1a2c 100%) !important;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.06) !important;
    transition: background 0.3s var(--sc-ease), box-shadow 0.3s var(--sc-ease) !important;
}

body #frontNav::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, rgba(5, 150, 105, 0) 0%, rgba(5, 150, 105, 0.7) 22%, rgba(255, 208, 0, 0.75) 50%, rgba(255, 136, 62, 0.7) 78%, rgba(255, 136, 62, 0) 100%);
    opacity: 0.9;
    pointer-events: none;
}

html[lang="en-GB"] body #frontNav::after {
    background: linear-gradient(90deg, rgba(1, 33, 105, 0) 0%, rgba(96, 165, 250, 0.7) 22%, rgba(255, 255, 255, 0.8) 50%, rgba(200, 16, 46, 0.7) 78%, rgba(200, 16, 46, 0) 100%);
}

@media only screen and (min-width: 1201px) {
    /* scrolled: the bar stays fully opaque (a translucent bar over moving
       content made the menu read blurred), only the shadow deepens */
    body #frontNav.is-scrolled {
        box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.06), 0 18px 40px -26px rgba(0, 0, 0, 0.75) !important;
    }
}

#frontNav .logoMainLink {
    display: inline-flex;
    align-items: center;
    border-radius: 12px;
    outline: 0;
}

#frontNav .logoMainLink:focus-visible {
    box-shadow: 0 0 0 3px rgba(255, 208, 0, 0.55);
}

#frontNav #mainLogo {
    display: flex;
    align-items: center;
}

/* Menu items: the display face, small caps tracking, a gold underline that
   grows from the centre. The FAQ item keeps its gold attention colour. */
@media only screen and (min-width: 1201px) {
    #frontNav #navMenu {
        display: flex;
        align-items: center;
        justify-content: center;
        column-gap: clamp(4px, 0.6vw, 12px);
    }
}

#frontNav,
#frontNav .navItem,
#frontNav a {
    font-family: var(--sc-font-display) !important;
}

#frontNav .hover-underline-animation {
    position: relative;
    display: inline-block;
    color: rgba(255, 255, 255, 0.84);
    text-decoration: none;
    border-radius: 12px;
    outline: 0;
    transition: color 0.2s var(--sc-ease), background 0.25s var(--sc-ease), box-shadow 0.25s var(--sc-ease);
}

#frontNav .hover-underline-animation:hover,
#frontNav .hover-underline-animation:focus-visible {
    background: rgba(255, 255, 255, 0.07);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

/* one hover state only: the glass pill and white type. The legacy sheet's
   sliding underline (and any second line) is switched off. */
#frontNav .hover-underline-animation::after,
#frontNav .hover-underline-animation::before {
    display: none !important;
}

#frontNav .hover-underline-animation:hover,
#frontNav .hover-underline-animation:focus-visible {
    color: #ffffff;
}

#frontNav .navItem {
    padding: 13px 16px;
    font-size: calc(13.5px * var(--sc-nav-scale));
    font-weight: 800;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
    color: inherit;
    white-space: nowrap;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

#frontNav .navItem.menuColor {
    color: inherit;
}

#frontNav #attentionItem {
    color: var(--sc-gold);
}

/* Login and Register: the two pills of the site. The blade used to carry
   their look inline with mouse handlers; the classes own it now. */
#frontNav #loginMenu {
    display: flex;
    align-items: center;
    column-gap: 12px;
    padding-right: 0;
}

#frontNav .frontNav-login-btn,
#frontNav .frontNav-register-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: calc(44px * var(--sc-nav-scale));
    padding: 0 calc(22px * var(--sc-nav-scale));
    border-radius: 999px;
    font-family: var(--sc-font-display) !important;
    font-size: calc(15px * var(--sc-nav-scale));
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
    outline: 0;
    transition: transform 0.25s var(--sc-ease), box-shadow 0.25s var(--sc-ease), background 0.25s var(--sc-ease), border-color 0.25s var(--sc-ease), color 0.25s var(--sc-ease);
}

#frontNav .frontNav-login-btn svg,
#frontNav .frontNav-register-btn svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
}

#frontNav .frontNav-login-btn {
    color: #0a0a0a;
    background: linear-gradient(135deg, #ffe45c 0%, var(--sc-gold) 60%, #ffb800 100%);
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 12px 26px -14px rgba(255, 190, 0, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.55), inset 0 -1px 0 rgba(0, 0, 0, 0.06);
}

#frontNav .frontNav-login-btn:hover,
#frontNav .frontNav-login-btn:focus-visible {
    background: linear-gradient(135deg, #fff07a 0%, #ffd91a 100%);
    transform: translateY(-2px);
    box-shadow: 0 16px 30px -14px rgba(255, 208, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

#frontNav .frontNav-register-btn {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

#frontNav .frontNav-register-btn:hover,
#frontNav .frontNav-register-btn:focus-visible {
    background: rgba(255, 255, 255, 0.14);
    border-color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -18px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

#frontNav .frontNav-login-btn:focus-visible,
#frontNav .frontNav-register-btn:focus-visible {
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35);
}

#frontNav #hamButton {
    color: rgba(255, 255, 255, 0.92);
    border-radius: 10px;
}

@media only screen and (max-width: 1200px) {
    body #frontNav {
        min-height: 0;
        height: 60px !important;
        padding: 0 12px !important;
        background: var(--sc-navy) !important;
    }

    #frontNav .frontNav-login-btn,
    #frontNav .frontNav-register-btn {
        height: 40px;
        padding: 0 16px;
        font-size: 14px;
    }
}

@media only screen and (max-width: 480px) {
    #frontNav .frontNav-register-btn {
        display: none;
    }
}

/* ==========================================================================
   2. Trust strip under the navigation
   ========================================================================== */

.subNavContainer {
    position: relative;
    display: flex;
    justify-content: center;
    padding: 0 !important;
    background:
        radial-gradient(60% 120% at 8% 0%, rgba(219, 234, 254, 0.7) 0%, rgba(219, 234, 254, 0) 70%),
        radial-gradient(50% 120% at 92% 100%, rgba(209, 250, 229, 0.55) 0%, rgba(209, 250, 229, 0) 70%),
        rgba(255, 255, 255, 0.86) !important;
    -webkit-backdrop-filter: blur(12px) saturate(150%);
    backdrop-filter: blur(12px) saturate(150%);
    border-top: 0 !important;
    border-bottom: 1px solid var(--sc-line) !important;
    font-family: var(--sc-font-body) !important;
    overflow: hidden;
}

body .subNavContainer .subInnerNav {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: clamp(26px, 3vw, 56px);
    width: 100%;
    max-width: var(--sc-measure);
    min-height: calc(52px * var(--sc-nav-scale));
    margin: 0 auto;
    padding: 0 var(--sc-pad-x);
    box-sizing: border-box;
    white-space: nowrap;
    overflow: hidden;
}

.subNavContainer .subNavElement {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    flex: 0 0 auto;
}

/* the team page keeps its signature line under the strip */
.subNavContainer.subNav--irishLine {
    padding-bottom: 4px !important;
    border-bottom: 0 !important;
}

/* every mark sits in the same 28px tinted disc, centred */
.subNavContainer .subNavSvg,
.subNavContainer .subNavImg,
.subNavContainer .subNavIcon {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 9px;
    background: rgba(5, 150, 105, 0.1);
    color: var(--sc-green);
    box-sizing: border-box;
}

.subNavContainer .subNavSvg {
    padding: 6px;
    stroke: none;
}

.subNavContainer .subNavIcon svg {
    width: 16px;
    height: 16px;
    stroke-width: 2.2;
}

.subNavContainer .subNavImg {
    padding: 5px;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(38%) sepia(85%) saturate(1400%) hue-rotate(125deg) brightness(88%) contrast(96%);
}

.subNavContainer .subNavText {
    font-family: var(--sc-font-body) !important;
    font-size: calc(13.5px * var(--sc-scale));
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.2;
    color: var(--sc-ink-2);
}

/* the mobile strip (swiper) takes the same type and disc */
.subNavMobile {
    font-family: var(--sc-font-body) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    border-bottom: 1px solid var(--sc-line) !important;
}

.subNavMobile .subNavElement {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--sc-ink-2);
}

.subNavMobile .subNavImg,
.subNavMobile .subNavIcon {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    padding: 5px;
    border-radius: 8px;
    background: rgba(5, 150, 105, 0.1);
    color: var(--sc-green);
    box-sizing: border-box;
    object-fit: contain;
    filter: brightness(0) saturate(100%) invert(38%) sepia(85%) saturate(1400%) hue-rotate(125deg) brightness(88%) contrast(96%);
}

.subNavMobile .subNavIcon {
    filter: none;
}

.subNavMobile .subNavIcon svg {
    width: 15px;
    height: 15px;
    stroke-width: 2.2;
}

/* ==========================================================================
   3. Partner showcase
   ========================================================================== */

/* the legacy sheet boxes the whole section to a max-width; here it is the
   full band, the head on the measure, the strip edge to edge */
body .partner-showcase {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: calc(76px * var(--sc-scale)) 0 calc(84px * var(--sc-scale));
    box-sizing: border-box;
    background: linear-gradient(180deg, #ffffff 0%, #f7f9fe 100%);
    overflow: hidden;
}

.partner-showcase .partner-head {
    width: 100%;
    max-width: var(--sc-measure);
    margin: 0 auto calc(36px * var(--sc-scale));
    padding: 0 var(--sc-pad-x);
    box-sizing: border-box;
    text-align: center;
}

.partner-showcase .partner-title {
    margin: 0;
    font-family: var(--sc-font-display) !important;
    font-size: clamp(26px, 2.6vw, calc(34px * var(--sc-scale)));
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--sc-ink);
    text-wrap: balance;
}

/* the strip runs from one edge of the screen to the other, no fade, no
   shadow: the cards carry a hairline only */
body .partner-showcase .logo-strip {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
    overflow: hidden;
}

.partner-showcase .logo-card {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    min-width: calc(150px * var(--sc-scale));
    height: calc(88px * var(--sc-scale));
    padding: 0 calc(26px * var(--sc-scale));
    box-sizing: border-box;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid var(--sc-line);
    box-shadow: none;
    transition: transform 0.28s var(--sc-ease), border-color 0.28s var(--sc-ease);
}

.partner-showcase .logo-card img {
    display: block;
    width: auto;
    height: auto;
    max-width: calc(170px * var(--sc-scale));
    max-height: calc(46px * var(--sc-scale));
    object-fit: contain;
    transition: transform 0.28s var(--sc-ease);
}

.partner-showcase .logo-card:hover {
    transform: translateY(-3px);
    border-color: rgba(37, 99, 235, 0.3);
}

.partner-showcase .logo-card:hover img {
    transform: scale(1.04);
}

/* ==========================================================================
   4. Register call to action: one deep plate in the measure, an aurora that
   drifts, a spotlight that follows the pointer (site-chrome.js writes
   --sc-mx / --sc-my), the orange arrow pill of the page heroes.
   ========================================================================== */

/* a deep band from edge to edge; the content sits on the measure */
body .register-cta {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    isolation: isolate;
    overflow: hidden;
    border-radius: 0;
    background: var(--sc-plate);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    --sc-mx: 50%;
    --sc-my: 40%;
}

.register-cta .register-cta__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

/* aurora: two large soft lights drifting slowly across the plate */
.register-cta .register-cta__gradient {
    position: absolute;
    inset: -30%;
    background:
        radial-gradient(38% 46% at 22% 30%, rgba(37, 99, 235, 0.55) 0%, rgba(37, 99, 235, 0) 70%),
        radial-gradient(34% 44% at 78% 72%, rgba(5, 150, 105, 0.42) 0%, rgba(5, 150, 105, 0) 70%),
        radial-gradient(28% 36% at 62% 18%, rgba(251, 191, 36, 0.22) 0%, rgba(251, 191, 36, 0) 70%);
    filter: blur(18px);
    animation: sc-aurora 26s ease-in-out infinite alternate;
    opacity: 1;
}

@keyframes sc-aurora {
    0% { transform: translate3d(-4%, -3%, 0) rotate(0deg) scale(1); }
    50% { transform: translate3d(3%, 4%, 0) rotate(6deg) scale(1.06); }
    100% { transform: translate3d(-2%, 5%, 0) rotate(-4deg) scale(1.02); }
}

/* a fine grid the spotlight reveals */
.register-cta .register-cta__background::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: radial-gradient(260px 260px at var(--sc-mx) var(--sc-my), #000 0%, rgba(0, 0, 0, 0.35) 45%, transparent 75%);
    mask-image: radial-gradient(260px 260px at var(--sc-mx) var(--sc-my), #000 0%, rgba(0, 0, 0, 0.35) 45%, transparent 75%);
    opacity: 0;
    transition: opacity 0.4s var(--sc-ease);
}

/* the spotlight itself */
.register-cta .register-cta__background::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(420px 420px at var(--sc-mx) var(--sc-my), rgba(255, 255, 255, 0.13) 0%, rgba(255, 255, 255, 0.05) 35%, transparent 70%),
        radial-gradient(140px 140px at var(--sc-mx) var(--sc-my), rgba(255, 214, 102, 0.22) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.4s var(--sc-ease);
}

.register-cta.is-lit .register-cta__background::before,
.register-cta.is-lit .register-cta__background::after {
    opacity: 1;
}

/* the old particles become five soft orbs */
.register-cta .register-cta__particles span {
    position: absolute;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    box-shadow: 0 0 18px 6px rgba(255, 255, 255, 0.18);
    opacity: 0;
    animation: sc-orb 14s ease-in-out infinite;
}

.register-cta .register-cta__particles span:nth-child(1) { left: 12%; top: 70%; animation-delay: 0s; }
.register-cta .register-cta__particles span:nth-child(2) { left: 28%; top: 22%; animation-delay: 3s; width: 6px; height: 6px; }
.register-cta .register-cta__particles span:nth-child(3) { left: 58%; top: 80%; animation-delay: 6s; width: 8px; height: 8px; }
.register-cta .register-cta__particles span:nth-child(4) { left: 76%; top: 18%; animation-delay: 9s; }
.register-cta .register-cta__particles span:nth-child(5) { left: 90%; top: 60%; animation-delay: 12s; width: 6px; height: 6px; }

@keyframes sc-orb {
    0%, 100% { transform: translate3d(0, 0, 0); opacity: 0; }
    15% { opacity: 0.9; }
    50% { transform: translate3d(14px, -38px, 0); opacity: 0.6; }
    85% { opacity: 0.9; }
}

.register-cta .register-cta__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: calc(760px * var(--sc-scale));
    margin: 0 auto;
    padding: calc(96px * var(--sc-scale)) var(--sc-pad-x) calc(100px * var(--sc-scale));
    box-sizing: border-box;
}

.register-cta .register-cta__title {
    margin: 0;
    font-family: var(--sc-font-display) !important;
    font-size: clamp(32px, 3.4vw, calc(46px * var(--sc-scale)));
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.025em;
    color: #ffffff;
    text-wrap: balance;
}

.register-cta .register-cta__subtitle {
    margin: calc(18px * var(--sc-scale)) 0 0;
    font-family: var(--sc-font-body) !important;
    font-size: calc(18px * var(--sc-scale));
    font-weight: 500;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.8);
}

/* the orange arrow pill of the page heroes, with the deep navy ripple on hover */
.register-cta .register-cta__button {
    --btn-glow-x: 50%;
    --btn-glow-y: 50%;
    --btn-glow-opacity: 0;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: calc(58px * var(--sc-scale));
    margin-top: calc(34px * var(--sc-scale));
    padding: 0 calc(34px * var(--sc-scale));
    border-radius: 999px;
    overflow: hidden;
    font-family: var(--sc-font-display) !important;
    font-size: calc(16.5px * var(--sc-scale));
    font-weight: 800;
    letter-spacing: 0.01em;
    line-height: 1;
    color: #ffffff;
    text-decoration: none;
    background: linear-gradient(135deg, #ff8a1f 0%, #f26a00 100%);
    border: 0;
    box-shadow: 0 18px 40px -18px rgba(242, 106, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.35);
    transform: translate3d(var(--sc-bx, 0px), var(--sc-by, 0px), 0);
    transition: transform 0.35s var(--sc-ease), box-shadow 0.3s var(--sc-ease), background 0.3s var(--sc-ease);
    will-change: transform;
}

.register-cta .register-cta__button::before {
    content: '';
    position: absolute;
    left: var(--btn-glow-x);
    top: var(--btn-glow-y);
    width: 220%;
    padding-top: 220%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 60%);
    transform: translate(-50%, -50%);
    opacity: var(--btn-glow-opacity);
    transition: opacity 0.3s var(--sc-ease);
    pointer-events: none;
}

/* on hover the pill turns white with navy type: the strongest contrast the
   deep plate allows, with the pointer glow still breathing underneath */
.register-cta .register-cta__button:hover,
.register-cta .register-cta__button:focus-visible {
    color: #0b1f3a;
    background: linear-gradient(135deg, #ffffff 0%, #f1f5ff 100%);
    box-shadow: 0 24px 50px -20px rgba(255, 255, 255, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.5);
}

.register-cta .register-cta__button:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.45);
}

.register-cta .register-cta__button::after {
    display: none !important;
}

.register-cta .register-cta__button:hover {
    transform: translate3d(var(--sc-bx, 0px), var(--sc-by, 0px), 0) scale(1.03);
    border-color: transparent;
}

.register-cta .register-cta__button .register-cta__button-text {
    position: relative;
    z-index: 1;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
}

.register-cta .btn-ripple {
    z-index: 0 !important;
}

/* the national mark on the plate: gold leaf (Ireland) or pale crown (UK) */
html[lang="en-IE"] .register-cta::after,
html[lang="en-GB"] .register-cta::after {
    content: '';
    position: absolute;
    right: max(-52px, calc((100% - var(--sc-measure)) / 2 - 52px));
    bottom: -64px;
    z-index: 0;
    width: 300px;
    height: 300px;
    opacity: 0.06;
    pointer-events: none;
}

html[lang="en-IE"] .register-cta::after {
    background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='%23f8e7ab'><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z'/><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z' transform='rotate(90 50 50)'/><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z' transform='rotate(270 50 50)'/><path d='M50 50C52 62 50 70 58 80 51 76 46 68 47 55Z'/></g></svg>") no-repeat center / contain;
    transform: rotate(-14deg);
}

html[lang="en-GB"] .register-cta::after {
    background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><g fill='%23f8e7ab'><path d='M5 16 3.2 6.6a.5.5 0 0 1 .8-.5L8.6 9.6 11.56 4.3a.5.5 0 0 1 .88 0l2.96 5.3 4.6-3.5a.5.5 0 0 1 .8.5L19 16H5Z'/><path d='M5.2 17.6h13.6a.9.9 0 0 1 .9.9v.8a.9.9 0 0 1-.9.9H5.2a.9.9 0 0 1-.9-.9v-.8a.9.9 0 0 1 .9-.9Z'/></g></svg>") no-repeat center / contain;
    transform: rotate(-8deg);
}

@media (max-width: 768px) {
    .register-cta .register-cta__content {
        padding: 64px 22px 68px;
    }

    .register-cta .register-cta__button {
        width: 100%;
        max-width: 360px;
        margin-top: 26px;
    }

    html[lang="en-IE"] .register-cta::after,
    html[lang="en-GB"] .register-cta::after {
        width: 220px;
        height: 220px;
        right: -40px;
        bottom: -48px;
    }
}

/* ==========================================================================
   5. Footer: light. The page canvas deepens into a soft blue-lavender-mint
   gradient, the national hairline runs along the top, and the five columns
   sit on one large white glass plate in the measure, the way every card on
   the site is built. Ink headings, quiet links that turn royal blue with
   one thin line, the payment proofs in their own colours straight on the
   glass, the national mark faint in the plate's corner, a hairline and the
   copyright under it.
   ========================================================================== */

body .footer-wrapper {
    position: relative;
    padding: calc(72px * var(--sc-scale)) 0 0 !important;
    font-family: var(--sc-font-body) !important;
    color: var(--sc-ink-2);
    background:
        radial-gradient(60% 70% at 100% 0%, rgba(191, 219, 254, 0.55) 0%, rgba(191, 219, 254, 0) 70%),
        radial-gradient(50% 60% at 0% 100%, rgba(167, 243, 208, 0.4) 0%, rgba(167, 243, 208, 0) 70%),
        radial-gradient(40% 50% at 50% 100%, rgba(221, 214, 254, 0.35) 0%, rgba(221, 214, 254, 0) 70%),
        linear-gradient(180deg, #f6f8fe 0%, #ecf1fb 55%, #e4ecf8 100%) !important;
    overflow: hidden;
}

/* the hairline: tricolour on Irish platforms, Union colours on UK ones */
body .footer-wrapper::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    z-index: 2;
    background: linear-gradient(90deg, var(--sc-green) 0%, var(--sc-green) 33.33%, #ffffff 33.33%, #ffffff 66.66%, #ff883e 66.66%, #ff883e 100%);
}

html[lang="en-GB"] body .footer-wrapper::before {
    background: linear-gradient(90deg, #012169 0%, #012169 33.33%, #ffffff 33.33%, #ffffff 66.66%, #c8102e 66.66%, #c8102e 100%);
}

body .footer-wrapper::after {
    display: none;
}

/* the glass plate */
body .footer-wrapper .footer-container {
    position: relative;
    z-index: 1;
    width: calc(100% - 2 * var(--sc-pad-x));
    max-width: calc(var(--sc-measure) - 2 * var(--sc-pad-x));
    margin: 0 auto;
    padding: calc(44px * var(--sc-scale)) calc(40px * var(--sc-scale)) calc(46px * var(--sc-scale));
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, max-content)) minmax(0, max-content);
    justify-content: space-between;
    gap: clamp(16px, 2vw, 34px);
    border-radius: var(--sc-radius);
    background: rgba(255, 255, 255, 0.78);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    backdrop-filter: blur(18px) saturate(150%);
    border: 1px solid rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 0 1px var(--sc-line), var(--sc-shadow);
    overflow: hidden;
}

body .footer-wrapper .footer-container:has(> .footer-section:nth-child(4):last-child) {
    grid-template-columns: repeat(3, minmax(0, max-content)) minmax(0, max-content);
}

/* the national mark, faint, in the plate's corner */
html[lang="en-IE"] body .footer-wrapper .footer-container::after,
html[lang="en-GB"] body .footer-wrapper .footer-container::after {
    content: '';
    position: absolute;
    right: -34px;
    bottom: -46px;
    width: 200px;
    height: 200px;
    opacity: 0.06;
    pointer-events: none;
}

html[lang="en-IE"] body .footer-wrapper .footer-container::after {
    background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='%23169B62'><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z'/><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z' transform='rotate(90 50 50)'/><path d='M50 46C41 38 33 34 33 25 33 17 41 14 46 18 48 20 49 22 50 26 51 22 52 20 54 18 59 14 67 17 67 25 67 34 59 38 50 46Z' transform='rotate(270 50 50)'/><path d='M50 50C52 62 50 70 58 80 51 76 46 68 47 55Z'/></g></svg>") no-repeat center / contain;
    transform: rotate(-14deg);
}

html[lang="en-GB"] body .footer-wrapper .footer-container::after {
    background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><g fill='%23d97706'><path d='M5 16 3.2 6.6a.5.5 0 0 1 .8-.5L8.6 9.6 11.56 4.3a.5.5 0 0 1 .88 0l2.96 5.3 4.6-3.5a.5.5 0 0 1 .8.5L19 16H5Z'/><path d='M5.2 17.6h13.6a.9.9 0 0 1 .9.9v.8a.9.9 0 0 1-.9.9H5.2a.9.9 0 0 1-.9-.9v-.8a.9.9 0 0 1 .9-.9Z'/></g></svg>") no-repeat center / contain;
    transform: rotate(-8deg);
}

body .footer-wrapper .footer-section {
    position: relative;
    z-index: 1;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

body .footer-wrapper .footer-section .footer-heading {
    margin: 0 0 calc(18px * var(--sc-scale));
    padding: 0;
    font-family: var(--sc-font-display) !important;
    font-size: calc(13px * var(--sc-scale));
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-transform: uppercase;
    color: var(--sc-ink);
}

body .footer-wrapper .footer-heading::after {
    display: none;
}

body .footer-wrapper .footer-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

body .footer-wrapper .footer-section .footer-item {
    margin: 0 0 calc(11px * var(--sc-scale));
    font-size: calc(15.5px * var(--sc-scale));
    font-weight: 500;
    line-height: 1.5;
    color: var(--sc-ink-2);
}

/* one hover line only: the legacy sheet's background-image line is off */
body .footer-wrapper .footer-link,
body .footer-wrapper .footer-link:link,
body .footer-wrapper .footer-link:visited {
    position: relative;
    display: inline-block;
    padding-bottom: 0;
    color: var(--sc-ink-2);
    font-weight: 500;
    text-decoration: none !important;
    background-image: none !important;
    transition: color 0.2s var(--sc-ease);
}

body .footer-wrapper .footer-link::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -3px;
    height: 1px;
    background: var(--sc-blue-deep);
    transform: scaleX(0);
    transform-origin: 0 50%;
    transition: transform 0.25s var(--sc-ease);
}

body .footer-wrapper .footer-link:hover,
body .footer-wrapper .footer-link:focus-visible {
    color: var(--sc-blue-deep);
    background-image: none !important;
    outline: 0;
}

body .footer-wrapper .footer-link:hover::after,
body .footer-wrapper .footer-link:focus-visible::after {
    transform: scaleX(1);
}

/* buyer protection: caption, proof, caption, proof in one rhythm; the proofs
   in their own colours straight on the glass, no chips */
body .footer-wrapper .footer-protection .note-line {
    margin: 0 0 calc(10px * var(--sc-scale));
    font-size: calc(13.5px * var(--sc-scale));
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.4;
    color: var(--sc-ink-3);
}

body .footer-wrapper .footer-protection .logos-line {
    margin: 0 0 calc(26px * var(--sc-scale));
    line-height: 0;
}

body .footer-wrapper .footer-protection .logos-line:last-child {
    margin-bottom: 0;
}

body .footer-wrapper .footer-protection .stripe-line .footerStripe {
    display: block;
    height: calc(36px * var(--sc-scale));
    width: auto;
    max-width: none;
    filter: none;
    opacity: 1;
}

body .footer-wrapper .footer-protection .cards-logos {
    display: flex;
    align-items: center;
    gap: calc(14px * var(--sc-scale));
    flex-wrap: nowrap;
}

body .footer-wrapper .footer-protection .cards-logos .card-logo {
    display: block;
    height: calc(22px * var(--sc-scale));
    width: auto;
    filter: none;
    opacity: 1;
}

body .footer-wrapper .footer-bottom {
    position: relative;
    z-index: 1;
    margin-top: calc(40px * var(--sc-scale));
    padding: calc(22px * var(--sc-scale)) var(--sc-pad-x);
    border-top: 1px solid var(--sc-line);
    background: rgba(255, 255, 255, 0.35);
    text-align: center;
}

body .footer-wrapper .footer-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin: 0;
    font-family: var(--sc-font-body) !important;
    font-size: calc(14px * var(--sc-scale));
    font-weight: 500;
    line-height: 1.5;
    color: var(--sc-ink-3);
}

body .footer-wrapper .footer-text .irelandFlag,
body .footer-wrapper .footer-text .ukFlag {
    height: 14px;
    width: auto;
    border-radius: 2px;
    vertical-align: middle;
}

@media (max-width: 1024px) {
    body .footer-wrapper .footer-container,
    body .footer-wrapper .footer-container:has(> .footer-section:nth-child(4):last-child) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 36px 28px;
        padding: 36px 32px;
    }
}

@media (max-width: 640px) {
    body .footer-wrapper {
        padding-top: 48px !important;
    }

    body .footer-wrapper .footer-container,
    body .footer-wrapper .footer-container:has(> .footer-section:nth-child(4):last-child) {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        padding: 28px 22px;
        border-radius: 22px;
    }

    body .footer-wrapper .footer-section .footer-item {
        margin-bottom: 8px;
    }

    body .footer-wrapper .footer-bottom {
        margin-top: 32px;
    }

    body .footer-wrapper .footer-text .mobile-break {
        display: block;
        width: 100%;
    }

    html[lang="en-IE"] body .footer-wrapper .footer-container::after,
    html[lang="en-GB"] body .footer-wrapper .footer-container::after {
        width: 150px;
        height: 150px;
        right: -30px;
        bottom: -40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .register-cta .register-cta__gradient,
    .register-cta .register-cta__particles span {
        animation: none;
    }

    .register-cta .register-cta__button,
    #frontNav .frontNav-login-btn,
    #frontNav .frontNav-register-btn,
    .partner-showcase .logo-card {
        transition: none;
    }
}
