/* ==========================================================================
   VoucherCite theme styles
   Mobile first. Breakpoints: 640px, 900px, 1100px.
   Colour jobs (palette A + B mix, October 2026):
     blue         header, footer, discount badges, small accents (from palette A)
     coral        Get code / Get deal buttons only (navy text on coral)
     navy         headings and body text
     green        "Verified" tags
     yellow       highlights: exclusive, ending soon
   ========================================================================== */

:root {
	--vc-blue: #1D3FAA;
	--vc-blue-dark: #17338C;
	--vc-blue-tint: #E8EDFB;
	--vc-coral: #FF6B4A;
	--vc-coral-dark: #E5532F;
	--vc-navy: #1B1E3D;
	--vc-green: #12A150;
	--vc-yellow: #FFC83D;
	--vc-page: #F6F4F1;
	--vc-card: #FFFFFF;
	--vc-border: #E4E1DC;
	--vc-muted: #6B6E85;
	--vc-expired: #B9BBC6;

	/* Supporting shades derived from the palette. */
	--vc-navy-2: #2A2E5C;
	--vc-navy-tint: #EEF0F7;
	--vc-green-ink: #0B7A3B;
	--vc-green-tint: #E6F6EC;
	--vc-yellow-tint: #FFF4D6;
	--vc-amber-ink: #7A4E00;
	--vc-sand: #EFEBE5;
	--vc-cta-ink: var(--vc-navy);
	--vc-cta-shadow: rgba(229, 83, 47, .8);
	--vc-logo-accent: #FF6B4A;
	--vc-tint-0: #FFF0EB;
	--vc-tint-1: var(--vc-navy-tint);
	--vc-tint-2: #E9F5EF;
	--vc-tint-3: var(--vc-yellow-tint);
	--vc-tint-4: #F1EDE7;

	--vc-font: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--vc-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;

	--vc-r-sm: 8px;
	--vc-r: 12px;
	--vc-r-lg: 16px;
	--vc-r-xl: 22px;

	--vc-sh-1: 0 1px 2px rgba(27, 30, 61, .06), 0 1px 1px rgba(27, 30, 61, .04);
	--vc-sh-2: 0 10px 28px -14px rgba(27, 30, 61, .28), 0 2px 6px -2px rgba(27, 30, 61, .06);
	--vc-sh-3: 0 30px 80px -20px rgba(27, 30, 61, .45);

	--vc-gutter: 16px;
	--vc-max: 1240px;
	--vc-ease: cubic-bezier(.2, .7, .2, 1);
}

/* --------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------- */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--vc-page);
	color: var(--vc-navy);
	font-family: var(--vc-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img,
svg,
video { max-width: 100%; height: auto; }

img { display: block; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--vc-navy-2); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	color: var(--vc-navy);
	font-weight: 700;
	line-height: 1.22;
	letter-spacing: -.015em;
}

p { margin: 0 0 1em; }

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

button { cursor: pointer; }

:focus-visible {
	outline: 3px solid var(--vc-yellow);
	outline-offset: 2px;
	border-radius: 6px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

.vc-skip {
	position: absolute; left: 12px; top: -60px; z-index: 1000;
	padding: 10px 16px; border-radius: var(--vc-r-sm);
	background: var(--vc-yellow); color: var(--vc-navy); font-weight: 600; text-decoration: none;
}
.vc-skip:focus { top: 12px; }

.vc-icon { flex: none; vertical-align: middle; }

.vc-container {
	width: 100%;
	max-width: var(--vc-max);
	margin-inline: auto;
	padding-inline: var(--vc-gutter);
}
.vc-container--narrow { max-width: 860px; }

body.vc { display: flex; flex-direction: column; min-height: 100vh; }
.vc-main { display: block; flex: 1 0 auto; outline: none; }

@media (min-width: 900px) {
	:root { --vc-gutter: 24px; }
}

/* --------------------------------------------------------------------------
   Buttons
   ----------------------------------------------------------------------- */

.vc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 10px 20px;
	border: 2px solid transparent; border-radius: var(--vc-r);
	font-weight: 600; font-size: 15px; line-height: 1.2; text-decoration: none;
	transition: background-color .2s var(--vc-ease), color .2s var(--vc-ease), transform .2s var(--vc-ease), box-shadow .2s var(--vc-ease);
}
.vc-btn--primary { background: var(--vc-coral); color: var(--vc-cta-ink); }
.vc-btn--primary:hover { background: var(--vc-coral-dark); color: var(--vc-cta-ink); }
.vc-btn--navy { background: var(--vc-navy); color: #fff; }
.vc-btn--navy:hover { background: var(--vc-navy-2); color: #fff; }
.vc-btn--ghost { border-color: var(--vc-navy); background: transparent; color: var(--vc-navy); }
.vc-btn--ghost:hover { background: var(--vc-navy); color: #fff; }
.vc-btn--block { display: flex; width: 100%; }

/* The reveal button: coral label peeling back to show the end of the code. */
.vc-reveal {
	position: relative;
	display: flex; align-items: stretch;
	width: 100%; min-height: 50px;
	border-radius: var(--vc-r);
	background: var(--vc-coral);
	color: var(--vc-cta-ink);
	font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	transition: background-color .2s var(--vc-ease), box-shadow .2s var(--vc-ease), transform .15s var(--vc-ease);
}
.vc-reveal:hover { background: var(--vc-coral-dark); color: var(--vc-cta-ink); box-shadow: 0 8px 18px -10px var(--vc-cta-shadow); }
.vc-reveal:active { transform: translateY(1px); }
.vc-reveal__label {
	position: relative; z-index: 1;
	display: flex; align-items: center; justify-content: center;
	flex: 1; padding: 10px 18px; text-align: center;
}
.vc-reveal--sale .vc-reveal__label::after,
.vc-reveal--print .vc-reveal__label::after,
.vc-reveal--solid .vc-reveal__label::after {
	content: ""; width: 16px; height: 16px; margin-left: 8px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s var(--vc-ease);
}
.vc-reveal:hover .vc-reveal__label::after { transform: translateX(3px); }

/* Code variant: dashed code box behind, coral label on top with a folded corner. */
.vc-reveal--code {
	background: #fff;
	border: 2px dashed var(--vc-coral);
}
.vc-reveal--code:hover { background: #fff; }
.vc-reveal--code .vc-reveal__label {
	flex: none;
	width: calc(100% - 58px);
	margin: -2px 0 -2px -2px;
	background: var(--vc-coral);
	border-radius: var(--vc-r) 0 0 var(--vc-r);
	clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
	transition: width .25s var(--vc-ease), background-color .2s var(--vc-ease);
}
.vc-reveal--code .vc-reveal__label::before {
	content: ""; position: absolute; top: 0; right: 0;
	width: 20px; height: 20px;
	background: linear-gradient(225deg, transparent 50%, var(--vc-coral-dark) 50%);
	border-bottom-left-radius: 4px;
}
.vc-reveal--code:hover .vc-reveal__label { width: calc(100% - 72px); background: var(--vc-coral-dark); }
.vc-reveal__code {
	position: absolute; right: 0; top: 0; bottom: 0;
	display: flex; align-items: center; justify-content: flex-end;
	width: 76px; padding-right: 12px;
	font-family: var(--vc-mono); font-weight: 700; font-size: 15px; letter-spacing: .08em;
	color: var(--vc-navy);
}
.vc-reveal--sm { min-height: 42px; font-size: 14px; }
.vc-reveal--sm .vc-reveal__label { padding: 8px 14px; }

.vc-reveal--muted,
.vc-reveal--muted:hover { background: var(--vc-sand); box-shadow: none; }
.vc-reveal--muted .vc-reveal__label { color: var(--vc-muted); }
.vc-reveal--muted.vc-reveal--code { border-color: var(--vc-expired); background: #fff; }
.vc-reveal--muted.vc-reveal--code .vc-reveal__label,
.vc-reveal--muted.vc-reveal--code:hover .vc-reveal__label { background: var(--vc-sand); }
.vc-reveal--muted.vc-reveal--code .vc-reveal__label::before { background: linear-gradient(225deg, transparent 50%, var(--vc-expired) 50%); }
.vc-reveal--muted .vc-reveal__code { color: var(--vc-muted); }

/* --------------------------------------------------------------------------
   Header, navigation, search
   ----------------------------------------------------------------------- */

}

/* Header and footer colours, set by the body class: navy (default, the original brief), green or light. */
:root {
	--vc-hf-bg: #FFFFFF;
	--vc-hf-ink: var(--vc-navy);
	--vc-hf-soft: rgba(27, 30, 61, .78);
	--vc-hf-hover: #F4EEE9;
	--vc-hf-line: #ECE5DF;
	--vc-hf-drawer: #FFFFFF;
	--vc-hf-logo: var(--vc-navy);
	--vc-ft-bg: #F4EEE9;
	--vc-ft-ink: #1D2742;
	--vc-ft-head: #0B1739;
	--vc-ft-muted: #667085;
	--vc-ft-line: #DDD0C8;
	--vc-ft-bottom: #EADFD8;
	--vc-ft-social-bg: #FFFFFF;
	--vc-ft-social-border: #D8CBC3;
	--vc-ft-social-ink: #17223B;
}
body.vc-hf-navy {
	--vc-hf-bg: #1B1E3D;
	--vc-hf-ink: #FFFFFF;
	--vc-hf-soft: rgba(255, 255, 255, .82);
	--vc-hf-hover: rgba(255, 255, 255, .1);
	--vc-hf-line: rgba(255, 255, 255, .1);
	--vc-hf-drawer: #15182F;
	--vc-hf-logo: #FFFFFF;
	--vc-ft-bg: #1B1E3D;
	--vc-ft-ink: rgba(255, 255, 255, .82);
	--vc-ft-head: #FFFFFF;
	--vc-ft-muted: rgba(255, 255, 255, .6);
	--vc-ft-line: rgba(255, 255, 255, .12);
	--vc-ft-bottom: #15182F;
	--vc-ft-social-bg: transparent;
	--vc-ft-social-border: rgba(255, 255, 255, .3);
	--vc-ft-social-ink: #FFFFFF;
}
body.vc-hf-green {
	--vc-hf-bg: #14402A;
	--vc-hf-ink: #FFFFFF;
	--vc-hf-soft: rgba(255, 255, 255, .86);
	--vc-hf-hover: rgba(255, 255, 255, .1);
	--vc-hf-line: rgba(255, 255, 255, .08);
	--vc-hf-drawer: #0F3321;
	--vc-hf-logo: #FFFFFF;
	--vc-ft-bg: #14402A;
	--vc-ft-ink: rgba(244, 241, 228, .9);
	--vc-ft-head: #FFFFFF;
	--vc-ft-muted: rgba(244, 241, 228, .68);
	--vc-ft-line: rgba(255, 255, 255, .12);
	--vc-ft-bottom: #0F3321;
	--vc-ft-social-bg: transparent;
	--vc-ft-social-border: rgba(255, 255, 255, .32);
	--vc-ft-social-ink: #FFFFFF;
}

.vc-header {
	position: relative; z-index: 50;
	background: var(--vc-hf-bg); color: var(--vc-hf-ink);
	border-bottom: 1px solid var(--vc-hf-line);
	box-shadow: 0 1px 2px rgba(27, 30, 61, .04);
}
/* Phones: logo on the left, search and menu buttons on the right. */
.vc-header__inner {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-areas: "brand right";
	align-items: center;
	gap: 8px;
	min-height: 58px;
	padding-block: 6px;
}
.vc-brand { grid-area: brand; justify-self: start; display: inline-flex; align-items: center; color: var(--vc-hf-ink); text-decoration: none; }
.vc-brand__img { max-height: 40px; width: auto; }

.vc-logo { display: block; width: auto; height: 36px; color: var(--vc-navy); }
.vc-header .vc-logo { color: var(--vc-hf-logo); }

/* Logo animation: the tick draws itself, then the shield on the i pops in.
   Once when the homepage loads, and again whenever the logo is hovered. */
.vc-logo__badge { transform-box: view-box; transform-origin: 0 0; }
@keyframes vc-tick-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes vc-tick-draw-again { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes vc-badge-pop {
	0% { transform: scale(0); } 55% { transform: scale(1.25); } 75% { transform: scale(.92); } 100% { transform: scale(1); }
}
@keyframes vc-badge-pop-again {
	0% { transform: scale(0); } 55% { transform: scale(1.25); } 75% { transform: scale(.92); } 100% { transform: scale(1); }
}
body.vc-page-home .vc-header .vc-logo__tick { stroke-dasharray: 1; animation: vc-tick-draw .55s .25s cubic-bezier(.65, 0, .35, 1) both; }
body.vc-page-home .vc-header .vc-logo__badge { animation: vc-badge-pop .5s .75s cubic-bezier(.3, 1.4, .5, 1) both; }
.vc-header .vc-brand:hover .vc-logo__tick { stroke-dasharray: 1; animation: vc-tick-draw-again .55s cubic-bezier(.65, 0, .35, 1) both; }
.vc-header .vc-brand:hover .vc-logo__badge { animation: vc-badge-pop-again .5s .45s cubic-bezier(.3, 1.4, .5, 1) both; }
@media (prefers-reduced-motion: reduce) {
	.vc-logo__tick, .vc-logo__badge { animation: none !important; }
}

.vc-nav { display: none; }
.vc-header__right { grid-area: right; display: flex; align-items: center; justify-content: flex-end; gap: 2px; margin-right: -8px; }

.vc-header__toggle,
.vc-header__find {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 44px; height: 44px; border: 0; border-radius: var(--vc-r-sm);
	background: transparent; color: var(--vc-hf-ink);
}
.vc-header__toggle:hover,
.vc-header__find:hover,
.vc-header__find[aria-expanded="true"],
.vc-header__toggle[aria-expanded="true"] { background: var(--vc-hf-hover); }
.vc-header__inner { position: relative; }

/* Header search box. Phones: hidden until the search button is tapped, then it
   covers the header row (no extra row underneath). Laptops: always shown. */
.vc-header__searchbox { display: none; }
.vc-header.is-search-open .vc-header__searchbox {
	position: absolute; top: 0; bottom: 0; left: var(--vc-gutter); right: var(--vc-gutter); z-index: 3;
	display: flex; align-items: center; gap: 6px;
	background: var(--vc-hf-bg);
}
.vc-header__searchbox .vc-search { flex: 1; min-width: 0; }
.vc-header__search-close {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 44px; height: 44px; margin-right: -8px; border: 0; border-radius: var(--vc-r-sm);
	background: transparent; color: var(--vc-hf-ink);
}
.vc-header__search-close:hover { background: var(--vc-hf-hover); }
.vc-search--header .vc-search__input { height: 44px; padding-right: 50px; border-color: var(--vc-border); background: #fff; font-size: 15px; }
.vc-search--header .vc-search__btn { right: 4px; height: 36px; min-width: 36px; background: var(--vc-coral); background-image: var(--vc-flame, none); color: var(--vc-cta-ink); }
.vc-search--header .vc-search__btn:hover { background-color: var(--vc-coral-dark); background-image: var(--vc-flame-dark, none); }

.vc-drawer { background: var(--vc-hf-drawer); border-top: 1px solid var(--vc-hf-line); }
.vc-drawer__list { list-style: none; margin: 0; padding: 4px 0 14px; }
.vc-drawer__list a {
	display: block; padding: 12px 4px;
	border-bottom: 1px solid var(--vc-hf-line);
	color: var(--vc-hf-ink); font-weight: 600; font-size: 17px; text-decoration: none;
}
.vc-drawer__list a.is-current { text-decoration: underline; text-decoration-color: var(--vc-yellow); text-decoration-thickness: 3px; text-underline-offset: 6px; }

/* Desktop: logo | menu in the middle | search. */
@media (min-width: 900px) {
	.vc-header__inner {
		grid-template-columns: 1fr auto 1fr;
		grid-template-areas: "brand nav right";
		gap: 24px;
		min-height: 74px;
		padding-block: 10px;
	}
	.vc-logo { height: 42px; }
	.vc-header__toggle,
	.vc-drawer { display: none !important; }
	.vc-nav { display: block; grid-area: nav; justify-self: center; }
	.vc-nav__list { display: flex; align-items: center; gap: 30px; list-style: none; margin: 0; padding: 0; }
	.vc-nav__list a {
		position: relative; display: block; padding: 8px 0;
		color: var(--vc-hf-soft); font-weight: 500; font-size: 15px; text-decoration: none;
		transition: color .2s;
	}
	.vc-nav__list a::after {
		content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
		background: var(--vc-yellow); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--vc-ease);
	}
	.vc-nav__list a:hover,
	.vc-nav__list a.is-current { color: var(--vc-hf-ink); }
	.vc-nav__list a:hover::after,
	.vc-nav__list a.is-current::after { transform: scaleX(1); }
	.vc-header__right { justify-self: stretch; gap: 12px; margin-right: 0; }
	.vc-header__find,
	.vc-header__search-close { display: none !important; }
	.vc-header__searchbox,
	.vc-header.is-search-open .vc-header__searchbox {
		position: static; display: flex; flex: 1 1 auto; max-width: 460px; margin-left: auto;
		background: none;
	}
	.vc-search--header .vc-search__input { border-color: transparent; }
}

/* Search box */
.vc-search { position: relative; display: flex; align-items: center; }
.vc-search__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--vc-muted); pointer-events: none; display: flex; }
.vc-search__input {
	width: 100%; height: 46px; padding: 0 52px 0 44px;
	border: 1px solid transparent; border-radius: 999px;
	background: #fff; color: var(--vc-navy); font-size: 15px;
	-webkit-appearance: none; appearance: none;
	transition: box-shadow .2s, border-color .2s;
}
.vc-search__input::placeholder { color: #8C8FA3; }
.vc-search__input:focus { outline: none; border-color: var(--vc-yellow); box-shadow: 0 0 0 3px rgba(255, 200, 61, .45); }
.vc-search__input::-webkit-search-cancel-button { -webkit-appearance: none; }
.vc-search__btn {
	position: absolute; right: 5px; top: 50%; transform: translateY(-50%);
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	height: 36px; min-width: 36px; padding: 0 10px;
	border: 0; border-radius: 999px;
	background: var(--vc-navy); color: #fff; font-weight: 600; font-size: 14px;
}
.vc-search__btn-text { display: none; }
.vc-search--big .vc-search__input { height: 58px; padding-left: 50px; padding-right: 120px; border: 1px solid var(--vc-border); box-shadow: var(--vc-sh-2); font-size: 16px; }
.vc-search--big .vc-search__icon { left: 18px; }
.vc-search--big .vc-search__btn { height: 46px; right: 6px; padding: 0 18px; }
.vc-search--big .vc-search__btn-text { display: inline; }
@media (max-width: 479px) {
	.vc-search--big .vc-search__input { padding-right: 64px; }
	.vc-search--big .vc-search__btn { padding: 0 14px; }
	.vc-search--big .vc-search__btn-text { display: none; }
}

.vc-search__results {
	position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 60;
	padding: 6px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg);
	background: #fff; color: var(--vc-navy); box-shadow: var(--vc-sh-3);
	max-height: 70vh; overflow: auto;
}
.vc-search__item {
	display: flex; align-items: center; gap: 12px;
	padding: 8px 10px; border-radius: var(--vc-r);
	text-decoration: none; font-weight: 600; font-size: 15px;
}
.vc-search__item:hover,
.vc-search__item[aria-selected="true"] { background: var(--vc-page); color: var(--vc-navy); }
.vc-search__thumb {
	display: flex; align-items: center; justify-content: center;
	width: 52px; height: 36px; padding: 4px; border-radius: var(--vc-r-sm); background: var(--vc-page); overflow: hidden;
}
.vc-search__thumb img { max-height: 28px; width: auto; object-fit: contain; }
.vc-search__all { display: block; padding: 10px; text-align: center; font-size: 14px; font-weight: 600; }
.vc-search__empty { padding: 12px; color: var(--vc-muted); font-size: 14px; }

/* --------------------------------------------------------------------------
   Shared bits: logos, chips, tags, sections
   ----------------------------------------------------------------------- */

.vc-logo-box {
	display: flex; align-items: center; justify-content: center;
	width: 100%; aspect-ratio: 16 / 10;
	padding: 12%;
	border-radius: var(--vc-r);
	background: #fff;
	overflow: hidden;
}
.vc-logo-box img.vc-logo-img {
	width: auto; height: auto;
	max-width: 100%; max-height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}
/* Refreshed logos already have a see-through background: no blending needed. */
.vc-logo-box img.vc-logo-img--clean { mix-blend-mode: normal; }
.vc-logo-box--round.vc-logo-box--wide { padding-inline: 6px; }
.vc-logo-box--bare { max-width: 100%; }
/* Cards keep their slot width whatever the logo file's size (iPhone Safari otherwise
   widens a card to the image's full width, so the next card shows at the edge). */
.vc-row-4 > div,
.vc-tile,
.vc-slide,
.vc-chip-store,
.vc-tile__media,
.vc-slide__media { min-width: 0; }
.vc-tint-0 { background: var(--vc-tint-0); }
.vc-tint-1 { background: var(--vc-tint-1); }
.vc-tint-2 { background: var(--vc-tint-2); }
.vc-tint-3 { background: var(--vc-tint-3); }
.vc-tint-4 { background: var(--vc-tint-4); }
.vc-logo-box--plain { background: #fff; }
.vc-logo-box--bare { background: transparent; aspect-ratio: auto; width: auto; height: auto; padding: 0; }
.vc-logo-box--bare img.vc-logo-img { max-width: min(180px, 70%); max-height: 96px; }
.vc-logo-box--xl img.vc-logo-img { max-width: min(220px, 70%); max-height: 120px; }
.vc-logo-box--xs { width: 36px; height: 28px; aspect-ratio: auto; padding: 3px; border-radius: 6px; border: 1px solid var(--vc-border); }
.vc-logo-box--sm { aspect-ratio: 4 / 3; padding: 10%; }
.vc-logo-box--lg { aspect-ratio: 1 / 1; padding: 14%; border-radius: var(--vc-r-lg); }
.vc-logo-box--round { width: 84px; height: 84px; aspect-ratio: 1; padding: 14px; border-radius: 50%; background: #fff; border: 1px solid var(--vc-border); box-shadow: var(--vc-sh-1); }
.vc-logo-box--mono .vc-monogram { font-weight: 700; font-size: clamp(14px, 2.5vw, 26px); color: var(--vc-navy); letter-spacing: .02em; }
.vc-logo-box--xs.vc-logo-box--mono .vc-monogram { font-size: 11px; }

.vc-type {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 3px 8px; border-radius: 6px;
	background: var(--vc-navy-tint); color: var(--vc-navy);
	font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; line-height: 1.4;
}
.vc-type--sale,
.vc-type--print { background: var(--vc-sand); }

.vc-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 6px; padding: 0; }
.vc-tag {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 2px 9px 2px 7px; border-radius: 999px;
	background: var(--vc-navy-tint); color: var(--vc-navy);
	font-size: 12px; font-weight: 600; line-height: 1.6;
}
.vc-tag--verified { background: var(--vc-green-tint); color: var(--vc-green-ink); }
.vc-tag--verified .vc-icon { color: var(--vc-green); }
.vc-tag--hot { background: var(--vc-yellow); color: var(--vc-navy); }

.vc-eyebrow {
	margin: 0 0 6px;
	color: var(--vc-muted); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.vc-eyebrow a { text-decoration: none; }
.vc-eyebrow--pill {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 4px 12px; border-radius: 999px;
	background: var(--vc-yellow-tint); color: var(--vc-navy); letter-spacing: .04em;
}

.vc-section { padding-block: 36px; }
.vc-section--tight { padding-block: 24px; }
.vc-section--flush { padding-block: 8px 24px; }
.vc-section--alt { background: #fff; border-block: 1px solid var(--vc-border); }
.vc-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.vc-section-title { margin: 0; font-size: 22px; line-height: 1.25; }
.vc-section-sub { margin: 6px 0 0; color: var(--vc-muted); font-size: 15px; }
.vc-see-all { display: inline-flex; align-items: center; gap: 4px; flex: none; font-weight: 600; font-size: 14px; text-decoration: underline; }

@media (min-width: 900px) {
	.vc-section { padding-block: 56px; }
	.vc-section--tight { padding-block: 32px; }
	.vc-section-title { font-size: 28px; }
}

.vc-disclosure { display: flex; align-items: flex-start; gap: 6px; margin: 0; color: var(--vc-muted); font-size: 12.5px; line-height: 1.5; }
.vc-disclosure .vc-icon { margin-top: 2px; }
.vc-disclosure--center { justify-content: center; text-align: center; margin: 12px auto 0; padding-inline: var(--vc-gutter); max-width: 720px; }
.vc-disclosure--inline { margin: 4px 0 14px; }

.vc-crumbs { padding-block: 14px 4px; color: var(--vc-muted); font-size: 13px; }
.vc-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.vc-crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--vc-expired); }
.vc-crumbs a { color: var(--vc-muted); text-decoration: none; }
.vc-crumbs a:hover { color: var(--vc-navy); text-decoration: underline; }

.vc-empty {
	display: flex; flex-direction: column; align-items: center; gap: 6px;
	padding: 36px 20px; border: 1px dashed var(--vc-border); border-radius: var(--vc-r-lg);
	background: #fff; text-align: center; color: var(--vc-muted);
}
.vc-empty h3 { margin: 6px 0 0; font-size: 18px; }
.vc-empty .vc-icon { color: var(--vc-expired); }
.vc-empty .vc-btn { margin-top: 8px; }

/* --------------------------------------------------------------------------
   Offer card (store, category, search). Compact, Picodi-style.
   ----------------------------------------------------------------------- */

.vc-offer-list { display: grid; gap: 8px; }

.vc-offer {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	grid-template-areas: "side main" "cta cta" "details details";
	gap: 10px 12px;
	padding: 12px;
	border: 1px solid var(--vc-border);
	border-radius: var(--vc-r);
	background: var(--vc-card);
	scroll-margin-top: 80px;
	transition: box-shadow .2s var(--vc-ease), border-color .2s var(--vc-ease);
}
.vc-offer:hover { box-shadow: var(--vc-sh-2); border-color: #D8D4CD; }
.vc-offer.is-highlight,
.vc-offer:target { border-color: var(--vc-navy); box-shadow: 0 0 0 3px var(--vc-yellow); }
.vc-offer[hidden] { display: none; }
.vc-offer.no-details { grid-template-areas: "side main" "cta cta"; }

.vc-offer__side { grid-area: side; }
.vc-offer__main { grid-area: main; min-width: 0; align-self: center; }
.vc-offer__cta { grid-area: cta; }
.vc-offer__details { grid-area: details; margin: -2px 0 0; }

.vc-badge {
	display: flex; flex-direction: column;
	width: 72px; height: 72px;
	border-radius: 10px; overflow: hidden;
	background: var(--vc-navy); color: #fff; text-align: center;
}
.vc-badge__main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2px; line-height: 1.02; }
.vc-badge__pre,
.vc-badge__unit { font-size: 9.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; opacity: .85; }
.vc-badge__value { font-size: 20px; font-weight: 700; letter-spacing: -.02em; word-break: break-word; }
.vc-badge__icon { color: var(--vc-yellow); }
.vc-badge__type {
	display: block; padding: 3px 0 4px;
	background: rgba(255, 255, 255, .14);
	font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.vc-offer--code .vc-badge__type { background: var(--vc-yellow); color: var(--vc-navy); }

.vc-offer__title { margin: 0 0 6px; font-size: 15px; font-weight: 600; line-height: 1.35; letter-spacing: -.005em; }
.vc-offer__brand { display: block; margin-bottom: 1px; color: var(--vc-muted); font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vc-offer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; color: var(--vc-muted); font-size: 12.5px; line-height: 1.4; }
.vc-offer__meta .vc-tag { font-size: 11.5px; padding: 1px 8px 1px 6px; }
.vc-offer__used { display: none; }
@media (min-width: 700px) {
	.vc-offer__used { display: inline; }
	.vc-offer__used::before { content: "·"; margin-right: 8px; color: var(--vc-expired); }
}
.vc-exp--soon { color: var(--vc-amber-ink); font-weight: 600; }

.vc-offer .vc-reveal { min-height: 46px; }

.vc-details > summary {
	display: inline-flex; align-items: center; gap: 4px;
	list-style: none; cursor: pointer;
	color: var(--vc-muted); font-size: 12.5px; font-weight: 600;
}
.vc-details > summary:hover { color: var(--vc-navy); }
.vc-details > summary::-webkit-details-marker { display: none; }
.vc-details > summary .vc-icon { transition: transform .2s var(--vc-ease); }
.vc-details[open] > summary .vc-icon { transform: rotate(180deg); }
.vc-details__body { margin-top: 6px; color: var(--vc-muted); font-size: 13.5px; line-height: 1.6; }
.vc-details__body p:last-child { margin-bottom: 0; }

.vc-offer--category .vc-offer__store { display: block; text-decoration: none; }
.vc-offer--category .vc-logo-box--sm { width: 72px; height: 72px; aspect-ratio: 1; padding: 8px; border: 1px solid var(--vc-border); }

/* Expired offers */
.vc-offer.is-expired { background: #FBFAF8; }
.vc-offer.is-expired .vc-badge { background: var(--vc-expired); }
.vc-offer.is-expired .vc-badge__type { background: rgba(255, 255, 255, .25); color: #fff; }
.vc-offer.is-expired .vc-offer__title { color: var(--vc-muted); }
.vc-offer.is-expired .vc-logo-box { filter: grayscale(1); opacity: .7; }

@media (min-width: 700px) {
	.vc-offer {
		grid-template-columns: 76px minmax(0, 1fr) 210px;
		grid-template-areas: "side main cta" "side details cta";
		grid-template-rows: 1fr auto;
		gap: 2px 16px;
		padding: 12px 14px;
	}
	.vc-offer.no-details { grid-template-areas: "side main cta"; grid-template-rows: 1fr; }
	.vc-offer__side,
	.vc-offer__cta { align-self: center; }
	.vc-offer__main { align-self: end; }
	.vc-offer__details { align-self: start; margin: 4px 0 0; }
	.vc-badge { width: 76px; height: 76px; }
	.vc-badge__value { font-size: 22px; }
	.vc-offer__title { font-size: 16px; margin-bottom: 4px; }
	.vc-offer--category .vc-logo-box--sm { width: 76px; height: 76px; }
}

/* --------------------------------------------------------------------------
   Store page (Picodi layout). Only the store name sits above the first code.
   ----------------------------------------------------------------------- */

.vc-store { padding-top: 12px; padding-bottom: 20px; }

.vc-store-grid {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	grid-template-areas:
		"logo head"
		"offers offers"
		"expired expired"
		"facts facts"
		"about about"
		"faq faq"
		"similar similar"
		"poplist poplist";
	gap: 12px;
	align-items: start;
}
.vc-store-main,
.vc-store-aside { display: contents; }
.vc-store-logo { grid-area: logo; }
.vc-store-head { grid-area: head; align-self: center; }
.vc-offers { grid-area: offers; }
.vc-expired { grid-area: expired; margin-top: 16px; }
.vc-facts { grid-area: facts; margin-top: 16px; }
.vc-about { grid-area: about; }
.vc-store-main .vc-faq { grid-area: faq; }
.vc-similar { grid-area: similar; }
.vc-poplist { grid-area: poplist; }

.vc-logo-box--store { width: 64px; height: 64px; aspect-ratio: 1; padding: 8px; border: 1px solid var(--vc-border); border-radius: 12px; background: #fff; }
.vc-store-logo__visit { display: none; }

.vc-store-head__title { margin: 0; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; }
.vc-store-head__meta { display: flex; flex-wrap: wrap; gap: 0 6px; margin: 3px 0 0; color: var(--vc-muted); font-size: 12.5px; }

/* The list heading is for search engines and screen readers on phones; visible on desktop. */
.vc-offers__title { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.vc-expired .vc-section-title,
.vc-about .vc-section-title,
.vc-store .vc-faq .vc-section-title { font-size: 19px; }
.vc-expired .vc-section-sub { margin: 2px 0 10px; font-size: 14px; }

.vc-facts,
.vc-similar,
.vc-poplist { padding: 14px 16px; border: 1px solid var(--vc-border); border-radius: var(--vc-r); background: #fff; }
.vc-aside-title { margin: 0 0 8px; font-size: 15px; }
.vc-facts__table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.vc-facts__table th,
.vc-facts__table td { padding: 7px 0; border-bottom: 1px solid var(--vc-border); vertical-align: top; line-height: 1.4; }
.vc-facts__table tr:last-child th,
.vc-facts__table tr:last-child td { border-bottom: 0; }
.vc-facts__table th { width: 55%; padding-right: 10px; color: var(--vc-muted); font-weight: 500; text-align: left; }
.vc-facts__table td { color: var(--vc-navy); font-weight: 600; text-align: right; }
.vc-disclosure--facts { margin-top: 10px; font-size: 11.5px; }

.vc-pills { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.vc-pills a {
	display: inline-block; padding: 5px 11px; border: 1px solid var(--vc-border); border-radius: 999px;
	background: var(--vc-page); font-size: 13px; font-weight: 500; text-decoration: none;
}
.vc-pills a:hover { border-color: var(--vc-navy); background: #fff; }
.vc-poplist ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.vc-poplist a { display: block; padding: 5px 0; font-size: 13.5px; text-decoration: none; }
.vc-poplist a:hover { text-decoration: underline; }

.vc-summary { margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid var(--vc-green); border-radius: 0 var(--vc-r-sm) var(--vc-r-sm) 0; background: var(--vc-green-tint); font-size: 14.5px; line-height: 1.6; }

.vc-store .vc-crumbs { padding: 18px 0 8px; }

@media (min-width: 640px) {
	.vc-store-grid { grid-template-columns: 84px minmax(0, 1fr); gap: 14px 16px; }
	.vc-logo-box--store { width: 84px; height: 84px; }
	.vc-store-head__title { font-size: 22px; }
	.vc-store-head__meta { font-size: 13.5px; }
}

@media (min-width: 1000px) {
	.vc-store { padding-top: 20px; }
	.vc-store-grid { display: grid; grid-template-columns: 270px minmax(0, 1fr); grid-template-areas: none; gap: 28px; }
	.vc-store-aside { display: flex; flex-direction: column; gap: 14px; grid-column: 1; grid-row: 1; }
	.vc-store-main { display: flex; flex-direction: column; gap: 0; grid-column: 2; grid-row: 1; min-width: 0; }
	.vc-store-logo { padding: 16px; border: 1px solid var(--vc-border); border-radius: var(--vc-r); background: #fff; text-align: center; }
	.vc-logo-box--store { width: 100%; height: auto; aspect-ratio: 16 / 10; border: 0; padding: 10px 18px; }
	.vc-store-logo__visit { display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; font-size: 13px; font-weight: 600; }
	.vc-facts,
	.vc-expired { margin-top: 0; }
	.vc-store-head { align-self: stretch; margin-bottom: 4px; }
	.vc-store-head__title { font-size: 28px; line-height: 1.2; }
	.vc-offers__title { position: static; width: auto; height: auto; margin: 10px 0 12px; overflow: visible; clip: auto; white-space: normal; color: var(--vc-muted); font-size: 15px; font-weight: 500; letter-spacing: 0; }
	.vc-expired { margin-top: 28px; }
	.vc-about { margin-top: 24px; }
	.vc-store-main .vc-faq { margin-top: 24px; }
}

.vc-sticky {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
	display: flex; align-items: center; gap: 12px;
	padding: 10px var(--vc-gutter) calc(10px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--vc-border);
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 -10px 30px -12px rgba(27, 30, 61, .25);
	transform: translateY(110%); transition: transform .3s var(--vc-ease);
}
.vc-sticky.is-visible { transform: translateY(0); }
.vc-sticky[hidden] { display: none; }
.vc-sticky__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vc-sticky__label { color: var(--vc-muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.vc-sticky__title { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 14px; font-weight: 600; }
.vc-sticky .vc-reveal { width: auto; flex: none; }
@media (min-width: 900px) { .vc-sticky { display: none !important; } }


/* --------------------------------------------------------------------------
   Prose (store description, articles, pages)
   ----------------------------------------------------------------------- */

.vc-prose { font-size: 16px; line-height: 1.75; }
.vc-prose > * { max-width: 76ch; }
.vc-prose > :first-child { margin-top: 0; }
.vc-prose h2 { margin: 1.6em 0 .5em; font-size: 22px; }
.vc-prose h3 { margin: 1.4em 0 .4em; font-size: 18px; }
.vc-prose a { color: var(--vc-navy); font-weight: 500; text-decoration-color: rgba(27, 30, 61, .35); text-decoration-thickness: 1px; }
.vc-prose a:hover { text-decoration-color: var(--vc-navy); text-decoration-thickness: 2px; }
.vc-prose ul,
.vc-prose ol { padding-left: 1.3em; margin: 0 0 1em; }
.vc-prose li { margin-bottom: .35em; }
.vc-prose blockquote { margin: 1.4em 0; padding: 4px 0 4px 18px; border-left: 4px solid var(--vc-yellow); color: var(--vc-navy-2); font-size: 1.05em; }
.vc-prose img { height: auto; border-radius: var(--vc-r); }
.vc-prose table { width: 100%; border-collapse: collapse; margin: 1em 0; font-size: 15px; }
.vc-prose th,
.vc-prose td { padding: 10px 12px; border: 1px solid var(--vc-border); text-align: left; }
.vc-prose th { background: var(--vc-page); }
.vc-prose figure { margin: 1.4em 0; }
.vc-prose figcaption { color: var(--vc-muted); font-size: 13px; margin-top: 6px; }
.vc-about { padding: 20px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg); background: #fff; }
.vc-about > .vc-section-title { margin: 0 0 10px; }
.vc-seo-text { color: var(--vc-navy); }

/* WordPress content alignment */
.alignleft { float: left; margin: .3em 1.4em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.4em; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { color: var(--vc-muted); font-size: 13px; }

/* --------------------------------------------------------------------------
   FAQ
   ----------------------------------------------------------------------- */

.vc-faq .vc-section-title { margin-bottom: 14px; }
.vc-faq__list { display: grid; gap: 8px; }
.vc-faq__item { border: 1px solid var(--vc-border); border-radius: var(--vc-r); background: #fff; transition: box-shadow .2s; }
.vc-faq__item[open] { box-shadow: var(--vc-sh-1); }
.vc-faq__q {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 14px 16px; list-style: none; cursor: pointer;
}
.vc-faq__q::-webkit-details-marker { display: none; }
.vc-faq__q h3 { margin: 0; font-size: 15.5px; font-weight: 600; line-height: 1.4; }
.vc-faq__q .vc-icon { transition: transform .2s var(--vc-ease); }
.vc-faq__item[open] .vc-faq__q .vc-icon { transform: rotate(180deg); }
.vc-faq__a { padding: 0 16px 14px; color: var(--vc-muted); font-size: 15px; }
.vc-faq__a p:last-child { margin: 0; }

/* --------------------------------------------------------------------------
   Homepage
   ----------------------------------------------------------------------- */

.vc-home-carousel { padding-top: 18px; }
.vc-carousel__track {
	display: flex; gap: 14px;
	overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	padding: 4px max(var(--vc-gutter), calc((100vw - var(--vc-max)) / 2 + var(--vc-gutter))) 14px;
	scroll-padding-inline: max(var(--vc-gutter), calc((100vw - var(--vc-max)) / 2 + var(--vc-gutter)));
	scrollbar-width: none;
}
.vc-carousel__track::-webkit-scrollbar { display: none; }

.vc-slide {
	flex: 0 0 88%;
	display: flex; flex-direction: column;
	scroll-snap-align: start;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r-xl);
	background: #fff; box-shadow: var(--vc-sh-2);
	overflow: hidden;
}
.vc-slide__media {
	position: relative; display: flex; align-items: center; justify-content: center;
	aspect-ratio: 16 / 9; text-decoration: none;
}
.vc-slide__media.has-banner { background: var(--vc-sand); }
.vc-slide__img { width: 100%; height: 100%; object-fit: cover; }
.vc-slide__badge {
	position: absolute; left: 14px; top: 14px; z-index: 1;
	padding: 5px 12px; border-radius: 999px;
	background: var(--vc-navy); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .01em;
}
.vc-slide__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 20px; }
.vc-slide__store { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 600; }
.vc-slide__store a { text-decoration: none; }
.vc-slide__title { margin: 4px 0 0; font-size: 19px; line-height: 1.3; }
.vc-slide__meta { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 8px; color: var(--vc-muted); font-size: 13px; }
.vc-slide .vc-reveal { margin-top: auto; }

@media (min-width: 760px) {
	.vc-slide { flex-basis: min(78%, 900px); flex-direction: row; min-height: 300px; }
	.vc-slide__media { flex: 1.15; aspect-ratio: auto; }
	.vc-slide__body { flex: 1; justify-content: center; gap: 8px; padding: 28px 32px; }
	.vc-slide__title { font-size: 26px; }
	.vc-slide .vc-reveal { margin-top: 10px; max-width: 280px; }
}

.vc-carousel__controls { display: flex; align-items: center; justify-content: center; gap: 14px; }
.vc-carousel__arrow {
	display: none; align-items: center; justify-content: center;
	width: 40px; height: 40px; border: 1px solid var(--vc-border); border-radius: 50%;
	background: #fff; color: var(--vc-navy);
	transition: background-color .2s, box-shadow .2s;
}
.vc-carousel__arrow:hover { box-shadow: var(--vc-sh-2); }
.vc-carousel__arrow:disabled { opacity: .4; cursor: default; box-shadow: none; }
.vc-carousel__dots { display: flex; gap: 6px; }
.vc-carousel__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: var(--vc-expired); transition: width .25s var(--vc-ease), background-color .2s; }
.vc-carousel__dot[aria-current="true"] { width: 22px; background: var(--vc-navy); }
@media (min-width: 900px) { .vc-carousel__arrow { display: inline-flex; } }

.vc-home-intro { padding-top: 28px; }
.vc-home-intro__head { max-width: 760px; margin-bottom: 26px; }
.vc-home-intro__title { margin: 10px 0 8px; font-size: 28px; line-height: 1.15; letter-spacing: -.025em; }
.vc-home-intro__text { margin: 0 0 18px; color: var(--vc-muted); font-size: 16px; }
@media (min-width: 900px) {
	.vc-home-intro__title { font-size: 42px; }
	.vc-home-intro__text { font-size: 18px; }
}

.vc-row-4 {
	display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
	margin-inline: calc(var(--vc-gutter) * -1); padding: 2px var(--vc-gutter) 10px;
	scroll-padding-inline: var(--vc-gutter);
	scrollbar-width: none;
}
.vc-row-4::-webkit-scrollbar { display: none; }
.vc-row-4 > div { flex: 0 0 76%; scroll-snap-align: start; display: flex; }
.vc-row-4 .vc-tile { width: 100%; }
@media (max-width: 639px) {
	/* Phones: one whole card at a time; the next waits fully off-screen and the dots show there are more. */
	.vc-row-4 { gap: calc(var(--vc-gutter) * 2); }
	.vc-row-4 > div { flex-basis: 100%; scroll-snap-stop: always; }
	.vc-row-4 .vc-tile__media { aspect-ratio: 2 / 1; }
}
.vc-snap-dots { justify-content: center; }
@media (min-width: 640px) {
	.vc-row-4 > div { flex-basis: 44%; }
	.vc-snap-dots { display: none; }
}
@media (min-width: 1000px) {
	.vc-row-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: visible; margin: 0; padding: 0; }
}

/* Offer tile */
.vc-tile {
	display: flex; flex-direction: column;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg);
	background: #fff; box-shadow: var(--vc-sh-1);
	overflow: hidden;
	transition: transform .2s var(--vc-ease), box-shadow .2s var(--vc-ease);
}
.vc-tile:hover { transform: translateY(-3px); box-shadow: var(--vc-sh-2); }
.vc-tile__media {
	position: relative; display: flex; align-items: center; justify-content: center;
	aspect-ratio: 16 / 10; text-decoration: none;
}
.vc-tile__media.has-banner { background: var(--vc-sand); overflow: hidden; }
.vc-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--vc-ease); }
.vc-tile:hover .vc-tile__img { transform: scale(1.04); }
.vc-tile__logo { position: absolute; left: 10px; bottom: 10px; z-index: 1; }
.vc-tile__logo .vc-logo-box { width: 64px; height: 40px; aspect-ratio: auto; padding: 5px 7px; border-radius: 8px; box-shadow: var(--vc-sh-1); }
.vc-tile__badge {
	position: absolute; left: 10px; top: 10px; z-index: 1;
	padding: 3px 10px; border-radius: 999px;
	background: var(--vc-navy); color: #fff; font-size: 12px; font-weight: 700;
}
.vc-tile__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 12px 14px 14px; }
.vc-tile__store { margin: 0; color: var(--vc-muted); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.vc-tile__store a { text-decoration: none; }
.vc-tile__store a:hover { color: var(--vc-navy); text-decoration: underline; }
.vc-tile__title {
	margin: 0; font-size: 15px; font-weight: 600; line-height: 1.4;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.vc-tile__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 2px 0 6px; }
.vc-tile__exp { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.vc-tile__verified { color: var(--vc-green-ink); font-weight: 600; }
.vc-tile__verified .vc-icon { color: var(--vc-green); }
.vc-tile .vc-reveal { margin-top: auto; }

.vc-grid-5 { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }
/* Phones: tiles become compact rows, like the RetailMeNot mobile list. */
@media (max-width: 639px) {
	.vc-grid-5 .vc-tile { display: grid; grid-template-columns: 116px minmax(0, 1fr); }
	.vc-grid-5 .vc-tile__media { aspect-ratio: auto; height: 100%; min-height: 128px; }
	.vc-grid-5 .vc-logo-box--bare img.vc-logo-img { max-width: 84px; max-height: 60px; }
	.vc-grid-5 .vc-tile__body { padding: 12px; }
}
@media (min-width: 640px) { .vc-grid-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 900px) { .vc-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vc-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* Popular store chips */
.vc-chips-row {
	display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity;
	margin-inline: calc(var(--vc-gutter) * -1); padding: 4px var(--vc-gutter) 10px;
	scrollbar-width: none;
}
.vc-chips-row::-webkit-scrollbar { display: none; }
.vc-chip-store {
	flex: 0 0 112px; scroll-snap-align: start;
	display: flex; flex-direction: column; align-items: center; gap: 6px;
	padding: 6px 4px; border-radius: var(--vc-r);
	text-align: center; text-decoration: none;
}
.vc-chip-store:hover .vc-logo-box--round { transform: translateY(-3px); box-shadow: var(--vc-sh-2); }
.vc-chip-store .vc-logo-box--round { transition: transform .2s var(--vc-ease), box-shadow .2s var(--vc-ease); }
.vc-chip-store__name { font-size: 14px; font-weight: 600; line-height: 1.25; }
.vc-chip-store__count { color: var(--vc-muted); font-size: 12px; }
@media (min-width: 1000px) {
	.vc-chips-row { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); overflow: visible; margin: 0; padding: 0; }
	.vc-chips-row--small { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.vc-chip-store { flex: none; }
	.vc-logo-box--round { width: 96px; height: 96px; }
}
.vc-chips-row--small .vc-logo-box--round { width: 72px; height: 72px; padding: 11px; }

/* Value band */
.vc-band { padding-block: 0; }
.vc-band__inner {
	display: grid; gap: 1px;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg);
	background: var(--vc-border); overflow: hidden;
}
.vc-band__item { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; }
.vc-band__item .vc-icon { padding: 10px; width: 46px; height: 46px; border-radius: 50%; background: var(--vc-yellow-tint); color: var(--vc-navy); }
.vc-band__item p { display: flex; flex-direction: column; margin: 0; line-height: 1.35; }
.vc-band__item strong { font-size: 15px; }
.vc-band__item span { color: var(--vc-muted); font-size: 13.5px; }
@media (min-width: 900px) { .vc-band__inner { grid-template-columns: repeat(3, 1fr); } }

/* Editorial */
.vc-editorial { display: grid; gap: 16px; }
.vc-editorial__side { display: grid; gap: 12px; }
@media (min-width: 900px) {
	.vc-editorial { grid-template-columns: 1.35fr 1fr; gap: 24px; }
	.vc-editorial__side .vc-post-card { display: grid; grid-template-columns: 160px minmax(0, 1fr); }
	.vc-editorial__side .vc-post-card__media { aspect-ratio: auto; height: 100%; }
}

/* Categories */
.vc-cat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.vc-cat-tile {
	display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
	padding: 16px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg);
	background: #fff; text-decoration: none;
	transition: transform .2s var(--vc-ease), box-shadow .2s var(--vc-ease), border-color .2s;
}
.vc-cat-tile:hover { transform: translateY(-2px); box-shadow: var(--vc-sh-2); border-color: #D8D4CD; }
.vc-cat-tile__icon { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 6px; border-radius: 14px; background: var(--vc-navy-tint); color: var(--vc-navy); }
.vc-cat-tile__name { font-size: 15px; font-weight: 600; line-height: 1.3; }
.vc-cat-tile__count { color: var(--vc-muted); font-size: 12.5px; }
@media (min-width: 640px) { .vc-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1000px) { .vc-cat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .vc-cat-grid--all { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* Categories page: room above the footer (page text, if any, follows with its own spacing). */
.vc-cat-grid--all { margin-bottom: 56px; }
.vc-cat-grid--all + .vc-section { padding-top: 0; }

/* How it works */
.vc-steps { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; counter-reset: vc-step; }
.vc-step {
	position: relative; padding: 20px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg); background: #fff;
	counter-increment: vc-step;
}
.vc-step::after {
	content: counter(vc-step); position: absolute; right: 18px; top: 14px;
	color: var(--vc-border); font-size: 44px; font-weight: 700; line-height: 1;
}
.vc-step__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 10px; border-radius: 16px; background: var(--vc-yellow); color: var(--vc-navy); }
.vc-step__title { margin: 0 0 4px; font-size: 18px; }
.vc-step p { margin: 0; color: var(--vc-muted); font-size: 15px; }
@media (min-width: 900px) { .vc-steps { grid-template-columns: repeat(3, 1fr); gap: 18px; } }

/* --------------------------------------------------------------------------
   Page headers, category pages, A to Z, search
   ----------------------------------------------------------------------- */

.vc-page-head { display: flex; align-items: center; gap: 16px; padding: 14px 0 22px; }
.vc-page-head__title { margin: 0 0 6px; font-size: 26px; line-height: 1.2; letter-spacing: -.02em; }
.vc-page-head__sub { margin: 0; color: var(--vc-muted); font-size: 15.5px; }
.vc-page-head__icon { display: flex; flex: none; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 18px; background: #fff; border: 1px solid var(--vc-border); color: var(--vc-navy); }
.vc-page-head--search > div { width: 100%; max-width: 720px; }
.vc-page-head--search .vc-search { margin-top: 14px; }
@media (min-width: 900px) { .vc-page-head__title { font-size: 36px; } }

.vc-cat-layout { display: grid; gap: 28px; padding-bottom: 56px; }
/* The store page's named grid areas must not leak into this plain grid. */
.vc-cat-layout > * { grid-area: auto; min-width: 0; }
.vc-cat-layout .vc-about { margin-top: 0; }
.vc-cat-stores { padding-top: 8px; }
.vc-cat-stores > .vc-section-title { margin-bottom: 14px; }

/* All stores in a category: wrapping grid of round logos (no side scroll). */
.vc-chips-row--grid {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 6px;
	overflow: visible; margin: 0; padding: 0;
}
.vc-chips-row--grid .vc-chip-store { flex: none; min-width: 0; padding: 4px 2px; }
.vc-chips-row--grid .vc-chip-store__name { overflow-wrap: anywhere; }
.vc-chips-row--grid .vc-logo-box--round { width: 76px; height: 76px; padding: 12px; }
@media (min-width: 640px) { .vc-chips-row--grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1000px) {
	.vc-chips-row--grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 26px 10px; }
	.vc-chips-row--grid .vc-logo-box--round { width: 96px; height: 96px; padding: 15px; }
}
.vc-cat-layout .vc-section-title { font-size: 20px; margin-bottom: 4px; }
@media (min-width: 900px) { .vc-cat-layout .vc-section-title { font-size: 24px; } }
.vc-section--flush > .vc-section-title { font-size: 18px; margin-bottom: 12px; }

.vc-az { padding-bottom: 48px; }
.vc-az__tools {
	position: sticky; top: 0; z-index: 20;
	display: grid; gap: 10px; padding: 12px 0;
	background: var(--vc-page);
}
.vc-az__filter { position: relative; display: flex; align-items: center; }
.vc-az__filter .vc-icon { position: absolute; left: 14px; color: var(--vc-muted); }
.vc-az__filter input {
	width: 100%; height: 48px; padding: 0 16px 0 42px;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r); background: #fff;
}
.vc-az__filter input:focus { outline: none; border-color: var(--vc-navy); box-shadow: 0 0 0 3px var(--vc-navy-tint); }
.vc-az__letters { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.vc-az__letters::-webkit-scrollbar { display: none; }
.vc-az__letters a {
	flex: none; display: inline-flex; align-items: center; justify-content: center;
	min-width: 34px; height: 34px; padding: 0 6px; border-radius: var(--vc-r-sm);
	background: #fff; border: 1px solid var(--vc-border); font-weight: 600; font-size: 14px; text-decoration: none;
}
.vc-az__letters a:hover { background: var(--vc-navy); color: #fff; border-color: var(--vc-navy); }
.vc-az__group { padding-top: 18px; scroll-margin-top: 120px; }
.vc-az__group[hidden] { display: none; }
.vc-az__letter { margin: 0 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--vc-navy); font-size: 22px; }
.vc-az__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; list-style: none; margin: 0; padding: 0; }
.vc-az__list li[hidden] { display: none; }
.vc-az__list a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 4px; border-radius: 6px; font-size: 14.5px; text-decoration: none; }
.vc-az__list a:hover { background: #fff; text-decoration: underline; }
.vc-az__list a.is-quiet { color: var(--vc-muted); }
.vc-az__count { flex: none; min-width: 24px; padding: 0 6px; border-radius: 999px; background: var(--vc-navy-tint); font-size: 12px; font-weight: 600; text-align: center; }
.vc-az__none { padding: 24px 0; color: var(--vc-muted); }
@media (min-width: 640px) { .vc-az__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .vc-az__list { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

.vc-store-grid-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 640px) { .vc-store-grid-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .vc-store-grid-cards { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

/* --------------------------------------------------------------------------
   Blog
   ----------------------------------------------------------------------- */

.vc-post-grid { display: grid; gap: 16px; padding-bottom: 32px; }
@media (min-width: 640px) { .vc-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .vc-post-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; } }
.vc-post-grid .vc-post-card--big { grid-column: 1 / -1; }
@media (min-width: 900px) {
	.vc-post-grid .vc-post-card--big { display: grid; grid-template-columns: 1.3fr 1fr; }
	.vc-post-grid .vc-post-card--big .vc-post-card__media { aspect-ratio: auto; height: 100%; min-height: 320px; }
	.vc-post-grid .vc-post-card--big .vc-post-card__body { justify-content: center; padding: 28px 32px; }
}

.vc-post-card {
	display: flex; flex-direction: column;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg); background: #fff;
	overflow: hidden; transition: box-shadow .2s var(--vc-ease), transform .2s var(--vc-ease);
}
.vc-post-card:hover { box-shadow: var(--vc-sh-2); transform: translateY(-2px); }
.vc-post-card__media { display: block; aspect-ratio: 16 / 9; background: var(--vc-sand); overflow: hidden; }
.vc-post-card__img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--vc-ease); }
.vc-post-card:hover .vc-post-card__img { transform: scale(1.03); }
.vc-post-card__ph { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--vc-expired); }
.vc-post-card__body { display: flex; flex-direction: column; gap: 4px; flex: 1; padding: 16px 18px 18px; }
.vc-post-card__title { margin: 0; font-size: 17px; line-height: 1.35; }
.vc-post-card__title a { text-decoration: none; }
.vc-post-card__title a:hover { text-decoration: underline; }
.vc-post-card--big .vc-post-card__title { font-size: 22px; }
.vc-post-card__excerpt { margin: 4px 0 0; color: var(--vc-muted); font-size: 15px; }
.vc-post-card__meta { display: flex; gap: 6px; margin: auto 0 0; padding-top: 8px; color: var(--vc-muted); font-size: 13px; }

.vc-article { max-width: 820px; margin: 0 auto; padding-bottom: 40px; }
.vc-article__head { padding: 10px 0 18px; }
.vc-article__title { margin: 4px 0 10px; font-size: 30px; line-height: 1.18; letter-spacing: -.025em; }
.vc-article__meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; color: var(--vc-muted); font-size: 14px; }
.vc-article__author { color: var(--vc-navy); font-weight: 600; }
.vc-article__media { margin: 0 0 24px; }
.vc-article__media img { width: 100%; border-radius: var(--vc-r-lg); }
.vc-article__body { padding: 0; }
.vc-article--page .vc-article__body,
.vc-article--wide .vc-article__body { padding: 24px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-lg); background: #fff; }
.vc-article--wide { max-width: none; }
.vc-article__tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 24px 0 0; padding: 0; }
.vc-article__tags a { display: inline-block; padding: 4px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--vc-border); font-size: 13px; text-decoration: none; }
@media (min-width: 900px) { .vc-article__title { font-size: 44px; } }

.vc-pagination { margin: 8px 0 40px; }
.vc-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.vc-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 10px;
	border: 1px solid var(--vc-border); border-radius: var(--vc-r);
	background: #fff; font-weight: 600; text-decoration: none;
}
.vc-pagination .page-numbers.current { background: var(--vc-navy); border-color: var(--vc-navy); color: #fff; }
.vc-pagination a.page-numbers:hover { border-color: var(--vc-navy); }

.vc-comments { max-width: 820px; margin: 0 auto 48px; }
.vc-comments__list { list-style: none; padding: 0; }
.vc-comments .comment-body { padding: 16px; margin-bottom: 10px; border: 1px solid var(--vc-border); border-radius: var(--vc-r); background: #fff; }
.vc-comments textarea,
.vc-comments input[type="text"],
.vc-comments input[type="email"],
.vc-comments input[type="url"] { width: 100%; padding: 10px 12px; border: 1px solid var(--vc-border); border-radius: var(--vc-r-sm); background: #fff; }

/* --------------------------------------------------------------------------
   404
   ----------------------------------------------------------------------- */

.vc-notfound { max-width: 640px; margin: 0 auto; padding: 48px 0 16px; text-align: center; }
.vc-notfound__code { margin: 0; font-size: 96px; font-weight: 700; line-height: 1; letter-spacing: -.05em; color: var(--vc-border); }
.vc-notfound__title { margin: 8px 0; font-size: 30px; }
.vc-notfound__text { color: var(--vc-muted); }

/* --------------------------------------------------------------------------
   Reveal dialog
   ----------------------------------------------------------------------- */

.vc-modal {
	width: min(440px, calc(100vw - 24px));
	max-height: calc(100vh - 24px);
	margin: auto; padding: 0;
	border: 0; border-radius: var(--vc-r-xl);
	background: #fff; color: var(--vc-navy);
	box-shadow: var(--vc-sh-3);
	overflow: auto;
}
.vc-modal:not([open]) { display: none; }
.vc-modal[open]:not(:modal) { position: fixed; inset: 0; z-index: 1000; }
.vc-modal::backdrop { background: rgba(27, 30, 61, .58); backdrop-filter: blur(3px); }
.vc-modal__card { position: relative; padding: 28px 22px 22px; }
.vc-modal__close {
	position: absolute; right: 10px; top: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border: 0; border-radius: 50%;
	background: var(--vc-page); color: var(--vc-navy);
}
.vc-modal__close:hover { background: var(--vc-border); }
.vc-modal__head { text-align: center; }
.vc-modal__logo { width: 112px; margin: 0 auto 10px; }
.vc-modal__logo:empty { display: none; }
.vc-modal__store { margin: 0; color: var(--vc-muted); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.vc-modal__title { margin: 4px 0 16px; font-size: 19px; line-height: 1.35; }
.vc-modal__body { display: flex; flex-direction: column; gap: 12px; }
.vc-modal__hint { margin: 0; color: var(--vc-muted); font-size: 14px; text-align: center; }
.vc-modal [data-vc-show] { display: none; }
.vc-modal[data-type="code"] [data-vc-show="code"],
.vc-modal[data-type="sale"] [data-vc-show="sale"],
.vc-modal[data-type="print"] [data-vc-show="print"] { display: flex; flex-direction: column; gap: 10px; }
.vc-codebox {
	display: flex; align-items: center; gap: 8px;
	padding: 6px 6px 6px 16px; border: 2px dashed var(--vc-navy); border-radius: var(--vc-r);
	background: var(--vc-page);
}
.vc-codebox__code { flex: 1; min-width: 0; overflow-wrap: anywhere; font-family: var(--vc-mono); font-size: 22px; font-weight: 700; letter-spacing: .1em; }
.vc-codebox__copy {
	display: inline-flex; align-items: center; gap: 6px; flex: none;
	min-height: 44px; padding: 8px 14px; border: 0; border-radius: var(--vc-r-sm);
	background: var(--vc-navy); color: #fff; font-weight: 600; font-size: 14px;
}
.vc-codebox__copy:hover { background: var(--vc-navy-2); }
.vc-codebox__copy.is-copied { background: var(--vc-green-ink); }
.vc-modal__activated { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0; padding: 12px; border-radius: var(--vc-r); background: var(--vc-green-tint); color: var(--vc-green-ink); font-weight: 600; }
.vc-modal__print-link { text-align: center; font-weight: 600; }
.vc-modal__meta { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; color: var(--vc-muted); font-size: 13px; }
.vc-modal__terms { margin: 0; text-align: left; }
.vc-modal__terms[hidden] { display: none; }

/* --------------------------------------------------------------------------
   Footer (same content and proportions as the live VoucherCite footer)
   ----------------------------------------------------------------------- */

.vc-footer { background: var(--vc-ft-bg); color: var(--vc-ft-ink); }
.vc-footer__inner {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: 30px 0 25px;
	display: grid;
	grid-template-columns: minmax(270px, 1.4fr) minmax(135px, .7fr) minmax(190px, .9fr) minmax(230px, 1fr);
	gap: 30px;
	align-items: start;
}
.vc-footer__logo {
	display: inline-flex; align-items: center; justify-content: center;
	width: 184px; min-height: 44px; margin: 0 0 12px; padding: 8px 12px;
	border: 1px solid #E5D9D1; border-radius: 7px; background: #fff;
}
.vc-footer__logo .vc-logo { width: 160px; height: auto; color: var(--vc-navy); }
.vc-footer__intro { max-width: 360px; margin: 0 0 10px; color: var(--vc-ft-ink); font-size: 15px; line-height: 1.6; }
.vc-footer__disclosure { max-width: 380px; margin: 0; color: var(--vc-ft-muted); font-size: 13px; line-height: 1.55; }
.vc-footer__heading { margin: 0 0 10px; padding: 0; color: var(--vc-ft-head); font-size: 16px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.vc-footer__links { list-style: none; margin: 0; padding: 0; }
.vc-footer__links li { margin: 0 0 6px; }
.vc-footer__links a { color: var(--vc-ft-ink); font-size: 14px; line-height: 1.45; text-decoration: none; transition: color .2s; }
.vc-footer__links a:hover,
.vc-footer__links a:focus { color: var(--vc-ft-head); text-decoration: underline; text-underline-offset: 3px; }
body.vc-hf-navy .vc-footer__links a:hover,
body.vc-hf-navy .vc-footer__links a:focus,
body.vc-hf-green .vc-footer__links a:hover,
body.vc-hf-green .vc-footer__links a:focus { color: var(--vc-yellow); }
.vc-footer__social-text { max-width: 250px; margin: 0 0 15px; color: var(--vc-ft-muted); font-size: 13px; line-height: 1.55; }
.vc-footer__socials { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.vc-footer__social {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	border: 1px solid var(--vc-ft-social-border); border-radius: 50%;
	background: var(--vc-ft-social-bg); color: var(--vc-ft-social-ink);
	text-decoration: none; box-shadow: 0 3px 12px rgba(38, 31, 27, .04);
	transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.vc-footer__social .vc-icon { width: 18px; height: 18px; }
.vc-footer__social:hover,
.vc-footer__social:focus { background: var(--vc-coral); border-color: var(--vc-coral); color: var(--vc-cta-ink); transform: translateY(-2px); }
.vc-footer__bottom { border-top: 1px solid var(--vc-ft-line); background: var(--vc-ft-bottom); }
.vc-footer__bottom-inner {
	width: min(1180px, calc(100% - 40px)); min-height: 50px; margin: 0 auto; padding: 11px 0;
	display: flex; align-items: center; justify-content: center; text-align: center;
}
.vc-footer__bottom p { width: 100%; margin: 0; color: var(--vc-ft-muted); font-size: 13px; line-height: 1.5; }

@media (max-width: 980px) {
	.vc-footer__inner { grid-template-columns: minmax(250px, 1.35fr) minmax(130px, .75fr) minmax(175px, .9fr); gap: 26px; }
	.vc-footer__social-area { grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid var(--vc-ft-line); }
	.vc-footer__social-text { max-width: 500px; }
}

/* Phones: compact, centred (as on the live site). */
@media (max-width: 700px) {
	.vc-footer__inner { width: min(100% - 30px, 520px); padding: 25px 0 18px; display: flex; flex-direction: column; align-items: center; gap: 0; text-align: center; }
	.vc-footer__brand { display: none; }
	.vc-footer__social-area { order: -1; width: 100%; margin: 0 0 18px; padding: 0; border: 0; }
	.vc-footer__social-title,
	.vc-footer__social-text,
	.vc-footer__heading { display: none; }
	.vc-footer__socials { justify-content: center; flex-wrap: nowrap; gap: 12px; }
	.vc-footer__social { width: 43px; height: 43px; box-shadow: none; }
	.vc-footer__social .vc-icon { width: 20px; height: 20px; }
	.vc-footer__social:hover { transform: none; }
	.vc-footer__about,
	.vc-footer__quick-links { width: 100%; }
	.vc-footer__links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; }
	.vc-footer__links li { display: inline-flex; align-items: center; margin: 0 0 9px; }
	.vc-footer__links li:not(:last-child)::after { content: "|"; margin: 0 8px; color: var(--vc-ft-muted); opacity: .7; font-weight: 400; }
	.vc-footer__links a { font-size: 15px; font-weight: 500; }
	.vc-footer__bottom-inner { width: min(100% - 30px, 520px); min-height: 0; padding: 14px 0 18px; }
}
@media (max-width: 430px) {
	.vc-footer__inner { width: calc(100% - 24px); padding-top: 22px; padding-bottom: 15px; }
	.vc-footer__social-area { margin-bottom: 16px; }
	.vc-footer__socials { gap: 9px; }
	.vc-footer__social { width: 40px; height: 40px; }
	.vc-footer__links li { margin-bottom: 8px; }
	.vc-footer__links li:not(:last-child)::after { margin: 0 6px; }
	.vc-footer__links a { font-size: 14px; }
	.vc-footer__bottom p { font-size: 12.5px; }
}

/* Room for the sticky best-code bar on phones. */
body.vc-page-store .vc-footer { padding-bottom: 76px; }
@media (min-width: 900px) { body.vc-page-store .vc-footer { padding-bottom: 0; } }

/* --------------------------------------------------------------------------
   Colour schemes (Appearance > Customize > VoucherCite > Colour scheme).
   "classic" uses the values above. Each scheme below swaps the tokens.
   ----------------------------------------------------------------------- */

/* Lime & Ink: near-black header and footer, acid-lime buttons (Wise / Linear style). */
body.vc-scheme-lime {
	--vc-navy: #111511; --vc-navy-2: #2B312B; --vc-navy-tint: #EEF2E8;
	--vc-coral: #C4F541; --vc-coral-dark: #AEE22A; --vc-cta-ink: #111511; --vc-cta-shadow: rgba(140, 190, 30, .7);
	--vc-green: #148A3F; --vc-green-ink: #0D6A30; --vc-green-tint: #E6F5DA;
	--vc-yellow: #C4F541; --vc-yellow-tint: #F1F9DD; --vc-amber-ink: #3F5A06;
	--vc-page: #F5F6F1; --vc-border: #E2E6DA; --vc-muted: #5D6656; --vc-sand: #ECEFE6; --vc-expired: #B8BDB2;
	--vc-logo-accent: #C4F541;
	--vc-tint-0: #F1F9DD; --vc-tint-1: #EEF2E8; --vc-tint-2: #E3F4E6; --vc-tint-3: #FFF0E4; --vc-tint-4: #F2F1EA;
	--vc-hf-bg: #111511; --vc-hf-ink: #FFFFFF; --vc-hf-soft: rgba(255, 255, 255, .78); --vc-hf-hover: rgba(255, 255, 255, .08); --vc-hf-line: rgba(255, 255, 255, .1); --vc-hf-drawer: #0B0E0B; --vc-hf-logo: #FFFFFF;
	--vc-ft-bg: #111511; --vc-ft-ink: rgba(255, 255, 255, .86); --vc-ft-head: #FFFFFF; --vc-ft-muted: rgba(255, 255, 255, .6); --vc-ft-line: rgba(255, 255, 255, .1); --vc-ft-bottom: #0B0E0B; --vc-ft-social-bg: transparent; --vc-ft-social-border: rgba(255, 255, 255, .28); --vc-ft-social-ink: #FFFFFF;
}
body.vc-scheme-lime .vc-footer__logo { --vc-logo-accent: #1F9D55; }
body.vc-scheme-lime .vc-tag--hot { background: #FFB27A; }
body.vc-scheme-lime .vc-reveal--code { border-color: #8DBA1E; }
body.vc-scheme-lime .vc-footer__links a:hover,
body.vc-scheme-lime .vc-footer__links a:focus { color: var(--vc-coral); }

/* Electric Indigo & Sun: indigo buttons and logo, sunny yellow highlights. */
body.vc-scheme-indigo {
	--vc-navy: #14123B; --vc-navy-2: #2A2766; --vc-navy-tint: #EEEDFB;
	--vc-coral: #4F3BFF; --vc-coral-dark: #3B27E6; --vc-cta-ink: #FFFFFF; --vc-cta-shadow: rgba(79, 59, 255, .6);
	--vc-green: #0E9F6E; --vc-green-ink: #0A7A55; --vc-green-tint: #E3F6EE;
	--vc-yellow: #FFD23F; --vc-yellow-tint: #FFF6D6; --vc-amber-ink: #7A5200;
	--vc-page: #F6F6FB; --vc-border: #E4E3F0; --vc-muted: #63617C; --vc-sand: #EFEEF7; --vc-expired: #BAB9CC;
	--vc-logo-accent: #4F3BFF;
	--vc-tint-0: #F0EEFF; --vc-tint-1: #EEEDFB; --vc-tint-2: #E6F6F0; --vc-tint-3: #FFF6D6; --vc-tint-4: #F3F2F8;
	--vc-hf-bg: #FFFFFF; --vc-hf-ink: #14123B; --vc-hf-soft: rgba(20, 18, 59, .74); --vc-hf-hover: #F2F1FB; --vc-hf-line: #E7E6F2; --vc-hf-drawer: #FFFFFF; --vc-hf-logo: #14123B;
	--vc-ft-bg: #EFEEFA; --vc-ft-ink: #2A2766; --vc-ft-head: #14123B; --vc-ft-muted: #63617C; --vc-ft-line: #DEDCF0; --vc-ft-bottom: #E6E4F6; --vc-ft-social-bg: #FFFFFF; --vc-ft-social-border: #D7D5EC; --vc-ft-social-ink: #14123B;
}
body.vc-scheme-indigo .vc-nav__list a::after { background: var(--vc-coral); }
body.vc-scheme-indigo .vc-search__input:focus { border-color: var(--vc-coral); box-shadow: 0 0 0 3px rgba(79, 59, 255, .22); }

/* Raspberry & Cream: raspberry buttons and logo, plum ink, warm cream page. */
body.vc-scheme-berry {
	--vc-navy: #24121F; --vc-navy-2: #3D2236; --vc-navy-tint: #F5EDF2;
	--vc-coral: #E2256A; --vc-coral-dark: #C41556; --vc-cta-ink: #FFFFFF; --vc-cta-shadow: rgba(226, 37, 106, .55);
	--vc-green: #12935A; --vc-green-ink: #0C7045; --vc-green-tint: #E3F5EC;
	--vc-yellow: #FFCF5C; --vc-yellow-tint: #FFF4DA; --vc-amber-ink: #7A4E00;
	--vc-page: #FBF7F4; --vc-border: #EEE4E0; --vc-muted: #6F6170; --vc-sand: #F4EDE9; --vc-expired: #C2B7BF;
	--vc-logo-accent: #E2256A;
	--vc-tint-0: #FDEBF2; --vc-tint-1: #F5EDF2; --vc-tint-2: #E9F5EF; --vc-tint-3: #FFF4DA; --vc-tint-4: #F6EFEA;
	--vc-hf-bg: #FFFFFF; --vc-hf-ink: #24121F; --vc-hf-soft: rgba(36, 18, 31, .74); --vc-hf-hover: #FBF1F4; --vc-hf-line: #F0E6E2; --vc-hf-drawer: #FFFFFF; --vc-hf-logo: #24121F;
	--vc-ft-bg: #F6EEEA; --vc-ft-ink: #3D2236; --vc-ft-head: #24121F; --vc-ft-muted: #6F6170; --vc-ft-line: #E8DCD6; --vc-ft-bottom: #EFE4DF; --vc-ft-social-bg: #FFFFFF; --vc-ft-social-border: #E2D4CE; --vc-ft-social-ink: #24121F;
}
body.vc-scheme-berry .vc-nav__list a::after { background: var(--vc-coral); }
body.vc-scheme-berry .vc-search__input:focus { border-color: var(--vc-coral); box-shadow: 0 0 0 3px rgba(226, 37, 106, .2); }
body.vc-scheme-indigo .vc-footer__links a:hover,
body.vc-scheme-indigo .vc-footer__links a:focus,
body.vc-scheme-berry .vc-footer__links a:hover,
body.vc-scheme-berry .vc-footer__links a:focus { color: var(--vc-coral); }
body.vc-scheme-indigo .vc-drawer__list a.is-current,
body.vc-scheme-berry .vc-drawer__list a.is-current { text-decoration-color: var(--vc-coral); }

/* Violet & Flame: Awin-style violet, lilac page.
   Codes get the orange-red "flame" button, deals a calm violet button, so the
   eye goes to codes first and the page is not a wall of red. */
body.vc-scheme-violet {
	--vc-violet: #4D2AB1; --vc-violet-dark: #3D1F95; --vc-violet-tint: #EFEAFD;
	--vc-navy: #1C1433; --vc-navy-2: #3A3060; --vc-navy-tint: #F1EDFB;
	--vc-coral: #EC3F1C; --vc-coral-dark: #D42F17; --vc-cta-ink: #FFFFFF; --vc-cta-shadow: rgba(226, 50, 30, .5);
	--vc-green: #12A150; --vc-green-ink: #0B7A3B; --vc-green-tint: #E6F6EC;
	--vc-yellow: #FFB547; --vc-yellow-tint: #FFF3DE; --vc-amber-ink: #7A4300;
	--vc-page: #F8F6FE; --vc-border: #E6E1F4; --vc-muted: #645E7C; --vc-sand: #F0ECFA; --vc-expired: #BDB8CF;
	--vc-logo-accent: #FF8A57;
	--vc-tint-0: #FFF0E8; --vc-tint-1: #F1EDFB; --vc-tint-2: #EAF6F0; --vc-tint-3: #FFF4E0; --vc-tint-4: #F4F1FA;
	--vc-hf-bg: #4D2AB1; --vc-hf-ink: #FFFFFF; --vc-hf-soft: rgba(255, 255, 255, .86); --vc-hf-hover: rgba(255, 255, 255, .12); --vc-hf-line: rgba(255, 255, 255, .14); --vc-hf-drawer: #43239E; --vc-hf-logo: #FFFFFF;
	--vc-ft-bg: #1E1046; --vc-ft-ink: rgba(255, 255, 255, .86); --vc-ft-head: #FFFFFF; --vc-ft-muted: rgba(255, 255, 255, .62); --vc-ft-line: rgba(255, 255, 255, .12); --vc-ft-bottom: #160B36; --vc-ft-social-bg: transparent; --vc-ft-social-border: rgba(255, 255, 255, .3); --vc-ft-social-ink: #FFFFFF;
	/* One horizontal gradient for the header band and hero band, so they join seamlessly. */
	--vc-stage: #4D2AB1;
	--vc-stage-fill: linear-gradient(90deg, #4223A3 0%, #4D2AB1 45%, #6136D1 100%);
	--vc-flame: linear-gradient(258deg, #F9600C 8%, #E5381E 52%, #D8202B 92%);
	--vc-flame-dark: linear-gradient(258deg, #EA5406 8%, #D22E18 52%, #C41A25 92%);
}
/* Header band and hero band share the gradient. */
body.vc-scheme-violet .vc-header { background: var(--vc-stage-fill); }

/* Buttons: flame for codes, violet for deals. */
body.vc-scheme-violet .vc-btn--primary,
body.vc-scheme-violet .vc-reveal--solid:not(.vc-reveal--muted),
body.vc-scheme-violet .vc-reveal--code:not(.vc-reveal--muted) .vc-reveal__label { background-image: var(--vc-flame); }
body.vc-scheme-violet .vc-btn--primary:hover,
body.vc-scheme-violet .vc-reveal--solid:not(.vc-reveal--muted):hover,
body.vc-scheme-violet .vc-reveal--code:not(.vc-reveal--muted):hover .vc-reveal__label { background-image: var(--vc-flame-dark); }
body.vc-scheme-violet .vc-reveal--sale:not(.vc-reveal--muted),
body.vc-scheme-violet .vc-reveal--print:not(.vc-reveal--muted) { background: var(--vc-violet); }
body.vc-scheme-violet .vc-reveal--sale:not(.vc-reveal--muted):hover,
body.vc-scheme-violet .vc-reveal--print:not(.vc-reveal--muted):hover { background: var(--vc-violet-dark); box-shadow: 0 8px 18px -10px rgba(77, 42, 177, .7); }

/* Lighter badges: lilac tile, violet value, coloured type strip. */
body.vc-scheme-violet .vc-badge { background: var(--vc-violet-tint); color: var(--vc-violet); }
body.vc-scheme-violet .vc-badge__icon { color: var(--vc-violet); }
body.vc-scheme-violet .vc-badge__type { background: var(--vc-violet); color: #fff; }
body.vc-scheme-violet .vc-offer--code .vc-badge__type { background: var(--vc-flame); color: #fff; }

body.vc-scheme-violet .vc-search--big .vc-search__btn { background: var(--vc-violet); color: #fff; }
body.vc-scheme-violet .vc-search--big .vc-search__btn:hover { background: var(--vc-violet-dark); }
body.vc-scheme-violet .vc-carousel__dot[aria-current="true"] { background: var(--vc-violet); }
body.vc-scheme-violet .vc-section-title,
body.vc-scheme-violet .vc-home-intro__title { color: var(--vc-violet); }
body.vc-scheme-violet .vc-footer__links a:hover,
body.vc-scheme-violet .vc-footer__links a:focus { color: #FFC37A; }
body.vc-scheme-violet .vc-nav__list a::after { background: #FF8A57; }
body.vc-scheme-violet .vc-search__input:focus { border-color: var(--vc-violet); box-shadow: 0 0 0 3px rgba(77, 42, 177, .2); }
body.vc-scheme-violet .vc-drawer__list a.is-current { text-decoration-color: #FF8A57; }

/* Stage colour behind the floating header, per scheme. */
body.vc-scheme-indigo { --vc-stage: #4F3BFF; }
body.vc-scheme-berry { --vc-stage: #24121F; }

/* --------------------------------------------------------------------------
   Sticky header: on every page except store pages (body class vc-hdr-sticky,
   added in inc/setup.php). Phones: hides on scroll down, returns on scroll up.
   ----------------------------------------------------------------------- */
body.vc-hdr-sticky .vc-header {
	position: sticky; top: 0; z-index: 60;
	transition: transform .3s var(--vc-ease), box-shadow .3s;
}
body.vc-hdr-sticky .vc-header.is-hidden { transform: translateY(-100%); }
body.vc-hdr-sticky .vc-header.is-stuck { box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .35); }
body.vc-hdr-sticky .vc-header:not(.is-hidden) ~ .vc-main .vc-az__tools { top: 58px; transition: top .3s var(--vc-ease); }
html:has(body.vc-hdr-sticky) { scroll-padding-top: 72px; }
@media (min-width: 601px) { body.admin-bar.vc-hdr-sticky .vc-header { top: 46px; } }
@media (min-width: 783px) { body.admin-bar.vc-hdr-sticky .vc-header { top: 32px; } }
@media (min-width: 900px) {
	body.vc-hdr-sticky .vc-header:not(.is-hidden) ~ .vc-main .vc-az__tools { top: 74px; }
	html:has(body.vc-hdr-sticky) { scroll-padding-top: 90px; }
}

/* --------------------------------------------------------------------------
   Floating header (Customize > VoucherCite > Header style > Floating).
   Laptops: a rounded white header on a colour band; where the header is sticky
   the band fades away so the page slides behind frosted glass.
   ----------------------------------------------------------------------- */
@media (min-width: 900px) {
	body.vc-hdr-float .vc-header {
		--vc-hf-ink: var(--vc-navy);
		--vc-hf-soft: var(--vc-navy-2);
		--vc-hf-hover: var(--vc-navy-tint);
		--vc-hf-line: var(--vc-border);
		--vc-hf-logo: var(--vc-navy);
		padding: 10px 0;
		border-bottom: 0;
		background: transparent;
		box-shadow: none;
		isolation: isolate;
	}
	/* The colour band is a layer behind the pill so it can fade out smoothly. */
	body.vc-hdr-float .vc-header::before {
		content: ""; position: absolute; inset: 0; z-index: -1;
		background: var(--vc-stage-fill, var(--vc-stage, var(--vc-hf-bg)));
		transition: opacity .35s var(--vc-ease);
	}
	body.vc-hdr-float .vc-header.is-stuck { box-shadow: none; }
	body.vc-hdr-float .vc-header.is-stuck::before { opacity: 0; }
	body.vc-hdr-float .vc-header__inner {
		width: calc(100% - 2 * var(--vc-gutter));
		max-width: calc(var(--vc-max) - 2 * var(--vc-gutter));
		min-height: 64px; padding: 0 8px 0 24px;
		border-radius: 999px;
		background: rgba(255, 255, 255, .94);
		-webkit-backdrop-filter: blur(12px) saturate(1.6);
		backdrop-filter: blur(12px) saturate(1.6);
		box-shadow: 0 4px 8px rgba(66, 66, 66, .1);
		transition: box-shadow .3s var(--vc-ease);
	}
	body.vc-hdr-float .vc-header.is-stuck .vc-header__inner { box-shadow: 0 14px 34px -14px rgba(20, 16, 50, .4), 0 2px 6px rgba(20, 16, 50, .06); }
	body.vc-hdr-float .vc-logo { height: 42px; }
	body.vc-scheme-violet.vc-hdr-float .vc-header { --vc-logo-accent: #F25A1F; }
	/* Lime is too pale on the white header: green logo accent, ink underline. */
	body.vc-scheme-lime.vc-hdr-float .vc-header { --vc-logo-accent: #1F9D55; }
	body.vc-scheme-lime.vc-hdr-float .vc-nav__list a::after { background: var(--vc-navy); height: 2px; }
	body.vc-scheme-violet.vc-hdr-float .vc-nav__list a::after { background: var(--vc-flame); }
	body.vc-hdr-float .vc-nav__list a::after { background: var(--vc-coral); }
	body.vc-hdr-float .vc-search--header .vc-search__input { border-color: var(--vc-border); background: var(--vc-page); }
	body.vc-hdr-float .vc-search--header .vc-search__input:focus { background: #fff; }
	body.vc-hdr-float.vc-hdr-sticky .vc-header:not(.is-hidden) ~ .vc-main .vc-az__tools { top: 84px; }
	html:has(body.vc-hdr-float.vc-hdr-sticky) { scroll-padding-top: 96px; }
	/* Homepage: the colour band carries on behind the top half of the offer carousel. */
	body.vc-hdr-float.vc-page-home .vc-home-carousel {
		background: linear-gradient(transparent 50%, var(--vc-page) 50%), var(--vc-stage-fill, var(--vc-stage, var(--vc-hf-bg)));
	}
}

/* --------------------------------------------------------------------------
   Motion preferences and print
   ----------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

@media print {
	.vc-header, .vc-footer, .vc-sticky, .vc-modal, .vc-tabs { display: none !important; }
	body { background: #fff; }
}
