/*!
 * Hedona Compliance — stilovi za age-gate 18+ i cookie/GDPR traku.
 *
 * NO-JS FALLBACK (kritično, ne menjati bez razloga): i .hedona-age-gate i
 * .hedona-consent__bar/__panel su PO DIFOLTU display:none. Prikazuju se
 * ISKLJUČIVO dodavanjem klase iz hedona-compliance.js (ili iz ranog inline
 * skripta u wp_head za age-gate anti-flash). Ako je JS onemogućen, ništa se
 * ovde nikad ne prikaže — sajt, korpa i kasa ostaju potpuno upotrebljivi.
 *
 * Boje/tipografija prate zajednički dizajn sistem (02-redizajn/DIZAJN-SISTEM.md).
 * Fontovi se NE učitavaju iz ovog fajla (to radi drugi modul) — koriste se
 * samo font-family stack-ovi kao fallback do sistemskog fonta.
 */

:root {
	/*
	 * Tokeni palete: hedona-layout.css (--hd-*). Ovde samo kontrakt sa
	 * mobilnom mini-korpom za poziciju cookie trake.
	 */
	--hedona-consent-offset: 0px;
	/* Uvek-tamne površine (18+ kapija) — ne prate light/dark prekidač. */
	--hd-surface-dark: #12100c;
	--hd-gold-on-dark: #c9a54a;
	--hd-gold-on-dark-hi: #d9bc72;
}

/* ==========================================================================
   Zajedničke komponente — dugmad
   ========================================================================== */

.hedona-age-gate,
.hedona-consent {
	font-family: "Source Sans 3", system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
}

.hedona-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	border: 1px solid transparent;
	border-radius: var(--hd-r-sm);
	padding: 12px 26px;
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	background: transparent;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
	min-height: 44px;
	white-space: nowrap;
}

.hedona-btn:focus-visible {
	outline: 2px solid var(--hd-gold);
	outline-offset: 2px;
}

.hedona-btn--primary {
	background: var(--hd-ink);
	border-color: var(--hd-ink);
	color: var(--hd-onink);
}

.hedona-btn--primary:hover {
	background: var(--hd-gold);
	border-color: var(--hd-gold);
	color: var(--hd-onink);
	transform: translateY(-1px);
}

.hedona-age-gate .hedona-btn--primary {
	background: var(--hd-gold-on-dark);
	border-color: var(--hd-gold-on-dark);
	color: #171208;
}

.hedona-age-gate .hedona-btn--primary:hover {
	background: var(--hd-gold-on-dark-hi);
	border-color: var(--hd-gold-on-dark-hi);
	color: #171208;
}

.hedona-btn--ghost {
	background: transparent;
	border-color: var(--hd-gold);
	color: var(--hd-gold);
}

.hedona-btn--ghost:hover {
	background: var(--hd-glow);
}

.hedona-btn--link {
	background: transparent;
	border-color: transparent;
	color: var(--hd-gold);
	text-decoration: underline;
	text-underline-offset: 3px;
	padding-left: 4px;
	padding-right: 4px;
	min-height: auto;
}

.hedona-btn--link:hover {
	color: var(--hd-gold-hi);
}

/* ==========================================================================
   A) Age-gate 18+
   ========================================================================== */

.hedona-age-gate {
	display: none; /* no-JS fallback: default sakriveno, vidi napomenu na vrhu fajla */
	position: fixed;
	inset: 0;
	z-index: 999999;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

html.hedona-gate-active .hedona-age-gate {
	display: flex;
}

html.hedona-gate-active {
	overflow: hidden; /* zaključava scroll iza modala dok se ne izabere */
}

.hedona-age-gate__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 13, 10, 0.88);
}

@supports (backdrop-filter: blur(4px)) {
	.hedona-age-gate__backdrop {
		backdrop-filter: blur(4px);
	}
}

.hedona-age-gate__panel {
	position: relative;
	z-index: 1;
	width: min(94vw, 480px);
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: var(--hd-surface-dark);
	color: var(--hd-onink);
	border: 1px solid rgba(201, 165, 74, 0.35);
	border-radius: var(--hd-r-md);
	padding: 40px 32px 32px;
	text-align: center;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
	opacity: 0;
	transform: translateY(14px) scale(0.985);
	transition: opacity 0.28s ease, transform 0.28s ease;
}

html.hedona-gate-active .hedona-age-gate__panel {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.hedona-age-gate__badge {
	display: inline-block;
	background: var(--hd-wine);
	color: var(--hd-card);
	font-family: "Source Sans 3", system-ui, sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	padding: 4px 12px;
	border-radius: var(--hd-r-pill);
	margin-bottom: 18px;
}

.hedona-age__mark {
	margin: 0 auto 18px;
	width: 72px;
	height: 72px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hedona-age__mark img {
	max-width: 100%;
	max-height: 100%;
	display: block;
}

.hedona-age-gate__title {
	font-family: "Playfair Display", "Zilla Slab", Georgia, serif;
	font-weight: 600;
	font-size: 26px;
	line-height: 1.25;
	margin: 0 0 14px;
	color: var(--hd-onink);
	text-wrap: balance;
}

.hedona-age-gate__text {
	font-size: 15px;
	line-height: 1.6;
	color: rgba(239, 231, 213, 0.82);
	margin: 0 0 28px;
}

.hedona-age-gate__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.hedona-age-gate__actions .hedona-btn {
	flex: 1 1 160px;
}

@media (max-width: 420px) {
	.hedona-age-gate__panel {
		padding: 32px 22px 26px;
	}

	.hedona-age-gate__actions {
		flex-direction: column;
	}

	.hedona-age-gate__actions .hedona-btn {
		flex: 1 1 auto;
		width: 100%;
	}
}

/* Poruka posle klika na "Ne" — ubacuje je JS na stranicu na koju je korisnik
   preusmeren (home), da preusmerenje ne bude beo/prazan ekran. */
.hedona-age-declined {
	position: relative;
	z-index: 99998;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: var(--hd-parch);
	color: var(--hd-ink);
	border-bottom: 1px solid var(--hd-gold);
	padding: 14px 20px;
	font-size: 14px;
	line-height: 1.5;
}

.hedona-age-declined p {
	margin: 0;
}

.hedona-age-declined__close {
	flex: 0 0 auto;
	background: transparent;
	border: 0;
	color: var(--hd-ink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 8px;
	min-height: 32px;
}

/* ==========================================================================
   B) Cookie / GDPR traka + panel
   ========================================================================== */

.hedona-consent__bar {
	display: none; /* no-JS fallback: default sakriveno */
	position: fixed;
	left: 0;
	right: 0;
	bottom: var(--hedona-consent-offset, 0px);
	z-index: 999990;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	background: var(--hd-card);
	color: var(--hd-ink);
	border-top: 1px solid var(--hd-line);
	padding: 16px 24px;
	padding-bottom: max(16px, env(safe-area-inset-bottom));
	box-shadow: 0 -8px 32px var(--hd-shadow);
	transform: translateY(110%);
	transition: transform 0.32s ease, bottom 0.2s ease;
}

.hedona-consent.is-visible .hedona-consent__bar {
	display: flex;
	transform: translateY(0);
}

.hedona-consent__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
	max-width: 640px;
	flex: 1 1 320px;
}

.hedona-consent__text a {
	color: var(--hd-gold);
}

.hedona-consent__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	flex: 0 0 auto;
}

@media (max-width: 640px) {
	.hedona-consent__bar {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
		gap: 12px;
		padding: 14px 16px;
		padding-bottom: max(14px, env(safe-area-inset-bottom));
	}

	/* U koloni se flex-basis odnosi na VISINU: `flex: 1 1 320px` je pravio
	   traku od pola ekrana sa praznom crnom rupom ispod teksta. */
	.hedona-consent__text {
		flex: 0 0 auto;
		font-size: 13.5px;
		max-width: none;
	}

	.hedona-consent__actions {
		justify-content: center;
		flex: 0 0 auto;
		gap: 8px;
	}

	.hedona-consent__actions .hedona-btn:not(.hedona-btn--link) {
		flex: 1 1 40%;
		padding: 11px 14px;
		font-size: 13.5px;
	}
}

.hedona-consent__panel {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: var(--hedona-consent-offset, 0px);
	z-index: 999991;
	max-width: 460px;
	width: min(94vw, 460px);
	margin: 0 20px 20px auto;
	max-height: min(74vh, 560px);
	overflow-y: auto;
	background: var(--hd-card);
	color: var(--hd-ink);
	border: 1px solid var(--hd-line);
	border-radius: var(--hd-r-md);
	padding: 22px 22px 18px;
	box-shadow: 0 24px 64px var(--hd-shadow);
}

.hedona-consent.is-panel-open .hedona-consent__panel {
	display: block;
}

@media (max-width: 640px) {
	.hedona-consent__panel {
		margin: 0 auto 12px;
	}
}

.hedona-consent__panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 8px;
}

.hedona-consent__panel-head h2 {
	font-family: "Playfair Display", "Zilla Slab", Georgia, serif;
	font-weight: 600;
	font-size: 19px;
	margin: 0;
	color: var(--hd-onink);
}

.hedona-consent__close {
	background: transparent;
	border: 0;
	color: var(--hd-onink);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 8px;
	min-height: 32px;
}

.hedona-consent__list {
	list-style: none;
	margin: 8px 0 16px;
	padding: 0;
}

.hedona-consent__item {
	padding: 14px 0;
	border-top: 1px solid var(--hd-line);
}

.hedona-consent__item:first-child {
	border-top: 0;
}

.hedona-consent__item-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 6px;
}

.hedona-consent__item-title {
	font-weight: 600;
	font-size: 15px;
}

.hedona-consent__item p {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--hd-muted);
}

.hedona-consent__panel-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	padding-top: 6px;
}

.hedona-consent__panel-actions .hedona-btn {
	flex: 1 1 auto;
}

/* Toggle prekidač (checkbox oblikovan kao switch) */
.hedona-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	width: 42px;
	height: 24px;
	flex: 0 0 auto;
	cursor: pointer;
}

.hedona-toggle input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}

.hedona-toggle__track {
	position: absolute;
	inset: 0;
	background: var(--hd-line);
	border-radius: var(--hd-r-pill);
	transition: background-color 0.18s ease;
}

.hedona-toggle__track::before {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--hd-parch);
	transition: transform 0.18s ease;
}

.hedona-toggle input:checked + .hedona-toggle__track {
	background: var(--hd-gold);
}

.hedona-toggle input:checked + .hedona-toggle__track::before {
	transform: translateX(18px);
	background: var(--hd-card);
}

.hedona-toggle input:focus-visible + .hedona-toggle__track {
	outline: 2px solid var(--hd-gold);
	outline-offset: 2px;
}

.hedona-toggle--disabled {
	cursor: not-allowed;
	opacity: 0.7;
}

.hedona-toggle--disabled input {
	cursor: not-allowed;
}

/* ==========================================================================
   Pristupačnost — prefers-reduced-motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.hedona-age-gate__panel,
	.hedona-consent__bar,
	.hedona-btn {
		transition: none !important;
		transform: none !important;
	}

	html.hedona-gate-active .hedona-age-gate__panel {
		transform: none;
	}
}

/* == C17: cookie traka ne sme da prekriva sadržaj =========================
   JS već upisuje visinu trake u --hedona-consent-offset; telo dobija isto
   toliko donjeg prostora dok je traka vidljiva (0px posle izbora). */
body { padding-bottom: var(--hedona-consent-offset, 0px); }
