:root {
    --navy: #081a36;
    --navy-2: #081a36;
    --blue: #1654a5;
    --red: #e2182b;
    --red-dark: #bd0d20;
    --ink: #15233a;
    --muted: #657186;
    --line: #dce2ea;
    --soft: #f3f5f8;
    --white: #fff;
    --success: #17734b;
    --error: #b51b2b;
    --shadow: 0 20px 60px rgba(8, 26, 54, .13);
    --radius: 6px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

body.nav-open,
body.admin-nav-open {
    overflow: hidden;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: inherit;
    text-decoration-thickness: .09em;
    text-underline-offset: .16em;
}

img {
    display: block;
    max-width: 100%;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3 {
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.04;
}

h1 {
    font-size: clamp(2.75rem, 6vw, 5.75rem);
}

h2 {
    font-size: clamp(2rem, 3.5vw, 3.6rem);
}

h3 {
    font-size: 1.35rem;
}

.container {
    width: min(100% - 2.5rem, 78rem);
    margin-inline: auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

#main-content {
    overflow: visible;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: .75rem;
    left: .75rem;
    padding: .75rem 1rem;
    color: var(--white);
    background: var(--navy);
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

:focus-visible {
    outline: 3px solid #f4bf1a;
    outline-offset: 3px;
}

.eyebrow,
.admin-eyebrow {
    margin-bottom: .75rem;
    color: var(--blue);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.eyebrow--red {
    color: var(--red);
}

.eyebrow--light {
    color: #bed4ff;
}

.button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .78rem 1.35rem;
    border: 2px solid transparent;
    border-radius: 3px;
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button:disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
}

.button:disabled:hover {
    transform: none;
}

.button--red {
    color: var(--white);
    background: var(--red);
}

.button--red:hover {
    background: var(--red-dark);
}

.button--navy {
    color: var(--white);
    background: var(--navy);
}

.button--blue {
    color: var(--white);
    background: var(--blue);
}

.button--blue:hover {
    background: var(--navy-2);
}

.button--publish-idle,
.button--publish-idle:hover {
    color: #fff;
    background: #9aa3ad;
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
}

.button--white {
    color: var(--navy);
    background: var(--white);
}

.button--ghost,
.button--ghost-light {
    border-color: var(--line);
    background: transparent;
}

.button--ghost-light {
    color: var(--white);
    border-color: rgba(255, 255, 255, .45);
}

.button--large {
    min-height: 3.65rem;
    padding-inline: 2rem;
}

.button--small {
    min-height: 2.55rem;
    padding: .55rem .9rem;
    font-size: .76rem;
}

.button--block {
    width: 100%;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.text-link,
.back-link {
    color: var(--red);
    font-weight: 800;
    text-decoration: none;
}

.text-link:hover,
.back-link:hover {
    text-decoration: underline;
}

.site-header {
    position: relative;
    z-index: 50;
    border-bottom: 1px solid var(--line);
    background: rgba(255, 255, 255, .97);
}

.header-inner {
    display: flex;
    min-height: 5.75rem;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: var(--navy);
    text-decoration: none;
}

.brand-mark {
    display: block;
    width: 4.7rem;
    height: 4.7rem;
    flex: 0 0 auto;
    object-fit: contain;
    border-radius: 50%;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.brand-copy strong {
    font-size: 1.45rem;
    letter-spacing: -.06em;
}

.brand-copy small {
    margin-top: .25rem;
    color: var(--muted);
    font-size: .63rem;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.site-header .brand-copy strong {
    color: var(--red);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.2rem, 1.7vw, 1.7rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.05;
}

.site-header .brand-copy small {
    margin-top: 0;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 1.5vw, 1.5rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.1;
    text-transform: none;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: .2rem;
}

.site-nav > a,
.site-nav > .nav-dropdown {
    position: relative;
}

.site-nav > a:not(.nav-cta):not(:first-child)::before,
.site-nav > .nav-dropdown:not(:first-child)::before {
    display: none;
}

.site-nav a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: .45rem .7rem;
    color: var(--navy);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
    border-radius: .3rem;
    transition: background-color .15s ease, color .15s ease;
}

.site-nav a:not(.nav-cta)::after {
    position: absolute;
    right: .7rem;
    bottom: .2rem;
    left: .7rem;
    height: 2px;
    background: var(--red);
    content: "";
    transform: scaleX(0);
    transition: transform .18s ease;
}

.site-nav a:not(.nav-cta):hover,
.site-nav a:not(.nav-cta):focus-visible {
    background: transparent;
}

.site-nav a:not(.nav-cta):hover::after,
.site-nav a:not(.nav-cta)[aria-current="page"]::after {
    transform: scaleX(1);
}

.site-nav a[aria-current="page"]:not(.nav-cta) {
    background: transparent;
}

.site-nav .nav-cta {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-left: .55rem;
    padding: .55rem .95rem;
    color: var(--white);
    background: var(--red);
    border-radius: .4rem;
}

.site-nav .nav-cta::before {
    display: none;
}

.site-nav .nav-cta:hover,
.site-nav .nav-cta:focus-visible {
    background: #c41224;
    color: var(--white);
}

.site-nav .language-link {
    color: var(--navy);
}

.site-nav .nav-logout {
    display: inline-flex;
    margin: 0;
    margin-left: .35rem;
}

.site-nav .nav-logout .nav-cta {
    margin-left: 0;
    border: 0;
    cursor: pointer;
    font: inherit;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.site-nav > .nav-logout:not(:first-child)::before {
    display: none;
}

.nav-code-tab {
    overflow: hidden;
}

.nav-code-tab__shine {
    position: absolute;
    z-index: 1;
    inset: -40% -50%;
    pointer-events: none;
    background: linear-gradient(
        110deg,
        transparent 32%,
        rgba(255, 255, 255, .2) 42%,
        rgba(255, 255, 255, .95) 50%,
        rgba(255, 214, 90, .7) 54%,
        rgba(255, 255, 255, .2) 62%,
        transparent 72%
    );
    opacity: 0;
    transform: translateX(-85%);
}

.nav-code-tab--shine {
    animation: nav-code-shine-glow 1.4s ease-out 1;
}

.nav-code-tab--shine .nav-code-tab__shine {
    animation: nav-code-shine-sweep 1.15s ease-out .12s 1;
}

.nav-toggle--shine {
    animation: nav-toggle-shine 1.4s ease-out 1;
}

@keyframes nav-code-shine-sweep {
    0% {
        opacity: 0;
        transform: translateX(-85%);
    }

    18% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translateX(85%);
    }
}

@keyframes nav-code-shine-glow {
    0%,
    100% {
        background: transparent;
        box-shadow: none;
    }

    32% {
        color: var(--red);
        background: rgba(226, 24, 43, .1);
        box-shadow: 0 0 0 1px rgba(226, 24, 43, .35), 0 0 18px rgba(226, 24, 43, .4);
    }
}

@keyframes nav-toggle-shine {
    0%,
    100% {
        background: transparent;
        box-shadow: none;
    }

    35% {
        background: #fff;
        box-shadow: 0 0 0 2px rgba(226, 24, 43, .45), 0 0 16px rgba(226, 24, 43, .5);
    }
}

.nav-toggle {
    position: relative;
    display: none;
    width: 2.75rem;
    height: 2.75rem;
    border: 0;
    border-radius: .7rem;
    background: transparent;
}

.nav-toggle span:not(.sr-only),
.nav-toggle::before,
.nav-toggle::after {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 1.2rem;
    height: 2px;
    background: var(--navy);
    content: "";
    transform: translate(-50%, -50%);
    transition: transform .2s ease, opacity .15s ease, top .2s ease;
}

.nav-toggle::before {
    top: calc(50% - .38rem);
}

.nav-toggle::after {
    top: calc(50% + .38rem);
}

.nav-open .nav-toggle::before {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
}

.nav-open .nav-toggle span:not(.sr-only) {
    opacity: 0;
}

.nav-open .nav-toggle::after {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
}

.flash-stack {
    position: fixed;
    z-index: 1000;
    top: 1rem;
    right: 1rem;
    display: grid;
    width: min(calc(100% - 2rem), 29rem);
    gap: .65rem;
    padding: 0;
    pointer-events: none;
}

.flash {
    position: relative;
    display: flex;
    align-items: center;
    gap: .85rem;
    min-height: 4.25rem;
    padding: 1rem 3rem 1rem 1rem;
    border: 1px solid #b9cbe5;
    border-left: .4rem solid var(--blue);
    border-radius: .7rem;
    color: var(--navy);
    background: #eaf1fc;
    box-shadow: 0 18px 45px rgba(8, 26, 54, .2);
    pointer-events: auto;
    animation: toast-in .24s ease-out both;
}

.flash + .flash {
    margin-top: 0;
}

.flash p {
    margin: 0;
    font-size: .92rem;
    font-weight: 750;
    line-height: 1.4;
}

.flash__icon {
    display: grid;
    width: 1.7rem;
    height: 1.7rem;
    flex: 0 0 1.7rem;
    border-radius: 50%;
    color: #fff;
    background: var(--blue);
    font-weight: 900;
    place-items: center;
}

.flash__icon::before {
    content: "i";
}

.flash--error {
    border-color: var(--error);
    color: #7a1420;
    background: #fff0f2;
}

.flash--error .flash__icon {
    background: var(--error);
}

.flash--error .flash__icon::before {
    content: "!";
}

.flash--success {
    border-color: var(--success);
    color: #0e5a39;
    background: #e9f8f0;
}

.flash--success .flash__icon {
    background: var(--success);
}

.flash--success .flash__icon::before {
    content: "✓";
}

.flash--warning {
    border-color: #c78b00;
    color: #6c4b00;
    background: #fff7dc;
}

.flash--warning .flash__icon {
    background: #c78b00;
}

.flash-close {
    position: absolute;
    top: .65rem;
    right: .65rem;
    display: grid;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: currentColor;
    background: transparent;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    place-items: center;
}

.flash-close:hover,
.flash-close:focus-visible {
    background: rgba(8, 26, 54, .09);
    outline: none;
}

.flash--leaving {
    opacity: 0;
    transform: translateX(1rem);
    transition: opacity .18s ease, transform .18s ease;
}

@keyframes toast-in {
    from {
        opacity: 0;
        transform: translateY(-.6rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 7vw, 7rem) 0 0;
    background:
        radial-gradient(circle at 78% 18%, rgba(22, 84, 165, .12), transparent 25rem),
        linear-gradient(180deg, #fff, #f6f8fb);
}

.hero::before {
    position: absolute;
    top: -5rem;
    left: 53%;
    width: 1px;
    height: 40rem;
    background: var(--line);
    content: "";
    transform: rotate(18deg);
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(22rem, .95fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 7rem);
}

.hero-copy {
    position: relative;
    z-index: 2;
    padding-bottom: 5rem;
}

.hero-copy h1 {
    max-width: 11ch;
    margin-bottom: 1.5rem;
}

.hero-lead {
    max-width: 42rem;
    color: #42516a;
    font-size: clamp(1.08rem, 2vw, 1.35rem);
}

.hero-steps {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.4rem;
    padding: 0;
    margin: 2.25rem 0 0;
    list-style: none;
}

.hero-steps li {
    display: flex;
    align-items: center;
    gap: .55rem;
    color: var(--navy);
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.hero-steps span {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    border-radius: 50%;
    color: var(--white);
    background: var(--red);
}

.hero-visual {
    position: relative;
    min-height: 30rem;
}

.mailbox {
    position: absolute;
    z-index: 2;
    right: 2rem;
    bottom: 3.4rem;
    width: min(26rem, 90%);
    height: 17rem;
    border-radius: 9rem 9rem 1rem 1rem;
    background: linear-gradient(145deg, #172d4d, #020a17 65%);
    box-shadow: 0 30px 45px rgba(8, 26, 54, .3);
}

.mailbox::before {
    position: absolute;
    right: 4.5rem;
    bottom: -8rem;
    width: 2.5rem;
    height: 8rem;
    background: var(--navy);
    content: "";
}

.mailbox::after {
    position: absolute;
    right: -1.2rem;
    bottom: -.65rem;
    left: -1.2rem;
    height: 1rem;
    border-radius: 2rem;
    background: #031126;
    content: "";
}

.mailbox-flag {
    position: absolute;
    z-index: 5;
    top: -4rem;
    left: 2rem;
    width: .8rem;
    height: 8rem;
    border-radius: .3rem;
    background: var(--red);
}

.mailbox-flag::after {
    position: absolute;
    top: 0;
    left: 0;
    width: 4rem;
    height: 2.8rem;
    background: var(--red);
    content: "";
}

.guide {
    position: absolute;
    top: 2.4rem;
    left: 7rem;
    display: flex;
    width: 12rem;
    height: 16rem;
    flex-direction: column;
    padding: 1.5rem;
    color: var(--navy);
    background:
        linear-gradient(150deg, transparent 55%, rgba(226, 24, 43, .12) 55%),
        var(--white);
    box-shadow: 0 16px 30px rgba(0, 0, 0, .3);
    transform: rotate(-7deg);
}

.guide span {
    color: var(--red);
    font-family: Georgia, serif;
    font-style: italic;
}

.guide strong {
    margin: .2rem 0 auto;
    font-size: 3.4rem;
    letter-spacing: -.1em;
    line-height: .9;
}

.guide small {
    border-top: 3px solid var(--red);
    padding-top: .5rem;
    font-weight: 800;
    text-transform: uppercase;
}

.route-line {
    position: absolute;
    right: -10rem;
    bottom: 2.6rem;
    width: 40rem;
    height: 11rem;
    border: 3px dashed rgba(226, 24, 43, .55);
    border-color: rgba(226, 24, 43, .55) transparent transparent;
    border-radius: 50%;
    transform: rotate(-8deg);
}

.contest-card {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
    padding: clamp(2rem, 4vw, 3.5rem);
    color: var(--white);
    background: var(--navy);
    box-shadow: var(--shadow);
    transform: translateY(2.5rem);
}

.contest-card h2 {
    margin-bottom: 1rem;
    color: var(--white);
}

.contest-card p {
    margin-bottom: 0;
    color: #cbd7e8;
}

.contest-card label,
.newsletter-form > label:first-of-type {
    display: block;
    margin-bottom: .5rem;
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.code-input-group,
.inline-form {
    display: flex;
}

.code-input-group input,
.inline-form input {
    min-width: 0;
    min-height: 3.55rem;
    flex: 1;
    border: 2px solid var(--white);
    border-radius: 0;
    padding: .7rem 1rem;
    color: var(--navy);
    background: var(--white);
    font-size: 1rem;
    font-weight: 700;
}

.code-input-group .button,
.inline-form .button {
    min-height: 3.55rem;
    flex: 0 0 auto;
}

.field-hint {
    margin: .45rem 0 0 !important;
    color: #aebcd1 !important;
    font-size: .82rem;
}

.honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.home-hero {
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 12%, rgba(226, 24, 43, .08), transparent 28%),
        linear-gradient(180deg, #eef3f9 0%, #f7f9fc 52%, #fff 100%);
}

.home-hero .container,
.home-rewards .container {
    width: min(calc(100% - 2.5rem), 86rem);
}

.home-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    gap: clamp(1rem, 2.4vw, 1.7rem) clamp(1.15rem, 2.8vw, 2rem);
    min-height: 0;
    padding-block: clamp(1.75rem, 4.2vw, 3.15rem) clamp(1.25rem, 2.8vw, 1.85rem);
}

.home-hero__copy {
    display: flex;
    grid-column: 1;
    grid-row: 1;
    flex-direction: column;
    min-width: 0;
    padding: 0 0 .35rem;
}

.home-hero__copy h1 {
    max-width: 18ch;
    margin-bottom: .85rem;
    color: var(--navy);
    font-size: clamp(2.45rem, 4.8vw, 4.15rem);
    line-height: 1.02;
}

.home-hero__hook {
    margin: 0;
    color: var(--navy);
    font-size: clamp(1.05rem, 1.45vw, 1.22rem);
    font-weight: 500;
    line-height: 1.45;
}

.home-hero__hook a {
    margin-left: .35em;
    color: var(--blue);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: .16em;
}

.home-hero__hook a:hover,
.home-hero__hook a:focus-visible {
    color: var(--navy);
}

.home-hero__photo {
    display: flex;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(8, 26, 54, .12);
}

.home-hero__photo--one {
    grid-column: 1;
    grid-row: 2;
}

.home-hero__photo--two {
    grid-column: 2;
    grid-row: 1 / 3;
    min-height: 0;
    height: 100%;
    align-self: stretch;
}

.home-hero__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.home-hero__photo--one img {
    height: auto;
    aspect-ratio: 16 / 10;
}

.home-themes {
    position: relative;
    padding: 0 0 clamp(5rem, 9vw, 8rem);
    background: var(--white);
}

.home-action-grid {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: .82fr 1.25fr .88fr;
    align-items: stretch;
    margin-bottom: clamp(4rem, 7vw, 6rem);
    background: var(--white);
    box-shadow: 0 18px 45px rgba(8, 26, 54, .14);
    transform: translateY(-2.5rem);
}

.home-theme-prompt,
.home-code-panel,
.home-rabais {
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.home-theme-prompt {
    color: var(--white);
    background:
        linear-gradient(145deg, rgba(22, 84, 165, .3), transparent 60%),
        var(--navy);
}

.home-theme-prompt h2 {
    margin-bottom: 1rem;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.home-theme-prompt p:not(.eyebrow) {
    color: #cbd7e8;
}

.home-theme-prompt > a {
    color: var(--white);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.home-code-panel {
    display: flex;
    justify-content: center;
    flex-direction: column;
    border-block: 1px solid var(--line);
    background: var(--white);
}

.home-code-panel h2 {
    margin-bottom: .65rem;
    font-size: clamp(1.9rem, 3vw, 3.2rem);
}

.home-code-panel > p:not(.eyebrow) {
    margin-bottom: 1.5rem;
    color: var(--muted);
}

.home-code-panel form > label {
    display: block;
    margin-bottom: .45rem;
    color: var(--navy);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.home-code-panel .code-input-group input {
    border-color: #aab5c5;
    background: #f8fafc;
}

.home-code-panel .field-hint {
    color: var(--muted) !important;
}

.home-rabais {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    background: #f3f5f8;
}

.home-rabais__mark {
    display: flex;
    width: 8.5rem;
    height: 8.5rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin-bottom: 1.25rem;
    border: .45rem solid var(--white);
    border-radius: 50%;
    color: var(--white);
    background: var(--red);
    box-shadow: 0 0 0 .25rem var(--red), 0 10px 25px rgba(226, 24, 43, .22);
    line-height: .85;
    transform: rotate(-4deg);
}

.home-rabais__mark small {
    font-size: .65rem;
    font-weight: 900;
}

.home-rabais__mark strong {
    font-size: 2.4rem;
    font-style: italic;
    letter-spacing: -.1em;
}

.home-rabais__mark span {
    padding: .25rem .45rem;
    color: var(--navy);
    background: #f4d400;
    font-size: .75rem;
    font-weight: 950;
    transform: skew(-7deg);
}

.home-rabais h2 {
    margin-bottom: .5rem;
    font-size: clamp(1.6rem, 2.5vw, 2.5rem);
}

.home-rabais p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
}

.home-theme-heading {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 3rem;
    margin-bottom: 2rem;
}

.home-theme-heading h2 {
    margin-bottom: 0;
}

.home-theme-heading > p {
    max-width: 34rem;
    margin: 0;
    justify-self: end;
    color: var(--muted);
    font-size: 1.05rem;
}

.theme-grid--home {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.theme-grid--home .theme-card__body {
    display: none;
}

.theme-grid--home .theme-card {
    border: 0;
}

.section {
    padding: clamp(5rem, 9vw, 8rem) 0;
}

.section--muted {
    background: var(--soft);
}

.section--band {
    margin: 0;
    padding: clamp(3.25rem, 7vw, 5.5rem) 0;
    background:
        linear-gradient(180deg, rgba(196, 86, 96, .16) 0%, rgba(196, 86, 96, .06) 26%, rgba(196, 86, 96, 0) 58%),
        radial-gradient(92rem 28rem at 50% -14%, rgba(180, 78, 90, .18), transparent 74%),
        linear-gradient(180deg, #e7edf5 0%, #d2dce8 100%);
    box-shadow:
        0 -18px 40px rgba(8, 26, 54, .05),
        0 18px 40px rgba(8, 26, 54, .06);
}

.themes-showcase {
    padding-top: 8rem;
}

.section-heading {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 3rem;
    margin-bottom: 3rem;
}

.section-heading h2 {
    max-width: 12ch;
    margin-bottom: 0;
}

.section-heading > div:last-child {
    max-width: 35rem;
    justify-self: end;
}

.theme-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.theme-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    border: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 8px 24px rgba(8, 26, 54, .06);
    transition: box-shadow .22s ease, transform .22s ease;
}

.theme-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-6px);
}

.theme-card--followed {
    border-color: var(--blue);
}

.theme-card > a {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    text-decoration: none;
}

.theme-cover {
    position: relative;
    display: flex;
    aspect-ratio: 612 / 378;
    flex-direction: column;
    overflow: hidden;
    padding: 1.2rem;
    color: var(--white);
    background: var(--blue);
    isolation: isolate;
}

.theme-cover::before,
.theme-cover::after {
    position: absolute;
    z-index: 1;
    border-radius: 50%;
    content: "";
}

.theme-cover::before {
    right: -35%;
    bottom: -10%;
    width: 100%;
    aspect-ratio: 1;
    border: 2rem solid rgba(255, 255, 255, .12);
}

.theme-cover::after {
    top: 30%;
    left: -25%;
    width: 65%;
    aspect-ratio: 1;
    background: rgba(8, 26, 54, .2);
}

.theme-cover__top {
    font-family: Georgia, serif;
    font-size: .85rem;
    font-style: italic;
}

.theme-cover > strong {
    max-width: 90%;
    margin: auto 0 .7rem;
    font-family: "Arial Narrow", Impact, sans-serif;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
    letter-spacing: -.04em;
    line-height: .95;
    text-transform: uppercase;
}

.theme-cover__line {
    width: 3.2rem;
    height: .3rem;
    margin-bottom: .65rem;
    background: var(--white);
}

.theme-cover small {
    max-width: 80%;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.theme-cover__number {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 50%;
    font-size: .65rem;
    font-weight: 800;
}

.theme-cover__color,
.theme-cover__image {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.theme-cover__color {
    display: block;
    pointer-events: none;
}

.theme-cover--image::before,
.theme-cover--image::after {
    display: none;
}

.theme-cover > :not(.theme-cover__color, .theme-cover__image) {
    z-index: 2;
}

.theme-card--animaux .theme-cover,
.theme-choice--animaux {
    background-color: #688b39;
}

.theme-card--bouffe-livree .theme-cover,
.theme-choice--bouffe-livree {
    background-color: #c62828;
}

.theme-card--beaute .theme-cover,
.theme-choice--beaute {
    background-color: #c94b7c;
}

.theme-card--residences-aines .theme-cover,
.theme-choice--residences-aines {
    background-color: #798647;
}

.theme-card--lecture .theme-cover,
.theme-choice--lecture {
    background-color: #486e37;
}

.theme-card--croisieres .theme-cover,
.theme-choice--croisieres {
    background-color: #147f99;
}

.theme-card--automobile .theme-cover,
.theme-choice--automobile {
    background-color: #921c26;
}

.theme-card--monde-agricole .theme-cover,
.theme-choice--monde-agricole {
    background-color: #5d862c;
}

.theme-card--renovation .theme-cover,
.theme-choice--renovation {
    background-color: #667d25;
}

.theme-card--sports-loisirs .theme-cover,
.theme-choice--sports-loisirs {
    background-color: #008b87;
}

.theme-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1.3rem;
}

.theme-card__body h3 {
    margin-bottom: .5rem;
}

.theme-card__body p {
    min-height: 3rem;
    margin-bottom: 1rem;
    color: var(--muted);
    font-size: .9rem;
}

.theme-card__body .text-link {
    font-size: .78rem;
    text-transform: uppercase;
}

.theme-card__actions,
.theme-follow-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .45rem;
}

.theme-card__actions {
    padding: 0 1.3rem 1.15rem;
}

.theme-card__actions .button,
.theme-follow-form .button {
    width: 100%;
}

.theme-card__follow-hint,
.theme-follow-hint {
    margin: 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.35;
}

.theme-follow-form {
    max-width: 18rem;
    margin-top: 1.1rem;
}

.theme-follow-form .button {
    width: auto;
}

.page-hero .theme-follow-form {
    margin-top: .85rem;
}

.page-hero .theme-follow-form .button {
    margin-top: 0;
    width: auto;
}

.theme-follow-form .theme-follow-hint {
    font-size: .9rem;
}

.themes-signin {
    max-width: 42rem;
    margin: .7rem 0 0;
}

.themes-follow-note {
    margin: 0 0 1.25rem;
    color: var(--muted);
}

.theme-grid + .themes-follow-note {
    margin-top: 1.25rem;
}

.themes-manage .section-heading {
    display: block;
    margin-bottom: 1.5rem;
}

.themes-manage .section-heading h2 {
    max-width: none;
}

.themes-manage [data-followed-block]:not([hidden]) ~ [data-other-block] [data-other-heading] {
    margin-top: 2.5rem;
}

.advertiser-band {
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 8vw, 7rem) 0;
    color: var(--white);
    background: var(--blue);
}

.advertiser-band::after {
    position: absolute;
    top: -12rem;
    right: -8rem;
    width: 30rem;
    height: 30rem;
    border: 5rem solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
}

.advertiser-band__grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: center;
    gap: 6rem;
}

.advertiser-band h2 {
    max-width: 13ch;
    color: var(--white);
}

.advertiser-band p:not(.eyebrow) {
    max-width: 40rem;
    color: #dce8ff;
    font-size: 1.1rem;
}

.ad-shape {
    position: relative;
    min-height: 25rem;
}

.ad-shape__page {
    position: absolute;
    top: 1rem;
    left: 4rem;
    display: flex;
    width: 17rem;
    height: 22rem;
    flex-direction: column;
    padding: 2rem;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 25px 50px rgba(0, 0, 0, .22);
    transform: rotate(5deg);
}

.ad-shape__page--back {
    top: 3rem;
    left: 1rem;
    background: var(--red);
    transform: rotate(-8deg);
}

.ad-shape__page small {
    color: var(--red);
    font-family: Georgia, serif;
    font-style: italic;
}

.ad-shape__page strong {
    margin: auto 0;
    font-size: 2.4rem;
    line-height: .95;
    text-transform: uppercase;
}

.ad-shape__page i {
    height: 4rem;
    background: var(--soft);
}

.newsletter-section {
    padding: 4rem 0;
    color: var(--white);
    background: var(--navy);
}

.newsletter-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: center;
    gap: 5rem;
}

.newsletter-grid h2 {
    margin-bottom: .75rem;
    color: var(--white);
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.newsletter-grid p {
    margin-bottom: 0;
    color: #bac8dc;
}

.newsletter-form .inline-form {
    margin-bottom: .8rem;
}

.check-field {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    cursor: pointer;
}

.check-field input {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    margin-top: .15rem;
    accent-color: var(--red);
}

.check-field span {
    font-size: .9rem;
    line-height: 1.45;
}

.check-field--light span {
    color: #cbd7e8;
}

.site-footer {
    padding: 4rem 0 1.5rem;
    color: #aebbd0;
    background: #081a36;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr);
    gap: 3rem;
}

.brand--footer {
    color: var(--white);
}

.brand--footer .brand-copy small {
    color: #8fa1bd;
}

.footer-grid h2 {
    margin-bottom: 1rem;
    color: var(--white);
    font-family: inherit;
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.footer-grid > div > a:not(.brand) {
    display: block;
    width: fit-content;
    margin-bottom: .5rem;
    color: #aebbd0;
    font-size: .9rem;
    text-decoration: none;
}

.footer-grid > div > a:hover {
    color: var(--white);
    text-decoration: underline;
}

.footer-bottom {
    padding-top: 2.5rem;
    margin-top: 3rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
    font-size: .8rem;
}

.footer-bottom p {
    margin: 0;
}

.page-hero,
.editorial-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    background:
        radial-gradient(circle at 78% 25%, rgba(22, 84, 165, .16), transparent 24rem),
        var(--soft);
}

.page-hero::after,
.editorial-hero::after {
    position: absolute;
    right: -5rem;
    bottom: -10rem;
    width: 28rem;
    height: 28rem;
    border: 4rem solid rgba(226, 24, 43, .08);
    border-radius: 50%;
    content: "";
}

.page-hero__inner,
.editorial-hero__inner {
    position: relative;
    z-index: 2;
}

.page-hero__inner--offers,
.page-hero__inner--with-points {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.25rem 2rem;
    align-items: center;
}

.page-hero__inner--with-points {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
}

.page-hero__inner--with-points .member-home__points-slot {
    width: 100%;
    padding: 0;
    align-self: center;
}

.page-hero .back-link {
    display: inline-block;
    margin-bottom: .65rem;
}

.page-hero .button {
    margin-top: 1rem;
}

.page-hero .theme-inform-sooner {
    max-width: 100%;
    white-space: normal;
}

.page-hero .advertiser-offer-header__actions .button,
.page-hero__inner.advertiser-offer-header > .button {
    margin-top: 0;
}

.page-hero__inner h1,
.editorial-hero__inner h1 {
    max-width: 22ch;
    margin-bottom: .75rem;
    font-size: clamp(2.1rem, 4vw, 3.25rem);
}

.editorial-hero--legal .editorial-hero__inner h1 {
    max-width: 22ch;
}

.page-hero__inner p:not(.eyebrow),
.editorial-hero__inner > p:last-child {
    max-width: 48rem;
    margin-bottom: .55rem;
    color: #526077;
    font-size: 1.05rem;
}

.page-hero__inner p:not(.eyebrow):last-of-type {
    margin-bottom: 0;
}

.page-hero--themes .themes-intro {
    max-width: 48rem;
    margin-bottom: .55rem;
    color: #526077;
    font-size: 1.05rem;
    line-height: 1.55;
}

.page-hero--themes .themes-prompt {
    max-width: 42rem;
    margin-bottom: 0;
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.5;
}

.theme-merchants__intro h2 {
    margin-bottom: .75rem;
}

.theme-merchants__intro p {
    max-width: 40rem;
    color: #526077;
}

.theme-radius-filter {
    margin: 1.75rem 0 1.25rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--line);
    background: #f7f9fc;
}

.theme-radius-filter__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
}

.theme-radius-filter__copy {
    flex: 1 1 18rem;
    margin: 0;
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 650;
    line-height: 1.55;
}

.theme-radius-filter__controls {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .65rem;
}

.theme-radius-filter input[type="text"] {
    width: 7.5rem;
    min-height: 2.7rem;
    padding: .55rem .7rem;
    border: 1px solid var(--line);
    background: #fff;
    font: inherit;
    text-transform: uppercase;
}

.theme-radius-filter select {
    min-width: 5rem;
    min-height: 2.7rem;
    padding: .55rem .65rem;
    border: 1px solid var(--line);
    background: #fff;
    font: inherit;
}

.theme-radius-filter .form-note {
    margin: .85rem 0 0;
    color: var(--muted);
    font-size: .92rem;
}

.club-game-shell {
    min-height: calc(100vh - 6rem);
    background: #1a120c;
}

.club-game-shell__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.25rem;
    padding-bottom: 1rem;
    color: #fff6df;
}

.club-game-shell__bar .back-link {
    color: #fff;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1.2;
}

.club-game-shell__bar .back-link:hover {
    color: #fff;
    text-decoration: underline;
}

.club-game-shell__bar .eyebrow {
    color: #f4bf1a;
}

.club-game-shell__reward {
    margin: .25rem 0 0;
    color: #d8c7a8;
    font-size: .95rem;
}

.club-game-reward {
    margin-bottom: .75rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(244, 191, 26, .45);
    border-radius: .45rem;
    color: #1a120c;
    background: #f4bf1a;
    font-weight: 750;
}

.club-game-reward--loss {
    color: #fff;
    background: #9f1239;
    border-color: #9f1239;
}

.club-game-root {
    display: block;
    width: 100%;
    min-height: min(78vh, 820px);
    border: 0;
    background: #1a120c;
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
}

.club-game-root--wheel {
    background: #07060c;
    overflow: auto;
    touch-action: manipulation;
}

html.game-play,
body.game-play {
    height: 100%;
    height: 100dvh;
    overflow: hidden;
    background: #1a120c;
    overscroll-behavior: none;
    touch-action: manipulation;
}

body.game-play .site-header,
body.game-play .newsletter-section,
body.game-play .site-footer {
    display: none;
}

body.game-play #main-content {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

body.game-play .club-game-shell {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
}

body.game-play .club-game-shell__bar {
    flex: 0 0 auto;
    gap: .5rem .75rem;
    padding-top: max(.45rem, env(safe-area-inset-top));
    padding-bottom: .45rem;
}

body.game-play .club-game-shell__reward {
    font-size: .82rem;
}

body.game-play .club-game-reward {
    flex: 0 0 auto;
    margin-bottom: .45rem;
}

body.game-play #club-game-root {
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: 0;
    border: 0;
}

body.game-play #club-game-root.club-game-root--wheel {
    overflow: auto;
    touch-action: manipulation;
    display: flex;
    flex-direction: column;
}

body.game-play #club-game-root.club-game-root--river {
    background: #0b1220;
    overflow: hidden;
    touch-action: manipulation;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

@media (max-width: 760px) {
    body.game-play .club-game-shell__bar {
        align-items: flex-start;
        padding-left: max(1rem, env(safe-area-inset-left));
        padding-right: max(1rem, env(safe-area-inset-right));
    }

    body.game-play .club-game-shell__bar .back-link {
        font-size: 1.5rem;
    }

    body.game-play .club-game-shell__bar .eyebrow {
        font-size: .92rem;
    }
}

.theme-merchants__list-intro {
    margin: 1.5rem 0 .35rem;
    color: var(--navy);
    font-size: 1.08rem;
    font-weight: 750;
}

.theme-merchants__list-note {
    margin: 0 0 1rem;
    color: #526077;
    font-size: .95rem;
}

.advertiser-list--radius li {
    display: grid;
    gap: .35rem;
}

.advertiser-list--radius .advertiser-name {
    font-weight: 600;
    text-decoration: none;
}

.advertiser-list--radius a.advertiser-name {
    color: #5f697a;
}

.advertiser-list--radius .advertiser-name--offer,
.advertiser-list--radius a.advertiser-name--offer {
    color: var(--navy);
    font-weight: 850;
}

.advertiser-list--radius a.advertiser-name:hover,
.advertiser-list--radius a.advertiser-name:focus-visible {
    text-decoration: underline;
}

.advertiser-offer-badge {
    color: var(--red);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: lowercase;
}

.editorial-hero {
    color: inherit;
}

.editorial-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(3rem, 8vw, 8rem);
}

.editorial-grid article {
    position: relative;
    padding-top: 2rem;
    border-top: 4px solid var(--navy);
}

.editorial-grid h2 {
    font-size: 2.2rem;
}

.editorial-grid p {
    color: #526077;
    font-size: 1.08rem;
}

.section-number {
    position: absolute;
    top: -1.2rem;
    right: 0;
    padding-left: 1rem;
    color: var(--red);
    background: var(--white);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.editorial-action {
    margin-top: 3rem;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}

.legal-meta {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: grid;
    gap: .4rem;
    max-width: 40rem;
    color: #526077;
    font-size: .98rem;
}

.legal-meta span {
    display: inline-block;
    min-width: 11rem;
    margin-right: .5rem;
    color: var(--muted);
    font-weight: 700;
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.legal-document__layout {
    display: grid;
    grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.legal-toc {
    position: sticky;
    top: 1.25rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid #d7deea;
    border-radius: 1rem;
    background: #f7f9fc;
}

.legal-toc h2 {
    margin: 0 0 1rem;
    font-size: 1rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.legal-toc ol {
    margin: 0;
    padding-left: 1.15rem;
    display: grid;
    gap: .45rem;
    color: #526077;
    font-size: .92rem;
}

.legal-toc a {
    color: var(--navy);
    text-decoration: none;
}

.legal-toc a:hover,
.legal-toc a:focus-visible {
    color: var(--red);
    text-decoration: underline;
}

.legal-body {
    max-width: 48rem;
}

.legal-article {
    margin-bottom: 2.25rem;
    padding-top: .25rem;
    scroll-margin-top: 1.5rem;
}

.legal-article + .legal-article {
    border-top: 1px solid #e3e9f2;
    padding-top: 2rem;
}

.legal-article h2 {
    margin: 0 0 1rem;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.35;
}

.legal-article__number {
    color: var(--red);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.legal-article p,
.legal-article li {
    color: #3f4d63;
    font-size: 1.02rem;
    line-height: 1.65;
}

.legal-article p {
    margin: 0 0 .85rem;
}

.legal-article__subheading {
    margin: 1.25rem 0 .55rem;
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 800;
}

.legal-article ul {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}

.legal-article li + li {
    margin-top: .35rem;
}

.theme-detail-hero {
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    background: var(--soft);
}

.theme-detail-media {
    display: flex;
    justify-content: center;
    margin: 0 0 2rem;
}

.theme-detail-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    align-items: center;
    gap: clamp(3rem, 8vw, 8rem);
}

.theme-detail-grid h1 {
    margin-top: 1.5rem;
}

.theme-cover--large {
    width: min(100%, 46rem);
    justify-self: center;
    box-shadow: var(--shadow);
    transform: rotate(3deg);
}

.theme-picks {
    margin: 1.15rem 0 1.35rem;
}

.theme-picks h2 {
    margin: 0 0 .85rem;
    font-size: 1.35rem;
}

.theme-picks__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.theme-picks__link {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 2px solid var(--line);
    background: var(--white);
    color: var(--navy);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(8, 26, 54, .06);
}

.theme-picks__link:hover,
.theme-picks__link:focus-visible {
    border-color: var(--blue);
}

.theme-picks__link.is-current,
.theme-picks__link.is-current:hover,
.theme-picks__link.is-current:focus-visible {
    border-color: var(--navy);
}

.theme-picks__link:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

.theme-picks .theme-cover {
    padding: .85rem;
}

.theme-picks .theme-cover > strong {
    font-size: clamp(1rem, 2vw, 1.45rem);
}

.theme-picks__name {
    padding: .7rem .85rem .85rem;
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    overflow-wrap: break-word;
}

.theme-detail-hero--animaux .theme-cover {
    background-color: #688b39;
}

.theme-detail-hero--bouffe-livree .theme-cover {
    background-color: #c62828;
}

.theme-detail-hero--beaute .theme-cover {
    background-color: #c94b7c;
}

.theme-detail-hero--sports-loisirs .theme-cover {
    background-color: #008b87;
}

.split-section {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 6rem;
}

.split-section h2 {
    font-size: 2.6rem;
}

.advertiser-list {
    padding: 0;
    margin: 0;
    border-top: 1px solid var(--line);
    list-style: none;
}

.advertiser-list li {
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line);
}

.advertiser-list a,
.advertiser-name {
    display: flex;
    align-items: center;
    gap: .7rem;
    color: var(--navy);
    font-size: 1.1rem;
    font-weight: 800;
}

.advertiser-name {
    color: #5f697a;
}

.advertiser-list small {
    display: block;
    padding-left: 2rem;
    margin-top: .3rem;
    color: var(--muted);
}

.play-icon {
    display: grid;
    width: 1.4rem;
    height: 1.4rem;
    place-items: center;
    border-radius: 50%;
    color: var(--white);
    background: var(--red);
    font-size: .55rem;
    text-decoration: none;
}

.schedule-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.schedule-cards article {
    padding: 1.5rem;
    border: 1px solid var(--line);
    background: var(--white);
}

.schedule-cards article > span {
    color: var(--red);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.schedule-cards h3 {
    margin: .5rem 0;
}

.schedule-cards time {
    color: var(--muted);
}

.empty-state {
    padding: 1.5rem;
    border: 1px dashed #b8c2d0;
    color: var(--muted);
    background: var(--soft);
}

.empty-state--large {
    padding: 4rem 2rem;
    text-align: center;
}

.table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
}

table {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
}

th,
td {
    padding: 1rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

th {
    color: var(--navy);
    background: var(--soft);
    font-size: .72rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

tbody tr:last-child td {
    border-bottom: 0;
}

.confirmation-page {
    padding: 7rem 0;
    background: var(--soft);
}

.confirmation-card {
    max-width: 46rem;
    padding: clamp(2.5rem, 6vw, 5rem);
    text-align: center;
    background: var(--white);
    box-shadow: var(--shadow);
}

.confirmation-icon {
    display: grid;
    width: 5rem;
    height: 5rem;
    margin: 0 auto 2rem;
    place-items: center;
    border-radius: 50%;
    color: var(--white);
    background: var(--success);
    font-size: 2.5rem;
}

.confirmation-card h1 {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
}

.form-page {
    padding: clamp(1.5rem, 4vw, 2.5rem) 0 clamp(3rem, 6vw, 5.5rem);
    background: var(--soft);
}

.form-page__header {
    max-width: 57rem;
    margin-bottom: 3rem;
    text-align: center;
}

.form-page__header h1 {
    font-size: clamp(2.1rem, 4vw, 3.25rem);
}

.form-page__header > p:last-child {
    color: var(--muted);
    font-size: 1.05rem;
}

.form-shell {
    max-width: 62rem;
    padding: clamp(1.5rem, 4vw, 4rem);
    background: var(--white);
    box-shadow: var(--shadow);
}

.form-shell--wide {
    max-width: 70rem;
}

.contest-existing-account {
    margin-bottom: 1.75rem;
    padding: 1.35rem 1.4rem 1.5rem;
    border: 1px solid #d7e0ef;
    border-left: .4rem solid var(--navy);
    background: #f5f8fd;
    border-radius: .35rem;
}

.contest-existing-account h2 {
    margin: .2rem 0 .55rem;
    color: var(--navy);
    font-size: clamp(1.15rem, 2.4vw, 1.45rem);
    text-transform: uppercase;
    letter-spacing: .03em;
}

.contest-existing-account > p {
    margin: 0;
    color: #3d4a63;
}

.contest-existing-account > p + p {
    margin-top: .55rem;
}

.contest-existing-account__form {
    display: grid;
    gap: .85rem;
}

.contest-register-divider {
    margin: 0 0 1.5rem;
    color: var(--muted);
    font-size: .92rem;
    font-weight: 750;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.campaign-cancel-panel {
    margin-top: 1.5rem;
    border-color: #f3c7c7;
}

.campaign-cancel-panel p {
    margin: 0 0 1rem;
    color: #5a2a2a;
}

.account-choice__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    padding-bottom: 5rem;
}

.account-card {
    padding: clamp(1.75rem, 4vw, 3rem);
    border: 1px solid var(--line);
    background: var(--white);
    box-shadow: var(--shadow);
}

.account-card h2 {
    margin: .5rem 0 .75rem;
}

.account-card > p:not(.eyebrow) {
    min-height: 3.25rem;
}

.account-card form {
    margin-top: 1.5rem;
}

.account-card .field + .field,
.account-login-shell .field + .field {
    margin-top: 1rem;
}

.account-card .check-field,
.account-login-shell .check-field {
    margin: 1rem 0 1.25rem;
}

.account-login-shell {
    max-width: 35rem;
}

.account-login-note {
    margin: 1.5rem 0 .25rem;
}

.account-login-shell .text-link {
    color: var(--blue);
}

.account-login-shell .form-grid .field + .field {
    margin-top: 0;
}

.account-login-shell .consent-panel {
    margin-top: 1.5rem;
}

.account-confirm-banner {
    margin-bottom: 1.5rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--line);
    background: #fff8f2;
}

.account-confirm-banner p {
    margin: 0 0 .75rem;
}

.account-confirm-banner__hint {
    margin: 0 0 1rem;
}

.account-confirm-banner form {
    margin: 0;
}

.account-confirm-banner__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
}

.account-confirm-banner__code-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.account-confirm-banner__code {
    min-width: min(18rem, 100%);
    padding: .85rem 1rem;
    border: 0;
    background: #cfcfcf;
    color: #4a4a4a;
    font-size: 1.05rem;
}

.account-confirm-banner__code::placeholder {
    color: #6e6e6e;
}

.account-dashboard {
    padding-bottom: 5rem;
}

.account-dashboard__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1.5rem;
    padding-top: 4rem;
    padding-bottom: 3.5rem;
}

.account-entry-list {
    display: grid;
    gap: .75rem;
}

.account-entry-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem 2rem;
    padding: 1.15rem 1.35rem;
    border: 1px solid var(--line);
    background: var(--white);
}

.account-entry-list h3 {
    margin: 0 0 .2rem;
    font-size: 1.28rem;
}

.account-entry-list p {
    margin: 0;
    color: var(--muted);
    font-size: .95rem;
}

.account-entry-list code {
    display: inline-block;
    margin-top: .55rem;
    color: var(--navy);
    font-family: ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;
    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .03em;
}

.account-entry-list article > div:last-child {
    display: grid;
    gap: .2rem;
    justify-items: end;
    text-align: right;
}

.account-entry-list strong {
    color: var(--navy);
    font-size: 1.05rem;
    white-space: nowrap;
}

.account-entry-list time {
    color: var(--muted);
    font-size: .88rem;
}

.form-shell fieldset {
    min-width: 0;
    padding: 0 0 3rem;
    margin: 0 0 3rem;
    border: 0;
    border-bottom: 1px solid var(--line);
}

.form-shell legend {
    width: 100%;
    margin-bottom: 2rem;
    color: var(--navy);
    font-family: "Arial Narrow", Impact, sans-serif;
    font-size: 1.8rem;
    font-weight: 800;
}

.form-shell legend span {
    display: inline-grid;
    width: 2.6rem;
    height: 2.6rem;
    margin-right: .8rem;
    place-items: center;
    border-radius: 50%;
    color: var(--white);
    background: var(--red);
    font-family: inherit;
    font-size: .8rem;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.3rem;
}

.field {
    min-width: 0;
}

.field--wide {
    grid-column: 1 / -1;
}

.field--small {
    max-width: 10rem;
}

.field label,
.field .field-label,
.admin-form-panel label {
    display: block;
    margin-bottom: .45rem;
    color: var(--navy);
    font-size: .8rem;
    font-weight: 800;
}

.field input,
.field select,
.field textarea,
.admin-search input,
.admin-filter select,
.application-actions select {
    width: 100%;
    min-height: 3.15rem;
    border: 1px solid #adb8c8;
    border-radius: 2px;
    padding: .7rem .85rem;
    background: var(--white);
}

.datetime-hour {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 7.25rem;
    gap: .55rem;
    align-items: start;
}

.datetime-hour select {
    min-width: 0;
}

.password-control {
    position: relative;
}

.password-control input {
    padding-right: 3.4rem;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: .45rem;
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 2px;
    color: var(--navy);
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
}

.password-toggle:hover {
    background: var(--soft);
}

.password-toggle:focus-visible {
    outline: 2px solid var(--red);
    outline-offset: 1px;
}

.password-toggle svg {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.password-toggle__slash {
    display: none;
}

.password-toggle[aria-pressed="true"] .password-toggle__slash {
    display: block;
}

.field textarea {
    resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(22, 84, 165, .12);
    outline: none;
}

[aria-invalid="true"] {
    border-color: var(--error) !important;
}

.field-error {
    display: block;
    margin: .35rem 0 0;
    color: var(--error);
    font-size: .82rem;
    font-weight: 700;
}

.error-summary {
    padding: 1.25rem;
    margin-bottom: 2rem;
    border-left: 4px solid var(--error);
    color: #75131e;
    background: #fff0f2;
}

.error-summary h2 {
    margin-bottom: .5rem;
    color: #75131e;
    font-family: inherit;
    font-size: 1rem;
    letter-spacing: 0;
}

.error-summary ul {
    margin: 0;
}

.error-summary--toast {
    position: fixed;
    z-index: 1001;
    top: 1rem;
    right: 1rem;
    display: block;
    width: min(calc(100% - 2rem), 32rem);
    max-height: min(70vh, 32rem);
    margin: 0;
    padding: 1.15rem 3.25rem 1.15rem 1.25rem;
    overflow: auto;
    border: 1px solid var(--error);
    border-left: .4rem solid var(--error);
    border-radius: .7rem;
    box-shadow: 0 18px 45px rgba(8, 26, 54, .2);
    animation: toast-in .24s ease-out both;
}

.error-summary--toast a {
    color: inherit;
    font-weight: 750;
}

.theme-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
}

.theme-choice {
    position: relative;
    display: flex;
    min-height: 9rem;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    padding: 1.2rem;
    color: var(--white);
    background: var(--blue);
    cursor: pointer;
    isolation: isolate;
}

.theme-choice::after {
    position: absolute;
    z-index: 1;
    top: -3rem;
    right: -3rem;
    width: 8rem;
    height: 8rem;
    border: 1.4rem solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    content: "";
}

.theme-choice__color {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.theme-choice > :not(.theme-choice__color) {
    z-index: 2;
}

.theme-choice input {
    position: absolute;
    z-index: 3;
    top: .8rem;
    right: .8rem;
    width: 1.4rem;
    height: 1.4rem;
    opacity: 0;
}

.theme-choice__check {
    position: absolute;
    top: .8rem;
    right: .8rem;
    display: grid;
    width: 1.6rem;
    height: 1.6rem;
    place-items: center;
    border: 2px solid rgba(255, 255, 255, .8);
    border-radius: 50%;
    color: transparent;
}

.theme-choice input:checked + .theme-choice__check {
    color: var(--navy);
    border-color: var(--white);
    background: var(--white);
}

.theme-choice:has(input:focus-visible) {
    outline: 3px solid #f4bf1a;
    outline-offset: 3px;
}

.theme-choice strong {
    font-size: 1.1rem;
}

.theme-choice small {
    color: rgba(255, 255, 255, .82);
}

.consent-panel {
    padding: 1.5rem;
    background: var(--soft);
}

.consent-panel .check-field + .check-field,
.consent-panel .field-error + .check-field {
    margin-top: 1rem;
}

.form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 2rem;
}

.form-actions p {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
}

.form-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
}

.form-title-row h2,
.form-title-row p {
    margin: 0;
}

.advertiser-hero {
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    color: inherit;
    background: var(--soft);
}

.advertiser-hero__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(3rem, 8vw, 8rem);
}

.advertiser-hero h1 {
    color: var(--navy);
}

.advertiser-hero__grid > div:first-child > p:last-child {
    color: #526077;
    font-size: 1.05rem;
}

.advertiser-benefits {
    max-width: 46rem;
    border-top: 1px solid var(--line);
}

.advertiser-benefits article {
    display: grid;
    grid-template-columns: 2.5rem 1fr;
    padding: 1.2rem 0;
    border-bottom: 1px solid var(--line);
}

.advertiser-benefits article > span {
    grid-row: span 2;
    color: var(--red);
    font-weight: 800;
}

.advertiser-benefits h2 {
    margin-bottom: .25rem;
    color: var(--navy);
    font-family: inherit;
    font-size: 1rem;
    letter-spacing: 0;
}

.advertiser-benefits p {
    margin: 0;
    color: #526077;
    font-size: .9rem;
}

.merchant-access {
    padding: clamp(3rem, 6vw, 5rem) 0;
    background: #fff;
}

.merchant-access__heading {
    max-width: 46rem;
    margin: 0 auto 2rem;
    text-align: center;
}

.merchant-access__heading h2 {
    margin: 0;
}

.merchant-access__choices {
    display: grid;
    max-width: 62rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 0 auto;
}

.merchant-access__choices article {
    display: flex;
    min-height: 18rem;
    align-items: flex-start;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid var(--line);
    border-top: .35rem solid var(--navy);
    background: #f7f9fc;
    box-shadow: 0 12px 35px rgba(8, 26, 54, .08);
}

.merchant-access__choices article:last-child {
    border-top-color: var(--red);
}

.merchant-access__choices article > span {
    margin-bottom: 1.25rem;
    color: var(--blue);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.merchant-access__choices h3 {
    margin-bottom: .65rem;
    color: var(--navy);
    font-size: clamp(1.45rem, 2.5vw, 2rem);
}

.merchant-access__choices p {
    flex: 1;
    margin-bottom: 1.5rem;
    color: var(--muted);
}

.merchant-access__choices .button {
    min-width: 11rem;
    text-align: center;
}

.merchant-login-alternative {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.merchant-login-alternative strong {
    display: block;
    color: var(--navy);
}

.merchant-login-alternative p {
    margin: .35rem 0 .65rem;
    color: var(--muted);
    font-size: .88rem;
}

.merchant-login-alternative a {
    color: var(--blue);
    font-size: .82rem;
    font-weight: 850;
    text-decoration: none;
}

.merchant-login-alternative a:hover {
    text-decoration: underline;
}

/* Advertiser portal */
.advertiser-portal-body {
    min-height: 100vh;
    background: #f4f6f9;
}

.advertiser-home h1,
.advertiser-portal-body .page-hero__inner h1 {
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    letter-spacing: -.03em;
}

.advertiser-portal-body .page-hero {
    padding: 1.5rem 0 1.25rem;
}

.advertiser-card h2,
.merchant-sheet__head h2 {
    font-size: clamp(1.15rem, 1.8vw, 1.4rem);
}

.advertiser-portal-main {
    min-height: calc(100vh - 10rem);
}

.advertiser-portal-header .header-inner {
    min-height: 4.75rem;
    gap: 1rem;
}

.advertiser-portal-header .brand-copy small {
    color: var(--blue);
}

.advertiser-portal-nav {
    justify-content: flex-end;
    flex-wrap: nowrap;
}

.advertiser-portal-nav > a {
    padding: .4rem .55rem;
    font-size: .72rem;
    letter-spacing: .05em;
    white-space: nowrap;
}

.advertiser-portal-nav > a:not(.language-link)::after {
    right: .55rem;
    left: .55rem;
}

.advertiser-portal-nav .language-link {
    margin-left: .35rem;
    font-weight: 700;
    letter-spacing: .06em;
}

.advertiser-logout {
    margin-left: .35rem;
}

.advertiser-logout button {
    min-height: 2.4rem;
    border: 1px solid var(--navy);
    border-radius: .3rem;
    padding: .45rem .85rem;
    color: var(--navy);
    background: var(--white);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}

.advertiser-logout button:hover,
.advertiser-logout button:focus-visible {
    color: var(--white);
    background: var(--navy);
}

@media (max-width: 80rem) {
    .advertiser-portal-header .nav-toggle {
        display: grid;
        place-items: center;
        background: var(--soft);
    }

    .advertiser-portal-header .advertiser-portal-nav {
        position: fixed;
        z-index: 100;
        inset: 4.75rem 0 0;
        display: none;
        max-height: none;
        align-items: stretch;
        flex-direction: column;
        gap: .28rem;
        overflow-y: auto;
        padding: .75rem 1rem max(1.15rem, env(safe-area-inset-bottom));
        border-top: 1px solid var(--line);
        background: #f4f6fb;
        box-shadow: none;
    }

    .nav-open .advertiser-portal-header .advertiser-portal-nav {
        display: flex;
    }

    .advertiser-portal-header .advertiser-portal-nav > a {
        min-height: 3.05rem;
        padding: .85rem 1rem;
        border: 0;
        border-radius: .85rem;
        font-size: .92rem;
        white-space: normal;
    }

    .advertiser-portal-header .advertiser-portal-nav > a::after {
        display: none;
    }

    .advertiser-portal-header .advertiser-portal-nav > a[aria-current="page"] {
        color: var(--red);
    }

    .advertiser-portal-header .advertiser-portal-nav .language-link {
        margin-left: 0;
    }

    .advertiser-portal-header .advertiser-logout {
        margin: .35rem 0 0;
    }

    .advertiser-portal-header .advertiser-logout button {
        width: 100%;
        min-height: 3rem;
    }
}

.advertiser-home {
    padding: 1.25rem 0 2.5rem;
}

.advertiser-home__intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.advertiser-home__intro h1 {
    margin-bottom: .35rem;
}

.advertiser-home__intro p {
    margin: 0;
    max-width: 36rem;
    color: var(--muted);
}

.advertiser-home__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr);
    gap: 1.25rem;
    align-items: start;
    max-width: 72rem;
}

.advertiser-home__bar {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: .75rem 1rem;
    margin-bottom: 1rem;
    max-width: 72rem;
}

.advertiser-home__next {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 38rem;
    margin-right: auto;
    padding: .7rem .9rem;
    border: 1px solid #e6c56a;
    border-radius: .45rem;
    color: #6c4b00;
    background: #fff7dc;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(140, 96, 0, .08);
}

.advertiser-home__next strong {
    display: block;
    margin-bottom: .15rem;
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.advertiser-home__next span {
    display: block;
    font-size: .92rem;
    line-height: 1.4;
}

.advertiser-home__next:hover,
.advertiser-home__next:focus-visible {
    border-color: #c78b00;
    color: #4d3600;
}

.advertiser-home__more {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    gap: .4rem;
    min-height: 2.15rem;
    padding: .35rem .8rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--navy);
    background: var(--white);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    box-shadow: 0 4px 14px rgba(8, 26, 54, .08);
    cursor: pointer;
}

.advertiser-home__more::before {
    content: "i";
    display: grid;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 50%;
    color: var(--white);
    background: var(--navy);
    font-size: .7rem;
    font-style: italic;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: none;
    place-items: center;
}

.advertiser-home__more:hover,
.advertiser-home__more:focus-visible {
    border-color: var(--navy);
    color: var(--white);
    background: var(--navy);
}

.advertiser-home__more:hover::before,
.advertiser-home__more:focus-visible::before {
    color: var(--navy);
    background: var(--white);
}

.advertiser-home:not([data-tutorial-collapsed]) [data-tutorial-open] {
    display: none;
}

.advertiser-home[data-tutorial-collapsed] [data-tutorial-panel] {
    display: none;
}

.advertiser-home:not([data-tutorial-collapsed]) .advertiser-home__primary > .advertiser-card {
    display: none;
}

.advertiser-home__primary {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.advertiser-tutorial {
    position: relative;
    text-align: center;
}

.advertiser-tutorial__close {
    position: absolute;
    top: .45rem;
    right: .45rem;
    z-index: 1;
    display: grid;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--white);
    background: rgba(255, 255, 255, .16);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    place-items: center;
}

.advertiser-tutorial__close:hover,
.advertiser-tutorial__close:focus-visible {
    background: rgba(255, 255, 255, .28);
}

.advertiser-tutorial__banner {
    padding: .95rem 2.4rem 1rem;
    border-radius: .5rem .5rem 0 0;
    color: var(--white);
    background: #111;
}

.advertiser-tutorial__banner p {
    margin: 0;
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.advertiser-tutorial__card {
    padding: 1.15rem 1.4rem 1.25rem;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 .5rem .5rem;
    background: var(--white);
    box-shadow: 0 4px 16px rgba(8, 26, 54, .05);
}

.advertiser-tutorial__card p {
    margin: 0 auto 1rem;
    max-width: 28rem;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 1.8vw, 1.28rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.3;
}

.advertiser-tutorial__card p:last-child {
    margin-bottom: 0;
}

.advertiser-tutorial__stat {
    margin: 1rem auto .35rem;
    max-width: 26rem;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 1.8vw, 1.28rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.3;
}

.advertiser-tutorial__cta {
    display: inline-block;
    margin-top: .35rem;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
}

.advertiser-tutorial__cta span {
    display: block;
    color: var(--red);
    text-decoration: underline;
    text-underline-offset: .12em;
}

.advertiser-tutorial__cta:hover span,
.advertiser-tutorial__cta:focus-visible span {
    color: var(--red-dark);
}

.advertiser-home__grid .activity-list li > div span {
    display: block;
    color: var(--muted);
    font-size: .82rem;
}

.advertiser-events__prompt {
    margin: 0 0 .5rem;
    color: var(--muted);
    font-size: .92rem;
}

.advertiser-events__links {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .9rem;
    margin: 0 0 1rem;
    font-size: .86rem;
}

.advertiser-events__links .text-link {
    font-weight: 700;
}

.advertiser-events__links .button {
    align-self: center;
}

@media (max-width: 62rem) {
    .advertiser-home__grid {
        grid-template-columns: 1fr;
    }

    .advertiser-home__bar {
        flex-wrap: wrap;
    }

    .advertiser-home__next {
        flex-basis: calc(100% - 8.5rem);
        max-width: none;
    }
}

.advertiser-card {
    padding: 1.15rem 1.25rem 1.3rem;
    border: 1px solid var(--line);
    border-radius: .5rem;
    background: var(--white);
    box-shadow: 0 4px 16px rgba(8, 26, 54, .05);
}

.advertiser-card--offers {
    grid-column: 1 / -1;
}

.advertiser-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.advertiser-card__head h2 {
    margin: 0;
}

.advertiser-card .button--ghost {
    border-color: var(--navy);
    color: var(--navy);
}

.advertiser-card__more {
    margin: 1rem 0 0;
}

.advertiser-business {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.advertiser-business__logo {
    width: 4.5rem;
    height: 4.5rem;
    object-fit: contain;
    background: var(--soft);
    border: 1px solid var(--line);
    border-radius: .4rem;
}

.advertiser-business__meta {
    display: grid;
    gap: .65rem;
    margin: 0;
}

.advertiser-business__meta div {
    margin: 0;
}

.advertiser-business__meta dt {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.advertiser-business__meta dd {
    margin: .1rem 0 0;
}

.advertiser-business__meta a {
    color: var(--blue);
    font-weight: 700;
}

.advertiser-pending-help {
    margin: 1rem 0 .5rem;
    color: var(--muted);
    font-size: .86rem;
}

.advertiser-pending-list {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.advertiser-pending-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .4rem .7rem;
    padding: .5rem .65rem;
    border: 1px solid #f0d48a;
    border-radius: .35rem;
    background: #fff8e6;
}

.advertiser-chip {
    display: inline-flex;
    align-items: center;
    min-height: 1.4rem;
    padding: 0 .45rem;
    border-radius: 999px;
    color: #8a5a00;
    background: #ffe7a8;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.advertiser-chip--ok {
    color: #0f5a38;
    background: #d8f3e5;
}

.advertiser-profile-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.advertiser-pub-list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.advertiser-pub-list li {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: .75rem;
    padding: .7rem 0;
    border-top: 1px solid var(--line);
}

.advertiser-campaign-list li {
    grid-template-columns: 7.5rem minmax(0, 1fr) auto;
    align-items: center;
    min-width: 0;
}

.advertiser-campaign-list__action {
    justify-self: end;
    max-width: 100%;
}

.advertiser-campaign-list__action .button {
    max-width: 100%;
    white-space: nowrap;
}

.advertiser-pub-list li:first-child {
    border-top: 0;
    padding-top: 0;
}

.advertiser-pub-list time {
    color: var(--blue);
    font-size: .82rem;
    font-weight: 800;
}

.advertiser-pub-list strong {
    display: block;
}

.advertiser-pub-list span {
    color: var(--muted);
    font-size: .86rem;
}

.advertiser-campaign-list {
    margin-top: .25rem;
}

.merchant-brand--editable {
    position: relative;
}

.merchant-edit-wrap {
    position: relative;
}

.merchant-edit-btn {
    margin-top: .45rem;
    border: 1px solid var(--navy);
    border-radius: .3rem;
    padding: .4rem .7rem;
    color: var(--navy);
    background: var(--white);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    cursor: pointer;
}

.merchant-edit-btn:hover,
.merchant-edit-btn:focus-visible {
    color: var(--white);
    background: var(--navy);
}

.merchant-edit-btn--on-photo {
    position: absolute;
    z-index: 2;
    top: .75rem;
    right: .75rem;
    bottom: auto;
    margin: 0;
}

.merchant-brand__slogan--empty {
    color: var(--muted);
    font-style: italic;
}

.advertiser-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.advertiser-section-head h3 {
    margin: 0;
}

.advertiser-section-head__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
}

.advertiser-password-form {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--line);
}

.advertiser-password-form h3 {
    margin: 0 0 1rem;
}

.merchant-location-filter {
    margin: 0 0 1rem;
}

.advertiser-section-head__actions .merchant-location-filter {
    margin: 0;
}

.merchant-location-filter select {
    min-width: min(100%, 16rem);
    max-width: 22rem;
}

.merchant-coop__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.merchant-coop__head h2 {
    margin: 0;
}

.merchant-coop__card {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    align-items: flex-start;
}

.merchant-coop__logo {
    width: min(100%, 12rem);
    height: auto;
    object-fit: contain;
}

.merchant-coop__copy {
    flex: 1 1 16rem;
}

.merchant-coop__copy p {
    margin: 0 0 .5rem;
}

.merchant-sheet {
    position: fixed;
    z-index: 80;
    inset: 0;
    display: none;
    overflow: hidden;
}

.merchant-sheet.is-open {
    display: block;
}

.merchant-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 26, 54, .42);
}

.merchant-sheet__panel {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    width: min(28rem, 100%);
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    background: var(--white);
    box-shadow: -16px 0 40px rgba(8, 26, 54, .18);
}

.merchant-sheet__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--line);
}

.merchant-sheet__head h2 {
    margin: 0;
}

.merchant-sheet__close {
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--line);
    border-radius: .3rem;
    background: var(--white);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.merchant-sheet__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 1.15rem;
    overscroll-behavior: contain;
}

.merchant-offer-locations {
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
}

.merchant-offer-locations legend {
    margin: 0 0 .35rem;
    color: var(--navy);
    font-weight: 750;
}

.merchant-offer-locations p {
    margin: 0 0 .65rem;
    color: var(--muted);
}

.company-change-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.admin-row--review td:first-child {
    box-shadow: inset 3px 0 0 var(--red);
}

.merchant-preview-note {
    margin: .75rem 0 0;
    padding: .7rem .9rem;
    border-left: 3px solid var(--red);
    background: #fff6f4;
    color: var(--navy);
    font-size: .92rem;
}

.merchant-preview-chip {
    position: absolute;
    left: .7rem;
    bottom: .7rem;
    z-index: 2;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: var(--navy);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.advertiser-portal-footer {
    padding: 1.15rem 0;
    color: #b8c5d9;
    background: var(--navy);
}

.advertiser-portal-footer .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.advertiser-portal-footer p {
    display: flex;
    flex-direction: column;
    margin: 0;
}

.advertiser-portal-footer strong {
    color: var(--white);
}

.advertiser-portal-footer a {
    color: var(--white);
    font-weight: 700;
}

/* Administration */
.admin-body {
    min-height: 100vh;
    background: #f1f3f6;
}

.admin-sidebar {
    position: fixed;
    z-index: 100;
    inset: 0 auto 0 0;
    display: flex;
    width: 17rem;
    flex-direction: column;
    color: #b8c5d9;
    background: var(--navy);
}

.admin-brand {
    display: flex;
    min-height: 6.5rem;
    align-items: center;
    gap: .8rem;
    padding: 1.25rem 1.4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    color: var(--white);
    text-decoration: none;
}

.admin-brand .brand-mark {
    width: 3.4rem;
    height: 3.4rem;
}

.admin-brand > span:last-child {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.admin-brand strong {
    font-size: 1.3rem;
}

.admin-brand small {
    margin-top: .25rem;
    color: #8fa3c1;
    font-size: .65rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.admin-nav {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: 1.4rem .8rem;
}

.admin-nav a {
    display: flex;
    min-height: 2.9rem;
    align-items: center;
    gap: .75rem;
    padding: .7rem .85rem;
    border-left: 3px solid transparent;
    color: #b8c5d9;
    font-size: .86rem;
    font-weight: 700;
    text-decoration: none;
}

.admin-nav a:hover,
.admin-nav a[aria-current="page"] {
    border-color: var(--red);
    color: var(--white);
    background: rgba(255, 255, 255, .07);
}

.admin-nav a span,
.admin-nav-group summary span {
    width: 1.2rem;
    color: #6f8ab1;
    text-align: center;
}

.admin-nav-group {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.admin-nav-group summary {
    display: flex;
    min-height: 2.9rem;
    align-items: center;
    gap: .75rem;
    padding: .7rem .85rem;
    border-left: 3px solid transparent;
    color: #b8c5d9;
    font-size: .86rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.admin-nav-group summary::-webkit-details-marker,
.admin-nav-group summary::marker {
    display: none;
    content: '';
}

.admin-nav-group summary::after {
    content: '';
    width: .38rem;
    height: .38rem;
    margin-left: auto;
    flex: 0 0 auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    opacity: .55;
}

.admin-nav-group[open] > summary::after {
    transform: rotate(-135deg);
    translate: 0 .15rem;
}

.admin-nav-group summary:hover,
.admin-nav-group summary[data-active="true"] {
    border-color: var(--red);
    color: var(--white);
    background: rgba(255, 255, 255, .07);
}

.admin-nav-group__menu {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    padding: 0 0 .25rem;
}

.admin-nav-group__menu a {
    min-height: 2.4rem;
    padding: .45rem .85rem .45rem 2.8rem;
    font-size: .82rem;
}

.admin-sidebar__footer {
    padding: 1.2rem 1.4rem;
    margin-top: auto;
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.admin-sidebar__footer p {
    display: flex;
    flex-direction: column;
    margin-bottom: .6rem;
    line-height: 1.35;
}

.admin-sidebar__footer strong {
    color: var(--white);
    font-size: .85rem;
}

.admin-sidebar__footer small {
    color: #8fa3c1;
}

.admin-sidebar__footer button {
    padding: 0;
    border: 0;
    color: #a9b9cf;
    background: transparent;
    font-size: .78rem;
    text-decoration: underline;
    cursor: pointer;
}

.admin-sidebar__footer .language-link {
    display: inline-block;
    margin-bottom: .45rem;
    color: #d7e4f5;
    font-size: .78rem;
}

.admin-shell {
    min-height: 100vh;
    margin-left: 17rem;
}

.admin-topbar {
    display: flex;
    min-height: 4.3rem;
    align-items: center;
    justify-content: flex-end;
    padding: 0 2rem;
    border-bottom: 1px solid var(--line);
    background: var(--white);
}

.admin-topbar a {
    color: var(--blue);
    font-size: .8rem;
    font-weight: 800;
    text-decoration: none;
}

.admin-nav-toggle {
    display: none;
}

.admin-flash {
    padding-inline: 2.5rem;
}

.admin-content {
    width: min(100%, 90rem);
    padding: clamp(1.5rem, 4vw, 3rem);
}

.admin-page-header {
    margin-bottom: 2rem;
}

.admin-page-header--row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.admin-page-header h1 {
    margin-bottom: .65rem;
    font-size: clamp(2.2rem, 4vw, 3.5rem);
}

.admin-page-header p:not(.admin-eyebrow) {
    max-width: 50rem;
    margin-bottom: 0;
    color: var(--muted);
}

.admin-eyebrow {
    color: var(--red);
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card {
    display: flex;
    min-height: 11rem;
    flex-direction: column;
    padding: 1.25rem;
    border-top: 3px solid var(--blue);
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 4px 18px rgba(8, 26, 54, .05);
    text-decoration: none;
}

.stat-card--red {
    border-color: var(--red);
}

.stat-card > span {
    color: var(--muted);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.stat-card strong {
    margin: auto 0;
    font-size: 3rem;
    line-height: 1;
}

.stat-card small {
    color: var(--blue);
    font-weight: 700;
}

.admin-dashboard-grid {
    display: grid;
    grid-template-columns: 1.5fr .7fr;
    gap: 1.5rem;
}

.admin-panel {
    padding: 1.4rem;
    margin-bottom: 1.5rem;
    background: var(--white);
    box-shadow: 0 4px 18px rgba(8, 26, 54, .05);
}

.admin-panel--dark {
    color: #c5d1e2;
    background: var(--navy);
}

.admin-panel--dark h2 {
    color: var(--white);
}

.admin-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.admin-panel__header h2 {
    margin: 0;
    font-family: inherit;
    font-size: 1.15rem;
    letter-spacing: 0;
}

.admin-panel__header p {
    margin-bottom: .3rem;
}

.activity-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

.activity-list li {
    display: grid;
    grid-template-columns: 1rem 1fr;
    gap: .7rem;
    padding: .8rem 0;
    border-bottom: 1px solid var(--line);
}

.activity-list li:last-child {
    border: 0;
}

.activity-dot {
    width: .55rem;
    height: .55rem;
    margin-top: .45rem;
    border-radius: 50%;
    background: var(--blue);
}

.activity-list strong,
.activity-list small {
    display: block;
}

.activity-list strong {
    font-size: .88rem;
}

.activity-list small {
    color: var(--muted);
    font-size: .75rem;
}

.operations-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.operations-list dt {
    font-size: .86rem;
}

.operations-list dd {
    margin: 0;
    color: var(--white);
    font-size: 1.5rem;
    font-weight: 800;
}

.admin-panel--dark > p:last-child {
    color: #92a4c0;
    font-size: .82rem;
}

.admin-table {
    min-width: 47rem;
    font-size: .86rem;
}

.admin-table th {
    background: #f6f7f9;
}

.admin-table .table-filters th {
    padding: .5rem;
    background: #fff;
    font-weight: 400;
    vertical-align: middle;
}

.admin-table .table-filters input,
.admin-table .table-filters select {
    width: 100%;
    min-width: 0;
    min-height: 2.4rem;
    padding: .35rem .5rem;
    border: 1px solid #adb8c8;
    border-radius: 2px;
    background: var(--white);
}

.admin-table td strong,
.admin-table td small {
    display: block;
}

.admin-table td small {
    color: var(--muted);
}

.admin-table__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    align-items: center;
}

.admin-table__actions form {
    margin: 0;
}

.admin-table__actions button.text-link {
    border: 0;
    padding: 0;
    background: none;
    cursor: pointer;
    font: inherit;
}

.admin-table tr.is-pending td {
    color: var(--error);
}

.admin-table code,
.campaign-card code,
.settings-list code,
.import-preview code {
    padding: .2rem .4rem;
    color: var(--navy);
    background: #edf1f6;
    font-size: .76rem;
}

.badge {
    display: inline-flex;
    padding: .25rem .5rem;
    border-radius: 2rem;
    color: #34455d;
    background: #e7ebf0;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.badge--submitted,
.badge--draft,
.badge--pending {
    color: #825f00;
    background: #fff3c7;
}

.badge--under_review,
.badge--confirmed,
.badge--active,
.badge--in_progress {
    color: #124f95;
    background: #e5f0ff;
}

.badge--approved,
.badge--published,
.badge--paid,
.badge--done {
    color: #146240;
    background: #e2f6ec;
}

.badge--needs_information {
    color: #884500;
    background: #ffecd9;
}

.badge--suspended {
    color: #654b12;
    background: #f4e8c8;
}

.badge--rejected,
.badge--failed,
.badge--cancelled,
.badge--disabled {
    color: #861825;
    background: #ffe5e8;
}

.admin-search {
    display: flex;
    min-width: min(100%, 26rem);
}

.admin-search button {
    border: 0;
    padding: .6rem 1rem;
    color: var(--white);
    background: var(--navy);
    font-weight: 800;
    cursor: pointer;
}

.admin-filter {
    display: flex;
    align-items: center;
    gap: .7rem;
}

.admin-survey-filters {
    flex-wrap: wrap;
}

.admin-filter label {
    font-size: .8rem;
    font-weight: 800;
}

.admin-filter select {
    min-width: 12rem;
}

.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding-top: 1.25rem;
    font-size: .82rem;
}

.pagination a {
    color: var(--blue);
    font-weight: 800;
}

.merchant-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
}

.merchant-page-header > div {
    max-width: 52rem;
}

.merchant-page-header h1 {
    margin-bottom: .45rem;
}

.merchant-page-header p:last-child {
    max-width: 48rem;
    margin: 0;
    color: var(--muted);
}

.merchant-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid #d9e0ea;
    background: #f8fafc;
}

.merchant-toolbar__count {
    display: flex;
    align-items: baseline;
    gap: .45rem;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 750;
}

.merchant-toolbar__count strong {
    color: var(--navy);
    font-size: 1.3rem;
}

.merchant-status-filter {
    display: grid;
    grid-template-columns: auto minmax(13rem, 18rem);
    align-items: center;
    gap: .65rem;
}

.merchant-directory {
    display: grid;
    gap: .75rem;
}

.merchant-record {
    overflow: hidden;
    border: 1px solid #d9e0ea;
    border-left: .3rem solid #9ba8ba;
    background: var(--white);
    box-shadow: 0 5px 18px rgba(8, 26, 54, .045);
}

.merchant-record--submitted,
.merchant-record--under_review,
.merchant-record--needs_information {
    border-left-color: var(--red);
}

.merchant-record--approved {
    border-left-color: #187348;
}

.merchant-record--suspended,
.merchant-record--rejected {
    border-left-color: #7c8798;
}

.merchant-record details > summary {
    list-style: none;
}

.merchant-record details > summary::-webkit-details-marker {
    display: none;
}

.merchant-record__summary {
    display: grid;
    min-height: 6rem;
    grid-template-columns: 7.5rem minmax(12rem, 1.25fr) minmax(12rem, 1fr) minmax(10rem, .8fr) auto;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    transition: background .16s ease;
}

.merchant-record__summary:hover {
    background: #f8fafc;
}

.merchant-record__summary:focus-visible {
    outline: 3px solid rgba(18, 79, 149, .22);
    outline-offset: -3px;
}

.merchant-record details[open] > .merchant-record__summary {
    background: #f3f6fa;
}

.merchant-record__status-line,
.merchant-record__identity,
.merchant-record__contact,
.merchant-record__location {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    flex-direction: column;
    gap: .25rem;
}

.merchant-record__status-line time,
.merchant-record__identity small,
.merchant-record__contact small,
.merchant-record__location small {
    overflow: hidden;
    width: 100%;
    color: var(--muted);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.merchant-record__identity strong {
    overflow: hidden;
    width: 100%;
    color: var(--navy);
    font-size: 1.08rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.merchant-record__contact > span,
.merchant-record__location > span {
    overflow: hidden;
    width: 100%;
    color: var(--navy);
    font-size: .82rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.merchant-record__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid #c8d3e1;
    border-radius: 50%;
    color: var(--blue);
    background: #fff;
    font-size: 1.25rem;
    font-weight: 850;
    line-height: 1;
}

.merchant-record__toggle-open {
    display: none;
}

.merchant-record details[open] .merchant-record__toggle-closed {
    display: none;
}

.merchant-record details[open] .merchant-record__toggle-open {
    display: inline;
}

.merchant-record__body {
    display: grid;
    grid-template-columns: minmax(18rem, .85fr) minmax(24rem, 1.15fr);
    border-top: 1px solid #d9e0ea;
}

.merchant-record__details,
.merchant-record__workflow {
    min-width: 0;
    padding: clamp(1.25rem, 2.5vw, 2rem);
}

.merchant-record__workflow {
    border-left: 1px solid #d9e0ea;
    background: #f8fafc;
}

.merchant-record__section-heading {
    margin-bottom: 1.25rem;
}

.merchant-record__section-heading--action {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.merchant-record__heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.merchant-record__section-heading .admin-eyebrow {
    margin-bottom: .25rem;
}

.merchant-record__section-heading h2 {
    margin: 0;
    font-family: inherit;
    font-size: 1.05rem;
    letter-spacing: 0;
}

.merchant-record__details dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    margin: 0;
}

.merchant-record__details dt {
    color: var(--muted);
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.merchant-record__details dd {
    overflow-wrap: anywhere;
    margin: .25rem 0 0;
    color: var(--navy);
    font-size: .82rem;
}

.merchant-directory__empty {
    display: grid;
    gap: .35rem;
    padding: 3rem 1.5rem;
}

.merchant-directory__empty strong {
    color: var(--navy);
    font-size: 1.1rem;
}

.application-neq {
    display: grid;
    grid-template-columns: max-content auto;
    align-items: center;
    gap: .25rem .4rem;
}

.application-copy-button {
    display: inline-grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    cursor: pointer;
}

.application-copy-button:hover,
.application-copy-button:focus-visible {
    color: var(--white);
    border-color: var(--navy);
    background: var(--navy);
}

.application-copy-button svg {
    width: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.application-registry-link {
    grid-column: 1 / -1;
    width: fit-content;
    font-size: .72rem;
    font-weight: 700;
}

.application-actions {
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.merchant-record__workflow .application-actions {
    padding-top: 0;
    border-top: 0;
}

.application-actions--approved {
    align-content: start;
}

.application-actions--approved > form {
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.application-theme-picker {
    min-width: 0;
    padding: 0;
    border: 0;
}

.application-theme-picker legend,
.application-theme-summary-title,
.application-reason > span {
    display: block;
    margin: 0 0 .55rem;
    color: var(--navy);
    font-size: .7rem;
    font-weight: 800;
}

.application-theme-picker legend span,
.application-reason small {
    color: var(--muted);
    font-size: .66rem;
    font-weight: 600;
}

.application-theme-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
}

.application-theme-options--editor {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.application-theme-option {
    position: relative;
    cursor: pointer;
}

.application-theme-option input {
    position: absolute;
    inset: .75rem auto auto .7rem;
    z-index: 1;
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--navy);
}

.application-theme-option__body {
    display: grid;
    min-height: 2.65rem;
    grid-template-columns: .75rem 1fr;
    align-items: center;
    gap: .55rem;
    padding: .65rem .65rem .65rem 2.15rem;
    border: 1px solid var(--line);
    border-radius: 4px;
    color: var(--navy);
    background: #fbfcfe;
    font-size: .74rem;
    font-weight: 700;
    line-height: 1.25;
}

.application-theme-option input:checked + .application-theme-option__body {
    border-color: var(--navy);
    background: #edf3fb;
    box-shadow: inset 0 0 0 1px var(--navy);
}

.application-theme-option input:focus-visible + .application-theme-option__body {
    outline: 3px solid rgba(18, 79, 149, .22);
    outline-offset: 2px;
}

.application-theme-swatch {
    width: .7rem;
    height: .7rem;
    border-radius: 50%;
    background: var(--blue);
}

.application-reason textarea {
    width: 100%;
    min-height: 5rem;
    resize: vertical;
    padding: .7rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    font: inherit;
}

.application-reason textarea:focus {
    border-color: var(--blue);
    outline: 2px solid rgba(18, 79, 149, .12);
}

.application-decision-buttons,
.application-selected-themes {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.application-selected-themes span {
    padding: .35rem .6rem;
    border-radius: 2rem;
    color: #124f95;
    background: #e5f0ff;
    font-size: .7rem;
    font-weight: 800;
}

.application-delete-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.application-decision-reason {
    padding: 1rem;
    border: 1px solid #efd1d5;
    background: #fff8f8;
}

.application-decision-reason strong {
    color: var(--red);
    font-size: .72rem;
    text-transform: uppercase;
}

.application-decision-reason p {
    margin: .4rem 0 0;
    font-size: .82rem;
}

.campaign-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.campaign-card {
    padding: 1.35rem;
    background: var(--white);
    box-shadow: 0 4px 18px rgba(8, 26, 54, .05);
}

.campaign-card h2 {
    margin: .7rem 0;
    font-family: inherit;
    font-size: 1.15rem;
    letter-spacing: 0;
}

.campaign-card dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
    padding-top: 1rem;
    margin: 1rem 0 0;
    border-top: 1px solid var(--line);
}

.campaign-card dt {
    color: var(--muted);
    font-size: .68rem;
    text-transform: uppercase;
}

.campaign-card dd {
    margin: 0;
    font-weight: 800;
}

.settings-list article {
    display: grid;
    grid-template-columns: 1fr 1.4fr .5fr;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--line);
}

.settings-list article[hidden] {
    display: none;
}

.settings-list article:last-child {
    border: 0;
}

.settings-list strong,
.settings-list code {
    display: block;
    width: fit-content;
}

.settings-list label {
    display: block;
    color: var(--navy);
    font-weight: 800;
}

.settings-list p {
    margin: 0;
    color: var(--muted);
    font-size: .82rem;
}

.settings-list select,
.settings-list input[type="number"] {
    width: 100%;
    min-height: 2.7rem;
    border: 1px solid #adb8c8;
    padding: .5rem .65rem;
    background: var(--white);
}

.settings-form + .settings-form {
    padding-top: 1.5rem;
    margin-top: 1.5rem;
    border-top: 2px solid var(--line);
}

.settings-form > h3 {
    font-family: inherit;
    font-size: 1rem;
    letter-spacing: 0;
}

.compact-checks {
    display: grid;
    gap: .2rem;
}

.compact-checks label {
    font-size: .75rem;
    font-weight: 600;
}

.settings-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
}

.settings-actions p {
    margin: 0;
    color: var(--muted);
    font-size: .78rem;
}

.admin-form-panel form {
    max-width: 48rem;
}

.admin-form-panel .field {
    margin-bottom: 1rem;
}

.admin-form-panel textarea {
    min-height: 15rem;
    font-family: Consolas, monospace;
}

.import-preview,
.admin-two-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.import-preview > div {
    padding: 1rem;
    background: var(--soft);
}

.import-preview ul {
    max-height: 18rem;
    overflow: auto;
}

.confirm-bar {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    padding-top: 1.25rem;
    margin-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.table-action {
    display: inline-block;
    border: 0;
    padding: .4rem .65rem;
    color: var(--white);
    background: var(--blue);
    font-size: .72rem;
    font-weight: 800;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
}

.table-action--red {
    background: var(--red);
}

.admin-empty {
    padding: 2rem;
    margin: 0;
    color: var(--muted);
    text-align: center;
}

.consumer-filters {
    display: grid;
    grid-template-columns: minmax(15rem, 1.5fr) repeat(3, minmax(10rem, 1fr)) auto;
    align-items: end;
    gap: 1rem;
}

.consumer-filters .field,
.consumer-action-form .field {
    margin: 0;
}

.consumer-filter-actions,
.consumer-management-grid,
.consumer-summary-grid,
.consumer-point-summary,
.consumer-detail-list,
.admin-field-grid {
    display: grid;
    gap: 1rem;
}

.consumer-filter-actions {
    grid-template-columns: auto auto;
}

.consumer-table {
    min-width: 76rem;
}

.consumer-table th a {
    display: inline-flex;
    color: var(--navy);
    text-decoration: none;
}

.consumer-table th a:hover,
.consumer-table th a:focus-visible {
    color: var(--red);
    text-decoration: underline;
}

.consumer-summary-grid,
.consumer-management-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.consumer-summary-grid > .admin-panel,
.consumer-management-grid > .admin-panel {
    min-width: 0;
}

.consumer-detail-list,
.consumer-point-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.consumer-detail-list > div,
.consumer-point-summary > div {
    padding: .8rem;
    background: var(--soft);
}

.consumer-detail-list dt,
.consumer-point-summary dt {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.consumer-detail-list dd,
.consumer-point-summary dd {
    margin: .25rem 0 0;
    overflow-wrap: anywhere;
    color: var(--navy);
    font-weight: 700;
}

.consumer-point-summary dd {
    font-size: 1.45rem;
}

.consumer-action-form {
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid var(--line);
}

.consumer-secondary-action {
    margin-top: 1rem;
}

.admin-form-note {
    color: var(--muted);
    font-size: .84rem;
}

.admin-field-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-field-grid .field > small {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-size: .74rem;
}

.admin-field-grid .field--wide {
    grid-column: 1 / -1;
}

.money-field {
    display: flex;
    align-items: center;
    gap: .45rem;
    max-width: 12rem;
}

.money-field__affix {
    color: var(--navy);
    font-weight: 700;
    font-size: 1.05rem;
}

.field .money-field__input {
    width: 8.5rem;
    max-width: 100%;
    text-align: right;
}

.admin-editor-actions,
.admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .65rem;
}

.admin-tabs {
    display: flex;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .3rem;
    overflow-x: auto;
    background: #e7ebf2;
    border-radius: .7rem;
}

.admin-tabs a {
    padding: .65rem 1rem;
    color: #35466a;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
    border-radius: .5rem;
}

.admin-tabs a[aria-current="page"] {
    color: #fff;
    background: var(--navy);
}

.sector-postal-tools,
.sector-postal-add,
.sector-postal-import,
.sector-postal-search {
    display: grid;
    gap: .85rem;
}

.sector-postal-tools {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    margin-bottom: 1.15rem;
    align-items: start;
}

.sector-postal-search {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
}

.sector-postal-add,
.sector-postal-import {
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: .75rem;
}

.sector-postal-add h3 {
    margin: 0;
}

.sector-postal-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.sector-postal-add > .button,
.sector-postal-import > .button {
    justify-self: start;
}

.sector-postal-search {
    margin-bottom: 1rem;
}

.sector-postal-import .field small {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-size: .74rem;
}

.sector-postal-import .field .table-action {
    display: inline-block;
    margin-top: .45rem;
}

.sector-postal-instructions {
    display: grid;
    gap: .85rem;
    max-width: 46rem;
}

.sector-postal-instructions p {
    margin: 0;
    color: var(--muted);
}

.sector-postal-instructions pre {
    margin: 0;
    padding: .75rem;
    overflow-x: auto;
    white-space: pre-wrap;
    font: inherit;
    font-size: .82rem;
    background: #f5f7fa;
    border-radius: .55rem;
    color: var(--navy);
}

#sector-postals .admin-table input {
    min-width: 6rem;
    width: 100%;
}

#sector-postals .admin-table td:nth-child(2) input {
    min-width: 10rem;
}

#sector-postals .admin-table th:nth-child(5),
#sector-postals .admin-table td:nth-child(5) {
    white-space: nowrap;
}

#sector-postals .admin-table tfoot th,
#sector-postals .admin-table tfoot td {
    background: #eef2f6;
    font-weight: 700;
    white-space: nowrap;
}

#sector-postals .table-actions {
    white-space: nowrap;
}

#sector-postals .table-actions form {
    display: inline;
}

.admin-form-actions .button {
    min-width: 10rem;
}

.admin-panel__header:has(.admin-language-tabs) {
    flex-wrap: wrap;
    align-items: flex-end;
}

.admin-language-tabs {
    display: flex;
    flex: 0 0 auto;
    gap: .35rem;
    margin: 0;
    padding: .3rem;
    background: #e7ebf2;
    border-radius: .7rem;
}

.admin-language-tabs [data-locale-tab] {
    flex: 0 0 auto;
    border: 0;
    padding: .55rem 1.05rem;
    color: #35466a;
    background: transparent;
    font: inherit;
    font-weight: 800;
    border-radius: .5rem;
    cursor: pointer;
}

.admin-language-tabs [data-locale-tab]:hover:not(.is-active):not([aria-selected="true"]) {
    color: #081a36;
}

.admin-language-tabs [data-locale-tab]:focus-visible {
    outline: 2px solid #081a36;
    outline-offset: 2px;
}

.admin-language-tabs [data-locale-tab].is-active,
.admin-language-tabs [data-locale-tab][aria-selected="true"] {
    color: #fff;
    background: #081a36;
}

[data-language-tabs][data-active-locale="fr"] [data-locale-panel="en"],
[data-language-tabs][data-active-locale="en"] [data-locale-panel="fr"] {
    display: none;
}

.admin-page-header__status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.admin-corrections-dialog {
    width: min(34rem, calc(100vw - 2rem));
    padding: 1.5rem 1.5rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.admin-corrections-dialog::backdrop {
    background: rgba(8, 26, 54, .45);
}

.admin-corrections-dialog h2 {
    margin: 0 0 .45rem;
    font-size: 1.35rem;
}

.admin-corrections-dialog p {
    margin: 0 0 1rem;
    color: var(--muted);
}

.admin-corrections-dialog textarea {
    width: 100%;
    min-height: 8rem;
    resize: vertical;
}

.admin-corrections-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 1rem;
}

.temporary-password-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    border-left: 4px solid var(--blue);
}

.temporary-password-panel h2,
.temporary-password-panel p:last-child {
    margin-bottom: .35rem;
}

.temporary-password-value {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .75rem;
    background: var(--soft);
}

.temporary-password-value code {
    font-size: 1rem;
    font-weight: 800;
}

.point-delta--positive {
    color: #146240;
    font-weight: 800;
}

.point-delta--negative {
    color: #861825;
    font-weight: 800;
}

.form-alert {
    padding: .9rem 1rem;
    margin-bottom: 1rem;
}

.form-alert--error {
    border-left: 4px solid var(--error);
    color: #75131e;
    background: #fff0f2;
}

.admin-theme-table {
    min-width: 64rem;
}

.admin-theme-thumb {
    display: grid;
    width: 6rem;
    aspect-ratio: 612 / 378;
    place-items: center;
    overflow: hidden;
    color: var(--white);
    background: var(--navy);
    font-size: .65rem;
    font-weight: 900;
}

.admin-theme-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.theme-editor {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 20rem;
    align-items: start;
    gap: 1.5rem;
}

.theme-editor__config {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(7rem, .5fr);
    gap: 1rem;
}

.theme-editor .field {
    margin-bottom: 1.25rem;
}

.theme-editor .field > small {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-size: .75rem;
}

.theme-editor input[type="color"] {
    min-height: 3.15rem;
    padding: .3rem;
}

.theme-translation textarea {
    min-height: 9rem;
    font-family: inherit;
}

.theme-cover-preview,
.theme-cover-placeholder {
    width: 100%;
    aspect-ratio: 612 / 378;
    margin-bottom: 1rem;
}

.theme-cover-preview {
    display: block;
    object-fit: cover;
}

.theme-cover-placeholder {
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--navy);
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.theme-cover-remove {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .8rem;
    margin: -1rem 0 1rem;
    color: var(--navy);
    background: var(--soft);
    font-size: .8rem;
    font-weight: 700;
}

.theme-cover-remove input {
    width: auto;
    min-height: 0;
}

.theme-editor__side {
    position: sticky;
    top: 5.5rem;
}

.theme-editor__actions {
    display: grid;
    gap: 1rem;
}

.theme-editor__actions .button {
    width: 100%;
}

.form-summary {
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border-left: 4px solid var(--error);
    color: #75131e;
    background: #fff0f2;
}

.form-summary p {
    margin: .25rem 0 0;
}

.admin-auth-body {
    min-height: 100vh;
    background: var(--soft);
}

.admin-auth-language {
    position: absolute;
    z-index: 5;
    top: 1rem;
    right: 1.25rem;
    margin: 0;
}

.admin-auth-language .language-link {
    color: var(--navy);
    font-size: .85rem;
}

.admin-auth-flash {
    position: fixed;
    z-index: 10;
    top: 1rem;
    left: 50%;
    width: min(calc(100% - 2rem), 35rem);
    padding: 0;
    transform: translateX(-50%);
}

.admin-login {
    display: grid;
    min-height: 100vh;
    grid-template-columns: 1.15fr .85fr;
}

.admin-login__brand {
    position: relative;
    display: grid;
    overflow: hidden;
    padding: clamp(2rem, 7vw, 7rem);
    place-items: center;
    color: var(--white);
    background: var(--navy);
}

.admin-login__brand::after {
    position: absolute;
    right: -10rem;
    bottom: -10rem;
    width: 35rem;
    height: 35rem;
    border: 6rem solid rgba(255, 255, 255, .04);
    border-radius: 50%;
    content: "";
}

.admin-login__brand > div {
    position: relative;
    z-index: 2;
    max-width: 37rem;
}

.brand-mark--large {
    width: 5.5rem;
    height: 5.5rem;
    margin-bottom: 3rem;
}

.admin-login__brand h1 {
    color: var(--white);
}

.admin-login__brand p:last-child {
    max-width: 35rem;
    color: #bac9de;
    font-size: 1.1rem;
}

.admin-login__form {
    display: grid;
    padding: 2rem;
    place-items: center;
}

.admin-login__form form {
    width: min(100%, 25rem);
}

.admin-login__form h2 {
    margin-bottom: .8rem;
    font-size: 2.8rem;
}

.admin-login__form form > p:not(.eyebrow) {
    margin-bottom: 2rem;
    color: var(--muted);
}

.admin-login__form .field {
    margin-bottom: 1rem;
}

.admin-login__form .back-link {
    display: block;
    width: fit-content;
    margin-top: 1.5rem;
    font-size: .82rem;
}

.advertiser-login.advertiser-login--apply {
    grid-template-columns: minmax(16rem, .9fr) minmax(0, 1.15fr);
}

.advertiser-login.advertiser-login--apply .admin-login__brand {
    align-items: start;
}

.advertiser-login.advertiser-login--apply .admin-login__brand > div {
    position: sticky;
    top: 2rem;
}

.advertiser-login .admin-login__form {
    min-height: 0;
}

.advertiser-login.advertiser-login--apply .admin-login__form {
    align-items: start;
    justify-items: stretch;
    padding: 2.5rem clamp(1.25rem, 3vw, 2.75rem);
}

.advertiser-login__apply {
    width: min(100%, 46rem);
    margin-inline: auto;
}

.advertiser-login .admin-login__form .advertiser-login__apply form {
    width: 100%;
}

.advertiser-login__apply .form-title-row {
    margin-bottom: 1.5rem;
}

.advertiser-login__apply fieldset {
    min-width: 0;
    padding: 0 0 2rem;
    margin: 0 0 2rem;
    border: 0;
    border-bottom: 1px solid var(--line);
}

.advertiser-login__apply legend {
    width: 100%;
    margin-bottom: 1.5rem;
    color: var(--navy);
    font-family: "Arial Narrow", Impact, sans-serif;
    font-size: 1.5rem;
    font-weight: 800;
}

.advertiser-login__apply legend span {
    display: inline-grid;
    width: 2.4rem;
    height: 2.4rem;
    margin-right: .8rem;
    place-items: center;
    border-radius: 50%;
    color: var(--white);
    background: var(--red);
    font-family: inherit;
    font-size: .8rem;
}

.admin-password-logout {
    margin-top: .75rem;
}

@media (max-width: 74rem) {
    .site-nav {
        gap: .1rem;
    }

    .site-nav a {
        font-size: .68rem;
        padding: .4rem .5rem;
    }

    .site-nav > a:not(.nav-cta):not(:first-child)::before,
    .site-nav > .nav-dropdown:not(:first-child)::before {
        height: .85rem;
    }

    .brand--footer .brand-copy small {
        display: none;
    }

    .theme-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .home-action-grid {
        grid-template-columns: 1fr 1.35fr;
    }

    .home-rabais {
        grid-column: 1 / -1;
        justify-content: flex-start;
        flex-direction: row;
        gap: 2rem;
        text-align: left;
    }

    .stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .campaign-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 62rem) {
    .nav-toggle {
        display: grid;
        place-items: center;
        background: var(--soft);
    }

    .nav-open .nav-toggle {
        background: #e7ebf2;
    }

    .site-header .site-nav {
        position: fixed;
        z-index: 100;
        inset: 4.5rem 0 0;
        display: none;
        max-height: none;
        align-items: stretch;
        flex-direction: column;
        gap: .28rem;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: .75rem 1rem max(1.15rem, env(safe-area-inset-bottom));
        border-top: 1px solid var(--line);
        background: #f4f6fb;
        box-shadow: none;
    }

    .nav-open .site-header .site-nav,
    .nav-open .site-nav {
        display: flex;
    }

    .site-nav > a:not(.nav-cta):not(:first-child)::before,
    .site-nav > .nav-dropdown:not(:first-child)::before {
        display: none;
    }

    .site-header .site-nav > a,
    .site-header .site-nav .nav-dropdown summary {
        min-height: 3.05rem;
        padding: .85rem 1rem;
        border: 0;
        border-bottom: 0;
        border-radius: .85rem;
        background: transparent;
        font-size: .92rem;
        font-weight: 800;
        letter-spacing: .04em;
    }

    .site-header .site-nav a::after {
        display: none;
    }

    .site-header .site-nav > a:not(.nav-cta):hover,
    .site-header .site-nav > a:not(.nav-cta):focus-visible,
    .site-header .site-nav .nav-dropdown summary:hover,
    .site-header .site-nav .nav-dropdown summary:focus-visible {
        background: #fff;
        color: var(--navy);
    }

    .site-header .site-nav > a[aria-current="page"]:not(.nav-cta),
    .site-header .site-nav .nav-dropdown[data-active="true"] > summary {
        background: #fff;
        color: var(--red);
        box-shadow: 0 8px 20px rgba(8, 26, 54, .06);
    }

    .site-header .site-nav .nav-dropdown {
        width: 100%;
    }

    .site-header .site-nav .nav-dropdown summary {
        justify-content: space-between;
        width: 100%;
        box-shadow: none;
    }

    .site-header .site-nav .nav-dropdown summary::after {
        width: .42rem;
        height: .42rem;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        color: var(--muted);
        content: "";
        font-size: 0;
        transform: translateY(-2px) rotate(45deg);
        transition: transform .18s ease;
    }

    .site-header .site-nav .nav-dropdown[open] summary::after {
        transform: translateY(1px) rotate(225deg);
    }

    .site-header .site-nav > .nav-cta,
    .site-header .site-nav .nav-dropdown--cta summary.nav-cta {
        justify-content: center;
        width: 100%;
        min-height: 3.15rem;
        margin: .7rem 0 0;
        padding: .95rem 1.1rem;
        border: 0;
        border-radius: .9rem;
        color: var(--white);
        background: var(--red);
        box-shadow: 0 12px 24px rgba(226, 24, 43, .22);
        font-size: .84rem;
        letter-spacing: .08em;
        text-align: center;
    }

    .site-header .site-nav > .nav-cta:hover,
    .site-header .site-nav > .nav-cta:focus-visible,
    .site-header .site-nav .nav-dropdown--cta summary.nav-cta:hover,
    .site-header .site-nav .nav-dropdown--cta summary.nav-cta:focus-visible,
    .site-header .site-nav .nav-dropdown--cta[open] summary.nav-cta,
    .site-header .site-nav .nav-dropdown--cta[data-active="true"] > summary.nav-cta {
        color: var(--white);
        background: #c41224;
        box-shadow: 0 12px 24px rgba(226, 24, 43, .28);
    }

    .site-header .site-nav .nav-dropdown--cta {
        width: 100%;
        margin-top: .7rem;
        margin-left: 0;
    }

    .site-header .site-nav .nav-dropdown--cta summary.nav-cta {
        gap: .55rem;
    }

    .site-header .site-nav .nav-dropdown--cta summary.nav-cta::after {
        display: block;
        border-color: #fff;
        color: #fff;
    }

    .site-header .site-nav .nav-logout {
        display: block;
        margin: 0;
    }

    .site-header .site-nav .nav-logout .nav-cta {
        width: 100%;
    }

    .site-header .site-nav .nav-dropdown__menu .nav-logout {
        margin-top: 0;
    }

    .site-header .site-nav > .language-link {
        margin-top: auto;
        justify-content: center;
        min-height: 2.7rem;
        border: 1px solid #d5dce8;
        background: #fff;
        color: var(--navy);
        font-size: .78rem;
        letter-spacing: .12em;
        box-shadow: none;
    }

    .site-header .site-nav > .language-link:hover,
    .site-header .site-nav > .language-link:focus-visible {
        background: #fff;
        color: var(--blue);
    }

    .hero-grid,
    .theme-radius-filter__row {
        align-items: stretch;
        flex-direction: column;
    }

    .theme-radius-filter .button {
        width: 100%;
    }

    .theme-detail-grid,
    .advertiser-hero__grid {
        grid-template-columns: 1fr;
    }

    .home-hero__grid {
        grid-template-columns: 1fr;
    }

    .home-action-grid {
        grid-template-columns: 1fr;
        transform: translateY(-1.5rem);
    }

    .home-rabais {
        grid-column: auto;
    }

    .hero-copy {
        padding-bottom: 0;
    }

    .hero-visual {
        min-height: 25rem;
    }

    .mailbox {
        right: 10%;
    }

    .contest-card {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .advertiser-band__grid,
    .newsletter-grid {
        grid-template-columns: 1fr 1.4fr;
        gap: 3rem;
    }

    .advertiser-logout {
        margin: 1rem 0 0;
    }

    .advertiser-logout button {
        width: 100%;
    }

    .ad-shape__page {
        left: 2rem;
        width: 13rem;
        height: 18rem;
    }

    .split-section {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }

    .admin-sidebar {
        transform: translateX(-100%);
        transition: transform .2s ease;
    }

    .admin-nav-open .admin-sidebar {
        transform: translateX(0);
    }

    .admin-shell {
        margin-left: 0;
    }

    .admin-topbar {
        justify-content: space-between;
    }

    .admin-nav-toggle {
        display: block;
        border: 0;
        background: transparent;
        font-size: 1.4rem;
    }

    .admin-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .merchant-record__summary {
        grid-template-columns: 7rem minmax(12rem, 1.25fr) minmax(12rem, 1fr) auto;
    }

    .merchant-record__location {
        display: none;
    }

    .merchant-record__body {
        grid-template-columns: 1fr;
    }

    .merchant-record__workflow {
        border-top: 1px solid #d9e0ea;
        border-left: 0;
    }

    .theme-editor {
        grid-template-columns: 1fr;
    }

    .theme-editor__side {
        position: static;
    }

    .admin-login {
        grid-template-columns: 1fr;
    }

    .admin-login__brand {
        display: none;
    }

    .advertiser-login .admin-login__brand {
        display: grid;
        min-height: 0;
        padding: 2.5rem 1.5rem 2rem;
    }

    body:has(.advertiser-login) .admin-auth-language .language-link {
        color: var(--white);
    }

    .advertiser-login.advertiser-login--apply,
    .advertiser-login.advertiser-login--apply .admin-login__brand {
        grid-template-columns: 1fr;
        align-items: center;
    }

    .advertiser-login.advertiser-login--apply .admin-login__brand > div {
        position: static;
    }
}

@media (max-width: 46rem) {
    .account-choice__grid {
        grid-template-columns: 1fr;
    }

    .account-card > p:not(.eyebrow) {
        min-height: 0;
    }

    .account-dashboard__header,
    .account-entry-list article {
        align-items: flex-start;
        flex-direction: column;
    }

    .account-entry-list article > div:last-child {
        justify-items: start;
        text-align: left;
    }

    .container {
        width: min(100% - 1.5rem, 78rem);
    }

    .header-inner {
        min-height: 4.5rem;
    }

    .site-nav {
        inset-block-start: 4.5rem;
        max-height: calc(100vh - 4.5rem);
    }

    .brand-mark {
        width: 3.6rem;
        height: 3.6rem;
    }

    .brand-copy strong {
        font-size: 1.2rem;
    }

    .hero {
        padding-top: 3rem;
    }

    .home-hero__copy h1 {
        font-size: clamp(2.15rem, 9vw, 3.1rem);
    }

    .home-action-grid {
        margin-bottom: 2.5rem;
    }

    .home-rabais {
        flex-direction: column;
        text-align: center;
    }

    .hero-copy h1 {
        font-size: clamp(3rem, 14vw, 4.5rem);
    }

    .hero-steps {
        align-items: flex-start;
        flex-direction: column;
    }

    .hero-visual {
        min-height: 20rem;
    }

    .mailbox {
        right: 0;
        width: 92%;
        height: 12rem;
    }

    .mailbox::before {
        height: 4rem;
        bottom: -4rem;
    }

    .guide {
        top: 1.5rem;
        left: 29%;
        width: 9rem;
        height: 12rem;
        padding: 1rem;
    }

    .guide strong {
        font-size: 2.5rem;
    }

    .mailbox-flag {
        height: 6rem;
    }

    .contest-card {
        width: 100%;
        padding: 1.5rem;
        transform: none;
    }

    .code-input-group,
    .inline-form {
        align-items: stretch;
        flex-direction: column;
        gap: .5rem;
    }

    .themes-showcase {
        padding-top: 5rem;
    }

    .section-heading,
    .home-theme-heading,
    .editorial-grid,
    .legal-document__layout,
    .advertiser-band__grid,
    .newsletter-grid,
    .advertiser-hero__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .legal-toc {
        position: static;
    }

    .legal-meta span {
        display: block;
        min-width: 0;
        margin: 0 0 .15rem;
    }

    .home-theme-heading > p {
        justify-self: start;
    }

    .section-heading > div:last-child {
        justify-self: start;
    }

    .theme-grid,
    .theme-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .theme-card__body {
        padding: 1rem;
    }

    .theme-card__actions {
        padding: 0 1rem 1rem;
    }

    .theme-card__body p {
        display: none;
    }

    .theme-card__body .text-link {
        display: block;
        margin-top: .75rem;
    }

    .ad-shape {
        min-height: 18rem;
    }

    .ad-shape__page {
        left: 25%;
        width: 11rem;
        height: 15rem;
        padding: 1rem;
    }

    .ad-shape__page--back {
        left: 15%;
    }

    .ad-shape__page strong {
        font-size: 1.6rem;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-grid > div:first-child {
        grid-column: 1 / -1;
    }

    .theme-detail-grid {
        gap: 3rem;
    }

    .theme-cover--large {
        width: 100%;
        justify-self: center;
    }

    .schedule-cards {
        grid-template-columns: 1fr;
    }

    .form-shell {
        width: 100%;
        padding: 1.25rem;
    }

    .form-grid {
        grid-template-columns: 1fr;
    }

    .field--wide {
        grid-column: auto;
    }

    .form-actions,
    .form-title-row,
    .admin-page-header--row,
    .admin-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-form-actions .button {
        width: 100%;
        min-width: 0;
    }

    .merchant-page-header,
    .merchant-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .merchant-page-header .button {
        width: 100%;
    }

    .merchant-status-filter {
        grid-template-columns: 1fr;
    }

    .form-actions .button {
        width: 100%;
    }

    .advertiser-benefits {
        margin-top: 1rem;
    }

    .stat-grid,
    .campaign-grid,
    .import-preview,
    .admin-two-column,
    .advertiser-home__grid,
    .sector-postal-tools,
    .sector-postal-add,
    .sector-postal-import,
    .sector-postal-search {
        grid-template-columns: 1fr;
    }

    .sector-postal-fields {
        grid-template-columns: 1fr;
    }

    .advertiser-home__intro,
    .advertiser-section-head,
    .advertiser-card__head,
    .merchant-locations__intro {
        align-items: stretch;
        flex-direction: column;
    }

    .advertiser-pub-list li,
    .advertiser-campaign-list li {
        grid-template-columns: 1fr;
        gap: .2rem;
    }

    .advertiser-campaign-list__action {
        justify-self: start;
        margin-top: .35rem;
    }

    .merchant-sheet__panel {
        top: auto;
        right: 0;
        left: 0;
        width: 100%;
        height: min(90vh, 40rem);
        border-radius: 1rem 1rem 0 0;
    }

    .admin-content {
        padding: 1rem;
    }

    .admin-flash {
        padding-inline: 1rem;
    }

    .admin-search {
        min-width: 0;
    }

    .admin-search,
    .application-actions {
        flex-direction: column;
    }

    .consumer-filters,
    .consumer-summary-grid,
    .consumer-management-grid,
    .admin-field-grid {
        grid-template-columns: 1fr;
    }

    .consumer-filter-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .consumer-filter-actions .button {
        width: 100%;
    }

    .temporary-password-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .temporary-password-value {
        justify-content: space-between;
    }

    .application-actions {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .merchant-record__summary {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .8rem;
        padding: 1rem;
    }

    .merchant-record__status-line {
        grid-column: 1 / -1;
        align-items: center;
        justify-content: space-between;
        flex-direction: row;
    }

    .merchant-record__status-line time {
        width: auto;
    }

    .merchant-record__identity {
        grid-column: 1;
    }

    .merchant-record__contact {
        grid-column: 1 / -1;
        padding-top: .75rem;
        border-top: 1px solid var(--line);
    }

    .merchant-record__location {
        display: flex;
        grid-column: 1 / -1;
    }

    .merchant-record__toggle {
        grid-column: 2;
        grid-row: 2;
    }

    .merchant-record__details,
    .merchant-record__workflow {
        padding: 1rem;
    }

    .merchant-record__details dl {
        grid-template-columns: 1fr;
    }

    .application-theme-options {
        grid-template-columns: 1fr;
    }

    .settings-list article {
        grid-template-columns: 1fr;
        gap: .5rem;
    }

    .settings-list article > span {
        text-align: left;
    }

    .settings-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .theme-editor__config {
        grid-template-columns: 1fr;
    }

    .advertiser-portal-footer .container {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 30rem) {
    .theme-grid,
    .theme-choice-grid {
        grid-template-columns: 1fr;
    }

    .theme-cover > strong {
        font-size: 2rem;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* CarnetTop 2026 home direction and ClubTop */
[hidden] {
    display: none !important;
}

.site-header .header-inner {
    min-height: 5.75rem;
}

.site-header .brand-mark {
    width: 4.7rem;
    height: 4.7rem;
}

.site-header .site-nav {
    gap: .15rem;
}

.site-header .site-nav a {
    font-size: .72rem;
    padding: .4rem .62rem;
}

.site-header .site-nav .nav-cta {
    padding: .55rem .95rem;
}

.home-hero__copy a {
    font-weight: 600;
}

.home-action-grid {
    grid-template-columns: .82fr 1.3fr .78fr;
    margin-bottom: 1.25rem;
    transform: translateY(-2.5rem);
}

.home-theme-prompt,
.home-code-panel,
.home-rabais {
    padding: clamp(1.25rem, 2.25vw, 2rem);
}

.home-theme-prompt h2 {
    max-width: 9ch;
    margin-bottom: 1rem;
    font-size: clamp(2.35rem, 3.6vw, 3.65rem);
    line-height: .96;
}

.home-theme-prompt p:not(.eyebrow) {
    margin-bottom: .8rem;
    color: #fff;
    font-size: .95rem;
    line-height: 1.42;
}

.home-theme-prompt p:last-child {
    margin-bottom: 0;
    font-weight: 800;
}

.home-code-panel h2 {
    font-size: clamp(2rem, 3vw, 3rem);
}

.home-rabais__mark {
    width: 7.5rem;
    height: 7.5rem;
}

.theme-grid--home {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.home-theme-more {
    display: flex;
    justify-content: center;
    padding: 1.75rem 0 0;
}

.clubtop-intro {
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    color: inherit;
    background: var(--soft);
}

.clubtop-intro__grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: clamp(3rem, 7vw, 7rem);
}

.clubtop-intro h1,
.clubtop-intro h2 {
    color: var(--navy);
}

.clubtop-intro h1 {
    margin-bottom: 1.5rem;
}

.clubtop-free {
    display: block;
    margin: .75rem 0 0;
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 700;
    text-transform: uppercase;
}

.clubtop-intro__steps {
    display: grid;
    gap: 1rem;
}

.clubtop-intro__steps article {
    display: grid;
    grid-template-columns: 3rem 1fr;
    column-gap: 1rem;
    padding: 1.5rem;
    border: 1px solid var(--line);
    background: var(--soft);
}

.clubtop-intro__steps article > span {
    grid-row: 1 / 3;
    color: var(--red);
    font-weight: 900;
}

.clubtop-intro__steps h2 {
    margin-bottom: .35rem;
    font-size: 1.65rem;
}

.clubtop-intro__steps p {
    margin: 0;
    color: #526077;
}

.club-account-hero {
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    color: inherit;
    background: var(--soft);
}

.club-account-hero__grid {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 3rem;
}

.club-account-hero__aside {
    display: grid;
    justify-items: end;
    gap: 1.25rem;
}

.club-companion {
    min-width: min(100%, 16rem);
}

.club-companion__video {
    display: block;
    width: 100%;
    max-width: 16rem;
    margin-bottom: .65rem;
    border: 1px solid rgba(255, 255, 255, .24);
    background: #000;
}

.club-companion p {
    margin: 0 0 .35rem;
    color: #fff;
}

.club-companion .text-link {
    color: #fff;
}

.companion-page {
    padding: clamp(1.25rem, 3vw, 2.25rem) 0 clamp(3rem, 6vw, 5rem);
    background: #fff;
}

.companion-page__inner {
    max-width: 72rem;
}

.companion-page__header {
    display: grid;
    justify-items: end;
    gap: 1.5rem 2rem;
    align-items: start;
    margin-bottom: 2rem;
}

.companion-page__informed {
    max-width: 38rem;
    margin: 0 0 1.5rem;
    color: #1a1a1a;
    font-size: clamp(1.28rem, 2.4vw, 1.75rem);
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1.28;
}

.companion-page__informed strong {
    font-weight: 800;
}

.companion-page__informed a {
    color: inherit;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: .16em;
}

.companion-page__informed a:hover,
.companion-page__informed a:focus-visible {
    color: var(--red);
}

.companion-page__toptop {
    margin: 0 0 1.5rem;
}

.companion-page__toptop a {
    color: var(--navy);
    font-size: 1.35rem;
    font-weight: 850;
    letter-spacing: -.02em;
    text-decoration: underline;
    text-underline-offset: .16em;
}

.companion-page__toptop a:hover,
.companion-page__toptop a:focus-visible {
    color: var(--red);
}

.companion-page__choose {
    margin: 2rem 0 1.15rem;
}

.companion-page__choose h2 {
    margin: 0 0 .35rem;
    color: var(--navy);
    font-size: clamp(1.55rem, 3.2vw, 2.35rem);
    font-weight: 850;
    letter-spacing: -.03em;
    line-height: 1.12;
}

.companion-page__choose p {
    margin: 0;
    color: #222;
    font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.companion-page__intro h1 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin: 0 0 .65rem;
    color: var(--navy);
    font-size: clamp(1.85rem, 3.4vw, 2.7rem);
    font-style: italic;
    font-weight: 850;
    letter-spacing: -.04em;
    line-height: 1.05;
}

.companion-page__heart {
    color: #f0b429;
    font-style: normal;
}

.companion-page__intro p {
    max-width: 38rem;
    margin: 0;
    color: #5b6578;
    font-size: .98rem;
}

.companion-page__actions {
    display: grid;
    gap: .7rem;
    max-width: 22rem;
    margin: 0 0 2rem;
}

.companion-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 3.15rem;
    padding: .7rem 1rem;
    border: .12rem solid #081a36;
    border-radius: 999px;
    color: #fff;
    background: #081a36;
    font-size: .92rem;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
}

.companion-cta--ghost {
    color: #081a36;
    background: #fff;
}

.companion-cta__icon {
    display: inline-flex;
    flex: 0 0 auto;
}

.companion-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.companion-grid--informants {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 32rem;
}

.companion-grid--friends {
    max-width: 16rem;
}

.companion-card {
    display: grid;
    justify-items: center;
    gap: .7rem;
    padding: .65rem .65rem 1rem;
    border: 1px solid #e6ebf2;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(8, 26, 54, .06);
    cursor: pointer;
}

.companion-card:has(:checked),
.companion-card:focus-within {
    border-color: #081a36;
}

.companion-card__photo {
    display: block;
    align-self: start;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    background: #edf1f6;
}

.companion-card--friend .companion-card__photo {
    border-radius: .45rem;
}

.companion-card__photo--empty {
    background: linear-gradient(180deg, #e8eef6, #d5dde8);
}

.companion-card strong {
    color: var(--navy);
    font-size: .92rem;
    font-weight: 750;
}

.companion-card input {
    appearance: none;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0;
    border: .12rem solid #9aa6b8;
    border-radius: 50%;
    background: #fff;
}

.companion-card input:checked {
    border-color: #081a36;
    box-shadow: inset 0 0 0 .28rem #081a36;
}

.companion-page__note {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin: 0;
    color: #6a7384;
    font-size: .92rem;
    font-style: italic;
    text-align: center;
}

.companion-page__note span {
    color: #f0b429;
    font-style: normal;
}

.club-account-hero h1 {
    max-width: 22ch;
    margin-bottom: .75rem;
    color: var(--navy);
    font-size: clamp(2.1rem, 4vw, 3.25rem);
}

.club-account-hero p:not(.eyebrow) {
    max-width: 43rem;
    margin: 0;
    color: #526077;
    font-size: 1.05rem;
}

.club-account-hero .text-link {
    color: var(--red);
}

.club-point-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(7rem, 1fr));
    min-width: min(100%, 30rem);
    margin: 0;
    border: 1px solid var(--line);
    background: var(--soft);
}

.club-point-summary div {
    padding: 1.25rem;
    text-align: center;
}

.club-point-summary div + div {
    border-left: 1px solid var(--line);
}

.club-point-summary dt {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.club-point-summary dd {
    margin: .25rem 0 0;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: 2rem;
    font-weight: 900;
}

.club-point-summary--page {
    max-width: 32rem;
    margin: 0 0 2rem;
}

.club-point-summary--hero {
    grid-template-columns: repeat(2, minmax(7rem, 1fr));
    min-width: 16.5rem;
    background: #fff;
}

.club-account-section {
    padding-top: 2.5rem;
}

.club-account-nav {
    display: flex;
    gap: .35rem;
    margin-bottom: 3rem;
    padding: .4rem;
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 8px 25px rgba(8, 26, 54, .06);
}

.club-account-nav a {
    padding: .8rem 1rem;
    color: var(--navy);
    font-size: .78rem;
    font-weight: 850;
    text-decoration: none;
    text-transform: uppercase;
}

.club-account-nav a[aria-current="page"] {
    color: #fff;
    background: var(--navy);
}

.club-dashboard-actions,
.club-survey-grid,
.club-offer-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.club-dashboard-actions {
    margin-bottom: 4rem;
}

.club-dashboard-actions > a {
    min-height: 14rem;
    padding: 2rem;
    border: 1px solid var(--line);
    color: inherit;
    background: #fff;
    box-shadow: 0 12px 30px rgba(8, 26, 54, .08);
    text-decoration: none;
}

.club-dashboard-actions > a:nth-child(2) {
    color: #fff;
    border-color: var(--red);
    background: var(--red);
}

.club-dashboard-actions > a:nth-child(2) h2,
.club-dashboard-actions > a:nth-child(2) .eyebrow {
    color: #fff;
}

.club-dashboard-actions h2 {
    margin: .6rem 0 2.5rem;
}

.club-account-logout {
    margin-top: 2rem;
    text-align: right;
}

.club-survey-card {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    min-height: 22rem;
    padding: 2rem;
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 12px 35px rgba(8, 26, 54, .08);
}

.club-survey-card--done {
    background: #f6f8fb;
}

.club-survey-card h3 {
    font-size: 2.1rem;
}

.club-survey-card > p:not(.eyebrow) {
    color: var(--muted);
}

.club-survey-card dl {
    display: flex;
    gap: 2rem;
    width: 100%;
    margin: auto 0 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.club-survey-card dl div {
    display: flex;
    flex-direction: column;
}

.club-survey-card dt {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
}

.club-survey-card dd {
    margin: .15rem 0 0;
    color: var(--navy);
    font-size: 1.2rem;
    font-weight: 900;
}

.club-complete-label,
.club-points-needed {
    display: inline-flex;
    margin-top: auto;
    padding: .65rem .8rem;
    color: var(--success);
    background: #e8f5ef;
    font-size: .8rem;
    font-weight: 850;
}

.club-points-needed {
    color: #865c00;
    background: #fff4d5;
}

.club-poll-shell {
    max-width: 62rem;
    padding-bottom: 6rem;
}

.club-poll-question {
    margin: 0 0 1.5rem;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 14px 35px rgba(8, 26, 54, .08);
}

.club-poll-question legend {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    max-width: 100%;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.35rem, 2.4vw, 2.05rem);
    font-weight: 850;
    line-height: 1.15;
}

.club-poll-question legend span {
    color: var(--red);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: .72rem;
    letter-spacing: .08em;
}

.club-question-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    margin: 1rem 0;
    color: var(--muted);
}

.club-question-meta strong {
    color: var(--red);
}

.club-expert-link {
    display: inline-block;
    margin-bottom: 1.25rem;
    color: var(--blue);
    font-weight: 800;
}

.club-answer-options {
    display: grid;
    gap: .65rem;
}

.club-answer-options label {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--line);
    cursor: pointer;
}

.club-answer-options label:has(input:checked) {
    border-color: var(--blue);
    background: #eef5ff;
}

.club-answer-options input {
    width: 1.15rem;
    height: 1.15rem;
    accent-color: var(--red);
}

.club-poll-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.5rem;
    color: #fff;
    background: var(--navy);
}

.club-poll-submit p {
    max-width: 37rem;
    margin: 0;
    color: #d7e2f2;
}

.club-theme-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}

.club-theme-filter label {
    color: var(--navy);
    font-size: .76rem;
    font-weight: 850;
    text-transform: uppercase;
}

.club-theme-filter select {
    min-width: 16rem;
    padding: .75rem;
    border: 1px solid var(--line);
    background: #fff;
}

.club-distance-filter {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 16rem;
    flex: 1 1 16rem;
}

.club-distance-filter input[type="range"] {
    flex: 1 1 auto;
    min-width: 8rem;
    accent-color: var(--navy);
}

.club-distance-filter__value {
    min-width: 3.5rem;
    color: var(--navy);
    font-size: .86rem;
    font-weight: 800;
    white-space: nowrap;
}

.club-offer-grid {
    align-items: start;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.club-offer-grid .club-offer-card__body {
    padding: 1.15rem 1.2rem 1.35rem;
}

.club-offer-grid .club-offer-card__body h2 {
    font-size: 1.45rem;
}

.club-offer-grid .club-offer-card__sale-price,
.club-offer-grid .merchant-price__sale {
    font-size: 1.35rem;
}

.club-offer-card {
    overflow: visible;
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 14px 35px rgba(8, 26, 54, .09);
}

.club-offer-card__image {
    position: relative;
    display: grid;
    aspect-ratio: 1 / 1;
    place-items: center;
    overflow: hidden;
    color: #fff;
    background: transparent;
    font-size: 2rem;
    font-weight: 900;
    text-transform: uppercase;
}

.club-offer-card__image img:not(.club-offer-card__badge):not(.promo-badge__img) {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.club-offer-card__image .image-lightbox-trigger {
    position: absolute;
    inset: 0;
}

.club-offer-card__badge {
    position: absolute;
    top: -.2rem;
    right: -.35rem;
    z-index: 2;
    width: 8.25rem;
    aspect-ratio: 212 / 199;
    height: auto;
    overflow: hidden;
    pointer-events: none;
}

.promo-badge {
    overflow: hidden;
}

.promo-badge__img {
    position: absolute;
    max-width: none;
    object-fit: fill;
    pointer-events: none;
}

.club-offer-card__body {
    padding: 1.5rem;
}

.club-offer-card__body h2 {
    margin-bottom: .35rem;
    font-size: 2rem;
}

.club-merchant-name {
    display: block;
    margin-bottom: 1rem;
    color: var(--blue);
}

.club-offer-card__pricing {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .4rem .8rem;
    margin: .75rem 0;
}

.club-offer-card__regular-price {
    color: var(--muted);
    font-size: 1.05rem;
    text-decoration: line-through;
}

.club-offer-card__sale-price {
    color: var(--red);
    font-size: 1.75rem;
    font-weight: 900;
}

.club-offer-card__sponsored {
    margin: .45rem 0 .1rem;
}

.club-offer-card__sponsored-label {
    margin: 0 0 .35rem;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.club-offer-card__supplier-logos {
    --supplier-logo-gap: .25rem;
    --supplier-logo-max-width: 5.5rem;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: var(--supplier-logo-gap);
    margin: 0;
}

.club-offer-card__supplier-logos img {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: min(var(--supplier-logo-max-width), calc((100% - 2 * var(--supplier-logo-gap)) / 3));
    height: auto;
    aspect-ratio: 2 / 1;
    padding: 0;
    border: 1px solid var(--line);
    background: #111;
    object-fit: cover;
    object-position: center;
}

.club-offer-card__supplier-logos--rtl {
    flex-direction: row-reverse;
    justify-content: flex-start;
}

.club-offer-card__supplier-logos--rtl img {
    flex: 0 1 auto;
    width: min(var(--supplier-logo-max-width), calc((100% - 2 * var(--supplier-logo-gap)) / 3));
}

.club-offer-cost {
    margin: 1.25rem 0 .75rem;
    color: var(--red);
    font-size: 1.4rem;
    font-weight: 900;
}

.club-offer-card details {
    margin: 1rem 0;
    color: var(--muted);
}

.club-redemption-heading {
    margin-top: 5rem;
}

.club-redemption-list,
.merchant-offer-list {
    display: grid;
    gap: .75rem;
}

.club-redemption-list article,
.merchant-offer-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1.25rem;
    border: 1px solid var(--line);
    background: #fff;
}

.club-redemption-list article > div,
.merchant-offer-list article > div {
    display: flex;
    flex-direction: column;
}

.club-redemption-list article > div:last-child {
    align-items: flex-end;
}

.advertiser-offer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.merchant-offer-list article {
    display: grid;
    grid-template-columns: 1fr auto auto;
}

.merchant-offer-list dl {
    display: flex;
    gap: 2rem;
    margin: 0;
}

.merchant-offer-list dl div {
    text-align: center;
}

.merchant-offer-list dt {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.merchant-offer-list dd {
    margin: 0;
    color: var(--navy);
    font-weight: 900;
}

.admin-sidebar {
    overflow-y: auto;
}

.admin-notice {
    margin-bottom: 1.5rem;
    padding: 1rem 1.25rem;
    border-left: 4px solid #d49a00;
    background: #fff6d8;
}

.admin-panel__header--actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.club-question-editor-list {
    display: grid;
    gap: 1.5rem;
}

.club-question-editor {
    padding: 1.25rem;
    border: 1px solid var(--line);
    background: #f8fafc;
}

.club-question-editor > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.club-question-editor > header strong {
    color: var(--navy);
    font-size: 1.25rem;
}

.club-question-editor > header button {
    border: 0;
    color: var(--error);
    background: transparent;
    cursor: pointer;
    font-size: .78rem;
    font-weight: 800;
}

.club-question-editor h3 {
    font-size: 1.35rem;
}

.club-question-editor .merchant-question-options {
    margin-top: 1rem;
}

.club-question-editor [data-add-question-option] {
    margin-top: .25rem;
}

.club-option-editor {
    margin-top: 1.25rem;
}

.club-option-editor h3 {
    font-size: 1.35rem;
}

.club-option-editor__row {
    display: grid;
    grid-template-columns: 9rem 1fr 1fr;
    gap: .75rem;
    margin-bottom: .65rem;
}

.club-option-editor__row--with-points {
    grid-template-columns: 9rem minmax(0, 1.2fr) minmax(0, 1.2fr) 7rem;
    align-items: center;
}

.club-option-editor__row input[type="text"],
.club-option-editor__row input[type="number"],
.club-option-editor__row select {
    width: 100%;
    padding: .75rem;
    border: 1px solid var(--line);
    background: #fff;
}

.club-option-points {
    display: grid;
    gap: .25rem;
    color: var(--navy);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.club-option-editor__row .field-error {
    grid-column: 2 / -1;
}

.correct-answer {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--success);
    font-size: .75rem;
    font-weight: 850;
}

.admin-offer-preview {
    width: min(100%, 25rem);
    height: auto;
    margin-bottom: 1rem;
    border: 1px solid var(--line);
}

.redemption-action-form {
    display: grid;
    grid-template-columns: minmax(10rem, 1fr) auto auto;
    gap: .4rem;
    min-width: 28rem;
}

.redemption-action-form input {
    min-width: 0;
    padding: .55rem;
    border: 1px solid var(--line);
}

.badge--submitted,
.badge--instructions_sent,
.badge--requested {
    color: #775300;
    background: #fff1c7;
}

.badge--merchant_confirmed,
.badge--pickup_confirmed,
.badge--shipped {
    color: var(--success);
    background: #dff4e9;
}

.badge--awaiting_shipment {
    color: #775300;
    background: #fff1c7;
}

.badge--needs_changes,
.badge--cancelled {
    color: var(--error);
    background: #fde7e9;
}

@media (max-width: 74rem) {
    .site-header .site-nav {
        gap: .1rem;
    }

    .site-header .site-nav a {
        font-size: .63rem;
    }

    .site-header .brand-copy strong {
        font-size: 1.2rem;
    }

    .site-header .brand-copy small {
        font-size: 1.05rem;
    }

    .home-action-grid {
        grid-template-columns: 1fr 1.35fr;
    }

    .home-rabais {
        grid-column: 1 / -1;
    }

    .theme-grid--home {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .club-account-hero__grid {
        grid-template-columns: 1fr;
    }

    .club-offer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 62rem) {
    .site-header .header-inner {
        min-height: 4.5rem;
    }

    .site-header .site-nav {
        inset: 4.5rem 0 0;
        max-height: none;
        gap: .28rem;
    }

    .site-header .site-nav > a,
    .site-header .site-nav .nav-dropdown summary {
        min-height: 3.05rem;
        padding: .85rem 1rem;
        font-size: .92rem;
    }

    .site-header .site-nav > .nav-cta,
    .site-header .site-nav .nav-dropdown--cta summary.nav-cta {
        min-height: 3.15rem;
        padding: .95rem 1.1rem;
        font-size: .84rem;
    }

    .site-header .site-nav > .language-link {
        min-height: 2.7rem;
        padding: .75rem 1rem;
        font-size: .78rem;
    }

    .site-header .site-nav .nav-dropdown__menu a {
        padding: .7rem .95rem;
        font-size: .84rem;
    }

    .home-hero__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .home-action-grid {
        grid-template-columns: 1fr;
    }

    .home-rabais {
        grid-column: auto;
    }

    .theme-grid--home {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .clubtop-intro__grid,
    .club-dashboard-actions,
    .club-survey-grid,
    .club-offer-grid {
        grid-template-columns: 1fr;
    }

    .page-hero__inner--offers,
    .page-hero__inner--with-points {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .page-hero__inner--with-points .member-home__points-slot {
        max-width: 24rem;
    }

    .club-point-summary--hero {
        width: 100%;
        max-width: 22rem;
    }

    .club-point-summary {
        width: 100%;
    }

    .club-poll-submit,
    .advertiser-offer-header {
        align-items: stretch;
        flex-direction: column;
    }

    .merchant-offer-list article {
        grid-template-columns: 1fr;
    }

    .club-option-editor__row,
    .club-option-editor__row--with-points {
        grid-template-columns: 1fr;
        padding: .75rem;
        border: 1px solid var(--line);
    }

    .club-option-editor__row .field-error {
        grid-column: 1;
    }

    .redemption-action-form {
        grid-template-columns: 1fr;
        min-width: 14rem;
    }
}

@media (max-width: 38rem) {
    .home-hero__copy h1 {
        max-width: none;
        font-size: clamp(2.05rem, 10vw, 2.85rem);
    }

    .theme-grid--home {
        grid-template-columns: 1fr;
    }

    .club-account-nav {
        align-items: stretch;
        flex-direction: column;
    }

    .club-point-summary {
        grid-template-columns: 1fr;
    }

    .club-point-summary div + div {
        border-top: 1px solid rgba(255, 255, 255, .2);
        border-left: 0;
    }

    .club-poll-submit {
        display: block;
    }

    .club-poll-submit p {
        margin-bottom: 1rem;
    }

    .club-theme-filter,
    .club-redemption-list article {
        align-items: stretch;
        flex-direction: column;
    }

    .club-theme-filter select,
    .club-distance-filter {
        min-width: 0;
        width: 100%;
    }
}

/* Top Point navigation */
.site-nav .nav-dropdown {
    position: relative;
}

.site-nav .nav-dropdown summary {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-height: 2.15rem;
    padding: .45rem .7rem;
    color: var(--navy);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .08em;
    list-style: none;
    text-transform: uppercase;
    border-radius: .3rem;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.site-nav .nav-dropdown summary:hover,
.site-nav .nav-dropdown summary:focus-visible,
.site-nav .nav-dropdown[open] summary,
.site-nav .nav-dropdown[data-active="true"] > summary {
    background: transparent;
}

.site-nav .nav-dropdown[data-active="true"] > summary {
    box-shadow: inset 0 -2px 0 var(--red);
}

.site-nav .nav-dropdown summary::-webkit-details-marker {
    display: none;
}

.site-nav .nav-dropdown summary::after {
    color: var(--blue);
    content: "\25BE";
    font-size: .72rem;
    transition: transform .18s ease;
}

.site-nav .nav-dropdown[open] summary::after {
    transform: rotate(180deg);
}

.site-nav .nav-dropdown[data-active="true"] > summary {
    color: var(--navy);
}

.nav-dropdown__menu {
    position: absolute;
    z-index: 210;
    top: 100%;
    left: 50%;
    display: none;
    width: max-content;
    min-width: 15rem;
    flex-direction: column;
    padding: .55rem;
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: 0 18px 40px rgba(8, 26, 54, .16);
    transform: translateX(-50%);
}

.nav-dropdown[open] .nav-dropdown__menu,
.nav-dropdown:hover .nav-dropdown__menu,
.nav-dropdown:focus-within .nav-dropdown__menu {
    display: flex;
}

.site-nav .nav-dropdown__menu a {
    padding: .8rem .9rem;
    border-bottom: 1px solid var(--line);
    font-size: .72rem;
    white-space: nowrap;
}

.site-nav .nav-dropdown__menu a:last-child {
    border-bottom: 0;
}

.site-nav .nav-dropdown__menu a::after {
    display: none;
}

.site-nav .nav-dropdown__menu a:hover,
.site-nav .nav-dropdown__menu a[aria-current="page"] {
    color: var(--blue);
    background: #f2f5ff;
}

.site-nav .nav-dropdown--cta {
    margin-left: .55rem;
}

.site-nav .nav-dropdown--cta .nav-dropdown__menu {
    left: auto;
    right: 0;
    transform: none;
}

.site-nav .nav-dropdown--cta summary.nav-cta {
    margin-left: 0;
    color: var(--white);
    background: var(--red);
    list-style: none;
    cursor: pointer;
    border: 0;
    font: inherit;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.site-nav .nav-dropdown--cta summary.nav-cta:hover,
.site-nav .nav-dropdown--cta summary.nav-cta:focus-visible,
.site-nav .nav-dropdown--cta[open] summary.nav-cta,
.site-nav .nav-dropdown--cta[data-active="true"] > summary.nav-cta {
    color: var(--white);
    background: #c41224;
    box-shadow: none;
}

.site-nav .nav-dropdown--cta summary.nav-cta::after {
    color: var(--white);
}

.site-nav .nav-dropdown__menu .nav-logout {
    display: block;
    margin: 0;
}

.site-nav .nav-dropdown__menu .nav-logout button {
    display: flex;
    width: 100%;
    padding: .8rem .9rem;
    border: 0;
    background: transparent;
    color: var(--navy);
    font: inherit;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
}

.site-nav .nav-dropdown__menu .nav-logout button:hover,
.site-nav .nav-dropdown__menu .nav-logout button:focus-visible {
    color: var(--blue);
    background: #f2f5ff;
}

/* Top Point history, offers, and merchant logos */
.top-points-page {
    min-height: 24rem;
    padding: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(4rem, 8vw, 6rem);
    background: #fff;
}

.top-points-page__inner {
    max-width: 72rem;
}

.top-points-ledger {
    margin: 0 0 clamp(2.5rem, 5vw, 4rem);
    border: 2px solid var(--navy);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(8, 26, 54, .06);
    scroll-margin-top: 5.5rem;
}

.top-points-ledger > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    padding: 1rem 1.15rem;
    list-style: none;
    cursor: pointer;
}

.top-points-ledger > summary::-webkit-details-marker {
    display: none;
}

.top-points-ledger > summary::after {
    width: .7rem;
    height: .7rem;
    margin-left: auto;
    border-right: 2px solid var(--navy);
    border-bottom: 2px solid var(--navy);
    transform: rotate(45deg) translateY(-.15rem);
    transition: transform .18s ease;
    content: "";
}

.top-points-ledger[open] > summary::after {
    transform: rotate(-135deg) translateY(-.1rem);
}

.top-points-ledger > summary:hover,
.top-points-ledger > summary:focus-visible {
    background: var(--soft);
}

.top-points-ledger__title {
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.top-points-history {
    padding: 0 1.15rem 1.25rem;
    border-top: 1px solid var(--line);
    background: #f7f9fc;
}

.top-points-history__list {
    display: grid;
    gap: .65rem;
    padding-top: 1rem;
}

.top-points-history__list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--line);
    background: #fff;
}

.top-points-history__list article > div {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
}

.top-points-history__list article > div:last-child {
    align-items: flex-end;
}

.top-points-history__list time,
.top-points-history__list span,
.top-points-history__list p {
    margin: 0;
    color: var(--muted);
    font-size: .78rem;
}

.top-points-history__list b {
    font-size: 1.25rem;
}

.top-points-history__list .is-positive {
    color: #187348;
}

.top-points-history__list .is-negative {
    color: var(--red);
}

.top-points-history__more {
    margin: 0;
    padding: 1rem 0 .15rem;
}

.top-points-history[aria-busy="true"] [data-history-more] {
    opacity: .6;
    pointer-events: none;
}

.top-points-spend,
.top-points-businesses {
    margin: 0 0 clamp(2.5rem, 5vw, 4rem);
}

.top-points-spend__intro {
    max-width: 42rem;
    margin: 0 0 1.5rem;
}

.top-points-spend__intro h2 {
    margin: 0 0 .4rem;
    color: var(--navy);
    font-size: clamp(1.55rem, 3.2vw, 2.35rem);
    line-height: 1.08;
}

.top-points-spend__intro p {
    margin: 0;
    color: #526077;
}

.top-points-more {
    margin: 1.35rem 0 0;
}

.top-points-more .text-link {
    color: var(--blue);
    font-size: 1.05rem;
    font-weight: 800;
}

.top-points-merchant-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.15rem;
}

.top-points-merchant {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: .85rem;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(8, 26, 54, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.top-points-merchant:hover,
.top-points-merchant:focus-visible {
    box-shadow: 0 14px 28px rgba(8, 26, 54, .12);
    transform: translateY(-.15rem);
}

.top-points-merchant__theme {
    display: block;
    overflow: hidden;
    padding: .45rem .7rem;
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.3;
    text-align: center;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.top-points-merchant__logo {
    display: flex;
    aspect-ratio: 1;
    align-items: center;
    justify-content: center;
    padding: 1.1rem;
    background: #f7f9fc;
}

.top-points-merchant__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.top-points-merchant__logo--empty {
    color: var(--muted);
}

.top-points-merchant__name {
    display: block;
    padding: .65rem .8rem .85rem;
    border-top: 1px solid var(--line);
    color: var(--navy);
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}

/* Top Point testimonials */
.top-testimonials-hero {
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    color: inherit;
    background: var(--soft);
}

.top-testimonials-hero h1 {
    max-width: 22ch;
    margin-bottom: .75rem;
    font-size: clamp(2.1rem, 4vw, 3.25rem);
    line-height: 1.04;
}

.top-testimonials-hero p:last-child {
    max-width: 45rem;
    margin: 0;
    color: #526077;
    font-size: 1.05rem;
}

.top-testimonials__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr);
    align-items: center;
    gap: clamp(2rem, 6vw, 6rem);
}

.top-testimonials__visual {
    margin: 0;
}

.top-testimonials__visual img {
    display: block;
    width: 100%;
    height: auto;
}

.top-testimonials__stories {
    display: grid;
    gap: 1.25rem;
}

.top-testimonials__stories article {
    padding: clamp(1.25rem, 3vw, 2rem);
    border-left: .3rem solid var(--red);
    background: #f3f5f8;
}

.top-testimonials__stories article p {
    margin: 0 0 .75rem;
    color: var(--navy);
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    font-weight: 750;
}

.top-testimonials__stories .button {
    justify-self: start;
}

@media (max-width: 62rem) {
    .site-header .site-nav .nav-dropdown {
        width: 100%;
    }

    .site-header .site-nav .nav-dropdown:not([open]) .nav-dropdown__menu {
        display: none;
    }

    .site-header .site-nav .nav-dropdown[open] .nav-dropdown__menu {
        display: flex;
        gap: .15rem;
    }

    .site-header .site-nav .nav-dropdown__menu {
        position: static;
        width: 100%;
        min-width: 0;
        margin: .1rem 0 .25rem;
        padding: .3rem;
        border: 0;
        border-radius: .85rem;
        background: #fff;
        box-shadow: 0 8px 20px rgba(8, 26, 54, .06);
        transform: none;
    }

    .site-header .site-nav .nav-dropdown--cta .nav-dropdown__menu {
        left: auto;
        right: auto;
        transform: none;
    }

    .site-header .site-nav .nav-dropdown__menu a {
        min-height: 2.55rem;
        padding: .7rem .95rem;
        border: 0;
        border-radius: .65rem;
        font-size: .84rem;
        letter-spacing: .03em;
        white-space: normal;
    }

    .site-header .site-nav .nav-dropdown__menu a:hover,
    .site-header .site-nav .nav-dropdown__menu a:focus-visible,
    .site-header .site-nav .nav-dropdown__menu a[aria-current="page"] {
        color: var(--red);
        background: var(--soft);
    }

    .site-header .site-nav .nav-dropdown__menu .nav-logout button {
        min-height: 2.55rem;
        padding: .7rem .95rem;
        border-radius: .65rem;
        font-size: .84rem;
        white-space: normal;
    }

    .top-testimonials__grid {
        grid-template-columns: 1fr;
    }

    .top-testimonials__visual {
        width: min(100%, 42rem);
        margin-inline: auto;
    }
}

@media (max-width: 62rem) {
    .top-points-merchant-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 38rem) {
    .top-points-page {
        padding-top: 1.5rem;
    }

    .top-points-history__list article {
        grid-template-columns: 1fr;
    }

    .top-points-history__list article > div:last-child {
        align-items: flex-start;
    }

    .top-points-merchant-grid {
        grid-template-columns: 1fr 1fr;
        gap: .75rem;
    }
}

/* TopClub points and questions */
.club-points-hero {
    overflow: hidden;
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    background: var(--soft);
}

.club-hero-extras {
    padding: 1.35rem 0 1.75rem;
    background: #fff;
}

.club-hero-extras + .section {
    padding-top: 2.5rem;
}

.club-points-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: clamp(2rem, 6vw, 6rem);
}

.club-points-hero__copy h1 {
    max-width: 22ch;
    margin-bottom: .75rem;
    color: var(--navy);
    font-size: clamp(2.1rem, 4vw, 3.25rem);
    line-height: 1.04;
}

.club-points-benefits {
    margin: 0 0 1.5rem;
    padding: 0;
    list-style: none;
}

.club-points-benefits li {
    position: relative;
    padding-left: 1.5rem;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.55rem, 2.7vw, 2.75rem);
    font-weight: 800;
    line-height: 1.08;
}

.club-points-benefits li::before {
    position: absolute;
    left: 0;
    color: var(--red);
    content: "–";
}

.club-points-daily {
    max-width: 34rem;
    margin: 0 0 1.5rem;
    color: var(--muted);
    font-weight: 750;
}

.club-points-balance {
    display: flex;
    gap: .75rem;
    margin: 0;
}

.club-points-balance div {
    min-width: 10rem;
    padding: .9rem 1rem;
    border-left: .25rem solid var(--red);
    background: #fff;
}

.club-points-balance dt {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.club-points-balance dd {
    margin: .15rem 0 0;
    color: var(--navy);
    font-size: 1.65rem;
    font-weight: 900;
}

.top-game-badges {
    padding: clamp(1.75rem, 4vw, 3.5rem) 0 clamp(3rem, 6vw, 5rem);
    background: #fff;
}

.top-game-badges__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: clamp(1.25rem, 4vw, 2.75rem);
}

.top-game-badge-card {
    display: flex;
    width: min(100%, 11.75rem);
    flex-direction: column;
    align-items: center;
    gap: .7rem;
    color: inherit;
    text-decoration: none;
    transition: transform .18s ease;
}

.top-game-badge-card:hover,
.top-game-badge-card:focus-visible {
    transform: translateY(-.2rem);
    outline: 0;
}

.top-game-badge {
    display: flex;
    width: 100%;
    aspect-ratio: 1;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .08rem;
    border: .42rem solid #fff;
    border-radius: 50%;
    color: #fff;
    background:
        radial-gradient(circle at 32% 28%, #3a72ff, transparent 42%),
        #1554e8;
    box-shadow:
        0 0 0 .18rem #1554e8,
        0 16px 28px rgba(16, 56, 180, .22);
}

.top-game-badge--used {
    background:
        radial-gradient(circle at 32% 28%, #ff4d4d, transparent 42%),
        #e2182b;
    box-shadow:
        0 0 0 .18rem #e2182b,
        0 16px 28px rgba(226, 24, 43, .22);
}

.top-game-badge__word {
    display: flex;
    align-items: baseline;
    color: #ffe14a;
    font-family: Impact, "Arial Narrow", "Roboto Condensed", sans-serif;
    font-size: clamp(1.7rem, 3.4vw, 2.35rem);
    font-style: italic;
    font-weight: 900;
    letter-spacing: -.06em;
    line-height: .85;
    text-shadow: .12rem .12rem 0 #081a36;
}

.top-game-badge--used .top-game-badge__word {
    text-shadow: .12rem .12rem 0 #7a0d18;
}

.top-game-badge__word i {
    position: relative;
    color: #fff;
    font-style: italic;
}

.top-game-badge__word i::after {
    position: absolute;
    top: 18%;
    left: 18%;
    width: .42em;
    height: .22em;
    border-left: .09em solid #081a36;
    border-bottom: .09em solid #081a36;
    content: "";
    transform: rotate(-42deg);
}

.top-game-badge--used .top-game-badge__word i::after {
    border-color: #7a0d18;
}

.top-game-badge__points {
    color: #fff;
    font-size: clamp(1.45rem, 3.4vw, 2.1rem);
    font-weight: 900;
    letter-spacing: -.02em;
    line-height: 1;
    white-space: nowrap;
}

.top-game-badge__points--range {
    font-size: clamp(.95rem, 2.2vw, 1.25rem);
    letter-spacing: 0;
}

.top-game-badge__label {
    color: #fff;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.top-game-badge-card__title {
    display: block;
    color: var(--navy);
    font-size: 1.12rem;
    font-weight: 850;
    line-height: 1.2;
    text-align: center;
}

.club-question-selection {
    padding: 2rem 0 3.5rem;
    background: #fff;
}

.club-question-selection__intro {
    margin-bottom: 1.35rem;
}

.club-question-selection__intro h1 {
    max-width: none;
    margin: 0 0 .4rem;
    color: var(--navy);
    font-size: clamp(1.85rem, 3vw, 2.45rem);
    letter-spacing: -.03em;
}

.club-question-selection__intro p {
    margin: 0;
    color: #5b6578;
    font-size: 1rem;
    font-weight: 500;
}

.club-question-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .85rem 1.35rem;
    margin: 0 0 2rem;
}

.club-question-filter__group {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.club-question-filter label {
    color: var(--navy);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.club-question-filter select {
    min-width: 12.5rem;
    min-height: 2.55rem;
    padding: .45rem .75rem;
    border: 1px solid var(--line);
    border-radius: 4px;
    background: #fff;
    color: var(--navy);
}

.club-question-availability {
    margin-bottom: 2.5rem;
}

.club-question-availability__title {
    margin: 0 0 1.15rem;
    color: var(--navy);
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    text-align: left;
}

.club-question-availability .club-question-slot:last-child {
    margin-bottom: 0;
}

.club-question-slot {
    --question-accent: #1e4fd6;
    margin-bottom: 2.15rem;
}

.club-question-slot__header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.15rem;
    padding: .38rem 1rem .49rem;
    color: #fff;
    background: var(--question-accent);
    text-align: center;
}

.club-question-slot__header.club-question-slot__header--artwork {
    margin-bottom: 1.15rem;
    padding: 0;
    overflow: visible;
    background: none;
}

.club-question-slot__header--artwork::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    z-index: 0;
    height: 2.15rem;
    background: var(--question-accent);
    transform: translateY(-50%);
}

.club-question-slot__art {
    position: relative;
    z-index: 1;
    display: block;
    width: min(100%, 37.5rem);
    height: auto;
    margin: 0 auto;
}

.club-question-slot__banner {
    margin: 0;
    color: inherit;
    font-size: clamp(.95rem, 1.5vw, 1.12rem);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.club-question-slot__window {
    margin: .25rem 0 0;
    color: inherit;
    font-size: .98rem;
    font-weight: 400;
}

.club-question-slot__complete {
    margin: 0;
    padding: .35rem 1rem 1.35rem;
    color: #5b6578;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
}

.merchant-question-results {
    list-style: none;
    margin: .75rem 0 0;
    padding: 0;
    text-align: left;
}

.merchant-question-results li {
    display: flex;
    gap: .5rem;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 0 .35rem;
    font-size: .9rem;
}

.merchant-question-results span {
    flex: 1;
}

.club-question-cooldown {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 1rem 1.25rem;
    border-left: .35rem solid #d6a100;
    color: #5f4700;
    background: #fff4cc;
}

.club-question-choice-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    justify-items: center;
}

.club-question-choice {
    position: relative;
    width: 100%;
    padding: 1.05rem 1rem 1.35rem;
    border: 0;
    border-right: 1px solid #e6ebf2;
    border-radius: 0;
    background: transparent;
    text-align: center;
}

.club-question-choice:nth-child(4n) {
    border-right: none;
}

.club-question-choice__hit {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
}

.club-question-choice__hit:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 2px;
}

.club-question-choice--open:hover {
    border-color: #e6ebf2;
    box-shadow: none;
}

.club-question-choice__circle {
    display: flex;
    width: 11rem;
    max-width: 100%;
    aspect-ratio: 1;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    overflow: hidden;
    margin: 0 auto 1.25rem;
    border: .42rem solid #fff;
    border-radius: 50%;
    color: #fff;
    background-color: var(--question-accent, #1e4fd6);
    background-image: none;
    box-shadow: 0 0 0 .18rem var(--question-accent, #1e4fd6), 0 14px 28px rgba(8, 26, 54, .18);
    text-decoration: none;
    transition: box-shadow .18s ease;
}

.club-question-choice--open:hover .club-question-choice__circle {
    box-shadow: 0 0 0 .18rem var(--question-accent, #1e4fd6), 0 20px 38px rgba(8, 26, 54, .22);
}

.club-question-choice__circle span {
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1rem, 1.7vw, 1.35rem);
    text-transform: uppercase;
}

.club-question-choice__circle strong {
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(2.2rem, 4vw, 3.2rem);
    line-height: .9;
}

.club-question-choice__circle small {
    font-size: clamp(1rem, 1.8vw, 1.4rem);
}

.club-question-choice__theme {
    margin: 0 0 .25rem;
    color: var(--question-accent, var(--red));
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.club-question-choice h3 {
    margin: 0 0 .65rem;
    color: var(--navy);
    font-size: 1.15rem;
    text-transform: uppercase;
}

.club-question-choice__link {
    position: relative;
    z-index: 2;
    margin: 0 0 .45rem;
    font-size: .85rem;
    font-weight: 750;
}

.club-question-choice__badge {
    display: block;
    width: min(100%, 14.5rem);
    margin: 0 auto 1rem;
    text-decoration: none;
    transition: transform .18s ease;
}

.club-question-choice__badge img {
    width: 100%;
    height: auto;
    filter: drop-shadow(0 12px 18px rgba(8, 26, 54, .16));
}

a.club-question-choice__badge:hover,
a.club-question-choice__badge:focus-visible {
    transform: translateY(-.25rem);
    outline: 0;
}

.club-question-choice--locked .club-question-choice__badge {
    opacity: .48;
}

.club-question-choice__points {
    margin: 0 0 .45rem;
    color: var(--navy);
    font-size: .92rem;
    font-weight: 800;
}

.club-question-choice__status {
    color: var(--muted);
    font-size: .8rem;
    font-weight: 750;
}

.club-question-choice--done .club-question-choice__circle {
    color: #fff;
    background: #6b7b91;
    box-shadow: 0 0 0 .2rem #6b7b91;
}

.club-question-choice--locked .club-question-choice__circle {
    opacity: .48;
    filter: grayscale(.5);
}

.club-answer-select {
    display: grid;
    gap: .4rem;
    width: min(100%, 28rem);
    margin: 0 auto;
    text-align: left;
}

.club-answer-select span {
    font-weight: 750;
}

.club-answer-select select {
    min-height: 3rem;
    padding: .6rem .8rem;
}

.club-survey-intro {
    margin: 0 0 1.1rem;
    color: #334155;
    font-size: 1.02rem;
    line-height: 1.5;
}

.club-rank-lead {
    margin: 0 0 .85rem;
    color: var(--navy);
    font-weight: 700;
}

.club-rank-selects {
    display: grid;
    gap: .85rem;
    width: min(100%, 28rem);
    margin: 0 auto;
}

.club-rank-selects .club-answer-select {
    width: 100%;
}

.admin-color-field {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.admin-color-field input[type="color"] {
    width: 2.6rem;
    height: 2.4rem;
    padding: 0;
    border: 1px solid var(--line);
    background: #fff;
}

.admin-color-field input[type="text"] {
    max-width: 8rem;
    text-transform: lowercase;
}

.admin-slot-swatch {
    display: inline-block;
    width: 1.15rem;
    height: 1.15rem;
    margin-right: .4rem;
    border: 1px solid rgba(8, 26, 54, .18);
    vertical-align: middle;
}

.admin-slot-banner-thumb {
    display: inline-block;
    max-width: 6.5rem;
    height: auto;
    vertical-align: middle;
}

.merchant-question-meta {
    margin: 0 0 .65rem;
    padding: 0;
    list-style: none;
    color: var(--navy);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.35;
}

.merchant-question-meta li + li {
    margin-top: .2rem;
}

.merchant-questions-banner__panel {
    margin-bottom: 1.75rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    border-left: .4rem solid #e86a12;
    background: linear-gradient(90deg, #fff4ea, #fff);
}

.merchant-questions-banner__panel h2 {
    margin: .25rem 0 .75rem;
    color: var(--navy);
}

.merchant-page-hero {
    padding: clamp(2rem, 5vw, 3.5rem) 0 1rem;
    background: linear-gradient(180deg, #fff8f2, transparent);
}

.merchant-page-hero h1 {
    margin: .35rem 0 .75rem;
    color: var(--navy);
}

.club-offer-stock,
.club-offer-pickup {
    margin: .35rem 0 .75rem;
    color: #9a3412;
    font-size: .86rem;
    font-weight: 750;
}

.club-offer-pickup {
    color: var(--navy);
}

.club-point-summary--inline {
    margin-top: 1rem;
}

@media (max-width: 74rem) {
    .club-question-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .club-question-choice {
        border-right: 1px solid #e6ebf2;
    }

    .club-question-choice:nth-child(4n) {
        border-right: 1px solid #e6ebf2;
    }

    .club-question-choice:nth-child(2n) {
        border-right: none;
    }

    .companion-page__header {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 62rem) {
    .club-question-filter {
        gap: .7rem 1rem;
    }

    .club-question-filter select {
        min-width: 10.5rem;
    }

    .theme-detail-media {
        justify-content: center;
    }

    .club-points-hero__grid {
        grid-template-columns: 1fr;
    }

    .club-points-hero__copy h1 {
        max-width: 13ch;
    }
}

@media (max-width: 38rem) {
    .theme-picks__list {
        gap: .5rem;
    }

    .theme-picks .theme-cover {
        padding: .45rem;
    }

    .theme-picks__name {
        padding: .45rem .4rem .55rem;
        font-size: .82rem;
    }

    .club-points-benefits li {
        font-size: 1.6rem;
    }

    .club-points-balance,
    .club-question-cooldown {
        flex-direction: column;
    }

    .club-points-balance div {
        width: 100%;
    }

    .club-question-choice-grid {
        grid-template-columns: 1fr;
    }

    .club-question-choice,
    .club-question-choice:nth-child(2n),
    .club-question-choice:nth-child(4n) {
        border-right: none;
        border-bottom: 1px solid #e6ebf2;
    }

    .club-question-choice:last-child {
        border-bottom: none;
    }

    .club-question-filter {
        align-items: stretch;
        flex-direction: column;
    }

    .club-question-filter__group {
        flex-direction: column;
        align-items: stretch;
        gap: .35rem;
    }

    .club-question-filter select {
        min-width: 0;
        width: 100%;
    }

    .club-question-choice__circle {
        width: 11rem;
    }

    .club-question-choice__badge {
        width: min(100%, 13rem);
    }

    .top-game-badge-card {
        width: 9.5rem;
    }

    .companion-page__actions {
        min-width: 0;
    }
}

@media (max-width: 48rem) {
    .merchant-access__choices {
        grid-template-columns: 1fr;
    }

    .merchant-access__choices article {
        min-height: 0;
    }
}

@media (max-width: 38rem) {
    .flash-stack,
    .error-summary--toast {
        top: .5rem;
        right: .5rem;
        width: calc(100% - 1rem);
    }

    .flash {
        min-height: 3.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .flash,
    .error-summary--toast {
        animation: none;
    }

    .flash--leaving {
        transition: none;
    }
}

/* Homepage composition based on the supplied CarnetTop art direction. */
.site-header .header-inner {
    width: min(calc(100% - 1.5rem), 96rem);
}

.home-rewards {
    padding-block: .15rem 3.5rem;
    background: #fff;
}

.home-rewards__grid {
    display: grid;
    gap: 1.1rem;
}

.home-rewards__themes {
    margin: .15rem 0 0;
}

.home-rewards__themes .button {
    min-height: 3.15rem;
    padding-inline: 1.55rem;
}

.home-rewards .home-code-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(13rem, .62fr);
    align-items: center;
    gap: clamp(1.25rem, 2.5vw, 2.25rem);
    min-width: 0;
    padding: clamp(1.5rem, 3vw, 2.15rem) clamp(1.4rem, 2.8vw, 2.15rem);
    border: 0;
    border-radius: 18px;
    color: #fff;
    background:
        radial-gradient(circle at 100% 0%, rgba(226, 24, 43, .22), transparent 36%),
        linear-gradient(145deg, #081a36 0%, var(--navy) 70%);
    box-shadow: 0 22px 48px rgba(8, 26, 54, .22);
}

.home-rewards .home-code-panel h2 {
    max-width: 28ch;
    margin-bottom: .55rem;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
}

.home-code-panel__lead {
    max-width: 38rem;
    margin: 0 0 .55rem;
    color: #d7e1f0;
    font-size: 1.05rem;
    line-height: 1.45;
}

.home-code-panel__join-lead {
    max-width: 38rem;
    margin: 0 0 .35rem;
    color: #d7e1f0;
    font-size: 1.02rem;
    line-height: 1.4;
}

.home-code-panel__join {
    display: inline-block;
    margin: 0 0 1.15rem;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: .18em;
}

.home-code-panel__join:hover,
.home-code-panel__join:focus-visible {
    color: #fff;
}

.home-code-panel__points {
    display: inline-flex;
    margin-bottom: 1rem;
    padding: .35rem .75rem;
    border-radius: 999px;
    color: var(--navy);
    background: #f4bf1a;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.home-rewards .home-code-panel form {
    max-width: 42rem;
}

.home-rewards .home-code-panel .code-input-group {
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
}

.home-rewards .home-code-panel .code-input-group input {
    min-height: 4.15rem;
    padding-inline: 1.15rem;
    border: 0;
    border-radius: 0;
    background: #fff;
    font-size: 1.12rem;
}

.home-rewards .home-code-panel .code-input-group .button {
    min-height: 4.15rem;
    padding-inline: 1.6rem;
    border-radius: 0;
    font-size: .92rem;
}

.home-rewards .home-code-panel .field-hint {
    color: #aebcd1 !important;
}

.home-rewards .home-rabais {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    grid-column: auto;
    min-width: 0;
    height: 100%;
    padding: 1.15rem 1rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    background: rgba(255, 255, 255, .06);
    box-shadow: none;
    text-align: center;
}

.home-rewards .home-rabais__mark {
    width: 6.5rem;
    height: 6.5rem;
    margin-bottom: .85rem;
}

.home-rewards .home-rabais .eyebrow {
    margin-bottom: .4rem;
}

.home-rewards .home-rabais h2 {
    width: 100%;
    max-width: none;
    margin-bottom: .35rem;
    color: #fff;
    font-size: clamp(1.25rem, 1.8vw, 1.55rem);
    text-align: center;
}

.home-rewards .home-rabais p:last-child {
    color: #d7e1f0;
}

@media (max-width: 74rem) {
    .home-rewards .home-code-panel {
        grid-template-columns: minmax(0, 1.4fr) minmax(12rem, .7fr);
    }
}

@media (max-width: 62rem) {
    .home-hero__grid {
        grid-template-columns: 1fr 1fr;
        padding-block: 1.75rem 1.5rem;
    }

    .home-hero__copy {
        grid-column: 1 / -1;
        grid-row: auto;
        padding-bottom: 0;
    }

    .home-hero__copy h1 {
        max-width: 16ch;
    }

    .home-hero__photo--one,
    .home-hero__photo--two {
        grid-column: auto;
        grid-row: auto;
    }

    .home-hero__photo--one img,
    .home-hero__photo--two img {
        height: auto;
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 48rem) {
    .home-rewards .home-code-panel {
        grid-template-columns: 1fr;
    }

    .home-rewards .home-rabais {
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .home-rewards .home-rabais > div {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 40rem) {
    .home-hero__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 38rem) {
    .site-header .header-inner {
        width: min(calc(100% - 2rem), 96rem);
    }

    .home-hero .container,
    .home-rewards .container {
        width: min(calc(100% - 1.5rem), 86rem);
    }

    .home-hero__copy h1 {
        max-width: none;
        font-size: clamp(2.05rem, 10vw, 2.85rem);
    }

    .home-rewards .home-code-panel .code-input-group {
        flex-direction: column;
        gap: .55rem;
    }

    .home-rewards .home-code-panel .code-input-group input,
    .home-rewards .home-code-panel .code-input-group .button {
        width: 100%;
        border-radius: 6px;
    }
}

.campaign-filters {
    flex-wrap: wrap;
    align-items: flex-end;
    margin-bottom: 1.25rem;
    padding: 1rem;
    background: #fff;
    border: 1px solid #dfe4ed;
    border-radius: .7rem;
}

.campaign-filters label {
    display: grid;
    gap: .35rem;
}

.campaign-filters input,
.campaign-filters select {
    min-width: 11rem;
}

.campaign-table-panel {
    padding: 0;
    overflow: hidden;
}

.campaign-table {
    min-width: 58rem;
}

.campaign-table th,
.campaign-table td {
    vertical-align: top;
}

.campaign-table td:nth-child(2),
.campaign-table td:nth-child(3) {
    max-width: 18rem;
}

.campaign-table td small,
.campaign-name-link small {
    display: block;
    margin-top: .35rem;
    color: #60708f;
}

.campaign-name-link,
.table-sort {
    color: #081a36;
    text-decoration: none;
}

.campaign-name-link:hover strong,
.table-sort:hover {
    color: var(--red);
    text-decoration: underline;
}

.campaign-multi-value {
    line-height: 1.5;
}

.campaign-code-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.25rem 0 .75rem;
}

.campaign-code-summary div {
    padding: .85rem;
    background: #f5f7fb;
    border-radius: .55rem;
}

.campaign-code-summary dt {
    color: #60708f;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.campaign-code-summary dd {
    margin: .3rem 0 0;
    font-weight: 800;
}

.campaign-tabs {
    display: flex;
    gap: .35rem;
    margin: 0 0 1.25rem;
    padding: .35rem;
    overflow-x: auto;
    background: #e7ebf2;
    border-radius: .7rem;
}

.campaign-tabs a {
    flex: 0 0 auto;
    padding: .7rem 1.15rem;
    color: #35466a;
    font-weight: 800;
    text-decoration: none;
    border-radius: .5rem;
}

.campaign-tabs a[aria-current="page"] {
    color: #fff;
    background: #081a36;
}

.campaign-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.campaign-stat-grid article {
    padding: 1.2rem;
    background: #fff;
    border: 1px solid #dfe4ed;
    border-radius: .7rem;
}

.campaign-stat-grid span {
    display: block;
    color: #60708f;
    font-size: .85rem;
    font-weight: 700;
}

.campaign-stat-grid strong {
    display: block;
    margin-top: .35rem;
    color: #081a36;
    font-size: 1.75rem;
}

.campaign-stat-card--points {
    border-color: #ef9ba5 !important;
}

.campaign-assignment-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.campaign-code-add-grid,
.generation-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.choice-fieldset {
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid #dfe4ed;
    border-radius: .65rem;
}

.choice-fieldset legend {
    padding: 0 .35rem;
    font-weight: 800;
}

.choice-fieldset__filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 1rem;
}

.choice-fieldset__filters--search {
    grid-template-columns: minmax(12rem, 22rem);
}

.choice-fieldset__summary {
    margin: 0 0 .75rem;
    color: #60708f;
    font-size: .82rem;
    font-weight: 700;
}

.choice-fieldset__columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
    gap: 1rem;
    align-items: start;
}

.choice-fieldset__options,
.choice-fieldset__picked {
    min-width: 0;
}

.choice-fieldset__picked {
    padding: .75rem;
    background: #f5f7fb;
    border: 1px solid #dfe4ed;
    border-radius: .5rem;
}

.choice-fieldset__picked .choice-fieldset__summary {
    margin-bottom: .55rem;
}

.choice-fieldset__picked .admin-empty {
    margin: 0;
}

.choice-picked {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    max-height: 20rem;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

.choice-picked li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .35rem .35rem .35rem .65rem;
    background: #fff;
    border: 1px solid #dfe4ed;
    border-radius: .4rem;
    font-size: .82rem;
    line-height: 1.35;
}

.choice-picked__remove {
    flex: 0 0 auto;
    display: grid;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border: 0;
    border-radius: .3rem;
    color: #60708f;
    background: transparent;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    place-items: center;
}

.choice-picked__remove:hover,
.choice-picked__remove:focus-visible {
    color: #b3132b;
    background: rgba(179, 19, 43, .08);
    outline: none;
}

.campaign-leaflet-fieldset {
    margin-top: 1rem;
}

.campaign-leaflet-help {
    margin: 0 0 .75rem;
    color: #60708f;
    font-size: .82rem;
    line-height: 1.45;
}

.campaign-leaflet-list {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin: 0 0 .75rem;
}

.campaign-leaflet-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem;
}

.campaign-leaflet-row .field {
    margin: 0;
}

.campaign-leaflet-fieldset .button {
    margin-top: .15rem;
}

.admin-checkbox-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    max-height: 20rem;
    overflow-y: auto;
}

.generation-mode-grid {
    margin-bottom: 1rem;
}

.generation-mode-card {
    display: flex;
    gap: .75rem;
    padding: 1rem;
    cursor: pointer;
    background: #f5f7fb;
    border: 1px solid #dfe4ed;
    border-radius: .65rem;
}

.generation-mode-card:has(input:checked) {
    border-color: #081a36;
    box-shadow: 0 0 0 2px rgba(16, 29, 62, .09);
}

.generation-mode-card strong,
.generation-mode-card small {
    display: block;
}

.generation-mode-card small {
    margin-top: .35rem;
    color: #60708f;
    line-height: 1.45;
}

.campaign-code-add-grid {
    margin-bottom: 1.25rem;
}

.campaign-code-actions {
    margin: 0 0 1.25rem;
}

.campaign-code-dialog {
    width: min(44rem, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    padding: 1.5rem 1.5rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.campaign-code-dialog--wide {
    width: min(52rem, calc(100vw - 2rem));
}

.campaign-code-dialog::backdrop {
    background: rgba(8, 26, 54, .45);
}

.campaign-code-dialog h2 {
    margin: 0 0 .45rem;
    font-size: 1.35rem;
}

.campaign-code-dialog p {
    margin: 0 0 1rem;
    color: var(--muted);
}

.campaign-code-dialog__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}

.campaign-code-dialog__header h2 {
    margin: 0;
}

.campaign-code-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 1rem;
}

.campaign-delete-panel {
    border-color: #e4a7ae;
}

.confirmation-points {
    margin: 1.25rem auto .5rem;
    font-size: 1.1rem;
}

.confirmation-points strong {
    display: block;
    color: #b3132b;
    font-size: clamp(2rem, 5vw, 3.25rem);
}

@media (max-width: 70rem) {
    .campaign-code-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .campaign-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .campaign-assignment-grid,
    .campaign-code-add-grid,
    .generation-mode-grid,
    .campaign-code-summary,
    .choice-fieldset__filters,
    .choice-fieldset__columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 32rem) {
    .campaign-stat-grid,
    .campaign-code-summary {
        grid-template-columns: 1fr;
    }

    .admin-checkbox-grid {
        grid-template-columns: 1fr;
    }
}

.merchant-brand {
    --merchant-header-bg: #eef3f8;
    --merchant-header-bar: #17734b;
    --merchant-logo-size: clamp(8rem, 37.5vw, 22rem);
    --merchant-logo-gap: 10px;
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: stretch;
    justify-content: center;
    width: 100%;
    height: var(--merchant-logo-size);
    min-height: 0;
    padding: 0;
    overflow: hidden;
    background: var(--merchant-header-bg);
    border-bottom: .65rem solid var(--merchant-header-bar);
}

.merchant-brand__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(13rem, 1fr) minmax(12rem, 18rem);
    align-items: end;
    gap: 1rem;
    min-height: 10.75rem;
    padding: .65rem 0 .55rem;
}

.merchant-brand__identity {
    min-width: 0;
    padding: .35rem .9rem .35rem 0;
    background: linear-gradient(90deg, #fff 0%, #fff 68%, rgba(255, 255, 255, 0) 100%);
}

.merchant-brand__heading {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: .35rem;
}

.merchant-brand__logo-bar {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.merchant-brand__logo-slot {
    position: relative;
    flex: 0 0 auto;
    width: calc(var(--merchant-logo-size) - (var(--merchant-logo-gap) * 2));
    height: calc(var(--merchant-logo-size) - (var(--merchant-logo-gap) * 2));
    aspect-ratio: 1;
    pointer-events: auto;
}

.merchant-brand__logo-edit {
    position: absolute;
    z-index: 2;
    bottom: .2rem;
    left: calc(50% + ((var(--merchant-logo-size) - (var(--merchant-logo-gap) * 2)) / 2) + .45rem);
    max-width: min(9.5rem, max(0rem, calc(50% - ((var(--merchant-logo-size) - (var(--merchant-logo-gap) * 2)) / 2) - .9rem)));
    margin: 0;
    pointer-events: auto;
    white-space: normal;
    text-align: left;
    line-height: 1.15;
}

.merchant-brand__logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background: transparent;
    border: .22rem solid #fff;
    border-radius: 50%;
    box-shadow: 0 .3rem .9rem var(--merchant-header-bar);
}

@media (min-width: 60rem) {
    .merchant-brand {
        --merchant-logo-gap: calc(.9rem + 10px);
    }
}

.merchant-brand__logo--empty {
    background:
        repeating-linear-gradient(
            -45deg,
            #e4edf6,
            #e4edf6 8px,
            #d7e3f0 8px,
            #d7e3f0 16px
        );
}

.merchant-brand__titles {
    min-width: 0;
}

.merchant-brand__titles h1,
.merchant-brand__name {
    margin: 0;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.75rem, 3vw, 2.45rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: .92;
    text-transform: uppercase;
}

.merchant-brand__slogan {
    margin: .15rem 0 0;
    color: #17734b;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.15;
}

.merchant-brand__meta {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    margin: .18rem 0 0;
    color: var(--ink);
    font-size: .88rem;
    line-height: 1.3;
}

.merchant-brand__meta svg {
    flex: 0 0 auto;
    width: .95rem;
    height: .95rem;
    margin-top: .12rem;
    color: var(--navy);
}

.merchant-brand__meta a {
    color: var(--navy);
    text-decoration: none;
}

.merchant-brand__meta a:hover,
.merchant-brand__meta a:focus-visible {
    text-decoration: underline;
}

.merchant-brand__promo {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .7rem;
    min-width: 0;
    padding: .35rem 0 .35rem .9rem;
    background: linear-gradient(270deg, #fff 0%, #fff 62%, rgba(255, 255, 255, 0) 100%);
}

.merchant-brand__club {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 4.85rem;
    height: 4.85rem;
    color: #fff;
    background: var(--red);
    line-height: .85;
    text-align: center;
}

.merchant-brand__club span,
.merchant-brand__club strong {
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-weight: 800;
    letter-spacing: .02em;
}

.merchant-brand__club span {
    font-size: .72rem;
}

.merchant-brand__club strong {
    font-size: 1.28rem;
}

.merchant-brand__promo p {
    margin: 0;
    color: var(--navy);
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.25;
}

.merchant-brand__club-name {
    color: var(--red);
}

.merchant-brand--editable .merchant-edit-btn--on-photo {
    z-index: 3;
    top: 1.15rem;
    right: 1.15rem;
    bottom: auto;
}

.merchant-welcome,
.merchant-questions-banner,
.merchant-offers-section,
.merchant-offers,
.merchant-lookbook-group,
.merchant-offer-story,
.merchant-locations,
.merchant-coop {
    scroll-margin-top: 6rem;
}

.merchant-locations {
    margin: 0;
}

.merchant-locations__intro {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin: 0 0 1.5rem;
}

.merchant-locations__intro h2 {
    margin: 0;
    color: var(--navy);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.merchant-locations__intro p:not(.eyebrow) {
    margin: .35rem 0 0;
    color: var(--muted);
}

.merchant-locations__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.merchant-location-card {
    display: flex;
    gap: .95rem;
    align-items: flex-start;
    min-height: 6.5rem;
    padding: 1.15rem 1.2rem;
    background: var(--white);
    border: 1px solid rgba(8, 26, 54, .08);
    box-shadow: 0 12px 28px rgba(8, 26, 54, .08);
}

.merchant-location-card__pin {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 999px;
    color: var(--white);
    background: var(--red);
    box-shadow: 0 8px 16px rgba(226, 24, 43, .28);
}

.merchant-location-card__body {
    min-width: 0;
}

.merchant-location-card__address {
    margin: 0;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.25;
}

.merchant-location-card__postal {
    display: inline-block;
    margin: .5rem 0 0;
    padding: .18rem .6rem;
    border-radius: 999px;
    color: var(--navy);
    background: #f5c518;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.merchant-location-card--inactive {
    opacity: .62;
}

.merchant-location-rows {
    display: grid;
    gap: .85rem;
    margin: 0 0 1rem;
}

.merchant-location-row {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(7.5rem, .7fr) auto auto;
    gap: .65rem .75rem;
    align-items: end;
    padding: .85rem;
    border: 1px solid var(--line);
    background: #f7f9fc;
}

.merchant-location-row .field {
    margin: 0;
}

.merchant-location-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

@media (max-width: 40rem) {
    .merchant-location-row {
        grid-template-columns: 1fr;
    }
}

.form-grid fieldset.field {
    margin: 0;
    padding: 0;
    border: 0;
}

.form-grid fieldset.field legend {
    display: block;
    margin-bottom: .45rem;
    padding: 0;
    color: var(--navy);
    font-size: .8rem;
    font-weight: 800;
}

.advertiser-store-type {
    display: grid;
    gap: .65rem;
}

.advertiser-locations-panel {
    border: 1px solid var(--line);
    background: var(--white);
}

.advertiser-locations-toolbar {
    display: flex;
    justify-content: flex-end;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--line);
    background: var(--soft);
}

.advertiser-locations-panel .table-wrap {
    border: 0;
}

.advertiser-locations-table {
    min-width: 36rem;
}

.advertiser-locations-table__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    align-items: center;
}

.advertiser-locations-table__actions form {
    margin: 0;
}

.advertiser-locations-table__actions button.text-link {
    border: 0;
    padding: 0;
    background: none;
    cursor: pointer;
}

[data-same-address].is-same-address [data-same-address-fields] {
    opacity: .72;
}

.merchant-welcome__header {
    text-align: center;
    margin-bottom: 2rem;
}

.merchant-welcome__header h2 {
    margin: 0 0 .25rem;
    color: var(--navy);
    font-size: clamp(1.7rem, 3vw, 2.2rem);
}

.merchant-welcome__header > p {
    margin: 0 0 1.1rem;
    color: var(--muted);
    font-style: italic;
}

.merchant-welcome__header > .merchant-welcome__actions {
    font-style: normal;
    margin: .15rem 0 1.1rem;
}

.merchant-welcome__tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
}

.merchant-welcome__tabs a,
.merchant-welcome__tabs [data-tab] {
    display: inline-block;
    border: 0;
    padding: .55rem 1.15rem;
    border-radius: 4px;
    color: #fff;
    background: #7a5c57;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.merchant-welcome__tabs a:hover,
.merchant-welcome__tabs a:focus-visible,
.merchant-welcome__tabs [data-tab]:hover,
.merchant-welcome__tabs [data-tab]:focus-visible {
    background: var(--navy);
}

.merchant-welcome__tabs [data-tab].is-active,
.merchant-welcome__tabs [data-tab][aria-selected="true"] {
    background: var(--red);
}

.merchant-welcome__panel[hidden] {
    display: none;
}

.merchant-offers .merchant-welcome__header {
    margin-bottom: 2.5rem;
}

.merchant-offers .merchant-location-filter {
    display: flex;
    justify-content: center;
    margin: 1.15rem 0 0;
}

.merchant-lookbook-group + .merchant-lookbook-group {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid var(--line);
}

.merchant-lookbook-group__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 36rem;
    margin: 0 auto 1.75rem;
    text-align: center;
}

.merchant-lookbook-group__logo {
    position: relative;
    display: block;
    width: clamp(5.5rem, 12vw, 8.25rem);
    aspect-ratio: 212 / 199;
    height: auto;
    margin: 0 0 .55rem;
    overflow: hidden;
}

.merchant-lookbook-group__header h3 {
    margin: 0;
    color: var(--navy);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    text-transform: uppercase;
}

.merchant-lookbook-group__status {
    margin: .65rem 0 0;
    max-width: 32rem;
    color: var(--ink);
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.35;
}

.merchant-lookbook-group__header.advertiser-section-head {
    max-width: none;
    align-items: flex-end;
    margin-bottom: 1.75rem;
}

.merchant-lookbook-group__header.advertiser-section-head h3 {
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.merchant-offers .merchant-lookbook-group__header {
    max-width: none;
    text-align: center;
}

.merchant-offers .merchant-lookbook-group__header h3 {
    font-size: clamp(1.35rem, 2.4vw, 1.8rem);
}

.merchant-lookbook {
    --lookbook-card-max: 17rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14.5rem), var(--lookbook-card-max)));
    gap: 1.2rem .85rem;
    align-items: stretch;
    justify-content: center;
    width: 100%;
    overflow: visible;
    padding-top: 0;
}

.merchant-lookbook-limit {
    margin: 0 0 .85rem;
    text-align: center;
}

.merchant-offer-card {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
}

button.merchant-offer-card {
    width: 100%;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

button.merchant-offer-card:hover .merchant-offer-card__frame,
button.merchant-offer-card:focus-visible .merchant-offer-card__frame {
    border-color: var(--red);
}

.merchant-offer-card--merchant {
    display: grid;
    grid-template-rows: auto auto;
    grid-template-areas: "frame" "under";
    align-content: start;
    align-items: stretch;
}

.merchant-offer-card--merchant .merchant-offer-card__frame {
    grid-area: frame;
}

.merchant-offer-card--merchant .merchant-offer-card__under {
    grid-area: under;
}

.merchant-offer-card__frame {
    --offer-mark-row: 7.25rem;
    --offer-media-height: 12.75rem;
    --offer-title-size: .88rem;
    --offer-title-leading: 1.2;
    --offer-copy-size: .82rem;
    --offer-copy-leading: 1.3;
    --offer-meta-size: .78rem;
    --offer-meta-leading: 1.3;
    --offer-title-row: calc(2 * var(--offer-title-leading) * var(--offer-title-size) + .7rem);
    --offer-copy-row: calc(3 * var(--offer-copy-leading) * var(--offer-copy-size) + .7rem);
    --offer-logo-row: 3rem;
    --offer-meta-row: calc(2 * var(--offer-meta-leading) * var(--offer-meta-size) + .5rem);
    --offer-points-row: 2.65rem;
    position: relative;
    display: grid;
    grid-template-rows:
        var(--offer-mark-row)
        var(--offer-media-height)
        var(--offer-title-row)
        var(--offer-copy-row)
        var(--offer-logo-row)
        var(--offer-meta-row)
        var(--offer-points-row);
    align-content: start;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    overflow: visible;
    border: 2px solid #111;
    border-top-width: 4px;
    background: #fff;
}

.merchant-offer-card__frame--editable {
    cursor: pointer;
}

.merchant-offer-card__frame:has(.merchant-offer-card__hit:hover),
.merchant-offer-card__frame:has(.merchant-offer-card__hit:focus-visible) {
    border-color: var(--red);
}

.merchant-offer-card__mark {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: .55rem .7rem;
    border-bottom: 2px solid #111;
    background: #fff;
    color: var(--navy);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.15;
    text-align: center;
    text-transform: uppercase;
}

.merchant-offer-card__media {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    background: #fff;
}

.merchant-offer-card__media img:not(.club-offer-card__badge):not(.promo-badge__img) {
    display: block;
    width: auto;
    height: auto;
    max-width: 92%;
    max-height: 88%;
    aspect-ratio: auto;
    object-fit: contain;
    object-position: center;
}

.merchant-offer-card__media--empty {
    display: grid;
    place-items: center;
    aspect-ratio: auto;
    height: 100%;
    background: #fff;
}

.merchant-offer-card__add-icon {
    width: 3rem;
    height: 3rem;
    border: 2px solid var(--navy);
    border-radius: 50%;
    background:
        linear-gradient(var(--navy), var(--navy)) center / 1.35rem 2px no-repeat,
        linear-gradient(var(--navy), var(--navy)) center / 2px 1.35rem no-repeat;
}

button.merchant-offer-card:hover .merchant-offer-card__add-icon,
button.merchant-offer-card:focus-visible .merchant-offer-card__add-icon {
    border-color: var(--red);
    background:
        linear-gradient(var(--red), var(--red)) center / 1.35rem 2px no-repeat,
        linear-gradient(var(--red), var(--red)) center / 2px 1.35rem no-repeat;
}

.merchant-offer-card__pricing {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: .25rem .55rem;
    margin: 0;
    padding: .3rem .45rem .35rem;
    background: rgba(255, 255, 255, .92);
}

.merchant-offer-card__pricing .merchant-price__regular {
    color: #5b6b80;
    font-size: .82rem;
}

.merchant-offer-card__pricing .merchant-price__sale {
    color: var(--red);
    font-size: 1.15rem;
    font-weight: 800;
}

.merchant-offer-card__value {
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 800;
}

.merchant-offer-card__title {
    margin: 0;
    padding: .35rem .5rem 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    color: #fff;
    background: #111;
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: var(--offer-title-size);
    font-weight: 800;
    letter-spacing: .04em;
    line-height: var(--offer-title-leading);
    text-align: center;
    text-transform: uppercase;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.merchant-offer-card__title a {
    color: inherit;
    text-decoration: none;
}

.merchant-offer-card__title a:hover,
.merchant-offer-card__title a:focus-visible {
    text-decoration: underline;
}

.merchant-offer-card__copy {
    margin: 0;
    padding: .35rem .5rem 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    color: var(--navy);
    font-size: var(--offer-copy-size);
    line-height: var(--offer-copy-leading);
    text-align: center;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.merchant-offer-card__logos {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
    padding: .2rem .4rem;
    overflow: hidden;
}

.merchant-offer-card__logos .club-offer-card__sponsored {
    width: 100%;
    margin: 0;
    padding: 0;
}

.merchant-offer-card__logos .club-offer-card__sponsored-label {
    display: none;
}

.merchant-offer-card__logos .club-offer-card__supplier-logos {
    width: 100%;
    height: 2.45rem;
    align-items: center;
}

.merchant-offer-card__logos .club-offer-card__supplier-logos img {
    flex: 0 1 auto;
    width: auto;
    height: 2.45rem;
    max-width: calc((100% - 2 * var(--supplier-logo-gap)) / 3);
    aspect-ratio: 2 / 1;
    object-fit: contain;
}

.merchant-offer-card__points {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
    margin: 0;
    padding: .35rem .5rem;
    color: #fff;
    background: var(--red);
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.1;
    text-align: center;
}

.merchant-offer-card__meta {
    margin: 0;
    padding: .15rem .45rem 0;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    color: #111;
    font-size: var(--offer-meta-size);
    font-weight: 600;
    line-height: var(--offer-meta-leading);
    text-align: center;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.merchant-offer-card__hit {
    position: absolute;
    inset: 0;
    z-index: 2;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
}

.merchant-offer-card__under {
    display: grid;
    grid-template-rows: 1.35rem 1.35rem;
    align-items: center;
    justify-items: center;
    gap: .15rem;
    min-height: 2.85rem;
}

.merchant-offer-card__published,
.merchant-offer-card__approval {
    grid-row: 1;
}

.merchant-offer-card__withdraw-form {
    grid-row: 2;
    margin: 0;
}

.merchant-offer-card__withdraw {
    border: 0;
    padding: 0;
    color: var(--navy);
    background: none;
    font: inherit;
    font-size: .92rem;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.merchant-offer-card__withdraw:hover,
.merchant-offer-card__withdraw:focus-visible {
    color: var(--red);
}

.merchant-offer-card__approval {
    border: 0;
    padding: 0;
    color: var(--red);
    background: none;
    font: inherit;
    font-size: .92rem;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.merchant-offer-card__published {
    margin: 0;
    color: var(--success);
    font-size: .92rem;
    font-weight: 700;
}

.merchant-offer-card__cta {
    margin-top: .15rem;
}

.merchant-offer-card__cta--text {
    align-self: flex-start;
    margin-top: .2rem;
    padding: .15rem 0;
    color: var(--red);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
    text-decoration: underline;
    text-underline-offset: .18em;
}

.merchant-offer-card__cta--text:hover,
.merchant-offer-card__cta--text:focus-visible {
    color: var(--red-dark);
}

.merchant-offer-card .button {
    margin-top: auto;
}

.publish-confirm-dialog:not([open]) {
    display: none;
}

.publish-confirm-dialog {
    width: min(32rem, calc(100vw - 2rem));
    padding: 1.5rem 1.5rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.publish-confirm-dialog::backdrop {
    background: rgba(8, 26, 54, .45);
}

.publish-confirm-dialog h2 {
    margin: 0 0 1rem;
    font-size: 1.25rem;
    text-align: center;
}

.publish-confirm-dialog p {
    margin: 0 0 .75rem;
    line-height: 1.5;
}

.publish-confirm-dialog__lead {
    color: var(--navy);
    font-size: 1.05rem;
    font-weight: 600;
}

.publish-confirm-dialog__note {
    color: var(--muted);
}

.publish-confirm-dialog__consent {
    margin: .35rem 0 1.15rem;
    padding: .85rem;
    border: 1px solid var(--line);
    background: var(--soft);
}

.publish-confirm-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.publish-confirm-dialog .button {
    margin-top: 0;
}

.merchant-offer-card[hidden] {
    display: none;
}

.merchant-offer-detail__back {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
    margin: 0 0 1.25rem;
}

.merchant-offer-detail__back .text-link {
    text-decoration: underline;
    text-underline-offset: .16em;
}

.merchant-offer-story {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr);
    grid-template-areas:
        "media body"
        "sponsors body";
    min-height: 26rem;
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 18px 50px rgba(8, 26, 54, .1);
}

.merchant-offer-story:nth-child(even) {
    grid-template-columns: minmax(16rem, .85fr) minmax(0, 1.15fr);
    grid-template-areas:
        "body media"
        "body sponsors";
}

.merchant-offer-story--feature,
.merchant-offer-story--feature:nth-child(even) {
    grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr);
    grid-template-areas:
        "media body"
        "sponsors body";
}

.merchant-offer-story:nth-child(even) .merchant-offer-story__media {
    order: 0;
}

.merchant-offer-story__media {
    grid-area: media;
    position: relative;
    min-height: 22rem;
    background: transparent;
}

.merchant-offer-story > .club-offer-card__sponsored {
    grid-area: sponsors;
    margin: 0;
    padding: .45rem .75rem;
    border-top: 1px solid var(--line);
    background: #fff;
}

.merchant-offer-story__zoom {
    position: absolute;
    inset: 0;
}

.merchant-offer-story__media img:not(.club-offer-card__badge):not(.promo-badge__img) {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.merchant-offer-story__media .club-offer-card__badge {
    width: 9.5rem;
    top: .35rem;
    right: .15rem;
}

.merchant-offer-story__media--empty {
    background:
        repeating-linear-gradient(
            -45deg,
            #e4edf6,
            #e4edf6 8px,
            #d7e3f0 8px,
            #d7e3f0 16px
        );
}

.merchant-offer-story__save {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    z-index: 2;
    margin: 0;
    padding: .4rem .7rem;
    border-radius: 4px;
    color: var(--white);
    background: var(--success);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .02em;
}

.merchant-offer-story__body {
    grid-area: body;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .35rem;
    padding: 2rem 2.15rem 2.15rem;
}

.merchant-offer-story__title {
    margin: 0;
    color: var(--navy);
    font-size: clamp(1.7rem, 3vw, 2.55rem);
}

.merchant-offer-story__brand {
    margin: 0;
    color: var(--muted);
    font-size: .95rem;
    font-weight: 700;
}

.merchant-offer-story__theme {
    margin: 0;
    color: var(--blue);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.merchant-price--story {
    align-items: baseline;
    margin: .45rem 0 .1rem;
}

.merchant-price--story .merchant-price__regular {
    font-size: 1.15rem;
}

.merchant-price--story .merchant-price__sale {
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    font-weight: 900;
    letter-spacing: -.03em;
}

.merchant-offer-story__copy {
    margin: .35rem 0 0;
    color: var(--ink);
    font-size: 1.02rem;
    line-height: 1.45;
}

.merchant-offer-story__points {
    margin: .55rem 0 0;
    color: var(--red);
    font-size: 1.35rem;
    font-weight: 900;
}

.merchant-offer-story__stock {
    margin: 0;
    color: var(--muted);
    font-size: .92rem;
}

.merchant-offer-story details {
    margin: .35rem 0 0;
    color: var(--muted);
}

.merchant-offer-story__cta {
    margin-top: .85rem;
}

.merchant-offer-story__cta .button {
    max-width: 22rem;
}

.merchant-offer-story[hidden] {
    display: none;
}

@media (max-width: 62rem) {
    .merchant-offer-story,
    .merchant-offer-story:nth-child(even),
    .merchant-offer-story--feature,
    .merchant-offer-story--feature:nth-child(even) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "media"
            "sponsors"
            "body";
        min-height: 0;
    }

    .merchant-offer-story:nth-child(even) .merchant-offer-story__media {
        order: 0;
    }

    .merchant-offer-story__media {
        min-height: 0;
        aspect-ratio: 1 / 1;
    }

    .merchant-offer-story__body {
        padding: 1.35rem 1.2rem 1.5rem;
    }

    .merchant-offer-story__cta .button {
        max-width: none;
    }
}

.merchant-question-options {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0 0 1rem;
}

.merchant-question-option {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--line);
}

.merchant-question-option__remove {
    align-self: flex-start;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.merchant-question-option select:disabled {
    opacity: 1;
    color: var(--navy);
    background: #eef1f5;
    cursor: not-allowed;
}

.merchant-question-dates,
.merchant-offer-dates {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 1rem 0;
}

.merchant-question-dates input[type="date"],
.merchant-offer-dates input[type="date"] {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    color: var(--navy);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}

.merchant-gift-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.merchant-gift-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    padding: 1.5rem 1rem 1.25rem;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
}

.merchant-gift-card__rank {
    position: absolute;
    top: .7rem;
    left: .7rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: #f5c518;
    color: var(--navy);
    font-weight: 800;
}

.merchant-gift-card__image {
    position: relative;
    width: min(100%, 12rem);
    aspect-ratio: 1 / 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: transparent;
}

.merchant-gift-card__image .club-offer-card__badge {
    position: absolute;
    top: -.75rem;
    right: -2.25rem;
    z-index: 2;
    width: 6.5rem;
    height: auto;
}

.merchant-gift-card__image img:not(.club-offer-card__badge):not(.promo-badge__img) {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

.merchant-gift-card__image .image-lightbox-trigger {
    position: absolute;
    inset: 0;
}

.merchant-gift-card__image--empty,
.club-offer-card__image--empty {
    background:
        repeating-linear-gradient(
            -45deg,
            #e4edf6,
            #e4edf6 8px,
            #d7e3f0 8px,
            #d7e3f0 16px
        );
}

.merchant-gift-card h3 {
    margin: .25rem 0 0;
    color: var(--navy);
    font-size: 1.05rem;
    text-transform: uppercase;
}

.merchant-gift-card__value {
    margin: 0;
    color: var(--muted);
}

.merchant-gift-card__points {
    margin: .15rem 0 0;
    padding: .45rem 1rem;
    border-radius: 4px;
    background: var(--red);
    color: #fff;
    font-weight: 800;
}

.merchant-gift-card__stock {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
}

.merchant-welcome__note {
    max-width: 46rem;
    margin: 1.75rem auto 0;
    text-align: center;
    color: var(--muted);
}

.merchant-discount-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: start;
}

.merchant-discount-grid .club-offer-card {
    display: flex;
    flex-direction: column;
}

.merchant-discount-grid .club-offer-card__image {
    width: min(100%, 11rem);
    aspect-ratio: 1 / 1;
    max-height: none;
    margin: .75rem auto 0;
}

.merchant-discount-grid .club-offer-card__badge {
    width: 5.5rem;
    top: -.45rem;
    right: -1.35rem;
}

.merchant-discount-grid .club-offer-card__body {
    padding: .85rem 1rem 1.1rem;
}

.merchant-discount-grid .club-offer-card h2 {
    font-size: 1.05rem;
}

.merchant-discount-grid .club-offer-card__description {
    margin: .35rem 0 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.35;
}

.merchant-discount-grid .club-offer-cost {
    margin: .65rem 0 .45rem;
    font-size: 1.1rem;
}

@media (max-width: 62rem) {
    .merchant-gift-grid,
    .merchant-discount-grid {
        grid-template-columns: 1fr;
    }
}

.merchant-gift-card .club-offer-card__sponsored {
    width: 100%;
}

.merchant-gift-card__brand {
    margin: .15rem 0 0;
    color: var(--muted);
    font-size: .88rem;
    font-weight: 700;
}

.merchant-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .45rem .75rem;
    margin: .35rem 0 .15rem;
}

.merchant-price__regular {
    color: #5b6b80;
    text-decoration: line-through;
}

.merchant-price__sale {
    color: var(--red);
    font-size: 1.2rem;
}

.club-question-product {
    margin: 0 0 1rem;
}

.club-question-product img {
    display: block;
    width: min(100%, 22rem);
    height: auto;
    border-radius: .4rem;
    object-fit: cover;
}

.club-question-product figcaption {
    margin-top: .4rem;
    color: var(--muted);
    font-weight: 700;
}

.merchant-page-form {
    display: grid;
    gap: 1.5rem;
}

.merchant-page-card {
    padding: 1.35rem 1.4rem 1.5rem;
    border: 1px solid var(--line);
    border-radius: .7rem;
    background: #fff;
}

.merchant-page-card header h2 {
    margin: .15rem 0 .35rem;
}

.merchant-page-preview {
    display: block;
    max-width: 16rem;
    max-height: 10rem;
    margin: 0 0 1rem;
    object-fit: contain;
    object-position: center;
    background: transparent;
}

.merchant-page-preview--wide {
    max-width: 100%;
    max-height: 14rem;
    width: 100%;
    object-fit: cover;
}

.merchant-page-preview--avatar {
    width: 7.5rem;
    height: 7.5rem;
    max-width: 7.5rem;
    max-height: 7.5rem;
    border: .22rem solid #fff;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 .3rem .9rem rgba(15, 23, 42, .18);
    background-color: #f4f7fb;
    background-image:
        linear-gradient(45deg, #e1e7ef 25%, transparent 25%),
        linear-gradient(-45deg, #e1e7ef 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #e1e7ef 75%),
        linear-gradient(-45deg, transparent 75%, #e1e7ef 75%);
    background-size: 14px 14px;
    background-position: 0 0, 0 7px, 7px -7px, -7px 0;
}

.merchant-point-choices {
    margin: 1.25rem 0;
    padding: 0;
    border: 0;
}

.merchant-point-choices__grid {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.merchant-point-choices__grid label {
    display: grid;
}

.merchant-point-choices__grid input {
    position: absolute;
    opacity: 0;
}

.merchant-point-choices__grid span {
    display: inline-flex;
    min-width: 3.6rem;
    justify-content: center;
    padding: .55rem .7rem;
    border: 1px solid var(--line);
    border-radius: .4rem;
    background: #fff;
    font-weight: 800;
    cursor: pointer;
}

.merchant-point-choices__grid input:checked + span,
.merchant-point-choices__grid input:focus-visible + span {
    border-color: var(--red);
    background: #fff1f0;
    color: var(--red);
}

.advertiser-offer-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.merchant-offer-list img {
    width: 5.5rem;
    height: 4.1rem;
    object-fit: cover;
    border-radius: .3rem;
    background: #eef3f8;
}

@font-face {
    font-family: Pacifico;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/pacifico.woff2") format("woff2");
}

.member-home {
    overflow: visible;
    padding-bottom: 3.5rem;
    background: #fff;
}

.member-home .account-confirm-banner {
    margin-top: 1.25rem;
}

.member-home__top {
    position: relative;
    overflow: visible;
}

.member-home__band {
    position: relative;
    z-index: 2;
    overflow: hidden;
    color: #fff;
    background: #081a36;
}

.member-home__top > .container {
    position: relative;
    z-index: 1;
}

.member-home__hero {
    display: grid;
    grid-template-columns: 17.75rem minmax(0, 1fr) minmax(16.5rem, 24rem);
    column-gap: 1.15rem;
    align-items: stretch;
    min-width: 0;
    min-height: 16.75rem;
    padding: 0;
}

.member-home__companion {
    position: relative;
    z-index: 3;
    align-self: stretch;
    width: 17.75rem;
    overflow: hidden;
    scroll-margin-top: 1rem;
}

.member-home__circle,
.member-home__square {
    position: relative;
    overflow: hidden;
    background: #081a36;
}

.member-home__circle {
    width: 8.25rem;
    aspect-ratio: 1;
    border-radius: 50%;
    box-shadow:
        0 0 0 .14rem #fff,
        0 10px 24px rgba(0, 0, 0, .22);
}

.member-home__square--hero {
    width: 100%;
    height: 100%;
    min-height: 0;
    border-radius: 0;
}

.member-home__audio {
    min-width: 0;
}

.member-home__audio ul {
    margin: .45rem 0 0;
    padding: 0;
    list-style: none;
}

.member-home__audio li + li {
    margin-top: .12rem;
}

.member-home__audio button,
.member-home__audio a {
    display: block;
    width: 100%;
    padding: .06rem 0;
    border: 0;
    background: transparent;
    color: #081a36;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: .9rem;
    font-weight: 650;
    line-height: 1.45;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.member-home__audio button:hover,
.member-home__audio button:focus-visible,
.member-home__audio a:hover,
.member-home__audio a:focus-visible {
    color: #081a36;
}

.member-home__audio button:focus-visible,
.member-home__audio a:focus-visible {
    outline: 2px solid #f3c94a;
    outline-offset: 2px;
}

.member-home__audio button:disabled {
    cursor: default;
    opacity: 1;
}

.member-home__audio mark {
    padding: 0;
    color: var(--red);
    background: transparent;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
}

.member-home__circle--empty,
.member-home__square--empty {
    background: linear-gradient(180deg, #d7e2f0 0%, #b7c6d8 100%);
}

.member-home__circle img,
.member-home__square img,
.member-home__video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
    background: #081a36;
}

.member-home__video {
    z-index: 1;
    opacity: 0;
    transition: opacity .55s ease;
    pointer-events: none;
}

.member-home__video::-webkit-media-controls {
    display: none !important;
}

.member-home__circle.is-playing .member-home__video,
.member-home__square.is-playing .member-home__video {
    opacity: 1;
}

.member-home__change {
    display: inline-block;
    color: #081a36;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.2;
    text-decoration: underline;
    text-underline-offset: .16em;
}

.member-home__change:hover,
.member-home__change:focus-visible {
    color: var(--red);
}

.member-home__circle-hit,
.member-home__frame-hit {
    position: absolute;
    inset: 0;
    z-index: 2;
    padding: 0;
    border: 0;
    border-radius: inherit;
    background: transparent;
    cursor: pointer;
}

.member-home__circle-hit:focus-visible,
.member-home__frame-hit:focus-visible {
    outline: 2px solid #f3c94a;
    outline-offset: 4px;
}

.member-home__intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    max-width: 100%;
    padding: 1.15rem 0 1.35rem;
}

.member-home__hello {
    min-width: 0;
}

.member-home__bonjour {
    margin: 0 0 .2rem;
    color: #f3c94a;
    font-family: Pacifico, "Segoe Print", "Brush Script MT", cursive;
    font-size: clamp(2.1rem, 3.4vw, 3rem);
    font-weight: 400;
    line-height: 1.05;
}

.member-home__intro h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(2.85rem, 5.4vw, 4.55rem);
    letter-spacing: -.04em;
    line-height: .95;
    overflow-wrap: anywhere;
}

.member-home__its-me {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin: .35rem 0 0;
    color: #f3c94a;
    font-family: Pacifico, "Segoe Print", "Brush Script MT", cursive;
    font-size: clamp(1.35rem, 2.3vw, 1.9rem);
    font-weight: 400;
}

.member-home__heart,
.member-home__tagline-heart {
    display: inline-block;
    width: 1.15em;
    height: 1.05em;
    flex: 0 0 1.15em;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3c94a' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.6-7-9.2A3.8 3.8 0 0 1 12 8.2 3.8 3.8 0 0 1 19 10.8C19 15.4 12 20 12 20z'/%3E%3C/svg%3E")
        center / contain no-repeat;
}

.member-home__tagline-heart {
    width: 1.45em;
    height: 1.35em;
    flex-basis: 1.45em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0a429' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.6-7-9.2A3.8 3.8 0 0 1 12 8.2 3.8 3.8 0 0 1 19 10.8C19 15.4 12 20 12 20z'/%3E%3C/svg%3E");
}

.member-home__below {
    display: grid;
    grid-template-columns: 17.75rem minmax(0, 1fr);
    column-gap: 1.15rem;
    align-items: start;
}

.member-home__below-side {
    padding-top: .45rem;
    text-align: center;
}

.member-home__audios {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: start;
    gap: .65rem 1rem;
    min-width: 0;
    padding: .45rem 0 1.15rem;
}

.member-home__audio-title {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    box-sizing: border-box;
    width: max-content;
    min-width: 16.5rem;
    max-width: 100%;
    margin: 0;
    padding: .38rem .75rem .38rem .85rem;
    border: 0;
    color: #fff;
    background: #081a36;
    font-family: inherit;
    font-size: .98rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: left;
    list-style: none;
    cursor: pointer;
}

.member-home__audio-title::-webkit-details-marker {
    display: none;
}

.member-home__audio-title::marker {
    content: none;
}

.member-home__audio-title:focus-visible {
    outline: 2px solid #f3c94a;
    outline-offset: 2px;
}

.member-home__audio-title h2 {
    display: contents;
    color: inherit;
    font: inherit;
    letter-spacing: inherit;
}

.member-home__megaphone {
    display: inline-block;
    width: 1em;
    height: 1em;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3 10v4h2l5 3V7L5 10zm12.5 2a4.5 4.5 0 0 0-1.5-3.4v6.8A4.5 4.5 0 0 0 15.5 12zm-1.5-7v1.6A7 7 0 0 1 20 12a7 7 0 0 1-6 6.4V20A8.5 8.5 0 0 0 21.5 12 8.5 8.5 0 0 0 14 5z'/%3E%3C/svg%3E")
        center / contain no-repeat;
}

.member-home__points-cta {
    display: none;
}

.member-home__points-slot {
    display: flex;
    align-items: center;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    padding: .85rem 0;
}

.member-home__points {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: .7rem .65rem .65rem;
    border: 1px solid #e6ebf2;
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(8, 26, 54, .18);
    color: var(--ink);
}

.member-home__points-activity {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    margin: 0 0 .55rem;
    color: #081a36;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-wrap: balance;
}

.member-home__points-activity .member-home__icon {
    width: 1.9rem;
    height: 1.9rem;
    margin: 0;
    background-size: .9rem;
    box-shadow: none;
}

.member-home__points-delta {
    color: #c9a227;
}

.member-home__points-wallets {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    min-width: 0;
}

.member-home__points-wallet {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    min-width: 0;
    padding: .7rem .4rem .6rem;
    border: 1px solid #e6ebf2;
    border-radius: .85rem;
    background: #fbfcfe;
    text-align: center;
}

.member-home__points-wallet .member-home__icon {
    width: 2.05rem;
    height: 2.05rem;
    margin: 0 0 .35rem;
    background-size: .95rem;
}

.member-home__points-kind {
    margin-top: .35rem;
    color: var(--navy);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.15;
    text-wrap: balance;
}

.member-home__points-kind--top {
    color: #3f4f9a;
}

.member-home__points-avail {
    margin-top: .12rem;
    color: #1f9d4a;
    font-size: .72rem;
    font-weight: 700;
}

.member-home__points-held {
    margin-top: .4rem;
    color: #1654a5;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1.2;
    text-wrap: balance;
}

.member-home__value {
    display: block;
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.35rem, calc(2.15rem - (var(--point-ch, 1) - 1) * .18rem), 2.15rem);
    font-weight: 800;
    letter-spacing: -.04em;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.member-home__value--gift {
    color: #081a36;
}

.member-home__value--top {
    color: #5b6bb8;
}

.member-home__value[data-digits="7"],
.member-home__value[data-digits="8"],
.member-home__value[data-digits="9"],
.member-home__value[data-digits="10"] {
    letter-spacing: -.06em;
}

.member-home__icon {
    width: 2.55rem;
    height: 2.55rem;
    margin: .15rem 0 .1rem;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 1.15rem;
}

.member-home__icon--star {
    background-color: #fff3c2;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f0c44a' d='M12 3.2 14.4 9l6.2.5-4.7 3.9 1.5 6.1L12 16.4 6.6 19.5l1.5-6.1L3.4 9.5 9.6 9z'/%3E%3C/svg%3E");
}

.member-home__icon--gift {
    background-color: #def6de;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231f9d4a' d='M8.5 4A2.5 2.5 0 0 0 6 6.5c0 .5.15 1 .42 1.4H4v3h7V8H8.92A2.48 2.48 0 0 0 8.5 4zm7 0A2.5 2.5 0 0 0 13 6.5c0 .5.15 1 .42 1.4H13v2h7V8h-2.42c.27-.4.42-.9.42-1.4A2.5 2.5 0 0 0 15.5 4zM4 12v7.5A1.5 1.5 0 0 0 5.5 21H11v-9zm9 0v9h5.5a1.5 1.5 0 0 0 1.5-1.5V12z'/%3E%3C/svg%3E");
}

.member-home__icon--tag {
    background-color: #eceffc;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%233f4f9a' d='M21.4 11.6 12.4 2.6A1.5 1.5 0 0 0 11.3 2H4.5A1.5 1.5 0 0 0 3 3.5v6.8c0 .4.16.78.44 1.06l9 9a1.5 1.5 0 0 0 2.12 0l6.84-6.84a1.5 1.5 0 0 0 0-2.12zM7.25 8A1.75 1.75 0 1 1 9 6.25 1.75 1.75 0 0 1 7.25 8z'/%3E%3C/svg%3E");
}

.member-home__games {
    margin-top: 1.35rem;
}

.member-home__games h2 {
    margin: 0 0 1rem;
    color: var(--navy);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    letter-spacing: .04em;
    text-align: center;
    text-transform: uppercase;
}

.member-home__games h2::before,
.member-home__games h2::after {
    content: "—";
    margin: 0 .45rem;
    color: #e2182b;
}

.member-home__game-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}

.member-home-game {
    position: relative;
    overflow: hidden;
    min-height: 12.75rem;
    border-radius: .7rem;
    color: #fff;
}

.member-home-game__copy {
    position: relative;
    z-index: 1;
    display: grid;
    align-content: start;
    align-self: stretch;
    gap: .45rem;
    max-width: 58%;
    height: 100%;
    padding: 1.05rem 1rem 1.1rem;
}

.member-home-game__photo {
    position: absolute;
    top: 0;
    right: 0;
    width: 58%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.member-home-game h3 {
    margin: 0;
    color: inherit;
    font-size: clamp(1.55rem, 2.4vw, 2.05rem);
    letter-spacing: .01em;
    text-transform: uppercase;
}

.member-home-game p {
    margin: 0;
    max-width: 14rem;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}

.member-home-game__cta {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    margin-top: .35rem;
    padding: .45rem .85rem;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 999px;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.member-home-game__cta:hover,
.member-home-game__cta:focus-visible {
    background: rgba(255, 255, 255, .12);
}

.member-home-game__cta--play {
    border-color: transparent;
    background: #c43a2f;
}

.member-home-game--roulette {
    background: #081a36;
}

.member-home-game--roulette .member-home-game__photo {
    width: 54%;
    object-position: 70% center;
}

.member-home-game--chest {
    background: #4a2a12;
}

.member-home-game--chest .member-home-game__photo {
    width: 56%;
    object-position: 60% 40%;
}

.member-home-game--fishing {
    background: #0e4a6e;
}

.member-home-game--fishing .member-home-game__photo {
    width: 56%;
    object-position: 70% 45%;
}

.member-home-game--fly {
    background: #f6ead2;
    color: #5a2d12;
}

.member-home-game--fly .member-home-game__copy {
    max-width: 56%;
    background: linear-gradient(90deg, #f6ead2 0%, rgba(246, 234, 210, .88) 70%, transparent 100%);
}

.member-home-game--fly h3 {
    color: #c43a2f;
    text-transform: none;
}

.member-home-game--fly p {
    color: #6a4020;
    text-transform: none;
    font-weight: 600;
}

.member-home-game--fly .member-home-game__photo {
    width: 50%;
}

.member-home-game--default {
    background: #081a36;
}

a.member-home-game {
    display: block;
    text-decoration: none;
    transition: transform .18s ease;
}

a.member-home-game:hover,
a.member-home-game:focus-visible {
    transform: translateY(-.15rem);
    outline: 0;
}

.member-home-game__points {
    display: inline-flex;
    align-self: start;
    margin-top: .1rem;
    padding: .22rem .55rem;
    border-radius: 999px;
    background: #1554e8;
    color: #fff;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.member-home-game__points--range {
    letter-spacing: .04em;
}

.member-home-game--used .member-home-game__points {
    background: #e2182b;
}

.club-games {
    padding: clamp(1.75rem, 4vw, 3.5rem) 0 clamp(3rem, 6vw, 5rem);
    background: #fff;
}

.member-home__merchants {
    margin-top: 2.4rem;
    text-align: left;
}

.member-home__merchant-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem 1.5rem;
    padding: .85rem 1.15rem .85rem .85rem;
    border: 1px solid #e6ebf2;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(8, 26, 54, .06);
}

.member-home__merchants-lead {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-width: 0;
    margin: 0;
    padding-right: 1.25rem;
    border-right: 1px solid #dce2ea;
    color: var(--navy);
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
}

.member-home__merchant-icon {
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background-color: var(--red);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M4 8.2 6.2 4h11.6L20 8.2V10H4zm0 3h2v7H4zm14 0h2v7h-2zM8 11h3.2v7H8zm4.8 0H16v7h-3.2z'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 1.35rem;
}

.member-home__merchants h2 {
    margin: 0;
    color: inherit;
    font: inherit;
    letter-spacing: normal;
}

.member-home__merchant-select {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem .45rem;
    color: var(--red);
    font-family: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    font-weight: 800;
    letter-spacing: .01em;
    line-height: 1.15;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.member-home__merchant-select strong {
    color: var(--navy);
    font-weight: 800;
}

.member-home__merchant-select::after {
    content: "›";
    color: var(--red);
    font-size: 1.15em;
    font-weight: 700;
    line-height: 1;
}

.member-home__merchant-select:hover,
.member-home__merchant-select:focus-visible {
    text-decoration: underline;
    text-underline-offset: .16em;
}

.member-home .section-heading {
    margin-top: 2.75rem;
}

.member-home .section-heading--stack {
    display: block;
    margin-bottom: 1.15rem;
}

.member-home .section-heading--stack h2 {
    max-width: none;
}

.member-home .theme-grid {
    margin-bottom: 0;
}

.account-codes {
    padding-top: 0;
}

.account-codes__form {
    max-width: 38rem;
    margin-bottom: 2.25rem;
}

.account-codes .code-input-group {
    overflow: hidden;
    border: 1px solid var(--line);
    background: #fff;
}

.account-codes .code-input-group input {
    min-height: 3.25rem;
    border: 0;
    background: #f8fafc;
}

.account-codes .code-input-group .button {
    min-height: 3.25rem;
    padding-inline: 1.2rem;
    flex: 0 0 auto;
}

.account-codes .field-hint {
    color: var(--muted) !important;
}

.account-codes__history h2 {
    margin-bottom: 1rem;
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
}

@media (max-width: 40rem) {
    .account-codes .code-input-group {
        flex-direction: column;
        gap: .55rem;
        overflow: visible;
        border: 0;
        background: transparent;
    }

    .account-codes .code-input-group input {
        border: 1px solid var(--line);
        background: #fff;
    }

    .account-codes .code-input-group .button {
        width: 100%;
    }
}

@media (max-width: 72rem) {
    .member-home__hero {
        grid-template-columns: minmax(12.5rem, 15.5rem) minmax(0, 1fr) minmax(14.5rem, 20rem);
        column-gap: .85rem;
        min-height: 15.5rem;
    }

    .member-home__companion {
        width: 100%;
        max-width: 15.5rem;
    }

    .member-home__intro {
        padding: .9rem 0 1rem;
    }

    .member-home__below {
        grid-template-columns: 15.5rem minmax(0, 1fr);
        column-gap: .85rem;
    }

    .member-home__points {
        padding: .55rem .45rem .5rem;
    }

    .member-home__points-activity {
        margin-bottom: .45rem;
        font-size: .85rem;
    }

    .member-home__points-wallets {
        gap: .4rem;
    }

    .member-home__points-wallet {
        padding: .55rem .3rem .5rem;
    }

    .member-home__points-kind {
        font-size: .7rem;
    }

    .member-home__value {
        font-size: clamp(1.15rem, calc(1.7rem - (var(--point-ch, 1) - 1) * .14rem), 1.7rem);
    }

}

@media (max-width: 58rem) {
    .member-home__hero {
        position: relative;
        display: block;
        width: 100%;
        max-width: none;
        margin-inline: 0;
        height: calc(100vh - 4.5rem);
        height: calc(100dvh - 4.5rem);
        min-height: 20rem;
        padding: 0;
        grid-template-columns: none;
        column-gap: 0;
    }

    .member-home__companion {
        position: absolute;
        inset: 0;
        z-index: 1;
        width: 100%;
        max-width: none;
        overflow: hidden;
    }

    .member-home__square--hero {
        height: 100%;
        min-height: 0;
    }

    .member-home__intro {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 4;
        min-width: 0;
        padding: 3.25rem 1.15rem 1.15rem;
        background: linear-gradient(180deg, transparent 0%, rgba(8, 26, 54, .82) 72%);
        text-align: center;
        pointer-events: none;
    }

    .member-home__hello {
        text-align: center;
    }

    .member-home__bonjour {
        font-size: clamp(1.55rem, 6vw, 2.15rem);
    }

    .member-home__intro h1 {
        font-size: clamp(1.85rem, 8vw, 2.9rem);
    }

    .member-home__its-me {
        justify-content: center;
        font-size: clamp(1.05rem, 4.2vw, 1.4rem);
    }

    .member-home__below {
        display: flex;
        flex-direction: column;
        width: min(100% - 2.5rem, 78rem);
        margin-inline: auto;
        grid-template-columns: none;
    }

    .member-home__audios {
        order: 1;
        width: 100%;
        padding: .85rem 0 .35rem;
    }

    .member-home__audio,
    .member-home__audio-title {
        width: 100%;
        min-width: 0;
        max-width: none;
        flex-basis: 100%;
    }

    .member-home__points-cta {
        display: flex;
        order: 2;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin: .55rem 0 .15rem;
        min-height: 3.9rem;
        font-size: 1.08rem;
    }

    .member-home__below-side {
        order: 3;
        width: 100%;
        padding-top: .55rem;
        padding-bottom: .15rem;
        text-align: center;
    }

    .member-home .member-home__points-slot {
        display: none;
    }

    .member-home__merchant-bar {
        grid-template-columns: 1fr;
        border-radius: 1.15rem;
        padding: 1rem;
    }

    .member-home__merchants-lead {
        padding-right: 0;
        padding-bottom: .9rem;
        border-right: 0;
        border-bottom: 1px solid #dce2ea;
    }

    .member-home__merchant-select {
        justify-content: flex-start;
        white-space: normal;
    }

    .member-home__game-row {
        grid-template-columns: 1fr;
    }

    .member-home-game__copy,
    .member-home-game--fly .member-home-game__copy {
        max-width: 100%;
    }

    .member-home-game__photo {
        position: relative;
        width: 100%;
        height: 10rem;
    }
}

@media (max-width: 46rem) {
    .member-home__games h2::before,
    .member-home__games h2::after {
        display: none;
    }
}

.concept-pillars {
    padding: 1.5rem 0 clamp(2rem, 4vw, 3.25rem);
    background: var(--white);
}

.concept-pillars__intro {
    max-width: 42rem;
    margin-bottom: 2.25rem;
}

.concept-pillars__intro h1 {
    max-width: 22ch;
    margin-bottom: .75rem;
    font-size: clamp(2.1rem, 4vw, 3.25rem);
    line-height: 1.02;
}

.concept-pillars__intro p:last-child {
    margin: 0;
    color: #526077;
    font-size: 1.08rem;
}

.concept-pillars__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: stretch;
}

.concept-pillar {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2.1rem);
    border: 1px solid var(--line);
    border-top: .4rem solid var(--navy);
    background: #f7f9fc;
    box-shadow: 0 12px 35px rgba(8, 26, 54, .08);
}

.concept-pillar:nth-child(2) {
    border-top-color: var(--blue);
}

.concept-pillar:nth-child(3) {
    border-top-color: var(--red);
}

.concept-pillar > span {
    margin-bottom: 1rem;
    color: var(--red);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.concept-pillar h3 {
    max-width: 16ch;
    margin-bottom: .75rem;
    font-size: clamp(1.45rem, 2.2vw, 1.95rem);
}

.concept-pillar p {
    margin: 0;
    color: #526077;
}

.concept-loop {
    padding: clamp(3.5rem, 7vw, 6.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 80% 0, rgba(22, 84, 165, .8), transparent 38%),
        var(--navy);
}

.concept-loop__intro {
    max-width: 42rem;
    margin-bottom: 2.25rem;
}

.concept-loop h2,
.concept-loop h3 {
    color: #fff;
}

.concept-loop__intro h2 {
    max-width: 16ch;
    margin-bottom: .75rem;
}

.concept-loop__intro p:last-child {
    margin: 0;
    color: #dbe5f3;
    font-size: 1.08rem;
}

.concept-loop__steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.concept-loop__steps li {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 1.25rem 1.15rem 1.35rem;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .07);
}

.concept-loop__steps li > span {
    margin-bottom: .85rem;
    color: #ff6574;
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.concept-loop__steps h3 {
    margin-bottom: .45rem;
    font-size: 1.25rem;
}

.concept-loop__steps p {
    margin: 0;
    color: #dbe5f3;
    font-size: .92rem;
}

.concept-proof {
    background: var(--soft);
}

.concept-proof__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(16rem, .95fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 4rem);
}

.concept-proof__visual {
    margin: 0;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 22px 48px rgba(8, 26, 54, .16);
}

.concept-proof__visual img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.concept-proof__copy h2 {
    max-width: 16ch;
    margin-bottom: .85rem;
}

.concept-proof__copy > p:not(.eyebrow) {
    margin-bottom: 1.5rem;
    color: #526077;
}

.concept-proof blockquote {
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border-left: 4px solid var(--red);
    background: var(--white);
    box-shadow: 0 10px 24px rgba(8, 26, 54, .06);
}

.concept-proof blockquote p {
    margin: 0 0 .45rem;
    color: var(--navy);
    font-size: 1.02rem;
}

.concept-proof blockquote footer {
    color: var(--red);
    font-size: .82rem;
    font-weight: 800;
}

.concept-close {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background: var(--white);
}

.concept-close__intro {
    margin-bottom: 1.75rem;
}

.concept-close__intro h2 {
    max-width: 14ch;
    margin: 0;
}

.concept-close__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.concept-close__grid article {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(1.5rem, 3vw, 2.1rem);
    border: 1px solid var(--line);
    background: #f7f9fc;
}

.concept-close__grid h3 {
    margin-bottom: .5rem;
    font-family: inherit;
    font-size: 1rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.concept-close__grid p {
    flex: 1;
    margin-bottom: 1.25rem;
    color: #526077;
}

@media (max-width: 72rem) {
    .concept-pillars__grid {
        grid-template-columns: 1fr;
    }

    .concept-loop__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 62rem) {
    .concept-proof__grid,
    .concept-close__grid {
        grid-template-columns: 1fr;
    }

    .concept-loop__steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 38rem) {
    .concept-pillars__intro h1 {
        max-width: none;
        font-size: clamp(2.05rem, 10vw, 2.85rem);
    }
}

.image-lightbox-trigger {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.image-lightbox {
    position: relative;
    width: min(56rem, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.image-lightbox::backdrop {
    background: rgba(8, 26, 54, .55);
}

.image-lightbox__close {
    position: absolute;
    top: .45rem;
    right: .45rem;
    z-index: 2;
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--line);
    border-radius: .3rem;
    background: var(--white);
    color: var(--navy);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.image-lightbox img {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 4rem);
    margin: 0 auto;
    object-fit: contain;
    background: transparent;
}

.image-crop {
    margin: .75rem 0 1rem;
}

.image-crop__hint {
    margin: 0 0 .55rem;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.4;
}

.image-crop__ratios {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: 0 0 .7rem;
}

.image-crop__ratio {
    padding: .28rem .7rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--white);
    color: var(--navy);
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
}

.image-crop__ratio.is-active {
    border-color: var(--navy);
    background: var(--navy);
    color: #fff;
}

.image-crop__viewport {
    position: relative;
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    background: transparent;
    touch-action: none;
    user-select: none;
}

.image-crop__source {
    display: block;
    max-width: 100%;
    max-height: min(22rem, 55vh);
    width: auto;
    height: auto;
    vertical-align: top;
}

.image-crop__box {
    position: absolute;
    box-sizing: border-box;
    border: 2px solid #fff;
    box-shadow: 0 0 0 9999px rgba(8, 26, 54, .42);
    cursor: move;
}

.image-crop__handle {
    position: absolute;
    width: .85rem;
    height: .85rem;
    border: 2px solid #fff;
    background: var(--navy);
}

.image-crop__handle[data-handle="nw"] {
    top: 0;
    left: 0;
    cursor: nwse-resize;
}

.image-crop__handle[data-handle="ne"] {
    top: 0;
    right: 0;
    cursor: nesw-resize;
}

.image-crop__handle[data-handle="sw"] {
    bottom: 0;
    left: 0;
    cursor: nesw-resize;
}

.image-crop__handle[data-handle="se"] {
    bottom: 0;
    right: 0;
    cursor: nwse-resize;
}

.image-editor {
    width: min(44rem, calc(100vw - 1.5rem));
    max-height: calc(100vh - 1.5rem);
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.image-editor::backdrop {
    background: rgba(8, 26, 54, .55);
}

.image-editor__form {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 1.5rem);
    overflow: auto;
}

.image-editor__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.15rem .7rem;
}

.image-editor__head h2 {
    margin: 0;
    font-size: 1.2rem;
}

.image-editor__close {
    width: 2.4rem;
    height: 2.4rem;
    border: 1px solid var(--line);
    border-radius: .3rem;
    background: var(--white);
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
}

.image-editor__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    padding: 0 1.15rem;
}

.image-editor__ratios {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.image-editor__zoom {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.image-editor__zoom-btn {
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid var(--line);
    border-radius: .3rem;
    background: var(--white);
    color: var(--navy);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
}

.image-editor__zoom-btn:hover,
.image-editor__zoom-btn:focus-visible {
    border-color: var(--navy);
}

.image-editor__zoom-value {
    min-width: 3.2rem;
    text-align: center;
    font-size: .9rem;
    font-weight: 700;
}

.image-editor__hint {
    margin: .65rem 1.15rem .85rem;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.4;
}

.image-editor__stage {
    display: flex;
    justify-content: center;
    padding: 0 1.15rem;
}

.image-editor__viewport {
    position: relative;
    overflow: hidden;
    max-width: 100%;
    min-height: 10rem;
    background: #111;
    box-shadow: 0 0 0 1px #fff, 0 0 0 2px var(--navy);
    touch-action: none;
    user-select: none;
    cursor: grab;
}

.image-editor__viewport.is-dragging {
    cursor: grabbing;
}

.image-editor__viewport.is-transparent {
    background-color: #f4f7fb;
    background-image:
        linear-gradient(45deg, #d5dbe3 25%, transparent 25%),
        linear-gradient(-45deg, #d5dbe3 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #d5dbe3 75%),
        linear-gradient(-45deg, transparent 75%, #d5dbe3 75%);
    background-size: 16px 16px;
    background-position: 0 0, 0 8px, 8px -8px, -8px 0;
}

.image-editor__source {
    position: absolute;
    top: 0;
    left: 0;
    max-width: none;
    max-height: none;
    width: auto;
    height: auto;
    pointer-events: none;
    user-select: none;
}

.image-editor__foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: .7rem;
    padding: 1rem 1.15rem 1.15rem;
}

.image-editor-open {
    display: inline-block;
    margin: .35rem 0 .15rem;
}

img[data-image-editor-preview] {
    cursor: pointer;
}

.claim-dialog {
    width: min(36rem, calc(100vw - 2rem));
    padding: 1.5rem 1.5rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: 3px;
    color: var(--navy);
    background: var(--white);
    box-shadow: 0 18px 48px rgba(8, 26, 54, .18);
}

.claim-dialog::backdrop {
    background: rgba(8, 26, 54, .45);
}

.claim-dialog h2 {
    margin: 0 0 .75rem;
    font-size: 1.35rem;
}

.claim-dialog h3 {
    margin: 1rem 0 .5rem;
    font-size: 1.05rem;
}

.claim-dialog p {
    margin: 0 0 .75rem;
    color: var(--muted);
    line-height: 1.45;
}

.claim-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 1rem;
}

.claim-dialog__consent {
    margin-top: 1rem;
    padding: .85rem;
    border: 1px solid var(--line);
    background: var(--soft);
}

.merchant-supplier-logos {
    margin: 1.25rem 0;
    padding: 1rem;
    border: 1px solid var(--line);
}

.merchant-supplier-logos__grid {
    display: grid;
    grid-template-columns: repeat(var(--supplier-logo-slots, 3), minmax(0, 1fr));
    gap: .4rem;
}

.merchant-supplier-logo {
    position: relative;
    min-width: 0;
}

.merchant-supplier-logo__tile {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 2 / 1;
    overflow: hidden;
    border: 1px dashed var(--line);
    background: #fff;
    cursor: pointer;
}

.merchant-supplier-logo.is-filled .merchant-supplier-logo__tile {
    border-style: solid;
    background: #111;
}

.merchant-supplier-logo-preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #111;
}

.merchant-supplier-logo__placeholder {
    width: 2.4rem;
    height: 2.4rem;
    border: 2px solid var(--navy);
    border-radius: 50%;
    background:
        linear-gradient(var(--navy), var(--navy)) center / 1.1rem 2px no-repeat,
        linear-gradient(var(--navy), var(--navy)) center / 2px 1.1rem no-repeat;
}

.merchant-supplier-logo.is-filled .merchant-supplier-logo__placeholder,
.merchant-supplier-logo-preview:not([hidden]) + .merchant-supplier-logo__placeholder {
    display: none;
}

.merchant-supplier-logo__change,
.merchant-supplier-logo__remove {
    position: absolute;
    z-index: 2;
    top: .25rem;
    display: grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: #111;
    cursor: pointer;
}

.merchant-supplier-logo__change {
    left: .25rem;
}

.merchant-supplier-logo__remove {
    right: .25rem;
}

.merchant-supplier-logo__change-icon {
    width: .9rem;
    height: .9rem;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M5 5h10v2H7v10H5zm4 4h10v10H9zm2 2v6h6v-6z'/%3E%3C/svg%3E");
}

.merchant-supplier-logo__remove-icon {
    width: .9rem;
    height: .9rem;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 3h6l1 2h4v2H4V5h4zm1 6h2v9h-2zm4 0h2v9h-2zM7 7h10l-1 14H8z'/%3E%3C/svg%3E");
}

.merchant-supplier-logo__change:hover,
.merchant-supplier-logo__change:focus-visible,
.merchant-supplier-logo__remove:hover,
.merchant-supplier-logo__remove:focus-visible {
    background: var(--red);
}

@media (max-width: 48rem) {
    .merchant-supplier-logos__grid {
        grid-template-columns: repeat(var(--supplier-logo-slots, 3), minmax(0, 1fr));
    }
}

.checkout-shell {
    max-width: 40rem;
}

.checkout-offer {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.checkout-offer img {
    width: 7.5rem;
    height: 5.5rem;
    object-fit: contain;
    object-position: center;
    background: transparent;
}

.checkout-offer h2 {
    margin: 0 0 .35rem;
    font-size: 1.35rem;
}

.checkout-offer__points {
    margin: .35rem 0 0;
    font-weight: 700;
}

.checkout-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 0 0 1.5rem;
}

.checkout-summary dt {
    color: var(--muted);
    font-size: .9rem;
}

.checkout-summary dd {
    margin: .2rem 0 0;
    font-size: 1.25rem;
    font-weight: 700;
}

.checkout-methods {
    margin: 0 0 1.25rem;
    padding: 0;
    border: 0;
}

.checkout-methods legend {
    margin-bottom: .5rem;
    font-weight: 700;
}

.checkout-card-fields {
    display: grid;
    gap: .85rem;
    margin-bottom: 1rem;
}

.checkout-card-fields__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
}

.checkout-note {
    margin: 0 0 1.25rem;
    color: var(--muted);
}

.checkout-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.checkout-summary--ship {
    grid-template-columns: 1fr 1fr 1fr;
}

.checkout-address {
    margin: 0 0 1.25rem;
    color: var(--navy);
}

.checkout-address strong {
    display: block;
    margin-bottom: .2rem;
    color: var(--muted);
    font-size: .9rem;
    font-weight: 600;
}

.ship-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
}

.ship-form .field--wide,
.ship-form .checkout-actions {
    grid-column: 1 / -1;
}

.advertiser-order-list article small {
    display: block;
    color: var(--muted);
}

.advertiser-order-list form,
.club-redemption-list form {
    margin-top: .45rem;
}

@media (max-width: 38rem) {
    .checkout-offer,
    .checkout-summary,
    .checkout-summary--ship,
    .checkout-card-fields__row,
    .ship-form {
        grid-template-columns: 1fr;
    }

    .checkout-offer {
        display: grid;
    }
}

.survey-overlay {
    --question-accent: #1e4fd6;
    --question-accent-rgb: 30, 79, 214;
    position: fixed;
    inset: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(.6rem, 2.4vw, 1.6rem);
    visibility: hidden;
    pointer-events: none;
}

.survey-overlay.is-open {
    visibility: visible;
    pointer-events: auto;
}

.survey-overlay__backdrop {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 50% 18%, rgba(var(--question-accent-rgb), .22), transparent 38%),
        rgba(8, 26, 54, .58);
    opacity: 0;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: opacity .42s ease;
}

.survey-overlay.is-open .survey-overlay__backdrop {
    opacity: 1;
}

.survey-overlay.is-closing .survey-overlay__backdrop {
    opacity: 0;
}

.survey-overlay.is-closing .survey-overlay__morph,
.survey-overlay.is-closing .survey-overlay__content {
    transition-duration: .12s;
}

.survey-overlay__panel {
    position: relative;
    z-index: 1;
    display: flex;
    width: min(50rem, 100%);
    height: min(92vh, 58rem);
    max-height: calc(100dvh - 1.2rem);
    flex-direction: column;
    overflow: hidden;
    border-radius: 1.35rem;
    background: #fff;
    box-shadow:
        0 28px 80px rgba(8, 26, 54, .38),
        0 0 0 1px rgba(255, 255, 255, .28);
    transform: translate(0, 0) scale(1);
    transform-origin: center center;
    transition:
        transform .56s cubic-bezier(.22, 1, .32, 1),
        border-radius .56s cubic-bezier(.22, 1, .32, 1);
    will-change: transform;
}

.survey-overlay__panel::before {
    position: absolute;
    inset: auto 12% -18% 12%;
    height: 42%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--question-accent-rgb), .28), transparent 68%);
    content: "";
    pointer-events: none;
    filter: blur(8px);
}

.survey-overlay.is-growing .survey-overlay__panel {
    border-radius: 10px;
}

.survey-overlay__close {
    position: absolute;
    top: max(.85rem, env(safe-area-inset-top, 0px));
    right: max(.85rem, env(safe-area-inset-right, 0px));
    z-index: 4;
    display: inline-flex;
    width: 2.7rem;
    height: 2.7rem;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--navy);
    box-shadow: 0 10px 24px rgba(8, 26, 54, .28);
    cursor: pointer;
    touch-action: manipulation;
    opacity: 0;
    transform: scale(.72);
    transition: opacity .28s ease .18s, transform .28s ease .18s, background .18s ease;
}

.survey-overlay.is-expanded .survey-overlay__close {
    opacity: 1;
    transform: none;
}

.survey-overlay__close:hover,
.survey-overlay__close:focus-visible {
    background: var(--red);
    outline: 0;
}

.survey-overlay__close svg {
    width: 1.15rem;
    height: 1.15rem;
}

.survey-overlay__morph {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background:
        radial-gradient(circle at 50% 18%, rgba(var(--question-accent-rgb), .1), transparent 22rem),
        #fff;
    pointer-events: none;
    opacity: 1;
    transition: opacity .32s ease;
}

.survey-overlay.is-ready .survey-overlay__morph {
    opacity: 0;
}

.survey-overlay__morph .club-question-choice {
    width: min(18rem, 100%);
    border: 0;
    background: transparent;
    box-shadow: none;
}

.survey-overlay.is-loading .survey-overlay__morph .club-question-choice__circle {
    animation: survey-overlay-pulse 1.15s ease-in-out infinite;
}

.survey-overlay__content {
    position: relative;
    z-index: 2;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    opacity: 0;
    transform: translateY(1.1rem);
    transition: opacity .34s ease, transform .34s cubic-bezier(.22, 1, .32, 1);
}

.survey-overlay.is-ready .survey-overlay__content {
    opacity: 1;
    transform: none;
}

.survey-overlay [data-survey-detail] {
    min-height: 100%;
}

.survey-overlay .page-hero {
    padding: 1.7rem 0 .35rem;
    overflow: visible;
    background: transparent;
}

.survey-overlay .page-hero::after {
    display: none;
}

.survey-overlay .page-hero .back-link {
    display: none;
}

.survey-overlay .page-hero__inner h1 {
    max-width: 16ch;
    padding-right: 3rem;
    font-size: clamp(1.7rem, 4vw, 2.55rem);
}

.survey-overlay .form-page {
    padding: 0 0 1.5rem;
    background: transparent;
}

.survey-overlay .container {
    width: min(100% - 2rem, 46rem);
}

.survey-overlay .club-poll-shell {
    padding-bottom: 0;
}

.survey-overlay .club-poll-question {
    box-shadow: 0 10px 28px rgba(8, 26, 54, .08);
}

.survey-overlay .club-poll-submit {
    border-radius: .85rem;
}

.club-question-choice.is-survey-source {
    opacity: 0;
    pointer-events: none;
}

@keyframes survey-overlay-pulse {
    50% {
        filter: brightness(1.12);
    }
}

@media (max-width: 38rem) {
    .survey-overlay {
        padding: .45rem;
        align-items: stretch;
    }

    .survey-overlay__panel {
        width: 100%;
        height: calc(100dvh - .9rem);
        max-height: none;
        border-radius: 1rem;
    }

    .survey-overlay .page-hero {
        padding-top: 1.35rem;
    }

    .survey-overlay .container {
        width: min(100% - 1.5rem, 46rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .survey-overlay__backdrop,
    .survey-overlay__panel,
    .survey-overlay__close,
    .survey-overlay__morph,
    .survey-overlay__content {
        transition: none;
    }

    .survey-overlay.is-loading .survey-overlay__morph .club-question-choice__circle {
        animation: none;
    }
}

.advertiser-cac-section {
    margin: 1.5rem 0 0;
    border: 1px solid rgba(20, 32, 68, .12);
    border-radius: 12px;
    padding: 1rem 1rem .85rem;
}

.advertiser-cac-section > legend {
    display: flex;
    width: calc(100% - .7rem);
    padding: 0 .35rem;
}

.advertiser-cac-section__body {
    display: none;
    margin-top: .85rem;
}

.advertiser-cac-section.is-open .advertiser-cac-section__body {
    display: block;
}

.advertiser-cac-table {
    display: grid;
    gap: .65rem;
}

.advertiser-cac-table__head,
.advertiser-cac-table__row {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr);
    gap: .55rem;
    align-items: center;
}

.advertiser-cac-table--services .advertiser-cac-table__head,
.advertiser-cac-table--services .advertiser-cac-table__row {
    grid-template-columns: 2.2rem minmax(0, 1fr) minmax(0, 1.6fr);
}

.advertiser-cac-table__head {
    font-size: .78rem;
    font-weight: 700;
    color: var(--muted);
}

.advertiser-cac-table__index {
    font-weight: 700;
    color: var(--navy);
}

.advertiser-cac-table .field {
    margin: 0;
}

.advertiser-cac-when {
    margin: 1rem 0 0;
    border: 0;
    padding: 0;
    display: grid;
    gap: .55rem;
}

.advertiser-cac-when legend {
    margin-bottom: .35rem;
    font-weight: 700;
}

.advertiser-cac-week {
    flex-wrap: wrap;
    gap: .55rem .75rem;
}

.advertiser-cac-week input[type="date"] {
    min-width: 11rem;
}

.advertiser-cac-footer {
    margin: 1.4rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px solid rgba(20, 32, 68, .12);
}

.advertiser-cac-footer p {
    margin: 0 0 .55rem;
    color: var(--muted);
}

.admin-panel > h2 {
    margin: 1.4rem 0 .45rem;
    font-size: 1.15rem;
}

.admin-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: .85rem 1.25rem;
    margin: 0 0 1.4rem;
}

.admin-meta dt {
    font-size: .78rem;
    color: var(--muted);
}

.admin-meta dd {
    margin: .15rem 0 0;
    font-weight: 700;
}

.admin-inline-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: .7rem 1rem;
    margin-top: 1.5rem;
}

.admin-inline-form label {
    display: grid;
    gap: .3rem;
    font-weight: 700;
}

@media (max-width: 48rem) {
    .advertiser-cac-table__head {
        display: none;
    }

    .advertiser-cac-table__row,
    .advertiser-cac-table--services .advertiser-cac-table__row {
        grid-template-columns: 2rem minmax(0, 1fr);
        padding: .65rem 0;
        border-top: 1px solid rgba(20, 32, 68, .08);
    }

    .advertiser-cac-table__row .field:last-child,
    .advertiser-cac-table--services .advertiser-cac-table__row .field:last-child {
        grid-column: 2;
    }
}

.merchant-offer-group + .merchant-offer-group {
    margin-top: 2.5rem;
}

.merchant-offer-group__title {
    margin: 0;
    font-size: 1.35rem;
}

.merchant-offer-card__pickup,
.claim-dialog__pickup {
    display: grid;
    gap: .35rem;
}

.merchant-offer-card__pickup span,
.claim-dialog__pickup span {
    color: var(--navy);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.merchant-offer-card__pickup select,
.claim-dialog__pickup select {
    width: 100%;
    padding: .7rem;
    border: 1px solid var(--line);
    background: #fff;
}

.merchant-offer-pending,
.merchant-offer-card__pending {
    margin: 0 0 1rem;
    color: #775300;
    font-size: .85rem;
    font-weight: 800;
}

.merchant-offer-card__pending {
    margin: 0;
    font-size: .75rem;
}

.admin-ad-queue {
    display: grid;
    gap: .75rem;
}

.admin-ad-queue__card {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid var(--line);
    background: #fff;
}

.admin-ad-queue__photo {
    width: 7.5rem;
    height: 7.5rem;
    object-fit: cover;
    background: #111;
}

.admin-ad-queue__photo--empty {
    display: grid;
    place-items: center;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    text-align: center;
}

.admin-ad-queue__copy h3,
.admin-ad-queue__copy p,
.admin-ad-studio__photo h3 {
    margin: 0;
}

.admin-ad-queue__kind {
    color: var(--navy);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.admin-ad-queue__logos {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .55rem;
}

.admin-ad-queue__logos img {
    width: 4.5rem;
    height: 2.25rem;
    object-fit: cover;
    background: #111;
}

.admin-ad-studio__layout,
.admin-ad-compare {
    display: grid;
    gap: 1rem;
}

.admin-ad-compare figure {
    margin: 0;
    padding: .85rem;
    border: 1px solid var(--line);
    background: var(--soft);
}

.admin-ad-compare figure.is-changed {
    border-color: #775300;
}

.admin-ad-compare figcaption,
.admin-ad-change small {
    display: block;
    margin-bottom: .35rem;
    color: var(--navy);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.admin-ad-compare__photo {
    width: 100%;
    max-height: 16rem;
    object-fit: contain;
    background: #111;
}

.admin-ad-compare__empty {
    display: grid;
    place-items: center;
    min-height: 8rem;
    color: var(--muted, #5c6b7a);
    background: #fff;
}

.admin-ad-change-list {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
}

.admin-ad-change {
    display: grid;
    gap: .35rem;
}

.admin-ad-change h3 {
    margin: 0;
    font-size: .95rem;
}

.admin-ad-change p {
    margin: 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.admin-offer-preview--stage {
    width: 100%;
    max-height: 24rem;
    object-fit: contain;
    background: #111;
}

.admin-ad-studio .merchant-supplier-logos {
    margin: 0;
}

@media (min-width: 60rem) {
    .admin-ad-studio__layout,
    .admin-ad-compare,
    .admin-ad-change {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
    }

    .admin-ad-change h3 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 40rem) {
    .admin-ad-queue__card {
        grid-template-columns: 5.5rem minmax(0, 1fr);
    }

    .admin-ad-queue__photo {
        width: 5.5rem;
        height: 5.5rem;
    }

    .admin-ad-queue__card .button {
        grid-column: 1 / -1;
    }
}
