:root {
    --bg-blue-sand: linear-gradient(73.63deg, #54C4C6 0%, #54C5C7 59.69%, #8CECEE 100%);
    --bg-light-blue: #54C4C6;
    --bg-cashback-info: #FFEBB1;
    --social-circle-link: #667;
    --social-circle-link-hover: #DEDEDE;
    --fa-facebook: #1877F2;
}

svg {
    shape-rendering: geometricPrecision;
}

@media (min-width: 768px) and (max-width: 893px) {

    .jumbotron .header-text h1,
    .header-text h1 {
        font-size: 30px !important;
    }
}

@media (max-width: 767px) {
    body {
        font-size: inherit !important;
    }

    .jumbotron-subtitle {
        display: none;
    }

    .jumbotron .header-text h1,
    .header-text h1 {
        font-size: 28px !important;
    }
}

.text-center {
    margin-top: 0;
}

.social-btns {
    display: flex;
    justify-content: center;
    gap: 24px;
}

/* ─── Navbar layout (flexbox) ──────────────────────────────────────────────── */
.navbar-header {
    width: 100%;
    display: flex;
    float: none !important;
}

.navbar-nav {
    margin: 0px 0px;
    display: flex;
}

.navbar-left {
    float: none !important;
    align-items: center;
    flex-grow: 1;
    display: flex;
    gap: 45px;
}

.navbar-right {
    float: none !important;
    display: flex;
    align-items: center;
    flex-grow: 0;
    padding-left: 2px;
}

.navbar-brand {
    height: unset;
}

.navbar-nav li {
    list-style: none !important;
}

.navbar-default .navbar-nav>.open>a,
.navbar-default .navbar-nav>.open>a:hover,
.navbar-default .navbar-nav>.open>a:focus {
    background-color: #fff;
}

.navbar-right-url:hover {
    border-bottom: 0px solid #ff9900;
}

@media only screen and (min-width: 768px) {

    .navbar .navbar-nav a,
    .navbar .navbar-nav a:hover:not(.btn) {
        opacity: 1 !important;
    }
}

/* ─── Registration form panel ───────────────────────────────────────────────── */

#meedoen {
    color: var(--ec-black);
}

/* ─── Jumbotron layout ──────────────────────────────────────────────────────── */

header {
    position: relative;
    margin-top: 70px;
}

header .jumbotron {
    background: linear-gradient(93.44deg, #7ACBCD 0%, #9BD5D6 53.29%);
    color: #fff;
    border-radius: 0 0 30px 30px;
    margin-bottom: 0;
}


.jumbotron {
    background-color: unset;
    background-image: unset;
    padding-top: 40px;
    padding-bottom: 40px;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    overflow: hidden;
    z-index: 1;
    min-height: 390px;
}

#cashback .jumbotron {
    overflow: hidden;
    padding-bottom: 0;
    min-height: 353px;
}

#cashback .jumbotron::before,
#cashback .jumbotron::after {
    content: none;
}

/* ─── Jumbotron layers ──────────────────────────────────────────────────────── */

.jumbotron-layers {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.jumbotron-layer {
    position: absolute;
    inset: 0;
}

/* Background SVG pattern — slides in from above on load */
.jumbotron-layer--items {
    z-index: 0;
    opacity: 0;
    transform: translateY(-72px);
    will-change: transform, opacity;
    background-color: unset;
    background-image: url("data:image/svg+xml,%3Csvg width='1401' height='668' viewBox='0 0 1401 668' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='0.4'%3E%3Cpath d='M417.714 3.46402L416.214 2.59802V4.33002V21.4185V23.1505L417.714 22.2845L432.513 13.7403L434.013 12.8742L432.513 12.0082L417.714 3.46402Z' stroke='white' stroke-width='3'/%3E%3Cpath d='M11.1734 11.9416L10.1101 10.5743L9.45771 12.1788L3.02061 28.0085L2.36816 29.6129L4.0839 29.3757L21.0113 27.0356L22.7271 26.7984L21.6638 25.4311L11.1734 11.9416Z' stroke='white' stroke-width='3'/%3E%3Cpath d='M1199.26 49.8514C1206.4 49.8514 1212.26 44.2946 1212.26 37.3514C1212.26 30.4082 1206.4 24.8514 1199.26 24.8514C1192.12 24.8514 1186.26 30.4082 1186.26 37.3514C1186.26 44.2946 1192.12 49.8514 1199.26 49.8514Z' stroke='white' stroke-width='3'/%3E%3Cpath d='M1045.66 663.439C1057.76 663.439 1067.66 654.082 1067.66 642.439C1067.66 630.796 1057.76 621.439 1045.66 621.439C1033.55 621.439 1023.66 630.796 1023.66 642.439C1023.66 654.082 1033.55 663.439 1045.66 663.439Z' stroke='white' stroke-width='3'/%3E%3Cpath d='M1095.79 350.15L1082.37 335.439L1067.66 348.863L1081.08 363.574L1095.79 350.15Z' stroke='white' stroke-width='3'/%3E%3C/g%3E%3C/svg%3E");
    background-attachment: scroll;
    background-size: auto 100%;
    background-repeat: repeat-x;
    height: 100%;
}

/* ─── Coins ─────────────────────────────────────────────────────────────────── */

.jumbotron-layer--coins {
    z-index: 1;
}

.jumbotron-coin {
    position: absolute;
    display: block;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
    will-change: transform;
}

.jumbotron-coin--a1,
.jumbotron-coin--a2 {
    width: 55px;
    height: 58px;
    background-image: url("https://img.euroclix.nl/images/euroclix/registreren/coin1.svg");
}

.jumbotron-coin--c1 {
    width: 72px;
    height: 76px;
    background-image: url("https://img.euroclix.nl/images/euroclix/registreren/coin3.svg");
}

/* Override a1 + a2 appearance on cashback only */
#cashback .jumbotron-coin--a1,
#cashback .jumbotron-coin--a2 {
    width: 72px;
    height: 76px;
    background-image: url("https://img.euroclix.nl/images/euroclix/registreren/coin3.svg");
}

.jumbotron-coin--b1,
.jumbotron-coin--b2 {
    width: 63px;
    height: 33px;
    background-image: url("https://img.euroclix.nl/images/euroclix/registreren/coin2.svg");
}

/* Coin positions — mapped to match the mockup.
   calc(50% + Xpx): 50% = left edge of the right Bootstrap column. */
.jumbotron-coin--b2 {
    left: calc(50% + 168px);
    top: 2%;
}

/* top, between Amazon and Hollands Nieuwe */
.jumbotron-coin--a1 {
    left: calc(50% + 18px);
    top: 44%;
}

/* left-middle, left of Thuisbezorgd       */
.jumbotron-coin--b1 {
    left: calc(50% + 322px);
    top: 35%;
}

/* right of Thuisbezorgd                   */
.jumbotron-coin--c1 {
    left: calc(50% + 188px);
    top: 72%;
}

/* bottom-center, below Thuisbezorgd        */
.jumbotron-coin--a2 {
    left: calc(50% + 488px);
    top: 43%;
}

/* far-right, beside H&B lower              */

/* ─── Gift card grid layer ─────────────────────────────────────────────────── */

#cashback .jumbotron--giftcards {
    min-height: 420px;
}

.jumbotron-layer--giftcards {
    z-index: 1;
    left: 50%;
    display: flex;
    align-items: center;
    overflow: hidden;
    pointer-events: none;
}

.gc-grid {
    --gc-w: 160px;
    --gc-gap: 12px;
    display: flex;
    flex-direction: column;
    gap: var(--gc-gap);
    padding: 20px 0 20px 24px;
    pointer-events: auto;
}

.gc-row {
    display: flex;
    gap: var(--gc-gap);
    flex-shrink: 0;
}

/* Even rows offset by half a card — creates the brick pattern */
.gc-row--offset {
    margin-left: calc(var(--gc-w) / 4 + var(--gc-gap) / 4);
}

/* 1 ─── Card container: shape + elevation shadow + inner rim ────────────────── */
/*       overflow:visible so the badge ::after can protrude outside the card     */
.gc-card {
    border-radius: 10px;
    overflow: visible;
    position: relative;
    width: var(--gc-w);
    flex-shrink: 0;
    aspect-ratio: 85.6 / 54;
    background: #e8e8e8;
    transition: transform 380ms ease-in-out;
}

/* 2 ─── Card image: fills + clips the container (border-radius lives here now) ─ */
.gc-card__link {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    filter: drop-shadow(4px 3px 10px rgba(0, 0, 0, 0.25));
}

.gc-card--spotlight {
    transform: scale(1.06);
    z-index: 10;
}

.gc-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 3 ─── Gloss layer: diagonal polygon — upper-left band fading to transparent ─ */
/*       clip-path defines the shape; gradient fills it with the light sweep.    */
.gc-card__gloss {
    position: absolute;
    inset: 0;
    /* diagonal band: full width at top, cuts from 22% (left) → 58% (right) — top-right corner */
    clip-path: polygon(0 0, 100% 0, 100% 58%, 0 22%);
    background: linear-gradient(20deg,
            rgba(255, 255, 255, 0.55) 0%,
            rgba(255, 255, 255, 0.30) 40%,
            rgba(255, 255, 255, 0.00) 75%);
    pointer-events: none;
}

/* ── Badge: circular percentage bubble on gc-card corners ────────────────────
   Usage:
     • Add  gc-card--badge  and  data-badge="X%"  to show the bubble.
     • Colour  (default = green #8AC03A) : gc-card--badge-green | -red | -yellow
     • Corner  (default = bottom-right) : gc-card--badge-tl | -tr | -bl | -br  */
.gc-card--badge::after {
    content: attr(data-badge);
    position: absolute;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: #8AC03A;
    /* default: green */
    color: #fff;
    font-size: 15.75px;
    font-weight: 700;
    line-height: 45px;
    text-align: center;
    white-space: nowrap;
    filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.25));
    z-index: 4;
    pointer-events: none;
    /* default corner: bottom-right */
    top: auto;
    left: auto;
    bottom: -14px;
    right: -14px;
}

/* ── Badge colours ── */
.gc-card--badge-green::after {
    background: #8AC03A;
}

.gc-card--badge-red::after {
    background: #FF0000;
}

.gc-card--badge-yellow::after {
    background: #FECD3D;
}

/* ── Badge corner positions ── */
.gc-card--badge-tl::after {
    top: -14px;
    left: -14px;
    bottom: auto;
    right: auto;
}

.gc-card--badge-tr::after {
    top: -14px;
    right: -14px;
    bottom: auto;
    left: auto;
}

.gc-card--badge-bl::after {
    bottom: -14px;
    left: -14px;
    top: auto;
    right: auto;
}

.gc-card--badge-br::after {
    bottom: -14px;
    right: -14px;
    top: auto;
    left: auto;
}

/* Medium: slightly smaller cards */
@media (max-width: 1199px) {
    .gc-grid {
        --gc-w: 138px;
    }
}

/* Small medium: 3 cards per row — hide the 4th */
@media (max-width: 991px) {
    .gc-grid {
        --gc-w: 115px;
        --gc-gap: 10px;
    }

    .gc-row .gc-card:nth-child(4) {
        display: none;
    }
}

/* ─── Partner bubbles layer ─────────────────────────────────────────────────── */

@keyframes partner-bubble-float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }
}

.jumbotron-layer--bubbles {
    z-index: 2;
}

.partner-bubble {
    position: absolute;
    border-radius: 50%;
    background-color: var(--bubble-bg, #fff);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    will-change: transform;
}

.partner-bubble img {
    max-width: 72%;
    max-height: 72%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* Bubble positions — order matches the DOM order in the template */
.partner-bubble:nth-child(1) {
    width: 130px;
    height: 130px;
    left: calc(50% + 0px);
    top: 2%;
    rotate: 8.48deg;
}

.partner-bubble:nth-child(2) {
    width: 80px;
    height: 80px;
    left: calc(50% + 255px);
    top: -5%;
}

.partner-bubble:nth-child(3) {
    width: 88px;
    height: 88px;
    left: calc(50% + 465px);
    top: 10%;
}

.partner-bubble:nth-child(4) {
    width: 100px;
    height: 100px;
    left: calc(50% + 145px);
    top: 34%;
    rotate: -2.3
}

.partner-bubble:nth-child(5) {
    width: 130px;
    height: 130px;
    left: calc(50% + 0px);
    top: 60%;
    rotate: -4.85deg;
}

.partner-bubble:nth-child(6) {
    width: 112px;
    height: 112px;
    left: calc(50% + 378px);
    top: 58%;
}

/* ─── Jumbotron content ─────────────────────────────────────────────────────── */

.jumbotron-content {
    position: relative;
    z-index: 3;
}

.jumbotron-content>.container>.row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

@media (min-width: 768px) {
    .jumbotron-content>.container {
        margin: 0 auto;
        width: 100%;
        max-width: 1200px;
    }
}

.jumbotron-content .header-text {
    padding-left: 40px;
}

@media (max-width: 767px) {
    .jumbotron-content .header-text {
        padding-left: 0;
        padding-right: 0;
    }
}

.jumbotron .header-text h1,
.header-text h1 {
    font-size: 40px;
    font-weight: bold;
    margin-bottom: 16px;
    color: #fff;
}

.jumbotron-subtitle {
    font-size: 18px;
    color: #fff;
    margin-bottom: 28px;
}

.btn-register {
    font-size: 16px;
    padding: 12px 28px;
    border-radius: 6px;
}

/* ─── Bubble breathing pulse (GPU-composited, applied via JS after pop-in) ──── */

@keyframes bubble-breathe {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

/* ─── Slide-in keyframe (drives .jumbotron-layer--items via JS) ─────────────── */

@keyframes slideInDown {
    0% {
        opacity: 0;
        transform: translateY(-50%);
        visibility: visible;
    }

    100% {
        opacity: 0.3;
        transform: translateY(0);
    }
}

/* ─── Mobile adjustments ─────────────────────────────────────────────────────── */

@media (max-width: 767px) {

    .jumbotron,
    #cashback .jumbotron {
        min-height: unset;
        padding-bottom: 48px;
    }

    /* Hide bubbles, coins and gift cards on mobile so the CTA is front and centre */
    .jumbotron-layer--bubbles,
    .jumbotron-layer--coins,
    .jumbotron-layer--giftcards {
        display: none;
    }

    .jumbotron-content>.container>.row {
        justify-content: center;
    }

    .header-text {
        text-align: center;
    }

    .header-text .btn-register {
        display: block;
        width: fit-content;
        margin: 0 auto;
    }
}

@media (max-width: 390px) {
    .header-text .btn-register {
        width: 100%;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTION BLOCKS (shared)
   ═══════════════════════════════════════════════════════════════════════════════ */

.block {
    padding: 64px 0;
    min-height: 400px;
    align-content: center;
}

.block--white {
    background: #ffffff;
}

.block--grey {
    background: #f4f6f8;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTIE 2 — CASHBACK INFO
   ═══════════════════════════════════════════════════════════════════════════════ */

.cashback-card.giftcard {
    background: var(--bg-cashback-info);
}

.block--cashback-info .row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 32px 0;
}

h2.titel-font-orange {
    font-size: 32px;
    font-weight: 700;
    color: #f5a100;
    margin: 0 0 20px;
    line-height: 1.2;
}

.cashback-info__desc {
    font-size: 17px;
    color: #444;
    line-height: 1.7;
    margin: 0;
}

/* Cashback card */
.cashback-card {
    background: #e8eef5;
    border-radius: 40px;
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: 0px 6px 4px rgba(0, 0, 0, 0.25);
}

.cashback-card__item {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 16px;
    text-decoration: none;
    color: inherit;
}

.cashback-card__item,
.cashback-card__item:hover,
.cashback-card__item:focus,
.cashback-card__item:active,
.cashback-card__item:visited {
    text-decoration: none;
    outline: none;
}

.cashback-card__item *,
.cashback-card__item *:hover,
.cashback-card__item *:visited {
    text-decoration: none;
}

.cashback-card__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.cashback-card__logo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: contain;
    flex-shrink: 0;
    background: #fff;
    /* padding: 6px; */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}

.cashback-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cashback-card__earn {
    font-size: 15px;
    font-weight: 700;
    color: #222;
}

.cashback-card__label {
    font-size: 13px;
    color: #666;
}

.cashback-card__badge {
    background: #f5a100;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    border-radius: 8px;
    padding: 6px 14px;
    white-space: nowrap;
    flex-shrink: 0;
    height: 40px;
    min-width: 74px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.cashback-card.giftcard .cashback-card__badge {
    background: #54C4C6;
}

.cashback-card.giftcard .cashback-card__item {
    border-bottom: none;
}

@media (max-width: 767px) {
    .cashback-info__heading {
        font-size: 26px;
    }

    .block--cashback-info .col-xs-12:last-child {
        /* margin-top: 8px; */
    }
}

@media (max-width: 363px) {
    .cashback-card__label {
        display: none;
    }

    .cashback-card__earn {
        font-size: 13px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTIE 3 — HOW IT WORKS SLIDER
   ═══════════════════════════════════════════════════════════════════════════════ */

.block--slider .titel-font-2 {
    margin-bottom: 40px;
}

#howItWorksSlider {
    margin-top: 0px;
    margin-bottom: 0px;
}

.slider {
    display: flex;
    align-items: stretch;
    gap: 40px;
}

.slider__steps {
    flex: 0 0 42%;
    display: flex;
    flex-direction: column;
}

.slider__step {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    cursor: pointer;
    padding-bottom: 40px;
    position: relative;
}

.slider__step:last-child {
    padding-bottom: 0;
}

.slider__step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 27px;
    top: 68px;
    bottom: 12px;
    width: 2px;
    background: #d0d0d0;
}

.slider__step-icon {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #d8d8d8;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    transition: background .35s, color .35s;
    position: relative;
    z-index: 1;
}

.slider__step.active .slider__step-icon {
    background: #54C4C6;
    color: #fff;
}

.slider__step-body {
    flex: 1;
    min-width: 0;
}

.slider__step-title {
    font-size: 25px;
    font-weight: 700;
    color: #aaa;
    margin: 10px 0 6px;
    transition: color .35s;
}

.slider__step.active .slider__step-title {
    font-weight: 700;
    color: #222;
}

.slider__step-desc {
    font-size: 18px;
    font-weight: 400;
    color: #bbb;
    margin: 0;
    transition: color .35s;
}

.slider__step.active .slider__step-desc {
    color: #555;
}

.slider__visual {
    flex: 1;
    min-width: 0;
    position: relative;
    height: 468px;
    overflow: hidden;
}

.slider__image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 440px;
    border-radius: 12px;
    opacity: 0;
    pointer-events: none;
}

.slider__image.active {
    opacity: 1;
    pointer-events: auto;
    animation: sliderImageIn .65s cubic-bezier(.34, 1.3, .64, 1) both;
}

@keyframes sliderImageIn {
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(.94);
    }

    60% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.02);
    }

    100% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.slider__mobile-content {
    display: none;
}

@media (max-width: 768px) {
    .block {
        padding: 40px 0;
    }
    
    .slider {
        flex-direction: column;
        gap: 24px;
    }

    .slider__visual {
        order: 1;
        width: 100%;
        height: 280px;
        flex: 0 0 280px;
        aspect-ratio: unset;
    }

    .slider__image {
        max-height: 280px;
    }

    .slider__mobile-content {
        order: 2;
        display: block;
        text-align: center;
        padding: 0 8px;
        min-height: 80px;
    }

    .slider__mobile-title {
        font-size: 20px;
        font-weight: 700;
        color: #222;
        margin: 0 0 8px;
    }

    .slider__mobile-desc {
        color: #555;
        margin: 0;
        font-size: 14px !important;
    }

    .block-cashback-info__text {
        text-align: center;
    }

    .slider__steps {
        order: 3;
        flex-direction: row;
        justify-content: center;
        gap: 32px;
    }

    .slider__step {
        flex-direction: column;
        align-items: center;
        padding-bottom: 0;
        gap: 0;
    }

    .slider__step::after {
        display: none;
    }

    .slider__step:not(:last-child)::after {
        display: block;
        top: 27px;
        left: 64px;
        width: 16px;
        height: 2px;
        bottom: auto;
    }

    .slider__step-body {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTIE 4 — MEER MANIEREN (CARDS)
   ═══════════════════════════════════════════════════════════════════════════════ */

.block--cards .row.text-center {
    margin-bottom: 32px;
}

.cards {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: stretch;
}

.cards__item {
    display: flex;
    flex-direction: column;
    flex: 1 1 calc(33.333% - 14px);
    max-width: calc(33.333% - 14px);
}

.cards__box {
    border-radius: 16px;
    padding: 28px 24px;
    display: flex;
    flex: 1;
    overflow: hidden;
}

.cards__box--blue {
    background: #DEE9FC;
}

.cards__box--green {
    background: #ECFCC5;
}

.cards__box--yellow {
    background: #FFF0C5;
}

.cards__box--pink {
    background: #FCCDC5;
}

.cards__box-content {
    display: flex;
    align-items: stretch;
    width: 100%;
}

.cards__box-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 12px;
}

.cards__box-title {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 10px;
    color: #1a1a1a;
    line-height: 1.3;
}

.cards__box-desc {
    color: #444;
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 20px;
    flex: 1;
}

.cards__box-btn {
    display: inline-block;
    background: #f5a100;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    padding: 8px 20px;
    border-radius: 8px;
    text-decoration: none;
    align-self: flex-start;
    margin-bottom: 0;
}

/* ─── Login modal: of/text-lines ────────────────────────────────────────────── */

.of {
    font-weight: bold;
    padding: 10px 0px 7px 0px;
    text-align: center;
}

.text-lines {
    position: relative;
    border-top: 1px solid silver;
    margin-top: 24px;
}

.text-lines:before {
    content: attr(data-text);
    background-color: #fff;
    position: inherit;
    text-align: center;
    padding: 0 10px;
    top: -10px;
}

/* ─── Login modal: circle-link (google / facebook) ──────────────────────────── */

.of {
    padding: 0px 0px 0px 0px;
}

#facebook {
    color: unset;
    background-color: unset;
    box-shadow: unset;
    border-radius: unset;
    height: unset;
    padding: unset;
    font-size: unset;
    font-weight: unset;
    text-align: unset;
    outline: 0;
    display: inline-block !important;
    width: 32px !important;
}

#facebook {
    text-decoration: none;
}

#facebook:hover {
    text-decoration: none;
    background-color: unset;
}

#facebook:active {
    background-color: unset;
    -webkit-box-shadow: unset;
    -moz-box-shadow: unset;
    box-shadow: unset;
    -webkit-transform: unset;
    -moz-transform: unset;
    -ms-transform: unset;
    -o-transform: unset;
    transform: unset;
}

.circle-link {
    position: relative;
    display: inline-block;
    width: 32px;
    height: 32px;
    margin: 0 0px;
    text-align: center;
    color: var(--social-circle-link);
    transition: all 0.3s;
    backface-visibility: hidden;
    -webkit-font-smoothing: subpixel-antialiased;
}

.circle-link:hover svg path {
    stroke-dashoffset: 0;
    stroke: var(--social-circle-link-hover);
}

.circle-link:active i {
    transform: scale(1.1) translateZ(0);
}

.circle-link i {
    transition: transform 0.3s;
    font-size: 28px;
    line-height: 32px;
}

.circle-link svg {
    position: absolute;
    top: -10px;
    left: -10px;
}

.circle-link svg path {
    stroke: #fff;
    stroke-width: 3;
    fill: none;
    transition: all 0.5s;
    stroke-dashoffset: 205;
    stroke-dasharray: 205;
}

.circle-link .fa-google {
    background: conic-gradient(from -45deg, #ea4335 110deg, #4285f4 90deg 180deg, #34a853 180deg 270deg, #fbbc05 270deg) 73% 55%/150% 150% no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}

.circle-link .fa-apple {
    color: var(--black);
}

.circle-link .fa-facebook {
    color: var(--fa-facebook);
}

.circle-link .facebook {
    margin-left: 0px !important;
}

#namegoogle {
    display: none;
}

@media (hover: none) {
    .circle-link svg {
        position: absolute;
        top: -10px;
        left: -10px;
    }

    .circle-link svg path {
        stroke: var(--social-circle-link);
        stroke-width: 3;
        transition: all 0.3s;
    }

    .circle-link {
        position: relative;
        display: inline-block;
        width: 32px;
        height: 32px;
        margin: 0 10px;
        text-align: center;
        color: var(--social-circle-link);
        transition: all 0.3s;
        backface-visibility: hidden;
        -webkit-font-smoothing: subpixel-antialiased;
    }

    .circle-link svg path {
        stroke-dashoffset: 0;
        stroke: #F1F1F1;
    }
}


.cards__box-btn:hover,
.cards__box-btn:focus {
    background: #d98e00;
    color: #fff;
    text-decoration: none;
}

.cards__box-image {
    flex-shrink: 0;
    width: 140px;
    align-self: stretch;
    align-content: center;
    margin: -28px -24px -28px 16px;
    overflow: hidden;
}

.cards__box-image img {
    width: 100%;
    height: auto;
    display: block;
    min-width: 174px;
}

/* Stack below 991px */
@media (max-width: 991px) {
    .cards__item {
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* Mobile: smaller padding and image */
@media (max-width: 576px) {
    .cards__item {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .cards__box {
        padding: 20px 16px;
    }

    .cards__box-image {
        width: 130px;
        margin: -20px -16px -20px 12px;
    }
}

@media (max-width: 390px) {
    .cards__box-title {
        font-size: 16px;
        font-weight: 700;
        margin: 0 0 10px;
        color: #1a1a1a;
        line-height: 1.3;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SECTIE 5 — FAQ
   ═══════════════════════════════════════════════════════════════════════════════ */

#faq.block {
    padding-bottom: 60px;
}

#faq .titel-font-2 {
    font-size: 32px;
    font-weight: 700;
    color: #f5a100;
    margin: 0 0 32px;
}

#faq .panel-group {
    margin-bottom: 0;
}

#faq .panel.panel-default {
    background: #fff;
    border: none;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07);
    margin-bottom: 10px;
    overflow: hidden;
}

#faq .panel.panel-default+.panel.panel-default {
    margin-top: 0;
}

#faq .panel-heading {
    background: #fff !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 0;
    cursor: pointer;
    transition: background 180ms ease;
}

#faq .panel-heading:hover {
    background: #f7fafa !important;
}

#faq .panel-heading .faq-margin {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    margin: 0;
    font-size: 15px;
    color: #1a1a2e;
    line-height: 1.4;
    gap: 12px;
}

#faq .panel-heading .faq-margin strong {
    font-weight: 600;
    flex: 1;
}

#faq .panel-heading .faq-margin::after {
    content: '';
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    background-color: #f5a100;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform 250ms ease;
}

#faq .panel-heading:not(.collapsed) .faq-margin::after {
    transform: rotate(180deg);
}

#faq .panel-title {
    display: none;
}

#faq .panel-body {
    padding: 16px 22px 20px;
    font-size: 16px;
    color: #555;
    line-height: 1.65;
    border-top: 1px solid #f0f0f0;
    margin: 0 22px;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SCROLL-FADE ANIMATION
   ═══════════════════════════════════════════════════════════════════════════════ */

.scroll-fade {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.scroll-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ── Games section ──────────────────────────────────────────────────────────── */
#games .block--cashback-info {
    padding: 0;
    min-height: 0;
    align-content: normal;
}

#games .block--cashback-info .row {
    gap: 0;
}

#games .block-cashback-info__text {
    padding: 32px 0;
}

#gamesPlayVisual {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    #games .block-cashback-info__text {
        padding: 0 0 40px;
        order: 2;
    }

    #games .block--cashback-info .col-xs-12:last-child {
        order: 1;
        margin-bottom: 24px;
    }

    #gamesPlayVisual {
        max-width: 500px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 767px) {

    /* titel → afbeelding → tekst op surveys, cashback, giftcards */
    #cashback .block-cashback-info__text {
        display: contents;
    }

    #cashback .block-cashback-info__heading {
        order: 1;
        width: 100%;
        text-align: center;
        padding: 24px 0 0;
    }

    #cashback .block-cashback-info__image-col {
        order: 2;
    }

    #cashback .block-cashback-info__desc-wrap {
        order: 3;
        width: 100%;
        text-align: center;
        padding: 0 0 24px;
    }
}

/* ─── Cart visual (block-cashback-info image) ───────────────────────────────── */
.cart-visual {
    position: relative;
    display: block;
    max-width: 337px;
    width: 100%;
    margin: 0 auto;
}

/* Cart/basket wrapper — animated, never the <img> itself */
.cart-visual__cart-wrap {
    display: block;
    width: 100%;
    margin-left: -10px;
}

.cart-visual__cart {
    display: block;
    width: 100%;
    height: auto;
}

/* Checklist card wrapper — positioned absolutely, animated */
.cart-visual__list-wrap {
    position: absolute;
    top: -13%;
    right: -20%;
    width: 58%;
}

.cart-visual__list {
    display: block;
    width: 100%;
    height: auto;
}

/* On mobile the right-overhang has no room; clip to the container and pull
   the cart left so the list card sits neatly within bounds */
@media (max-width: 767px) {
    /* .cart-visual {
        overflow: hidden;
    } */

    .cart-visual__cart-wrap {
        margin-left: -26px;
    }

    .cart-visual__list-wrap {
        right: 0;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   SURVEY JUMBOTRON HERO
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Hero container — anchored bottom-right in the jumbotron layer (same pattern as
   games-hero), width-constrained so bubble % positions stay accurate */
#cashback .survey-hero {
    position: absolute;
    bottom: 0;
    right: max(0px, calc((100% - 1170px) / 2));
    width: 50%;
    max-width: 440px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    pointer-events: none;
}

/* Hide on xs (< 768px) */
@media (max-width: 767px) {
    #cashback .survey-hero {
        display: none;
    }
}

/* Part 1: background layer — slides up from below on page load */
.survey-hero__part--1 {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: auto;
    z-index: 0;
    opacity: 0;
    pointer-events: none;
    animation: surveyHero1 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) 0.05s both;
}

@keyframes surveyHero1 {
    0% {
        opacity: 0;
        transform: translateY(60px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Part 2: phone + hands image — slides up on load (same easing as games hero) */
.survey-hero__main {
    position: relative;
    z-index: 1;
    max-width: 100%;
    max-height: none;
    width: auto;
    height: auto;
    margin-bottom: -45px;
    animation: surveyHero2 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) 0.30s both;
}

@keyframes surveyHero2 {
    0% {
        opacity: 0;
        transform: translateY(50px) scale(0.88);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Bubble base styles */
.survey-bubble {
    position: absolute;
    width: 82px;
    height: 82px;
    border-radius: 50%;
    background: #AAF6F8;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    opacity: 0;
    transform: scale(0);
    will-change: transform, opacity;
    z-index: 2;
}

.survey-bubble img {
    width: 62%;
    height: 62%;
    object-fit: contain;
}

/* Bubble positions — staggered so left/right pairs are at different heights */
.survey-bubble--tl {
    top: 12%;
    left: 1%;
}

/* credit card   — top-left  */
.survey-bubble--tr {
    top: 3%;
    right: 2%;
}

/* shopping cart — top-right */
.survey-bubble--bl {
    top: 58%;
    left: 1%;
}

/* drink/wine    — mid-left  */
.survey-bubble--br {
    top: 47%;
    right: 2%;
}

/* briefcase     — mid-right */

/* Icon rotations inside each bubble */
.survey-bubble--tl img {
    transform: rotate(-20deg);
}

.survey-bubble--tr img {
    transform: rotate(0deg);
}

.survey-bubble--bl img {
    transform: rotate(0deg);
}

.survey-bubble--br img {
    transform: rotate(20deg);
}

/* GPU-composited float loop applied via JS after the pop-in completes */
@keyframes survey-bubble-float {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   GAMES JUMBOTRON HERO
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Taller jumbotron for the games hero */

@media (min-width: 768px) {
    #games header .jumbotron {
        min-height: 353px;
    }
}

/* Hero container — starts at viewport centre (= Bootstrap column boundary),
   ends at the container's right edge so it stays within the grid on wide screens */
#games .games-hero {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    right: max(0px, calc((100% - 1170px) / 2));
    pointer-events: none;
}

/* All 4 parts share the same bounding box so they stay aligned with each other.
   top: 50px shifts the whole composition down within the hero container. */
#games .games-hero__part {
    position: absolute;
    top: 50px;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    object-fit: contain;
    object-position: center bottom;
    opacity: 0;
    pointer-events: none;
}

/* ── Part 2 & 3: offset top so composition aligns with container ─────────────── */
#games .games-hero__part--2,
#games .games-hero__part--3 {
    top: -15px;
}

