/*
Theme Name: Coupon Desk Editorial
Author: Coupon Desk
Description: Image-led editorial layout for a coupon directory with a separate reviews section. Dark canvas, screenshot-driven cards, scorecards and expert commentary. Requires the Coupon & Review Engine plugin.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: s6
Tags: one-column, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   Design direction

   Third site, third visual language. The two siblings are both light
   documents — one warm paper with a red stamp, one cool grey with ruled
   ledger tables. This one is a dark editorial canvas, and the divergence
   is structural rather than cosmetic:

   - Dark ground. Every panel is a raised surface rather than a bordered
     box, so depth comes from luminance, not from hairlines.
   - Images lead. This site has screenshots of every merchant, so cards
     are photographic and sized generously instead of being text rows.
   - Sans display over serif body. The siblings both run sans body text;
     inverting that changes the reading texture immediately, before any
     colour registers.
   - Rounded geometry — 14px, against their 10px and 3px.
   - No sticky side rail. Navigation within a page is a horizontal chip
     bar under the header.

   Amber is the accent: it survives on a dark ground where both siblings'
   accents would either vibrate or disappear. Teal marks anything
   verified. Rose marks anything expired.
   ========================================================================== */

:root {
	--s6-void: #0e0d12;
	--s6-canvas: #15141b;
	--s6-raised: #1c1b24;
	--s6-raised-2: #23212d;
	--s6-edge: #2e2b3a;
	--s6-edge-soft: #262433;

	--s6-text: #ece9f2;
	--s6-text-soft: #b3aec4;
	--s6-text-dim: #7e7893;

	--s6-amber: #f0a23c;
	--s6-amber-deep: #c47a1c;
	--s6-amber-wash: rgba(240, 162, 60, .13);
	--s6-teal: #4fd0b0;
	--s6-teal-wash: rgba(79, 208, 176, .12);
	--s6-rose: #f0708a;
	--s6-rose-wash: rgba(240, 112, 138, .12);

	--s6-r: 14px;
	--s6-r-sm: 9px;
	--s6-r-pill: 999px;

	--s6-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--s6-body: "Newsreader", "Iowan Old Style", Georgia, serif;
	--s6-ui: "Archivo", system-ui, -apple-system, sans-serif;

	--fs-micro: .7rem;
	--fs-sm: .875rem;
	--fs-base: 1.05rem;
	--fs-lede: clamp(1.08rem, 1rem + .35vw, 1.25rem);
	--fs-h3: clamp(1.08rem, 1rem + .4vw, 1.28rem);
	--fs-h2: clamp(1.45rem, 1.2rem + 1.1vw, 2.05rem);
	--fs-h1: clamp(1.9rem, 1.4rem + 2.2vw, 3rem);
	--fs-hero: clamp(2.2rem, 1.4rem + 3.6vw, 4rem);

	--sp-1: .4rem;
	--sp-2: .75rem;
	--sp-3: 1.15rem;
	--sp-4: 1.75rem;
	--sp-5: 2.6rem;
	--sp-6: clamp(2.8rem, 1.8rem + 3.2vw, 4.5rem);

	--s6-wrap: 1320px;
	--s6-gutter: clamp(1.1rem, 4vw, 2.6rem);
	--s6-ease: cubic-bezier(.22, .68, .3, 1);
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 120px; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation: none !important; }
}

body {
	margin: 0;
	background: var(--s6-void);
	color: var(--s6-text);
	font-family: var(--s6-body);
	font-size: var(--fs-base);
	line-height: 1.68;
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--s6-amber); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #ffc172; }

::selection { background: var(--s6-amber); color: #17141a; }

:focus-visible { outline: 2px solid var(--s6-amber); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3, h4 {
	font-family: var(--s6-display);
	font-weight: 700;
	letter-spacing: -.022em;
	line-height: 1.12;
	margin: 0 0 var(--sp-2);
	text-wrap: balance;
}

p { margin: 0 0 var(--sp-3); }

.wrap {
	width: min(var(--s6-wrap), 100%);
	margin-inline: auto;
	padding-inline: var(--s6-gutter);
}

.wrap--narrow { width: min(860px, 100%); }

.skip-link { position: absolute; left: -9999px; background: var(--s6-amber); color: #14121a; padding: .8rem 1.2rem; z-index: 999; }
.skip-link:focus { left: 1rem; top: 1rem; }

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

/* ---------------------------------------------------------- primitives */

.s6-kicker {
	font-family: var(--s6-ui);
	font-size: var(--fs-micro);
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--s6-amber);
	margin: 0 0 var(--sp-2);
	display: block;
}
.s6-kicker--dim { color: var(--s6-text-dim); }

.s6-h2, .gce-h2 {
	font-family: var(--s6-display);
	font-size: var(--fs-h2);
	font-weight: 700;
	margin: 0 0 var(--sp-3);
}

.s6-lede {
	font-size: var(--fs-lede);
	color: var(--s6-text-soft);
	max-width: 60ch;
}

.s6-fine {
	font-family: var(--s6-ui);
	font-size: .78rem;
	line-height: 1.6;
	color: var(--s6-text-dim);
}

.s6-panel {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
}

.s6-section { margin: 0 0 var(--sp-6); }
.s6-section:last-child { margin-bottom: 0; }

.s6-tag {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-family: var(--s6-ui);
	font-size: var(--fs-micro);
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .3rem .6rem;
	border-radius: var(--s6-r-pill);
	background: var(--s6-raised-2);
	color: var(--s6-text-soft);
	border: 1px solid var(--s6-edge);
}
.s6-tag--live { background: var(--s6-teal-wash); color: var(--s6-teal); border-color: rgba(79, 208, 176, .35); }
.s6-tag--dead { background: var(--s6-rose-wash); color: var(--s6-rose); border-color: rgba(240, 112, 138, .3); }
.s6-tag--hot { background: var(--s6-amber-wash); color: var(--s6-amber); border-color: rgba(240, 162, 60, .35); }

.s6-btn, .gce-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	font-family: var(--s6-ui);
	font-size: .92rem;
	font-weight: 700;
	letter-spacing: -.01em;
	padding: .85rem 1.35rem;
	border-radius: var(--s6-r-pill);
	border: 0;
	background: var(--s6-amber);
	color: #17131b;
	text-decoration: none;
	cursor: pointer;
	transition: transform .1s var(--s6-ease), background .14s var(--s6-ease);
}
.s6-btn:hover, .gce-btn:hover { background: #ffbc63; color: #17131b; }
.s6-btn:active, .gce-btn:active { transform: translateY(1px); }
.s6-btn--block { width: 100%; }
.s6-btn--quiet, .gce-btn--deal {
	background: transparent;
	color: var(--s6-amber);
	box-shadow: inset 0 0 0 1px var(--s6-amber);
}
.s6-btn--quiet:hover, .gce-btn--deal:hover { background: var(--s6-amber-wash); color: var(--s6-amber); }
.gce-btn--dead {
	background: var(--s6-raised-2);
	color: var(--s6-text-dim);
	cursor: default;
}
.gce-btn--dead:hover { background: var(--s6-raised-2); color: var(--s6-text-dim); }

/* The monogram used where no image and no capture exists. Deliberately
   not an imitation of merchant branding. */
.s6-monogram {
	display: grid;
	place-items: center;
	border-radius: var(--s6-r-sm);
	font-family: var(--s6-display);
	font-weight: 700;
	color: #14121a;
	background: hsl(var(--mono-h, 40) 62% 62%);
}

/* -------------------------------------------------------------- header */

.s6-strip {
	background: #000;
	color: var(--s6-text-dim);
	font-family: var(--s6-ui);
	font-size: .74rem;
	letter-spacing: .03em;
}
.s6-strip .wrap {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem 1.4rem;
	align-items: center;
	justify-content: space-between;
	min-height: 36px;
}
.s6-strip a { color: var(--s6-text-soft); text-decoration: none; }
.s6-strip a:hover { color: var(--s6-amber); }

.site-header {
	position: sticky;
	top: 0;
	z-index: 70;
	background: rgba(21, 20, 27, .92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--s6-edge-soft);
}
.header-inner {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	min-height: 74px;
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	text-decoration: none;
	color: var(--s6-text);
	font-family: var(--s6-display);
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -.03em;
	margin-right: auto;
}
.brand__dot {
	width: 12px; height: 12px;
	border-radius: 50%;
	background: var(--s6-amber);
	box-shadow: 0 0 0 4px var(--s6-amber-wash);
	flex: none;
}

.nav-primary ul { display: flex; gap: var(--sp-3); list-style: none; margin: 0; padding: 0; }
.nav-primary a {
	font-family: var(--s6-ui);
	font-size: .9rem;
	font-weight: 600;
	color: var(--s6-text-soft);
	text-decoration: none;
	padding: .45rem .7rem;
	border-radius: var(--s6-r-pill);
	display: block;
	transition: background .14s var(--s6-ease), color .14s var(--s6-ease);
}
.nav-primary a:hover,
.nav-primary .current-menu-item > a { background: var(--s6-raised-2); color: var(--s6-text); }

.nav-toggle {
	display: none;
	font-family: var(--s6-ui);
	font-size: .82rem;
	font-weight: 600;
	background: var(--s6-raised-2);
	color: var(--s6-text);
	border: 0;
	border-radius: var(--s6-r-pill);
	padding: .55rem .95rem;
	cursor: pointer;
}

@media (max-width: 940px) {
	.nav-toggle { display: block; }
	.header-inner { position: relative; }
	.nav-primary {
		display: none;
		position: absolute;
		inset: 100% 0 auto;
		background: var(--s6-canvas);
		border: 1px solid var(--s6-edge);
		border-radius: var(--s6-r);
		padding: var(--sp-2);
		margin-top: .5rem;
	}
	.nav-primary.is-open { display: block; }
	.nav-primary ul { flex-direction: column; gap: 0; }
	.nav-primary a { padding: .8rem .9rem; border-radius: var(--s6-r-sm); }
}

/* Jump chips: this site's answer to a side rail. */
.s6-jump {
	position: sticky;
	top: 74px;
	z-index: 60;
	background: rgba(14, 13, 18, .9);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--s6-edge-soft);
	overflow-x: auto;
	scrollbar-width: none;
}
.s6-jump::-webkit-scrollbar { display: none; }
.s6-jump ul {
	display: flex;
	gap: .4rem;
	list-style: none;
	margin: 0;
	padding: .7rem var(--s6-gutter);
	width: min(var(--s6-wrap), 100%);
	margin-inline: auto;
}
.s6-jump a {
	white-space: nowrap;
	font-family: var(--s6-ui);
	font-size: .8rem;
	font-weight: 600;
	color: var(--s6-text-dim);
	text-decoration: none;
	padding: .4rem .8rem;
	border-radius: var(--s6-r-pill);
	border: 1px solid var(--s6-edge);
	display: block;
}
.s6-jump a:hover, .s6-jump a[aria-current] {
	color: #17131b;
	background: var(--s6-amber);
	border-color: var(--s6-amber);
}

.gce-disclosure-bar {
	background: var(--s6-amber-wash);
	border-bottom: 1px solid rgba(240, 162, 60, .22);
	color: var(--s6-amber);
	font-family: var(--s6-ui);
	font-size: .76rem;
	text-align: center;
	padding: .55rem var(--s6-gutter);
}
.gce-disclosure-bar a { color: inherit; }

.gce-disclosure {
	font-family: var(--s6-ui);
	font-size: .78rem;
	line-height: 1.6;
	color: var(--s6-text-dim);
	background: var(--s6-raised);
	border-radius: var(--s6-r-sm);
	padding: .7rem .95rem;
	margin: 0 0 var(--sp-4);
}

.site-main { padding-bottom: var(--sp-6); }

.crumbs {
	font-family: var(--s6-ui);
	font-size: .76rem;
	color: var(--s6-text-dim);
	padding: var(--sp-3) 0 0;
}
.crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.crumbs li + li::before { content: "›"; margin-right: .4rem; color: var(--s6-edge); }
.crumbs a { color: var(--s6-text-dim); text-decoration: none; }
.crumbs a:hover { color: var(--s6-amber); }

/* ==========================================================================
   Homepage
   ========================================================================== */

.s6-hero {
	position: relative;
	padding: var(--sp-6) 0 var(--sp-5);
	background:
		radial-gradient(ellipse 90% 60% at 15% 0%, rgba(240, 162, 60, .1), transparent 60%),
		radial-gradient(ellipse 70% 50% at 90% 10%, rgba(79, 208, 176, .07), transparent 60%);
}
.s6-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: var(--sp-6);
	align-items: center;
}
@media (max-width: 980px) {
	.s6-hero__grid { grid-template-columns: 1fr; gap: var(--sp-5); }
}

.s6-hero__h1 { font-size: var(--fs-hero); margin: 0 0 var(--sp-3); max-width: 15ch; }
.s6-hero__h1 span { color: var(--s6-amber); }
.s6-hero__lede { font-size: var(--fs-lede); color: var(--s6-text-soft); max-width: 52ch; margin-bottom: var(--sp-4); }

.s6-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-4);
	margin-top: var(--sp-4);
	padding-top: var(--sp-4);
	border-top: 1px solid var(--s6-edge-soft);
}
.s6-hero__stat strong {
	display: block;
	font-family: var(--s6-display);
	font-size: 1.65rem;
	font-weight: 800;
	letter-spacing: -.03em;
}
.s6-hero__stat span {
	font-family: var(--s6-ui);
	font-size: .74rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--s6-text-dim);
}

/* The featured slot: a large image card. */
.s6-feature {
	position: relative;
	border-radius: var(--s6-r);
	overflow: hidden;
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge);
	display: block;
	text-decoration: none;
	color: inherit;
}
.s6-feature__img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--s6-raised-2); }
.s6-feature__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--s6-ease); }
.s6-feature:hover .s6-feature__img img { transform: scale(1.035); }
.s6-feature__body { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
.s6-feature__title { font-size: var(--fs-h3); margin: .3rem 0 .4rem; }
.s6-feature__sub { color: var(--s6-text-soft); font-size: var(--fs-sm); margin: 0; }
.s6-feature__credit {
	font-family: var(--s6-ui);
	font-size: .68rem;
	color: var(--s6-text-dim);
	padding: 0 var(--sp-4) var(--sp-3);
	margin: 0;
}

/* Merchant tiles */
.s6-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(238px, 1fr));
	gap: var(--sp-3);
}
.s6-tile {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: border-color .16s var(--s6-ease), transform .16s var(--s6-ease);
}
.s6-tile:hover { border-color: var(--s6-amber); transform: translateY(-3px); }
.s6-tile__shot {
	aspect-ratio: 16 / 10;
	background: var(--s6-raised-2);
	overflow: hidden;
	display: grid;
	place-items: center;
}
.s6-tile__shot img { width: 100%; height: 100%; object-fit: cover; }
.s6-tile__body { padding: var(--sp-3); display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.s6-tile__name { font-family: var(--s6-display); font-weight: 700; font-size: 1.02rem; letter-spacing: -.02em; }
.s6-tile__best { font-family: var(--s6-ui); font-size: .8rem; color: var(--s6-amber); font-weight: 600; }
.s6-tile__meta { font-family: var(--s6-ui); font-size: .72rem; color: var(--s6-text-dim); margin-top: auto; }

/* Expert commentary */
.s6-experts { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--sp-3); }
.s6-expert {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-left: 3px solid var(--s6-teal);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}
.s6-expert__q { font-size: 1.06rem; line-height: 1.6; margin: 0; }
.s6-expert__who { display: flex; align-items: center; gap: .7rem; margin-top: auto; }
.s6-expert__who img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; }
.s6-expert__name { font-family: var(--s6-ui); font-weight: 700; font-size: .88rem; }
.s6-expert__role { font-family: var(--s6-ui); font-size: .76rem; color: var(--s6-text-dim); }
.s6-expert__role a { color: var(--s6-text-soft); }

/* Category rail */
.s6-cats { display: flex; flex-wrap: wrap; gap: .5rem; }
.s6-cat {
	font-family: var(--s6-ui);
	font-size: .88rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--s6-text-soft);
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge);
	border-radius: var(--s6-r-pill);
	padding: .55rem 1rem;
	display: inline-flex;
	gap: .5rem;
	align-items: center;
}
.s6-cat:hover { border-color: var(--s6-amber); color: var(--s6-text); }
.s6-cat span { color: var(--s6-text-dim); font-size: .76rem; }

/* ==========================================================================
   Merchant page
   ========================================================================== */

.s6-mast {
	position: relative;
	border-radius: var(--s6-r);
	overflow: hidden;
	margin-top: var(--sp-3);
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge);
}
.s6-mast__bg { position: absolute; inset: 0; }
.s6-mast__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .16; filter: saturate(.7); }
.s6-mast__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, var(--s6-canvas) 25%, rgba(21, 20, 27, .6) 100%);
}
.s6-mast__inner { position: relative; padding: var(--sp-5) var(--sp-4); display: flex; gap: var(--sp-4); align-items: center; flex-wrap: wrap; }
.s6-mast__logo {
	width: 92px; height: 92px; flex: none;
	border-radius: var(--s6-r-sm);
	background: #fff;
	display: grid; place-items: center;
	overflow: hidden;
	padding: .5rem;
}
.s6-mast__logo img { max-height: 100%; width: auto; object-fit: contain; }
.s6-mast__text { flex: 1 1 320px; }
.s6-mast__h1 { font-size: var(--fs-h1); margin: 0 0 .5rem; }
.s6-mast__sub { color: var(--s6-text-soft); margin: 0; max-width: 58ch; }
.s6-mast__cta { display: flex; flex-direction: column; gap: .6rem; align-items: stretch; min-width: 190px; }

/* The signal bar — this site's headline data strip */
.s6-signals {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1px;
	background: var(--s6-edge-soft);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	overflow: hidden;
	margin: var(--sp-4) 0 var(--sp-5);
}
.s6-signal { background: var(--s6-raised); padding: var(--sp-3); }
.s6-signal__v { font-family: var(--s6-display); font-size: 1.45rem; font-weight: 800; letter-spacing: -.03em; display: block; }
.s6-signal__l { font-family: var(--s6-ui); font-size: .7rem; letter-spacing: .11em; text-transform: uppercase; color: var(--s6-text-dim); }
.s6-signal__n { font-family: var(--s6-ui); font-size: .74rem; color: var(--s6-text-soft); display: block; margin-top: .2rem; }
.s6-signal--live .s6-signal__v { color: var(--s6-teal); }

/* Offers */
.s6-offers { display: grid; gap: var(--sp-3); }
.gce-coupon {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
	display: grid;
	grid-template-columns: minmax(0, 1fr) 220px;
	gap: var(--sp-3) var(--sp-4);
	align-items: center;
	transition: border-color .16s var(--s6-ease);
}
.gce-coupon:hover { border-color: var(--s6-edge); }
.gce-coupon.is-exclusive { border-color: rgba(240, 162, 60, .45); background: linear-gradient(180deg, var(--s6-amber-wash), transparent 60%), var(--s6-raised); }
.gce-coupon.is-expired { opacity: .62; }

.gce-coupon__head { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
.gce-coupon__value {
	font-family: var(--s6-display);
	font-size: 1.55rem;
	font-weight: 800;
	letter-spacing: -.035em;
	color: var(--s6-amber);
	line-height: 1;
}
.gce-coupon.is-expired .gce-coupon__value { color: var(--s6-text-dim); }
.gce-coupon__title { font-family: var(--s6-display); font-size: var(--fs-h3); font-weight: 700; margin: 0 0 .3rem; }
.gce-coupon__desc { color: var(--s6-text-soft); font-size: .95rem; margin: 0 0 .5rem; max-width: 62ch; }
.gce-coupon__meta {
	display: flex; flex-wrap: wrap; gap: .35rem .9rem;
	font-family: var(--s6-ui); font-size: .76rem; color: var(--s6-text-dim); margin: 0;
}
.gce-verified { color: var(--s6-teal); }
.gce-expires { color: var(--s6-rose); }
.gce-coupon__terms { margin-top: .6rem; }
.gce-coupon__terms summary { font-family: var(--s6-ui); font-size: .76rem; color: var(--s6-text-dim); cursor: pointer; }
.gce-coupon__terms p { font-size: .88rem; color: var(--s6-text-soft); margin: .5rem 0 0; }
.gce-coupon__action { display: flex; flex-direction: column; gap: .55rem; }

.gce-btn--reveal { position: relative; }
.gce-btn__peek {
	font-family: var(--s6-ui);
	font-weight: 700;
	letter-spacing: .1em;
	opacity: .55;
}

.gce-vote {
	display: flex; align-items: center; gap: .4rem; justify-content: center;
	font-family: var(--s6-ui); font-size: .74rem; color: var(--s6-text-dim);
}
.gce-vote__btn {
	font-family: var(--s6-ui); font-size: .74rem; font-weight: 600;
	background: var(--s6-raised-2); color: var(--s6-text-soft);
	border: 1px solid var(--s6-edge); border-radius: var(--s6-r-pill);
	padding: .25rem .6rem; cursor: pointer;
}
.gce-vote__btn:hover { border-color: var(--s6-amber); color: var(--s6-amber); }
.gce-vote.is-busy { opacity: .5; pointer-events: none; }

@media (max-width: 760px) {
	.gce-coupon { grid-template-columns: 1fr; }
}

/* Reader reports panel */
.s6-reports { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--sp-3); }
.s6-report { background: var(--s6-raised); border-radius: var(--s6-r); padding: var(--sp-3); border: 1px solid var(--s6-edge-soft); }
.s6-report__bar { height: 6px; border-radius: 999px; background: var(--s6-raised-2); overflow: hidden; margin: .55rem 0 .4rem; }
.s6-report__fill { height: 100%; background: var(--s6-teal); }
.s6-report__n { font-family: var(--s6-ui); font-size: .74rem; color: var(--s6-text-dim); }

/* Discount pattern */
.s6-pattern { display: grid; gap: .5rem; }
.s6-pattern__row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 64px; align-items: center; gap: var(--sp-2); font-family: var(--s6-ui); font-size: .82rem; }
.s6-pattern__track { height: 10px; background: var(--s6-raised-2); border-radius: 999px; overflow: hidden; }
.s6-pattern__fill { height: 100%; background: linear-gradient(90deg, var(--s6-amber-deep), var(--s6-amber)); border-radius: 999px; }
.s6-pattern__n { color: var(--s6-text-dim); text-align: right; }

/* Limitations */
.s6-limits {
	background: var(--s6-rose-wash);
	border: 1px solid rgba(240, 112, 138, .25);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
}
.s6-limits ul { margin: 0; padding-left: 1.15rem; }
.s6-limits li { margin-bottom: .4rem; color: var(--s6-text-soft); }

/* Byline / author card */
.s6-author {
	display: flex; gap: var(--sp-3); align-items: flex-start;
	background: var(--s6-raised); border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r); padding: var(--sp-4);
}
.s6-author img { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; flex: none; }
.s6-author__name { font-family: var(--s6-display); font-weight: 700; font-size: 1.05rem; margin: 0 0 .2rem; }
.s6-author__role { font-family: var(--s6-ui); font-size: .8rem; color: var(--s6-text-dim); margin: 0 0 .5rem; }
.s6-author__bio { font-size: .95rem; color: var(--s6-text-soft); margin: 0; max-width: 62ch; }

.gce-byline {
	font-family: var(--s6-ui); font-size: .78rem; color: var(--s6-text-dim);
	display: flex; flex-wrap: wrap; gap: .3rem 1rem;
	padding: .7rem 0; margin: 0 0 var(--sp-3);
	border-top: 1px solid var(--s6-edge-soft);
	border-bottom: 1px solid var(--s6-edge-soft);
}
.gce-byline__who { color: var(--s6-text); font-weight: 600; }

/* Sources + corrections */
.s6-sources { list-style: none; margin: 0; padding: 0; }
.s6-sources li {
	padding: .7rem 0;
	border-bottom: 1px solid var(--s6-edge-soft);
	font-family: var(--s6-ui);
	font-size: .86rem;
	color: var(--s6-text-soft);
	display: flex; gap: .7rem;
}
.s6-sources li::before { content: "→"; color: var(--s6-amber); flex: none; }
.s6-sources li:last-child { border-bottom: 0; }

.s6-corrections { list-style: none; margin: 0; padding: 0; }
.s6-corrections li {
	display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: var(--sp-2);
	padding: .7rem 0; border-bottom: 1px solid var(--s6-edge-soft);
	font-size: .92rem; color: var(--s6-text-soft);
}
.s6-corrections time { font-family: var(--s6-ui); font-size: .78rem; color: var(--s6-text-dim); }

/* Review pull-quote on a coupon page */
.s6-pull {
	background: linear-gradient(180deg, var(--s6-raised-2), var(--s6-raised));
	border: 1px solid var(--s6-edge);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: var(--sp-3) var(--sp-4);
	align-items: center;
}
.s6-pull__score {
	font-family: var(--s6-display);
	font-size: 2.4rem;
	font-weight: 800;
	letter-spacing: -.04em;
	color: var(--s6-amber);
	line-height: 1;
}
.s6-pull__score small { display: block; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--s6-text-dim); font-weight: 600; }
.s6-pull__q { font-size: 1.05rem; margin: 0 0 .6rem; }

/* ==========================================================================
   Review page
   ========================================================================== */

.s6-score {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: var(--sp-4);
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
	align-items: center;
}
@media (max-width: 640px) { .s6-score { grid-template-columns: 1fr; } }
.s6-score__big {
	font-family: var(--s6-display);
	font-size: 3.4rem;
	font-weight: 800;
	letter-spacing: -.05em;
	color: var(--s6-amber);
	line-height: 1;
	text-align: center;
}
.s6-score__big small { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--s6-text-dim); margin-top: .4rem; font-weight: 600; }
.s6-score__none { font-family: var(--s6-ui); font-size: .82rem; color: var(--s6-text-dim); text-align: center; }

.s6-crit { display: grid; gap: .55rem; }
.s6-crit__row { display: grid; grid-template-columns: 140px minmax(0, 1fr) 44px; gap: var(--sp-2); align-items: center; font-family: var(--s6-ui); font-size: .84rem; }
.s6-crit__track { height: 8px; background: var(--s6-raised-2); border-radius: 999px; overflow: hidden; }
.s6-crit__fill { height: 100%; background: var(--s6-amber); border-radius: 999px; }

.s6-proscons { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--sp-3); }
.s6-pro, .s6-con {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
}
.s6-pro { border-top: 3px solid var(--s6-teal); }
.s6-con { border-top: 3px solid var(--s6-rose); }
.s6-pro ul, .s6-con ul { margin: 0; padding-left: 1.1rem; }
.s6-pro li, .s6-con li { margin-bottom: .45rem; color: var(--s6-text-soft); }

.s6-testbox {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: var(--sp-3);
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	padding: var(--sp-4);
}
.s6-testbox dt { font-family: var(--s6-ui); font-size: .7rem; letter-spacing: .11em; text-transform: uppercase; color: var(--s6-text-dim); margin-bottom: .25rem; }
.s6-testbox dd { margin: 0; font-family: var(--s6-display); font-weight: 700; font-size: 1rem; }

.s6-prose h2 { margin-top: var(--sp-5); }
.s6-prose p { max-width: 68ch; }
.s6-prose ul, .s6-prose ol { max-width: 66ch; }

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

.gce-faq__list { display: grid; gap: .6rem; }
.gce-faq__item {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r-sm);
	overflow: hidden;
}
.gce-faq__item[open] { border-color: var(--s6-edge); }
.gce-faq__q { cursor: pointer; padding: var(--sp-3) var(--sp-4); list-style: none; display: flex; gap: .8rem; align-items: baseline; }
.gce-faq__q::-webkit-details-marker { display: none; }
.gce-faq__q::after { content: "+"; margin-left: auto; color: var(--s6-amber); font-family: var(--s6-ui); font-size: 1.15rem; }
.gce-faq__item[open] .gce-faq__q::after { content: "–"; }
.gce-faq__q h3 { font-family: var(--s6-display); font-size: 1rem; font-weight: 700; margin: 0; }
.gce-faq__a { padding: 0 var(--sp-4) var(--sp-3); }
.gce-faq__a p { margin: 0; color: var(--s6-text-soft); max-width: 68ch; }

/* ----------------------------------------------------------- newsletter */

.gce-newsletter {
	background: linear-gradient(135deg, var(--s6-raised-2), var(--s6-raised));
	border: 1px solid var(--s6-edge);
	border-radius: var(--s6-r);
	padding: var(--sp-5);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
	gap: var(--sp-3) var(--sp-5);
	align-items: center;
}
@media (max-width: 820px) { .gce-newsletter { grid-template-columns: 1fr; } }
.gce-newsletter__h { font-family: var(--s6-display); font-size: 1.35rem; margin: 0 0 .4rem; }
.gce-newsletter__p { color: var(--s6-text-soft); font-size: .95rem; margin: 0; max-width: 52ch; }
.gce-newsletter__form { display: flex; gap: .5rem; flex-wrap: wrap; }
.gce-newsletter__form input[type="email"] {
	flex: 1; min-width: 0;
	font-family: var(--s6-ui); font-size: .95rem;
	padding: .85rem 1rem;
	border-radius: var(--s6-r-pill);
	border: 1px solid var(--s6-edge);
	background: var(--s6-void);
	color: var(--s6-text);
}
.gce-newsletter__form input::placeholder { color: var(--s6-text-dim); }
.gce-newsletter__fine { grid-column: 1 / -1; font-family: var(--s6-ui); font-size: .72rem; color: var(--s6-text-dim); margin: 0; }
.gce-newsletter__msg { flex-basis: 100%; font-family: var(--s6-ui); font-size: .85rem; color: var(--s6-text-soft); margin: 0; }
.gce-newsletter__msg.is-ok { color: var(--s6-teal); }
.gce-newsletter__msg.is-error { color: var(--s6-rose); }

/* --------------------------------------------------------------- search */

.gce-search { display: flex; gap: .5rem; }
.gce-search input[type="search"], .gce-search input[type="text"] {
	flex: 1; min-width: 0;
	font-family: var(--s6-ui); font-size: .98rem;
	padding: .85rem 1.1rem;
	border-radius: var(--s6-r-pill);
	border: 1px solid var(--s6-edge);
	background: var(--s6-raised);
	color: var(--s6-text);
}
.gce-search input:focus { border-color: var(--s6-amber); outline: none; }
.gce-search button {
	flex: none;
	font-family: var(--s6-ui); font-weight: 700; font-size: .9rem;
	padding: .85rem 1.35rem;
	border: 0; border-radius: var(--s6-r-pill);
	background: var(--s6-amber); color: #17131b; cursor: pointer;
}

/* ---------------------------------------------------------------- modal */

.gce-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 1.2rem; }
.gce-modal[hidden] { display: none; }
.gce-modal__scrim { position: absolute; inset: 0; background: rgba(6, 5, 9, .8); backdrop-filter: blur(4px); }
.gce-modal__panel {
	position: relative;
	background: var(--s6-canvas);
	border: 1px solid var(--s6-edge);
	border-radius: var(--s6-r);
	padding: var(--sp-5);
	width: min(470px, 100%);
}
.gce-modal__x { position: absolute; top: .6rem; right: .8rem; background: none; border: 0; color: var(--s6-text-dim); font-size: 1.6rem; cursor: pointer; line-height: 1; }
.gce-modal__eyebrow { font-family: var(--s6-ui); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--s6-text-dim); margin: 0 0 .4rem; }
.gce-modal__h { font-size: 1.3rem; margin: 0 0 var(--sp-4); }
.gce-modal__code {
	display: flex; align-items: center; gap: .7rem;
	background: var(--s6-amber-wash);
	border: 1px dashed var(--s6-amber);
	border-radius: var(--s6-r-sm);
	padding: 1rem;
	margin-bottom: var(--sp-3);
}
.gce-modal__code code { font-family: var(--s6-ui); font-size: 1.2rem; font-weight: 700; letter-spacing: .09em; color: var(--s6-amber); flex: 1; word-break: break-all; }
.gce-modal__copy { font-family: var(--s6-ui); font-size: .78rem; font-weight: 700; background: var(--s6-amber); color: #17131b; border: 0; border-radius: var(--s6-r-pill); padding: .5rem .85rem; cursor: pointer; }
.gce-modal__hint { color: var(--s6-text-soft); font-size: .92rem; margin: 0 0 var(--sp-3); }
.gce-modal__go { font-family: var(--s6-ui); font-size: .82rem; }
body.gce-modal-open { overflow: hidden; }

/* ------------------------------------------------------ archives, pages */

.s6-archead { padding: var(--sp-5) 0 var(--sp-4); }
.s6-archead h1 { font-size: var(--fs-h1); margin: 0 0 .5rem; }
.s6-archead p { color: var(--s6-text-soft); max-width: 62ch; margin: 0; }

.s6-page {
	background: var(--s6-raised);
	border: 1px solid var(--s6-edge-soft);
	border-radius: var(--s6-r);
	padding: clamp(1.5rem, 4vw, 3rem);
	max-width: 76ch;
}
.s6-page h1 { font-size: var(--fs-h1); margin-bottom: var(--sp-3); }
.s6-page h2 { font-size: 1.4rem; margin-top: var(--sp-5); }
.s6-page h3 { font-size: 1.12rem; margin-top: var(--sp-4); }
.s6-page ul, .s6-page ol { padding-left: 1.3rem; }
.s6-page li { margin-bottom: .45rem; color: var(--s6-text-soft); }
.s6-page blockquote { margin: var(--sp-4) 0; padding-left: var(--sp-3); border-left: 3px solid var(--s6-amber); color: var(--s6-text-soft); }

.pagination { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--sp-5); font-family: var(--s6-ui); font-size: .86rem; }
.pagination .page-numbers {
	padding: .5rem .9rem; border-radius: var(--s6-r-pill);
	background: var(--s6-raised); border: 1px solid var(--s6-edge);
	color: var(--s6-text-soft); text-decoration: none;
}
.pagination .current { background: var(--s6-amber); color: #17131b; border-color: var(--s6-amber); }

/* --------------------------------------------------------------- footer */

.site-footer {
	background: #08070b;
	border-top: 1px solid var(--s6-edge-soft);
	padding: var(--sp-6) 0 var(--sp-4);
	color: var(--s6-text-dim);
	font-family: var(--s6-ui);
	font-size: .88rem;
}
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--sp-5); }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
.site-footer h2 { font-family: var(--s6-ui); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--s6-text-dim); margin: 0 0 var(--sp-2); }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { padding: .25rem 0; }
.site-footer a { color: var(--s6-text-soft); text-decoration: none; }
.site-footer a:hover { color: var(--s6-amber); }
.footer-note { max-width: 84ch; line-height: 1.65; font-size: .78rem; padding-top: var(--sp-4); margin: var(--sp-4) 0 0; border-top: 1px solid var(--s6-edge-soft); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: var(--sp-3); justify-content: space-between; padding-top: var(--sp-3); font-size: .76rem; }

/* ---------------------------------------------------------------- print */

@media print {
	.s6-strip, .site-header, .s6-jump, .site-footer, .gce-newsletter, .gce-vote, .s6-mast__bg { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
	.gce-coupon, .s6-panel, .s6-page { border: 1px solid #999; break-inside: avoid; }
	.gce-coupon__value, a { color: #000; }
}
