/**
 * NovaFit Cookie Consent — banner, preference centre, revisit button.
 * Palette mirrors the banner that was live via CookieYes: NovaFit red
 * #E9434B on white, #212121 text.
 */

.nfcc-root {
	--nfcc-red: #e9434b;
	--nfcc-red-dark: #d43038;
	--nfcc-ink: #212121;
	--nfcc-bg: #ffffff;
	--nfcc-line: #ececec;
	--nfcc-soft: #f4f4f4;
	font-size: 15px;
	line-height: 1.5;
	color: var(--nfcc-ink);
	-webkit-font-smoothing: antialiased;
}
.nfcc-root, .nfcc-root * { box-sizing: border-box; }
.nfcc-hide { display: none !important; }

/* ── Overlay ─────────────────────────────────────────────────────────── */
.nfcc-overlay {
	position: fixed; inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 999998;
}

/* ── Notice box (bottom-left, RTL: bottom-right) ─────────────────────── */
.nfcc-banner {
	position: fixed;
	left: 16px; bottom: 16px;
	width: min(440px, calc(100vw - 32px));
	background: var(--nfcc-bg);
	border: 1px solid var(--nfcc-line);
	border-radius: 8px;
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
	padding: 20px;
	z-index: 999999;
}
.nfcc-rtl .nfcc-banner { left: auto; right: 16px; text-align: right; }
.nfcc-title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 700;
	color: var(--nfcc-ink);
}
.nfcc-desc { font-size: 14px; }
.nfcc-desc p { margin: 0 0 8px; }
.nfcc-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}
.nfcc-btn {
	appearance: none;
	border: 1px solid var(--nfcc-red);
	border-radius: 4px;
	padding: 9px 14px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
	flex: 1 1 auto;
}
.nfcc-btn-solid { background: var(--nfcc-red); color: #fff; }
.nfcc-btn-solid:hover { background: var(--nfcc-red-dark); border-color: var(--nfcc-red-dark); color: #fff; }
.nfcc-btn-outline { background: transparent; color: var(--nfcc-red); }
.nfcc-btn-outline:hover { background: rgba(233, 67, 75, 0.08); color: var(--nfcc-red); }

/* ── Preference centre ───────────────────────────────────────────────── */
.nfcc-modal {
	position: fixed; inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	z-index: 999999;
}
.nfcc-modal-inner {
	display: flex;
	flex-direction: column;
	width: min(600px, 100%);
	max-height: min(82vh, 720px);
	background: var(--nfcc-bg);
	border-radius: 8px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.28);
	overflow: hidden;
}
.nfcc-rtl .nfcc-modal-inner { text-align: right; }
.nfcc-modal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--nfcc-line);
}
.nfcc-modal-title { font-size: 16px; font-weight: 700; }
.nfcc-close {
	appearance: none;
	border: 0;
	background: transparent;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	color: var(--nfcc-ink);
	padding: 6px;
}
.nfcc-modal-body {
	overflow-y: auto;
	padding: 16px 20px;
	font-size: 14px;
}
.nfcc-modal-desc p { margin: 0 0 10px; }
.nfcc-modal-foot {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 14px 20px;
	border-top: 1px solid var(--nfcc-line);
	background: var(--nfcc-bg);
}

/* ── Accordions ──────────────────────────────────────────────────────── */
.nfcc-accordions { margin-top: 6px; }
.nfcc-accordion {
	border: 1px solid var(--nfcc-line);
	border-radius: 6px;
	margin-bottom: 10px;
	padding: 12px 14px;
}
.nfcc-accordion-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.nfcc-accordion-btn {
	appearance: none;
	border: 0;
	background: transparent;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--nfcc-ink);
	cursor: pointer;
	padding: 0;
}
.nfcc-chevron {
	width: 7px; height: 7px;
	border-right: 2px solid var(--nfcc-ink);
	border-bottom: 2px solid var(--nfcc-ink);
	transform: rotate(-45deg);
	transition: transform 0.15s ease;
	flex: 0 0 auto;
}
.nfcc-rtl .nfcc-chevron { transform: rotate(135deg); }
.nfcc-open-acc .nfcc-chevron { transform: rotate(45deg) !important; }
.nfcc-accordion-desc { font-size: 13px; color: #444; margin-top: 8px; }
.nfcc-accordion-desc p { margin: 0 0 6px; }
.nfcc-always-active {
	color: var(--nfcc-red);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

/* Switch */
.nfcc-switch { position: relative; display: inline-block; width: 40px; height: 22px; flex: 0 0 auto; }
.nfcc-switch input { opacity: 0; width: 0; height: 0; }
.nfcc-slider {
	position: absolute; inset: 0;
	background: #cfcfcf;
	border-radius: 22px;
	transition: background-color 0.15s ease;
	cursor: pointer;
}
.nfcc-slider::before {
	content: "";
	position: absolute;
	width: 16px; height: 16px;
	left: 3px; top: 3px;
	background: #fff;
	border-radius: 50%;
	transition: transform 0.15s ease;
}
.nfcc-switch input:checked + .nfcc-slider { background: var(--nfcc-red); }
.nfcc-switch input:checked + .nfcc-slider::before { transform: translateX(18px); }
.nfcc-switch input:focus-visible + .nfcc-slider { outline: 2px solid var(--nfcc-red); outline-offset: 2px; }
.nfcc-rtl .nfcc-slider::before { left: auto; right: 3px; }
.nfcc-rtl .nfcc-switch input:checked + .nfcc-slider::before { transform: translateX(-18px); }

/* ── Audit table ─────────────────────────────────────────────────────── */
.nfcc-accordion-body { margin-top: 10px; }
.nfcc-audit-scroll { overflow-x: auto; }
.nfcc-audit-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12.5px;
	background: var(--nfcc-soft);
	border: 1px solid var(--nfcc-line);
}
.nfcc-audit-table th, .nfcc-audit-table td {
	text-align: start;
	vertical-align: top;
	padding: 8px 10px;
	border-bottom: 1px solid var(--nfcc-line);
}
.nfcc-audit-table th { font-weight: 700; }
.nfcc-ck-id { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; }
.nfcc-ck-dur { white-space: nowrap; }
.nfcc-audit-empty { font-size: 13px; color: #666; margin: 4px 0 0; }

/* ── Revisit button ──────────────────────────────────────────────────── */
.nfcc-revisit {
	position: fixed;
	left: 16px; bottom: 16px;
	width: 48px; height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--nfcc-red);
	color: #fff;
	border: 0;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	z-index: 999997;
	transition: transform 0.15s ease;
}
.nfcc-revisit:hover { transform: scale(1.06); background: var(--nfcc-red-dark); color: #fff; }
.nfcc-rtl .nfcc-revisit { left: auto; right: 16px; }

/* ── Video placeholder ───────────────────────────────────────────────── */
.nfcc-video-ph {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 220px;
	padding: 24px;
	text-align: center;
	background: #1c1c1c;
	color: #fff;
	border-radius: 6px;
}
.nfcc-video-ph p { margin: 0; font-size: 15px; color: #fff; }
.nfcc-video-ph .nfcc-btn { flex: 0 0 auto; }

/* ── Small screens ───────────────────────────────────────────────────── */
@media (max-width: 560px) {
	.nfcc-banner { left: 8px; right: 8px; bottom: 8px; width: auto; }
	.nfcc-rtl .nfcc-banner { left: 8px; right: 8px; }
	.nfcc-btns, .nfcc-modal-foot { flex-direction: column; }
	.nfcc-modal { padding: 12px 8px; }
	.nfcc-modal-inner { max-height: 92vh; }
}
