/* ==========================================================================
   Global PPH — site theme (layered on Bootstrap v5.3.3)
   Palette: majorelle blue (#6050dc) + golds
   ========================================================================== */

/* Self-hosted Inter variable font (weights 100-900), one file for the whole site; preloaded in each page's <head> */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url(../fonts/inter-variable.woff2) format('woff2');
}

:root {
	/* majorelle scale */
	--maj-100: #efedfc;
	--maj-200: #d9d4f7;
	--maj-300: #b4aaf0;
	--maj-400: #8a7cf2;
	--maj-500: #6050dc;
	--maj-600: #4d3fc4;
	--maj-700: #3e33a6;
	/* deep indigo (dark surfaces) */
	--ind-700: #2a2270;
	--ind-800: #1c1650;
	--ind-900: #14103a;
	--ind-950: #0d0a27;
	/* gold scale */
	--gold-100: #fdf5df;
	--gold-200: #fbe7a1;
	--gold-400: #f2c14e;
	--gold-500: #e0b23a;
	--gold-600: #c99a1e;
	--gold-700: #b8860b;
	/* text */
	--ink: #232141;
	--ink-muted: #676584;
	--line: var(--maj-200);

	--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--font-display: var(--font-sans);           /* single family: Inter (variable) */
	--transition: .25s;
	--radius: .625rem;
	--radius-lg: 1.125rem;
	--shadow-sm: 0 1px 2px rgba(20, 16, 58, .06), 0 2px 8px rgba(20, 16, 58, .06);
	--shadow: 0 8px 24px rgba(20, 16, 58, .10);
	--shadow-lg: 0 24px 60px rgba(20, 16, 58, .22);

	/* Bootstrap overrides */
	--bs-font-sans-serif: var(--font-sans);
	--bs-body-font-family: var(--font-sans);
	--bs-body-color: var(--ink);
	--bs-body-bg: #fff;
	--bs-primary: var(--maj-500);
	--bs-primary-rgb: 96, 80, 220;
	--bs-secondary-color: var(--ink-muted);
	--bs-dark: var(--ind-800);
	--bs-dark-rgb: 28, 22, 80;
	--bs-warning: var(--gold-400);
	--bs-warning-rgb: 242, 193, 78;
	--bs-link-color: var(--maj-600);
	--bs-link-color-rgb: 77, 63, 196;
	--bs-link-hover-color: var(--ind-800);
	--bs-link-hover-color-rgb: 28, 22, 80;
	--bs-border-color: var(--line);
	--bs-heading-color: var(--ind-800);
	--bs-border-radius: var(--radius);
	--bs-border-radius-lg: var(--radius-lg);
	--bs-focus-ring-color: rgba(96, 80, 220, .25);
}

/* ---------- motion ---------- */
@keyframes fadeUp {
	from { opacity: 0; translate: 0 1.5rem; }
	to   { opacity: 1; translate: 0 0; }
}
@keyframes pulseDot {
	0%, 100% { box-shadow: 0 0 0 0 rgba(242, 193, 78, .6); }
	70%      { box-shadow: 0 0 0 .5rem rgba(242, 193, 78, 0); }
}
@keyframes ticker {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
/* reveal-on-scroll: hidden only when JS is running (the <html> element gets .js from an inline script in <head>), so content still shows if site.js fails */
.js [data-fade-in] { opacity: 0; translate: 0 1.5rem; transition: opacity .6s ease, translate .6s ease; }
.js [data-fade-in].is-visible { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0s !important;
		animation-delay: 0s !important;
		transition-duration: 0s !important;
		scroll-behavior: auto !important;
	}
	.js [data-fade-in] { opacity: 1; translate: 0 0; }
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
main { flex: 1 0 auto; }
h1, h2, h3, h4, h5, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
	font-family: var(--font-display);
	font-weight: 700;
	line-height: 1.15;
	text-wrap: balance;
	letter-spacing: -.01em;
}
p { text-wrap: pretty; }
a { text-decoration: none; transition: color var(--transition); }
p a, li a:not(.btn):not(.nav-link):not(.dropdown-item) { text-decoration: underline; text-decoration-color: var(--maj-300); text-underline-offset: .15em; }
p a:hover, li a:not(.btn):not(.nav-link):not(.dropdown-item):hover { text-decoration-color: currentColor; }
strong, b { font-weight: 700; }
.lead { font-size: 1.15rem; color: var(--ink-muted); }
.text-muted { color: var(--ink-muted) !important; }
.text-maj { color: var(--maj-500) !important; }
.text-gold { color: var(--gold-600) !important; }
.text-gold-light { color: var(--gold-400) !important; }
.text-indigo { color: var(--ind-800) !important; }
.bg-maj-100 { background-color: var(--maj-100) !important; }
.bg-indigo { background-color: var(--ind-800) !important; }
.small-caps { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }

/* buttons */
.btn {
	font-weight: 700;
	letter-spacing: .01em;
	padding: .7rem 1.4rem;
	border-radius: var(--radius);
	transition: background-color var(--transition), border-color var(--transition), color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.btn-lg { padding: .9rem 1.8rem; font-size: 1.05rem; }
.btn-sm { padding: .45rem .95rem; font-size: .85rem; }
.btn:hover { transform: translateY(-1px); }
.btn-primary {
	--bs-btn-bg: var(--maj-500);
	--bs-btn-border-color: var(--maj-500);
	--bs-btn-hover-bg: var(--maj-600);
	--bs-btn-hover-border-color: var(--maj-600);
	--bs-btn-active-bg: var(--maj-700);
	--bs-btn-active-border-color: var(--maj-700);
	--bs-btn-focus-shadow-rgb: 96, 80, 220;
	box-shadow: 0 6px 18px rgba(96, 80, 220, .25);
}
.btn-gold {
	--bs-btn-color: var(--ind-900);
	--bs-btn-bg: var(--gold-400);
	--bs-btn-border-color: var(--gold-400);
	--bs-btn-hover-color: var(--ind-900);
	--bs-btn-hover-bg: var(--gold-500);
	--bs-btn-hover-border-color: var(--gold-500);
	--bs-btn-active-color: var(--ind-900);
	--bs-btn-active-bg: var(--gold-600);
	--bs-btn-active-border-color: var(--gold-600);
	--bs-btn-focus-shadow-rgb: 242, 193, 78;
	box-shadow: 0 6px 18px rgba(242, 193, 78, .3);
}
.btn-outline-primary {
	--bs-btn-color: var(--maj-600);
	--bs-btn-border-color: var(--maj-300);
	--bs-btn-hover-bg: var(--maj-500);
	--bs-btn-hover-border-color: var(--maj-500);
	--bs-btn-active-bg: var(--maj-600);
	--bs-btn-active-border-color: var(--maj-600);
}
.btn-outline-light { --bs-btn-border-color: rgba(255, 255, 255, .45); }
.btn-outline-light:hover { color: var(--ind-900); }
.btn-outline-gold {
	--bs-btn-color: var(--gold-400);
	--bs-btn-border-color: var(--gold-400);
	--bs-btn-hover-color: var(--ind-900);
	--bs-btn-hover-bg: var(--gold-400);
	--bs-btn-hover-border-color: var(--gold-400);
	--bs-btn-active-bg: var(--gold-500);
	--bs-btn-active-border-color: var(--gold-500);
}
.btn-link { text-decoration: none; font-weight: 700; }
.btn-link:hover { text-decoration: underline; }

/* icons */
.ico { width: 1em; height: 1em; fill: currentColor; vertical-align: -.125em; flex-shrink: 0; }

/* ---------- top bar ---------- */
.topbar {
	background: var(--ind-900);
	color: #d9d4f7;
	font-size: .8125rem;
	padding-block: .45rem;
}
.topbar a { color: #fff; font-weight: 600; display: inline-flex; align-items: center; gap: .4rem; }
.topbar a:hover { color: var(--gold-400); }
.topbar .ico { color: var(--gold-400); }
.topbar .langs { color: var(--maj-300); }
.topbar .live-dot {
	display: inline-block; width: .5rem; height: .5rem; border-radius: 50%;
	background: var(--gold-400); animation: pulseDot 2s infinite; margin-right: .4rem;
}

/* ---------- header ---------- */
.site-header {
	background: #fff;
	box-shadow: 0 1px 0 var(--maj-100);
	position: sticky;
	top: 0;
	z-index: 1030;
}
.site-header .navbar { padding-block: .75rem; }
.site-header .navbar-brand { padding: 0; margin: 0; }
.site-header .navbar-brand img { width: 210px; height: auto; display: block; }
@media (max-width: 991.98px) { .site-header .navbar-brand img { width: 170px; } }
.site-header .nav-link {
	color: var(--ind-800);
	font-weight: 600;
	font-size: .95rem;
	padding: .5rem .85rem;
	position: relative;
}
.site-header .nav-link:hover,
.site-header .nav-link:focus-visible,
.site-header .nav-item.active > .nav-link,
.site-header .nav-link.active { color: var(--maj-500); }
@media (min-width: 992px) {
	.site-header .nav-item.active > .nav-link::after {
		content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .1rem; height: 3px; border-radius: 2px;
		background: linear-gradient(90deg, var(--maj-500), var(--gold-400));
	}
}
.site-header .navbar-toggler { border: 0; padding: .5rem; color: var(--ind-800); }
.site-header .navbar-toggler:focus { box-shadow: 0 0 0 .2rem var(--maj-100); }
.site-header .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%231c1650' stroke-linecap='round' stroke-width='3' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.site-header .dropdown-menu {
	border: 1px solid var(--maj-100);
	box-shadow: var(--shadow);
	border-radius: var(--radius);
	padding: .5rem;
	margin-top: .25rem;
}
.site-header .dropdown-item {
	border-radius: .4rem; font-weight: 600; font-size: .925rem; padding: .55rem .8rem; color: var(--ind-800);
}
.site-header .dropdown-item:hover, .site-header .dropdown-item:focus { background: var(--maj-100); color: var(--maj-600); }
.site-header .dropdown-item.active { background: var(--maj-500); color: #fff; }
.site-header .dropdown-item small { display: block; font-weight: 400; color: var(--ink-muted); font-size: .8rem; }
.site-header .header-actions { gap: .6rem; }
@media (max-width: 991.98px) {
	.site-header .navbar-collapse { padding-block: 1rem; }
	.site-header .header-actions { margin-top: .75rem; }
	.site-header .header-actions .btn { width: 100%; }
	.site-header .dropdown-menu { box-shadow: none; border: 0; background: var(--maj-100); }
}

/* ---------- hero ---------- */
.hero {
	position: relative;
	color: #fff;
	background: radial-gradient(1200px 600px at 10% 0%, rgba(96, 80, 220, .55), transparent 60%),
	            radial-gradient(900px 500px at 100% 100%, rgba(224, 178, 58, .28), transparent 60%),
	            linear-gradient(160deg, var(--ind-800), var(--ind-900) 55%, var(--ind-950));
	overflow: hidden;
	isolation: isolate;
}
.hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .35;
	background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
	background-size: 56px 56px;
	mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
}
.hero .container-xl { position: relative; padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.hero h1 { color: #fff; font-size: clamp(2.3rem, 5vw, 3.75rem); font-weight: 800; letter-spacing: -.02em; }
.hero h1 .gold { color: var(--gold-400); }
.hero .lead { color: #d9d4f7; font-size: clamp(1.05rem, 1.6vw, 1.25rem); max-width: 42rem; }
.hero .sub { color: #fff; font-family: var(--font-display); font-size: clamp(1.1rem, 2vw, 1.45rem); font-weight: 600; }
.hero .fine { color: var(--maj-300); font-size: .85rem; }
.hero-sub { padding-block: 0; }
.hero-sub .container-xl { padding-block: clamp(3rem, 6vw, 4.5rem); }
.hero-sub h1 { font-size: clamp(2rem, 4vw, 3rem); }
.pill {
	display: inline-flex; align-items: center; gap: .5rem;
	background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16);
	color: var(--gold-400); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
	padding: .45rem .9rem; border-radius: 999px;
}
.pill .ico { color: var(--gold-400); }
.breadcrumb { --bs-breadcrumb-divider-color: var(--maj-300); font-size: .85rem; margin-bottom: 1rem; }
.breadcrumb a { color: var(--maj-300); }
.breadcrumb a:hover { color: #fff; }
.breadcrumb .active { color: var(--gold-400); }

/* hero perks list */
.perks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.perk {
	display: flex; align-items: center; gap: .6rem;
	background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12);
	padding: .6rem .8rem; border-radius: var(--radius); font-size: .9rem; font-weight: 600; color: #fff;
}
.perk .ico { color: var(--gold-400); font-size: 1.1rem; }
@media (max-width: 575.98px) { .perks { grid-template-columns: 1fr; } }

/* promo code box */
.promo {
	border: 2px dashed rgba(242, 193, 78, .5); border-radius: var(--radius-lg);
	background: rgba(13, 10, 39, .55); padding: 1rem 1.25rem;
}
.promo .label { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-400); font-weight: 700; }
.promo .code { font-family: var(--font-display); font-size: 1.75rem; font-weight: 800; letter-spacing: .08em; color: #fff; }
.promo .strike { text-decoration: line-through; color: var(--maj-300); }
.promo .btn-copy { border-color: rgba(255,255,255,.3); color: #fff; font-size: .75rem; padding: .3rem .6rem; }
.promo .btn-copy:hover { background: var(--gold-400); color: var(--ind-900); border-color: var(--gold-400); }

/* odds board (hero visual) */
.board {
	background: linear-gradient(180deg, rgba(42, 34, 112, .85), rgba(20, 16, 58, .95));
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	overflow: hidden;
	color: #fff;
}
.board-head {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .8rem 1rem; border-bottom: 1px solid rgba(255, 255, 255, .1);
	font-size: .8rem; color: var(--maj-300);
}
.board-head .title { color: #fff; font-weight: 700; font-family: var(--font-display); }
.board-head .live { color: var(--gold-400); font-weight: 700; letter-spacing: .1em; font-size: .7rem; }
.board-head .live::before { content: ""; display: inline-block; width: .45rem; height: .45rem; border-radius: 50%; background: var(--gold-400); margin-right: .4rem; animation: pulseDot 2s infinite; }
.board-tabs { display: flex; gap: .35rem; padding: .7rem 1rem 0; flex-wrap: wrap; }
.board-tabs span { font-size: .72rem; padding: .3rem .6rem; border-radius: 999px; background: rgba(255,255,255,.07); color: var(--maj-200); }
.board-tabs span.on { background: var(--gold-400); color: var(--ind-900); font-weight: 700; }
.board-rows { padding: .75rem 1rem 1rem; display: grid; gap: .5rem; }
.board-row {
	display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: center;
	background: rgba(255, 255, 255, .05); border-radius: .6rem; padding: .55rem .7rem;
}
.board-row .ev { font-size: .68rem; color: var(--maj-300); letter-spacing: .06em; text-transform: uppercase; }
.board-row .teams { font-size: .85rem; font-weight: 600; }
.board-row .odds { display: flex; gap: .35rem; }
.board-row .odds span {
	min-width: 3rem; text-align: center; font-family: var(--font-display); font-weight: 700; font-size: .8rem;
	background: rgba(96, 80, 220, .35); border: 1px solid rgba(138, 124, 242, .4); border-radius: .4rem; padding: .35rem .4rem;
}
.board-row .odds span.up { border-color: var(--gold-400); color: var(--gold-400); }
.board-foot { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 1rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .72rem; color: var(--maj-300); flex-wrap: wrap; }
.board-foot b { color: #fff; }
.board-wrap { position: relative; }
.float-tag {
	position: absolute; background: #fff; color: var(--ind-800); border-radius: .75rem; padding: .55rem .8rem;
	box-shadow: var(--shadow); font-size: .78rem; font-weight: 600; display: flex; align-items: center; gap: .55rem; z-index: 2;
}
.float-tag .ico { color: var(--maj-500); font-size: 1.25rem; }
.float-tag small { display: block; color: var(--ink-muted); font-weight: 500; }
.board-wrap { padding-top: 2.5rem; }
.float-tag.tl { top: 0; left: -1rem; }
.float-tag.br { bottom: -1rem; right: -1rem; }
@media (max-width: 991.98px) { .float-tag.tl { left: .5rem; } .float-tag.br { right: .5rem; } }

/* narrow screens: keep wide gutters inside the container */
@media (max-width: 767.98px) {
	.row.g-5 { --bs-gutter-x: 1.5rem; }
	.hero h1 { font-size: clamp(2rem, 9vw, 2.6rem); }
}

/* ---------- stats band ---------- */
.stats-band { background: var(--ind-800); color: #fff; border-top: 1px solid rgba(255,255,255,.08); }
.stats-band .stat { text-align: center; padding: 1.75rem .5rem; }
.stats-band .stat .ico { color: var(--gold-400); font-size: 1.5rem; margin-bottom: .5rem; }
.stats-band .num { font-family: var(--font-display); font-size: clamp(1.75rem, 3vw, 2.4rem); font-weight: 800; color: var(--gold-400); line-height: 1.1; }
.stats-band .label { color: var(--maj-200); font-size: .875rem; margin-top: .25rem; }

/* ---------- sections ---------- */
.section { padding-block: clamp(3.5rem, 7vw, 6rem); }
.section-sm { padding-block: clamp(2.5rem, 5vw, 4rem); }
.section-alt { background: linear-gradient(180deg, #faf9ff, var(--maj-100)); }
.section-dark { background: linear-gradient(160deg, var(--ind-800), var(--ind-900)); color: #d9d4f7; }
.section-dark h2, .section-dark h3, .section-dark h4 { color: #fff; }
.section-dark .eyebrow { color: var(--gold-400); }
.section-dark .text-muted { color: var(--maj-300) !important; }
.eyebrow {
	display: inline-flex; align-items: center; gap: .6rem;
	color: var(--gold-600); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; margin-bottom: .75rem;
}
.eyebrow::before { content: ""; width: 1.75rem; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--maj-500), var(--gold-400)); }
.eyebrow.centered { justify-content: center; }
.section-title { font-size: clamp(1.75rem, 3.2vw, 2.5rem); margin-bottom: .75rem; }
.section-intro { max-width: 46rem; color: var(--ink-muted); font-size: 1.05rem; }

/* feature cards */
.feature-card {
	position: relative; height: 100%;
	background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg);
	padding: 1.75rem; transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
	overflow: hidden;
}
.feature-card::before {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
	background: linear-gradient(90deg, var(--maj-500), var(--gold-400)); opacity: 0; transition: opacity var(--transition);
}
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--maj-300); }
.feature-card:hover::before { opacity: 1; }
.feature-card .icon {
	width: 3.25rem; height: 3.25rem; border-radius: .9rem; display: grid; place-items: center;
	background: var(--maj-100); color: var(--maj-500); font-size: 1.5rem; margin-bottom: 1.1rem;
}
.feature-card .icon.gold { background: var(--gold-100); color: var(--gold-600); }
.feature-card h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.feature-card p { color: var(--ink-muted); margin-bottom: 0; }
.feature-card .check-list { margin-top: 1rem; }
.feature-card .more { display: inline-flex; align-items: center; gap: .35rem; margin-top: 1rem; font-weight: 700; color: var(--maj-600); }
.feature-card .more:hover { color: var(--ind-800); }
.feature-card.dark { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.feature-card.dark h3 { color: #fff; }
.feature-card.dark p { color: var(--maj-200); }
.feature-card.dark .icon { background: rgba(96, 80, 220, .35); color: var(--gold-400); }

/* check list */
.check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.check-list li { display: flex; align-items: flex-start; gap: .6rem; }
.check-list .ico { color: var(--gold-600); margin-top: .3rem; font-size: 1rem; }
.section-dark .check-list .ico, .board .check-list .ico { color: var(--gold-400); }
.check-list.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 575.98px) { .check-list.two-col { grid-template-columns: 1fr; } }

/* steps */
.step { position: relative; padding: 1.5rem 1.5rem 1.5rem 1.5rem; height: 100%; background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); }
.step .num {
	font-family: var(--font-display); font-weight: 800; font-size: 2rem; line-height: 1;
	color: transparent; -webkit-text-stroke: 1.5px var(--maj-400); margin-bottom: .75rem;
}
.step h3 { font-size: 1.1rem; }
.step p { color: var(--ink-muted); margin: 0; }
.steps-timeline .step::after {
	content: ""; position: absolute; top: 50%; right: -1.5rem; width: 1.5rem; height: 2px; background: var(--maj-300);
}
@media (max-width: 991.98px) { .steps-timeline .step::after { display: none; } }
.steps-timeline .col-lg-3:last-child .step::after { display: none; }

/* pricing */
.plan {
	position: relative; height: 100%; display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 2rem;
	transition: transform var(--transition), box-shadow var(--transition);
}
.plan:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.plan.featured { border: 2px solid var(--maj-500); box-shadow: var(--shadow); }
.plan .badge-top {
	position: absolute; top: -.85rem; left: 50%; translate: -50% 0;
	background: var(--gold-400); color: var(--ind-900); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800;
	padding: .35rem .8rem; border-radius: 999px; white-space: nowrap;
}
.plan .badge-top.alt { background: var(--maj-500); color: #fff; }
.plan .name { font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--ind-800); }
.plan .for { color: var(--ink-muted); font-size: .9rem; }
.plan .price { display: flex; align-items: baseline; gap: .35rem; margin-block: 1rem .25rem; }
.plan .price .amt { font-family: var(--font-display); font-size: 3rem; font-weight: 800; color: var(--ind-800); line-height: 1; }
.plan .price .per { color: var(--ink-muted); font-size: .9rem; }
.plan .was { color: var(--ink-muted); font-size: .85rem; text-decoration: line-through; }
.plan hr { border-color: var(--maj-200); opacity: 1; margin-block: 1.25rem; }
.plan .check-list { flex: 1; }
.plan .btn { margin-top: 1.5rem; }
.plan .promo-line { font-size: .8rem; color: var(--gold-600); font-weight: 700; }

/* calculator */
.calc { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow-sm); }
.calc .out { font-family: var(--font-display); font-weight: 800; font-size: 2.25rem; color: var(--maj-600); line-height: 1; }
.calc .out small { font-family: var(--font-sans); font-weight: 500; font-size: .9rem; color: var(--ink-muted); }
.calc .tier { display: inline-block; background: var(--gold-100); color: var(--gold-700); font-weight: 700; font-size: .8rem; padding: .3rem .7rem; border-radius: 999px; }
.form-range::-webkit-slider-thumb { background: var(--maj-500); }
.form-range::-moz-range-thumb { background: var(--maj-500); }
.form-range::-webkit-slider-runnable-track { background: var(--maj-200); }
.form-range::-moz-range-track { background: var(--maj-200); }
.form-range:focus::-webkit-slider-thumb { box-shadow: 0 0 0 .25rem rgba(96, 80, 220, .25); }

/* payment chips */
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
	display: inline-flex; align-items: center; gap: .45rem;
	background: #fff; border: 1px solid var(--maj-200); border-radius: 999px; padding: .4rem .9rem;
	font-size: .85rem; font-weight: 600; color: var(--ind-800);
}
.chip .ico { color: var(--gold-600); }
.section-dark .chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #fff; }
.section-dark .chip .ico { color: var(--gold-400); }

/* accordion (FAQ) */
.accordion { --bs-accordion-border-color: var(--maj-200); --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(96, 80, 220, .2); --bs-accordion-active-bg: var(--maj-100); --bs-accordion-active-color: var(--maj-700); --bs-accordion-btn-bg: #fff; --bs-accordion-border-radius: var(--radius); --bs-accordion-inner-border-radius: calc(var(--radius) - 1px); }
.accordion-item { margin-bottom: .6rem; border-radius: var(--radius) !important; overflow: hidden; }
.accordion-button { font-weight: 700; font-family: var(--font-display); font-size: 1rem; color: var(--ind-800); }
.accordion-button:not(.collapsed) { box-shadow: none; }
.accordion-button::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236050dc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); }
.accordion-body { color: var(--ink-muted); }

/* forms */
.form-control, .form-select { border-color: var(--maj-200); padding: .7rem .9rem; border-radius: var(--radius); }
.form-control:focus, .form-select:focus { border-color: var(--maj-400); box-shadow: 0 0 0 .25rem rgba(96, 80, 220, .2); }
.form-label { font-weight: 600; font-size: .9rem; color: var(--ind-800); }
.form-check-input:checked { background-color: var(--maj-500); border-color: var(--maj-500); }
.form-card { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow); }
.form-card h3 { font-size: 1.3rem; }
.form-card .fine { font-size: .8rem; color: var(--ink-muted); }
.hero .form-card { color: var(--ink); }
.form-note, .form-error { display: none; }
.form-note.show, .form-error.show { display: block; }
.form-error a { font-weight: 700; color: inherit; }
.hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; } /* honeypot: hidden from people, visible to bots */

/* contact cards */
.contact-card { display: flex; gap: 1rem; align-items: flex-start; background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 1.5rem; height: 100%; }
.contact-card .icon { width: 3rem; height: 3rem; border-radius: .8rem; display: grid; place-items: center; background: var(--maj-100); color: var(--maj-500); font-size: 1.4rem; flex-shrink: 0; }
.contact-card h3 { font-size: 1.05rem; margin-bottom: .25rem; }
.contact-card p { margin: 0; color: var(--ink-muted); font-size: .95rem; }
.contact-card a { font-weight: 700; }

/* credentials table */
.cred { background: var(--ind-900); color: #fff; border-radius: var(--radius); padding: 1rem 1.25rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9rem; }
.cred .k { color: var(--maj-300); }
.cred .v { color: var(--gold-400); font-weight: 700; }

/* comparison table */
.table-cmp { --bs-table-bg: transparent; }
.table-cmp th { font-family: var(--font-display); font-weight: 700; color: var(--ind-800); background: var(--maj-100); border-color: var(--maj-200); }
.table-cmp td { border-color: var(--maj-200); vertical-align: middle; }
.table-cmp .yes { color: var(--maj-600); font-weight: 700; }
.table-cmp .no { color: var(--ink-muted); }

/* testimonials */
.quote { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 1.75rem; height: 100%; display: flex; flex-direction: column; }
.quote .stars { color: var(--gold-500); letter-spacing: .1em; margin-bottom: .75rem; }
.quote p { flex: 1; color: var(--ink); font-size: 1rem; }
.quote .who { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; }
.quote .avatar { width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--maj-500), var(--ind-700)); font-family: var(--font-display); }
.quote .who b { display: block; color: var(--ind-800); }
.quote .who small { color: var(--ink-muted); }

/* ticker (global coverage strip) */
.ticker { background: var(--gold-400); color: var(--ind-900); overflow: hidden; font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; padding-block: .6rem; }
.ticker .track { display: flex; gap: 3rem; width: max-content; animation: ticker 40s linear infinite; }
.ticker .track span { white-space: nowrap; }
.ticker .track span::before { content: "\2605"; margin-right: .75rem; color: var(--maj-600); }

/* markets grid */
.market { display: flex; align-items: center; gap: .75rem; background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius); padding: .8rem 1rem; height: 100%; font-weight: 600; font-size: .95rem; }
.market .ico { color: var(--maj-500); font-size: 1.35rem; }
.market small { display: block; color: var(--ink-muted); font-weight: 400; font-size: .8rem; }

/* region cards */
.region { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-lg); padding: 1.5rem; height: 100%; }
.region h3 { font-size: 1.1rem; color: #fff; display: flex; align-items: center; gap: .5rem; }
.region h3 .ico { color: var(--gold-400); }
.region p { color: var(--maj-200); font-size: .95rem; margin: 0; }

/* CTA band */
.cta-band {
	position: relative; overflow: hidden;
	background: radial-gradient(800px 300px at 90% 10%, rgba(242, 193, 78, .3), transparent 60%), linear-gradient(135deg, var(--maj-600), var(--ind-800));
	color: #fff; border-radius: var(--radius-lg); padding: clamp(2rem, 4vw, 3.25rem);
	box-shadow: var(--shadow-lg);
}
.cta-band h2 { color: #fff; font-size: clamp(1.5rem, 2.8vw, 2.1rem); }
.cta-band p { color: var(--maj-200); }

/* article / prose */
.prose { max-width: 48rem; font-size: 1.05rem; }
.prose h2 { font-size: 1.6rem; margin-top: 2.5rem; margin-bottom: .75rem; }
.prose h3 { font-size: 1.25rem; margin-top: 1.75rem; }
.prose ul, .prose ol { padding-left: 1.4rem; }
.prose li { margin-bottom: .35rem; }
.prose .callout { background: var(--maj-100); border-left: 4px solid var(--gold-400); padding: 1rem 1.25rem; border-radius: 0 var(--radius) var(--radius) 0; }
.prose .callout p:last-child { margin-bottom: 0; }
.prose table { width: 100%; }
.toc { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; position: sticky; top: 6rem; }
.toc h4 { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-600); }
.toc a { display: block; padding: .3rem 0; font-weight: 600; color: var(--ind-800); font-size: .92rem; }
.toc a:hover { color: var(--maj-500); }
.post-card { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); overflow: hidden; height: 100%; display: flex; flex-direction: column; transition: transform var(--transition), box-shadow var(--transition); }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.post-card .cover { aspect-ratio: 16 / 9; display: grid; place-items: center; color: #fff; font-size: 3rem; background: linear-gradient(135deg, var(--maj-500), var(--ind-800)); }
.post-card .cover.gold { background: linear-gradient(135deg, var(--gold-500), var(--gold-700)); color: var(--ind-900); }
.post-card .body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
.post-card .meta { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-600); font-weight: 700; }
.post-card h3 { font-size: 1.15rem; margin-block: .5rem; }
.post-card h3 a { color: var(--ind-800); }
.post-card h3 a:hover { color: var(--maj-500); }
.post-card p { color: var(--ink-muted); font-size: .95rem; flex: 1; }

/* tools */
.tool-card { background: #fff; border: 1px solid var(--maj-200); border-radius: var(--radius-lg); padding: 2rem; box-shadow: var(--shadow-sm); }
.tool-card h2 { font-size: 1.5rem; }
.result-box { background: var(--maj-100); border-radius: var(--radius); padding: 1.25rem; }
.result-box .big { font-family: var(--font-display); font-size: 2rem; font-weight: 800; color: var(--maj-600); line-height: 1.1; }
.result-box .lbl { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); font-weight: 700; }
.legs .input-group { margin-bottom: .5rem; }
.legs .input-group-text { background: var(--maj-100); border-color: var(--maj-200); color: var(--maj-700); font-weight: 700; min-width: 4.5rem; justify-content: center; }

/* ---------- footer ---------- */
.site-footer { background: var(--ind-950); color: var(--maj-200); padding-top: clamp(3rem, 6vw, 4.5rem); }
.site-footer .brand img { width: 220px; height: auto; display: block; }
.site-footer p { color: var(--maj-300); font-size: .95rem; }
.site-footer h4 { color: #fff; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .5rem; }
.site-footer li a { color: var(--maj-200); font-size: .95rem; }
.site-footer li a:hover { color: var(--gold-400); }
.site-footer .contact-line { display: flex; align-items: center; gap: .6rem; color: #fff; font-weight: 600; margin-bottom: .6rem; }
.site-footer .contact-line .ico { color: var(--gold-400); }
.site-footer .contact-line:hover { color: var(--gold-400); }
.site-footer .social { display: flex; gap: .6rem; margin-top: 1.25rem; }
.site-footer .social a { width: 2.4rem; height: 2.4rem; border-radius: .6rem; display: grid; place-items: center; background: rgba(255,255,255,.07); color: #fff; font-size: 1.05rem; transition: background var(--transition), color var(--transition); }
.site-footer .social a:hover { background: var(--gold-400); color: var(--ind-900); }
.site-footer .bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 3rem; padding-block: 1.5rem; font-size: .85rem; color: var(--maj-300); }
.site-footer .bottom a { color: var(--maj-200); }
.site-footer .bottom a:hover { color: var(--gold-400); }
.site-footer .disclaimer { font-size: .78rem; color: #7d76a8; margin-top: 1rem; }

/* misc */
.divider-gold { width: 4rem; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--maj-500), var(--gold-400)); }
.badge-soft { background: var(--maj-100); color: var(--maj-700); font-weight: 700; padding: .35rem .7rem; border-radius: 999px; font-size: .78rem; }
.badge-gold { background: var(--gold-100); color: var(--gold-700); font-weight: 700; padding: .35rem .7rem; border-radius: 999px; font-size: .78rem; }
.sticky-cta {
	position: fixed; right: 1rem; bottom: 1rem; z-index: 1040;
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--gold-400); color: var(--ind-900); font-weight: 800; font-size: .9rem;
	padding: .75rem 1.15rem; border-radius: 999px; box-shadow: 0 10px 30px rgba(20, 16, 58, .3);
}
.sticky-cta:hover { background: var(--gold-500); color: var(--ind-900); }
@media (max-width: 575.98px) { .sticky-cta { right: .75rem; bottom: .75rem; font-size: .8rem; padding: .6rem .9rem; } }
.page-404 .hero .container-xl { padding-block: clamp(5rem, 12vw, 9rem); }
.page-404 .code { font-family: var(--font-display); font-size: clamp(5rem, 15vw, 9rem); font-weight: 800; line-height: 1; color: var(--gold-400); }
