html {
    box-sizing: border-box;
    font-size: 16px;
    line-height: 1.15;
    background-color: #fff;
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
*, *::before, *::after { box-sizing: inherit; }
body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, blockquote, dl, dd, dt, pre, fieldset, legend, hr, iframe, textarea { margin: 0; padding: 0; }
body {
    position: relative;
    background-color: #000;
    color: #000;
    font-family: Roboto, system-ui, -apple-system, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 1em;
    font-weight: 400;
    line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: 700; }
ul { list-style: none; }
img, video { height: auto; max-width: 100%; border-style: none; }
a { background-color: transparent; }
small { font-size: 80%; }
strong, b { font-weight: 700; }
button, input, select, textarea { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
button { -webkit-appearance: none; appearance: none; border: none; overflow: visible; text-transform: none; }
svg { display: block; }
[hidden] { display: none !important; }

/* ---- layout helpers ------------------------------------------------------ */
.container { flex-grow: 1; margin: 0 auto; position: relative; width: auto; }
@media screen and (min-width: 1024px) { .container { max-width: 1024px; } }
@media screen and (min-width: 1216px) { .container { max-width: 1152px; } }

/* full-page photo backdrop (desktop only), everything else stacks above it */
.body-bg {
    display: block;
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
    z-index: 0;
}
.site { position: relative; z-index: 1; }
.main { position: relative; }
@media (max-width: 768px) {
    .body-bg { display: none; }
    .site { margin: 0 auto; max-width: 500px; }
}

/* ---- navbar -------------------------------------------------------------- */
.navbar { background-color: #000; position: relative; z-index: 2; }
.navbar__inner {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    padding: .75rem 1rem;
    position: relative;
}
.navbar__logo { display: block; margin: 0 auto; }
.navbar__logo img, .navbar__logo .brand-name {
    display: block;
    width: 200px;
    height: 50px;
    object-fit: contain;
}
.navbar__logo .brand-name { color: #fff; font-weight: 700; font-size: 24px; line-height: 50px; text-align: center; white-space: nowrap; }

/* burger: the source's "hamburger--squeeze" (40x24 box, 3 bars 4px, scaled .75 on mobile) */
.burger {
    display: none;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%) scale(.75);
    align-items: center;
    padding: 0;
    background-color: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    outline: none;
    transition-duration: .15s;
    transition-property: opacity, filter;
    transition-timing-function: linear;
}
.burger:hover { opacity: .7; }
.burger__box { display: inline-block; position: relative; width: 40px; height: 24px; }
.burger__inner { display: block; top: 50%; margin-top: -2px; }
.burger__inner, .burger__inner::before, .burger__inner::after {
    position: absolute;
    width: 40px;
    height: 4px;
    border-radius: 4px;
    background-color: #fff;
    transition-duration: .15s;
    transition-property: transform;
    transition-timing-function: ease;
}
.burger__inner::before, .burger__inner::after { content: ""; display: block; }
.burger__inner::before { top: -10px; }
.burger__inner::after { bottom: -10px; }
.burger .burger__inner { transition-duration: 75ms; transition-timing-function: cubic-bezier(.55, .055, .675, .19); }
.burger .burger__inner::before { transition: top 75ms ease .12s, opacity 75ms ease; }
.burger .burger__inner::after { transition: bottom 75ms ease .12s, transform 75ms cubic-bezier(.55, .055, .675, .19); }
.burger.is-active .burger__inner { transform: rotate(45deg); transition-delay: .12s; transition-timing-function: cubic-bezier(.215, .61, .355, 1); }
.burger.is-active .burger__inner::before { top: 0; opacity: 0; transition: top 75ms ease, opacity 75ms ease .12s; }
.burger.is-active .burger__inner::after { bottom: 0; transform: rotate(-90deg); transition: bottom 75ms ease, transform 75ms cubic-bezier(.215, .61, .355, 1) .12s; }

/* dropdown menu: the source's .navbar-nav (mobile only; the source has no menu on desktop) */
.navbar__menu { display: none; }
.navbar__list { list-style: none; margin: 0; padding: 0; }
.navbar__list a { color: #fff; font-weight: 700; text-decoration: none; }

@media (max-width: 768px) {
    .navbar { background-color: transparent; }
    .navbar__inner { padding: .25rem 1rem; }
    .navbar__logo img, .navbar__logo .brand-name { width: 128px; height: 32px; }
    .navbar__logo .brand-name { font-size: 16px; line-height: 32px; }
    .burger { display: flex; }
    .navbar.is-open .navbar__menu {
        display: block;
        position: absolute;
        left: 0;
        top: 100%;
        width: 100%;
        z-index: 2;
        background-color: rgba(0, 0, 0, .95);
    }
    .navbar__list { display: flex; flex-direction: column; padding: 1rem 0; text-align: center; }
    .navbar__list li { margin: 0 0 .5rem; }
}

/* ---- hero ---------------------------------------------------------------- */
.hero { position: relative; }
.hero__bg { display: none; }
.hero__inner {
    position: relative;
    color: #fff;
    padding: 1rem 1rem 2rem;
    min-height: 100px;
}
.hero__title {
    font-size: 2.5em;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    color: #fff;
}
.hero__accent { color: #e5ca00; }
.hero__date {
    font-size: 2em;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    color: #e5ca00;
    margin-top: -.5rem;
}
.hero__text { font-size: 14px; margin-top: .5rem; text-align: center; }
.hero__small { font-size: 14px; margin: .5rem 0 .75rem; text-align: center; }
.hero__small strong { font-weight: 700; }
.hero__small small { font-size: 80%; }

.hero__features {
    position: relative;
    display: flex;
    align-items: center;
    font-size: 14px;
    margin-top: .5rem;
    list-style: none;
}
.feature { display: flex; align-items: center; font-weight: 700; }
.feature + .feature { margin-left: 1rem; }
.feature__icon { display: block; width: 20px; margin-right: .5rem; fill: #fff; }
.feature span { display: block; }

.hero__disc {
    position: absolute;
    right: 1rem;
    bottom: .5rem;
    display: flex;
    font-size: 12px;
}
.hero__disc-sep { margin: 0 .125rem; }

@media (max-width: 768px) {
    .hero { margin-top: -42px; }
    .hero__bg {
        display: block;
        position: absolute;
        top: 0; left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top;
    }
    .hero__inner { padding: 52px .5rem 1.25rem; }
    .hero__title { font-size: 1.25em; line-height: 1; }
    .hero__accent { color: #e5d820; }
    .hero__date { font-size: 1em; margin: 0 0 .75rem; color: #e5d820; }
    .hero__text, .hero__small { display: none; }
    .hero__features { justify-content: center; margin: -.5rem 0 10px; }
    .feature + .feature { margin-left: .5rem; }
    .feature__icon { width: 15px; margin-right: .25rem; }
    .feature span { flex: 1; font-size: 10px; }
    .hero__disc { right: .25rem; bottom: .125rem; font-size: 8px; }
}
@media (max-width: 340px) {
    .hero__inner { padding-bottom: 1.75rem; }
    .hero__title { font-size: 1em; }
    .hero__date { font-size: .85em; }
    .feature span { font-size: 8px; }
    .hero__disc { justify-content: center; }
}

/* ---- ranking table ------------------------------------------------------- */
.ranking__inner {
    padding: 0 1rem 1rem;
    background-color: rgba(0, 0, 0, .5);
    counter-reset: row;
}
.row {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
    background-color: #fff;
    text-align: center;
}
.row:nth-child(2n) { background-color: #f9f9f9; }
.row:not(:last-child) { border-bottom: 1px solid #e5ca00; }
.row::before {
    content: counter(row);
    counter-increment: row;
    position: absolute;
    left: 0;
    top: 0;
    width: 2rem;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #e9e9e9;
    color: #000;
    font-size: 1rem;
    font-weight: 700;
}
/* the first (top) row is highlighted: thick yellow frame, slightly wider than the list */
.row.row--1 {
    border: 4px solid #e5ca00;
    transform: scaleX(1.04) translateY(-5px);
}

.row__logo, .row__offer, .row__rating, .row__score, .row__visit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.row__logo { position: relative; flex: 0 1 20%; padding: 28px 1rem 1rem 3rem; }
.row__logo a { display: block; width: 100%; }
.brand-logo { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: contain; margin: 0 auto; }

.row__offer { flex: 0 1 30%; }
.row__label { font-size: 12px; text-transform: uppercase; }
.row__bonus { font-size: 20px; font-weight: 700; }

.row__rating { flex: 0 1 15%; }
.row__rating-label { font-size: 12px; }
.stars { position: relative; z-index: 1; display: flex; align-items: flex-end; margin-top: .25rem; }
.stars__star { display: block; width: 22px; height: 22px; margin: 0 2px; fill: #ffd700; pointer-events: none; }
.row__rating-mobile { display: none; }

.row__score { flex: 0 1 140px; }
.score { font-size: 56px; font-weight: 700; line-height: 1; color: #5b980f; }
.score__label { display: none; }

.row__visit { flex: 1 1 0%; }
.btn--claim {
    display: block;
    cursor: pointer;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.5;
    padding: .75rem 1.5rem;
    text-decoration: none;
    white-space: nowrap;
    background: #238c07;
    color: #fff;
    border-radius: 10px;
    transition: .3s;
}
.btn--claim::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.feature--licensed { margin-top: 10px; font-size: 12px; font-weight: 600; color: #000; }

.row__tcs {
    display: block;
    flex: none;
    width: 100%;
    margin-top: .25rem;
    padding: 0 2rem .5rem 2.25rem;
    font-size: 9px;
    line-height: 1.25;
    color: #6c6c6c;
    text-align: center;
}
.row__tcs a { color: #6c6c6c; }

@media (min-width: 769px) and (max-width: 1215px) { .btn--claim { font-size: 1rem; } }
@media (max-width: 1024px) { .row__bonus { font-size: 16px; } }
@media (max-width: 1023px) {
    .ranking__inner { padding: 0; background-color: transparent; }
    .row__logo { padding-left: 1rem; }
}
@media (max-width: 768px) {
    .row.row--1 { border-width: 3px; transform: scaleX(1.02) translateY(0); }
    .row::before { display: none; }
    .row::after {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 50%;
        height: 100%;
        background-color: #f2f2f2;
        pointer-events: none;
    }
    .row__logo, .row__offer, .row__rating, .row__score, .row__visit { padding: .5rem; z-index: 1; }
    .row__logo, .row__offer, .row__visit { flex-basis: 50%; max-width: 50%; }
    .row__logo { padding: 28px .5rem .5rem; }
    .brand-logo { width: 150px; }
    .row__offer { padding-bottom: 0; }
    .row__label { font-size: 10px; margin-bottom: .125rem; }
    .row__bonus { font-size: 1rem; line-height: 1.25; }
    .row__rating { flex-basis: 30%; max-width: 30%; flex-direction: column-reverse; }
    .row__rating-label { height: 0; overflow: hidden; margin-top: .5rem; }
    .stars { margin-top: 0; pointer-events: none; }
    .stars__star { width: 11px; height: 11px; }
    .row__rating-mobile { display: block; font-size: 11px; font-weight: 700; line-height: 1; margin-bottom: .25rem; }
    .row__score { flex-basis: 20%; max-width: 20%; }
    .score { font-size: 32px; margin-bottom: .5rem; }
    .row__visit { flex: 1 1 50%; }
    .btn--claim { width: 100%; font-size: 1rem; padding: .5rem; }
    .row__tcs { background-color: #fff; line-height: 1.125; margin-top: 0; padding: .25rem; z-index: 1; }
}
@media (max-width: 340px) {
    .row__rating-mobile, .row__rating-label { font-size: 9px; font-weight: 700; }
}

/* ---- article (home) ------------------------------------------------------ */
.content__inner {
    position: relative;
    color: #fff;
    background-color: rgba(0, 0, 0, .5);
    padding: 1rem;
    font-size: 1em;
    line-height: 1.5;
}
.content__inner h1, .content__inner h2, .content__inner h3, .content__inner h4, .content__inner h5, .content__inner h6 { line-height: 1.125; font-weight: 700; color: #fff; }
.content__inner h2 { font-size: 1.75em; margin-bottom: .5714em; color: #e5ca00; }
.content__inner h2:not(:first-child) { margin-top: 1.1428em; }
.content__inner h3 { font-size: 1.5em; margin-bottom: .6666em; }
.content__inner h3:not(:first-child) { margin-top: 1.3333em; }
.content__inner .content__title { font-size: 2em; margin: 0 0 .5em; color: #e5ca00; }
.content__inner p:not(:last-child), .content__inner ul:not(:last-child), .content__inner ol:not(:last-child) { margin-bottom: 1.5em; }
.content__inner ul { list-style: disc outside; }
.content__inner ol { list-style: decimal outside; }
.content__inner ol, .content__inner ul { margin-left: 2em; margin-top: 1em; padding: 0; }
.content__inner li { margin-bottom: .25rem; }
.content__inner strong { font-weight: 700; }
@media (max-width: 768px) { .content__inner { font-size: .8em; } }

/* ---- footer -------------------------------------------------------------- */
.footer { background-color: #000; }
.footer__body {
    color: #fff;
    font-size: 12px;
    line-height: 1.5;
    padding: 1rem 1rem 3rem;
    text-transform: uppercase;
}
.footer__body a { color: #fff; }
.footer__logo { display: block; margin-bottom: 1rem; text-decoration: none; }
.footer__logo img, .footer__logo .brand-name { display: block; width: 130px; height: 32.5px; object-fit: contain; }
.footer__logo .brand-name { font-weight: 700; font-size: 16px; line-height: 32.5px; white-space: nowrap; }
.footer__nav { margin: 1rem 0; }
.footer__menu { display: flex; list-style: none; margin: 0; padding: 0; }
.footer__menu li:not(:first-child) { margin-left: 1rem; }
.footer__menu a { font-weight: 700; text-decoration: none; }
.footer__disc p { margin: 0; }
.footer__disc-line { text-align: center; }
.footer__icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    margin: 1rem 0;
}
.footer__icons a { display: block; margin: .75rem; }
.footer__icons a:not(:last-child) { margin-right: 1rem; }
.footer__icons img { display: block; }
.footer__icon--18plus { display: block; width: 25px; height: 25px; fill: #fff; }
.footer__icon--srij img { width: 60px; }
.footer__copyright { font-weight: 700; margin-top: 1rem; text-align: center; }
@media (max-width: 768px) {
    .footer__menu { flex-wrap: wrap; justify-content: center; }
    .footer__menu li { margin: .25rem !important; }
    .footer__logo img, .footer__logo .brand-name { margin: 0 auto; }
    .footer__copyright, .footer__disc { font-size: 10px; text-align: center; }
    .footer__icons a, .footer__icon--18plus { margin: .25rem !important; }
}

/* ---- cookie bar ---------------------------------------------------------- */
.cookie-bar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 9999;
    background-color: #000;
    color: #fff;
    padding: .5rem;
}
.cookie-bar__inner { display: flex; align-items: center; justify-content: center; }
.cookie-bar__text { font-size: 12px; margin: 0 1rem 0 0; }
.cookie-bar__text a { color: #fff; }
.btn--generic {
    display: inline-block;
    background: #fff;
    color: #000;
    border-radius: 5px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.15;
    padding: .25rem .75rem;
    cursor: pointer;
}
@media (max-width: 768px) {
    .cookie-bar { padding: .25rem .5rem; }
    .cookie-bar__text { font-size: 10px; }
    .btn--generic { font-size: 12px; }
}

/* ---- row ribbons (source: .brand-ribbon.sharp) ---------------------------- */
.ribbon {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    height: 22px;
    padding: .125rem 1.5rem;
    background: #e5ca00;
    color: #000;
    font-size: 12px;
    font-weight: 700;
    line-height: 18px;
    text-transform: uppercase;
    white-space: nowrap;
    border-bottom-right-radius: 10px;
}
.ribbon--sharp { border-radius: 0; }
.ribbon--sharp::after {
    content: "";
    position: absolute;
    right: -13px;
    top: 0;
    border-top: 11px solid #e5ca00;
    border-bottom: 11px solid #e5ca00;
    border-right: 10px solid transparent;
    border-left: 5px solid #e5ca00;
}
@media (max-width: 768px) {
    .ribbon { padding: .125rem .75rem; }
}

/* ---- brand pop-up on load (source: #exit-modal.modal--exit-brands) -------- */
.modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    max-height: 100vh;
    overflow-y: scroll;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.modal::-webkit-scrollbar { display: none; }
.modal.is-active { display: flex; }
.modal__bg { position: fixed; inset: 0; background-color: rgba(0, 0, 0, .8); }
.modal__body {
    position: relative;
    z-index: 1;
    width: 850px;
    max-width: 100%;
    max-height: 100vh;
}
.modal__close {
    position: absolute;
    right: 0;
    top: -.5rem;
    z-index: 3;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    padding: .25rem;
    background: #fff;
    border-radius: 50%;
    fill: #000;
    cursor: pointer;
}
.modal__title {
    margin: 0 0 1rem;
    padding: 0 2.5rem;
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}
.modal__box { display: flex; }
.modal__box--2 { justify-content: center; }
.mbrand {
    position: relative;
    overflow: hidden;
    background-color: #000;
    border: 3px solid #fff;
    border-radius: 10px;
    box-shadow: 0 0 8px 5px rgba(0, 0, 0, .5);
}
/* the first brand is the featured one: centred, larger, green frame */
.mbrand:first-child { order: 2; z-index: 2; width: 40%; border-color: #238c07; transform: scale(1.05); }
.mbrand:nth-child(2) { order: 1; width: 30%; border-right: none; }
.mbrand:nth-child(3) { order: 3; width: 30%; border-left: none; }
.mbrand__top {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 107px;
    padding: 1rem;
    background-color: #fff;
}
.mbrand__logo { display: block; max-width: 100%; max-height: 75px; margin: 0 auto; }
.mbrand__bottom { padding: 1rem; text-align: center; }
.mbrand__stars { display: flex; justify-content: center; }
.mbrand__star { display: block; padding: 0 2px; }
.mbrand__star svg { display: block; width: 15px; height: 15px; fill: gold; pointer-events: none; }
.mbrand__offer { margin: .5rem 0; color: #fff; font-weight: 700; }
.mbrand:first-child .mbrand__offer { font-size: 1.25rem; }
.mbrand__cta .btn { margin: 0 auto; }
.mbrand__tcs { margin-top: .5rem; color: #afafaf; font-size: 9px; line-height: 1.25; text-align: center; }

@media (max-width: 768px) {
    .modal__body { width: 500px; margin: 0 auto; }
    .modal__close { right: .5rem; top: 14px; width: 1.25rem; height: 1.25rem; }
    .modal__title { margin: 1rem 0; padding: 0 2.5rem 0 .5rem; font-size: 1.25rem; text-align: left; }
    .modal__box { flex-direction: column; align-items: center; width: 100%; max-width: 768px; padding: 0; }
    /* stacked: every card full width in source order (overrides the desktop :first-child/:nth-child widths and order) */
    .modal__box .mbrand:first-child, .modal__box .mbrand:nth-child(2), .modal__box .mbrand:nth-child(3) { width: 100%; order: 0; }
    .mbrand:first-child {
        z-index: 9998;
        transform: none;
        box-shadow: 0 87px 24px 0 transparent, 0 56px 22px 0 rgba(0, 0, 0, .04), 0 31px 19px 0 rgba(0, 0, 0, .13), 0 14px 14px 0 rgba(0, 0, 0, .23), 0 3px 8px 0 rgba(0, 0, 0, .26);
    }
    .mbrand:nth-child(2) { margin: 0 .5rem; border-right: 3px solid #fff; transform: scale(.93) translateY(-17px); }
    .mbrand:nth-child(3) { display: none; }
    .mbrand__top { height: 87px; }
    .mbrand__logo { max-height: 55px; }
    .mbrand:first-child .mbrand__offer { font-size: 1rem; }
    .mbrand__cta .btn { font-size: 1rem; padding: .5rem; }
}
