/**
 * epepe Photo Shop – frontend stylesheet
 * "Vatican Media" style single photo layout, gallery grid and tabs.
 *
 * @package Epepe_Photo_Shop
 */

:root {
	--epepe-ink: #1a1a2e;
	--epepe-ink-soft: #4a4a5e;
	/* Matches the site's own global button gold (Elementor Kit global
	   color #C5A059, visible e.g. on the native "Dodaj u košaricu" button
	   under Slike i multimedija → Stock slike za preuzimanje) — every gold
	   accent in this stylesheet should trace back to this one value so the
	   whole plugin stays visually consistent with the rest of the site. */
	--epepe-accent: #c5a059;
	--epepe-accent-dark: #a8863f;
	--epepe-border: #e4e4e8;
	--epepe-bg-soft: #f7f7f9;
	--epepe-radius: 8px;
}

/* ---------------------------------------------------------------------
   Navigacija: podcrtavanje na hover za "Fotografije za prodaju" i
   "Galerija fotografija" (isto kao Novosti/Česta pitanja).

   Ove dvije stavke žive u istom Elementor nav-menu widgetu kao i cijeli
   "mega meni" kategorija proizvoda (Knjige, Krunice, ...). Taj widget u
   DOM-u postoji DVA PUTA — jednom kao glavna vodoravna navigacija
   (vidljiva na širim ekranima, nosi Elementorove .e--pointer-underline
   .e--animation-none klase) i jednom kao dropdown/mobilna verzija (ista
   dva linka, ista klasa .elementor-item, ali BEZ tih e--pointer/e--
   animation klasa — Elementor ih namjerno ne dodaje na dropdown varijantu).
   Tema ima staru pravilo `.header-navigation-categories ul li a:hover`
   (siva #EEE pozadina + underline) koje pogađa OBJE varijante. Prijašnja
   verzija ovog CSS-a bila je vezana samo za .e--animation-none pa je
   popravila samo široku (desktop) navigaciju — na užim širinama/dropdownu
   siva pozadina je ostajala. Zato dolje ciljamo OBA linka po href-u,
   neovisno o tome u kojoj se varijanti nalaze. */

a.elementor-item[href$="/fotografije/"],
a.elementor-item[href$="/galerija/"] {
	position: relative;
}

/* Elementorova "animation: None" nikad ne generira podcrtu (::after joj je
   content:none), pa je ovdje sami iscrtavamo — identično Novosti/"Fade"
   navu (#3f444b, 3px, dno), sakriveno dok se ne hovera. */
a.elementor-item[href$="/fotografije/"]::after,
a.elementor-item[href$="/galerija/"]::after {
	content: "" !important;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 3px;
	background-color: #3f444b;
	opacity: 0;
	transition: opacity 0.3s ease !important;
	transition-duration: 0.3s !important;
	z-index: 2;
	pointer-events: none;
}

a.elementor-item[href$="/fotografije/"]:hover::after,
a.elementor-item[href$="/galerija/"]:hover::after,
a.elementor-item[href$="/fotografije/"]:focus::after,
a.elementor-item[href$="/galerija/"]:focus::after,
a.elementor-item[href$="/fotografije/"].elementor-item-active::after,
a.elementor-item[href$="/galerija/"].elementor-item-active::after {
	opacity: 1 !important;
}

/* Ova dva linka nikad nisu imala postavljenu hover boju u Elementoru (za
   razliku od Novosti/Česta pitanja, koji imaju), pa je "curio" temin
   default hover stil za taj widget — siva pozadina (#EEE) + underline +
   plavi tekst. Ukloni to, postavi isto zlatno ponašanje kao Novosti, na
   OBJE varijante navigacije (glavna i dropdown/mobilna). */
a.elementor-item[href$="/fotografije/"]:hover,
a.elementor-item[href$="/galerija/"]:hover,
a.elementor-item[href$="/fotografije/"]:focus,
a.elementor-item[href$="/galerija/"]:focus,
a.elementor-item[href$="/fotografije/"].elementor-item-active,
a.elementor-item[href$="/galerija/"].elementor-item-active {
	color: var(--epepe-accent) !important;
	background: transparent !important;
	background-color: transparent !important;
	text-decoration: none !important;
}

/* ---------------------------------------------------------------------
   Putanja (breadcrumb) – arhiva + pojedinačna fotografija
   Boje/font preuzeti izravno iz Elementor Kita da izgleda isto kao
   putanja na ostatku sitea (npr. /product-category/... stranicama):
   pozadina "Pozadina Ivory" #F2EEE5, tekst crn, linkovi "Svjetlo Plava"
   #018DBC, font Figtree.
--------------------------------------------------------------------- */

.epepe-breadcrumb-wrap {
	width: 100%;
	background-color: #f2eee5;
	padding: 14px 0;
	margin: 0;
}

.epepe-breadcrumb-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.epepe-breadcrumb-wrap .epepe-breadcrumb {
	font-family: 'Figtree', sans-serif;
	font-weight: 500;
	font-size: 14px;
	color: #000;
}

.epepe-breadcrumb-wrap .epepe-breadcrumb a {
	color: #018dbc;
	text-decoration: none;
}

.epepe-breadcrumb-wrap .epepe-breadcrumb a:hover {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------
   Single photo product – two column layout
--------------------------------------------------------------------- */

.epepe-single-photo {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	gap: 48px;
	max-width: 1200px;
	margin: 32px auto;
	padding: 0 20px;
	align-items: start;
}

.epepe-single-photo-left {
	position: sticky;
	top: 24px;
}

.epepe-main-image-wrap {
	background: var(--epepe-bg-soft);
	border-radius: var(--epepe-radius);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 320px;
}

.epepe-main-image-wrap img {
	width: 100%;
	height: auto;
	max-height: 78vh;
	object-fit: contain;
	display: block;
	transition: filter 0.2s ease;
}

/* ---------------------------------------------------------------------
   "Pogledaj u sobi" — button that opens the 3D room viewer
--------------------------------------------------------------------- */

.epepe-room-trigger {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	padding: 10px 16px;
	border: 1px solid var(--epepe-border, #ddd6c9);
	border-radius: 999px;
	background: #fff;
	color: var(--epepe-ink);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}

/* Was just a faint off-white background tint — barely noticeable next to
   the solid-gold hover treatment every other button on the page uses
   (Dodaj u košaricu, Kupi fotografiju, Učitaj još). Match that: solid gold
   fill, white text/icon (svg uses stroke="currentColor"), same shadow-lift. */
.epepe-room-trigger:hover {
	background: var(--epepe-accent);
	border-color: var(--epepe-accent);
	color: #fff;
	box-shadow: 0 8px 20px rgba(197, 160, 89, 0.35);
}

.epepe-room-trigger svg {
	width: 18px;
	height: 18px;
	flex: none;
}

/* ---------------------------------------------------------------------
   3D room viewer — fullscreen modal, real WebGL scene (Three.js, loaded
   on demand from CDN only when opened). The framed, watermarked photo
   hangs on the back wall of a lit, three-walled room; OrbitControls
   lets the visitor look/move around it.
--------------------------------------------------------------------- */

.epepe-room-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	background: #0b0b0c;
	display: none;
}

.epepe-room-modal.is-open {
	display: block;
}

.epepe-room-close {
	position: absolute;
	top: 18px;
	right: 22px;
	z-index: 3;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background 0.15s ease;
}

.epepe-room-close:hover {
	background: var(--epepe-accent) !important;
	color: #fff !important;
}

/* After clicking, the pointer leaves but the button keeps :focus — the
   theme's generic button:focus/:active (pinkish) background then showed
   through since the base frosted-glass background above isn't !important.
   Pin the neutral resting look back for focused-not-hovered / pressed. */
.epepe-room-close:focus:not(:hover),
.epepe-room-close:active:not(:hover) {
	background: rgba(255, 255, 255, 0.12) !important;
	color: #fff !important;
	outline: none;
}

.epepe-room-3d-mount {
	position: absolute;
	inset: 0;
	cursor: grab;
}

.epepe-room-3d-mount:active {
	cursor: grabbing;
}

.epepe-room-3d-mount canvas {
	display: block;
	width: 100%;
	height: 100%;
}

.epepe-room-3d-loading {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 15px;
	letter-spacing: 0.02em;
	z-index: 2;
	background: #0b0b0c;
}

.epepe-room-3d-panel {
	position: absolute;
	right: 22px;
	bottom: 22px;
	z-index: 3;
	display: flex;
	gap: 10px;
}

.epepe-room-icon-btn {
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background 0.15s ease;
}

.epepe-room-icon-btn:hover {
	background: var(--epepe-accent) !important;
	color: #fff !important;
}

/* Same "stuck focus after click" fix as .epepe-room-close above — zoom
   in/out buttons kept a pinkish theme-default background after being
   clicked, since focus remains even after the pointer moves away. */
.epepe-room-icon-btn:focus:not(:hover),
.epepe-room-icon-btn:active:not(:hover) {
	background: rgba(255, 255, 255, 0.12) !important;
	color: #fff !important;
	outline: none;
}

.epepe-room-icon-btn svg {
	width: 20px;
	height: 20px;
}

.epepe-room-hint {
	position: absolute;
	left: 50%;
	bottom: 28px;
	transform: translateX(-50%);
	z-index: 2;
	margin: 0;
	padding: 8px 18px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.5);
	color: #fff;
	font-size: 13px;
	white-space: nowrap;
	pointer-events: none;
	transition: opacity 0.6s ease;
}

.epepe-room-hint.is-hidden {
	opacity: 0;
}

@media (max-width: 782px) {
	.epepe-room-3d-panel {
		left: 10px;
		right: 10px;
		top: auto;
		bottom: 10px;
		width: auto;
	}
}

.epepe-no-image {
	padding: 80px 20px;
	color: var(--epepe-ink-soft);
	text-align: center;
}

.epepe-thumb-strip {
	display: flex;
	gap: 10px;
	margin-top: 12px;
	flex-wrap: wrap;
}

.epepe-thumb {
	width: 72px;
	height: 72px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	background: var(--epepe-bg-soft);
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.epepe-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.epepe-thumb.is-active,
.epepe-thumb:hover {
	border-color: var(--epepe-accent);
}

/* DevTools deterrent blur */
.epepe-devtools-blur img {
	filter: blur(18px);
}

/* ---------------------------------------------------------------------
   Right column – title, price, purchase form
--------------------------------------------------------------------- */

.epepe-single-photo-right {
	padding-top: 4px;
}

.epepe-photo-title {
	font-size: 28px;
	line-height: 1.25;
	margin: 0 0 6px;
	color: var(--epepe-ink);
}

.epepe-photo-sku {
	font-size: 13px;
	color: var(--epepe-ink-soft);
	margin-bottom: 4px;
}

.epepe-photo-cats {
	display: inline-block;
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--epepe-accent-dark);
	margin-bottom: 16px;
}

.epepe-photo-price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 6px;
}

.epepe-wishlist-hint {
	margin: 0 0 20px;
	font-size: 12px;
	color: var(--epepe-ink-soft);
}

.epepe-photo-price {
	font-size: 24px;
	font-weight: 600;
	color: var(--epepe-ink);
}

.epepe-purchase-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 24px;
	background: var(--epepe-bg-soft);
	border-radius: var(--epepe-radius);
	border: 1px solid var(--epepe-border);
}

.epepe-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.epepe-field label {
	font-size: 13px;
	font-weight: 600;
	color: var(--epepe-ink);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.epepe-field select,
.epepe-field input[type="number"] {
	padding: 10px 12px;
	border: 1px solid var(--epepe-border);
	border-radius: 6px;
	font-size: 15px;
	background: #fff;
	color: var(--epepe-ink);
}

.epepe-field-qty input {
	max-width: 100px;
}

/* !important on colour here: this button also carries WooCommerce's own
   .single_add_to_cart_button class, and on a page this dense with
   plugin/theme CSS (WooCommerce core, Elementor kit, woo-variation-swatches,
   side-cart-woocommerce…) something with equal selector specificity can
   still print after ours despite the late enqueue priority — colour is
   the one thing we can't risk losing here. */
.epepe-add-to-cart-btn {
	margin-top: 4px;
	padding: 14px 24px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #fff !important;
	background: var(--epepe-accent) !important;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}

.epepe-add-to-cart-btn:hover {
	background: var(--epepe-accent-dark) !important;
	box-shadow: 0 8px 20px rgba(197, 160, 89, 0.35);
}

.epepe-add-to-cart-btn:focus-visible {
	outline: 2px solid var(--epepe-accent-dark);
	outline-offset: 2px;
}

.epepe-delivery-info {
	margin-top: 16px;
	padding: 14px 16px;
	background: var(--epepe-bg-soft);
	border-radius: var(--epepe-radius);
	font-size: 13px;
	line-height: 1.6;
	color: var(--epepe-ink-soft);
}

.epepe-delivery-info p {
	margin: 0;
}

.epepe-delivery-info p + p {
	margin-top: 8px;
}

.epepe-delivery-info strong {
	color: var(--epepe-ink);
}

/* ---------------------------------------------------------------------
   Slično ovome – povezane fotografije na dnu single stranice
--------------------------------------------------------------------- */

.epepe-related-photos {
	max-width: 1200px;
	margin: 0 auto 48px;
	padding: 0 20px;
}

.epepe-related-title {
	font-size: 22px;
	color: var(--epepe-ink);
	margin: 0 0 20px;
}

.epepe-related-photos .epepe-photo-gallery {
	padding: 0;
}

.epepe-unavailable {
	padding: 16px;
	background: #fdecea;
	border: 1px solid #f3c7c2;
	border-radius: 6px;
	color: #9a3324;
}

/* ---------------------------------------------------------------------
   Tabs – Description / Product details
--------------------------------------------------------------------- */

.epepe-photo-tabs {
	max-width: 1200px;
	margin: 48px auto;
	padding: 0 20px;
}

.epepe-tabs-nav {
	display: flex;
	gap: 4px;
	border-bottom: 2px solid var(--epepe-border);
}

.epepe-tab-btn {
	padding: 12px 20px;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--epepe-ink-soft);
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.epepe-tab-btn:hover {
	color: var(--epepe-accent-dark) !important;
	/* Theme's generic `button:hover` paints a (pinkish) background; our tabs
	   are text-only so kill it. */
	background: none !important;
	box-shadow: none !important;
}

.epepe-tab-btn.is-active {
	color: var(--epepe-ink) !important;
	border-bottom-color: var(--epepe-accent) !important;
}

/* After clicking a tab it keeps :focus, and the theme's generic
   `button:focus`/`:active` styling (pinkish text/background) leaked through.
   Pin our own colours for the focused-not-hovered / pressed state — inactive
   tabs stay soft ink, the active tab stays ink. */
.epepe-tab-btn:focus:not(:hover),
.epepe-tab-btn:active:not(:hover) {
	color: var(--epepe-ink-soft) !important;
	background: none !important;
	box-shadow: none !important;
	outline: none;
}

.epepe-tab-btn.is-active:focus:not(:hover),
.epepe-tab-btn.is-active:active:not(:hover) {
	color: var(--epepe-ink) !important;
}

.epepe-tab-panel {
	display: none;
	padding: 24px 0;
	color: var(--epepe-ink);
	line-height: 1.7;
}

.epepe-tab-panel.is-active {
	display: block;
}

.epepe-details-table {
	width: 100%;
	border-collapse: collapse;
}

.epepe-details-table th,
.epepe-details-table td {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 1px solid var(--epepe-border);
	font-size: 14px;
}

.epepe-details-table th {
	width: 220px;
	color: var(--epepe-ink-soft);
	font-weight: 600;
}

/* ---------------------------------------------------------------------
   Gallery grid – archive template + [photo_gallery] shortcode
--------------------------------------------------------------------- */

.epepe-photo-gallery {
	--epepe-gallery-columns: 3;
	display: grid;
	grid-template-columns: repeat(var(--epepe-gallery-columns), minmax(0, 1fr));
	gap: 24px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.epepe-gallery-empty {
	text-align: center;
	color: var(--epepe-ink-soft);
	padding: 40px 20px;
}

.epepe-gallery-card {
	position: relative;
	border-radius: var(--epepe-radius);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--epepe-border);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.epepe-gallery-card:hover {
	box-shadow: 0 12px 28px rgba(26, 26, 46, 0.12);
	transform: translateY(-2px);
}

.epepe-gallery-card-link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

/* Gallery-mode cards are <button> elements (they open the lightbox instead
   of navigating), so they need the usual button-reset. The theme's generic
   `button:hover`/`:focus`/`:active` paints a (pinkish) background over the
   whole card on hover, so pin it transparent in every state — the card's own
   shadow-lift (.epepe-gallery-card:hover) is the only hover treatment. */
button.epepe-gallery-card-link,
button.epepe-gallery-card-link:hover,
button.epepe-gallery-card-link:focus,
button.epepe-gallery-card-link:active {
	background: none !important;
	border: none;
	padding: 0;
	width: 100%;
	text-align: left;
	font: inherit;
	cursor: pointer;
	box-shadow: none !important;
}

.epepe-gallery-card-link:focus-visible {
	outline: 2px solid var(--epepe-accent-dark);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------
   Galerija – fullscreen lightbox (strelice + "Kupi fotografiju" gumb)
--------------------------------------------------------------------- */

.epepe-gallery-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: rgba(11, 11, 12, 0.96);
	padding: 70px 20px;
}

.epepe-gallery-lightbox.is-open {
	display: flex;
}

html.epepe-lightbox-locked,
html.epepe-lightbox-locked body {
	overflow: hidden;
}

.epepe-lightbox-stage {
	position: relative;
	max-width: min(1100px, 90vw);
	max-height: 68vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.epepe-lightbox-image {
	max-width: 100%;
	max-height: 68vh;
	border-radius: 4px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
	-webkit-user-select: none;
	user-select: none;
	-webkit-user-drag: none;
	transition: opacity 0.2s ease;
}

/* Shown while the next batch of photos is being fetched (reaching the end
   of the current page in the lightbox) — the image dims and a spinner +
   "Učitavanje…" appears, so the visitor knows to wait instead of the view
   flashing back to the first photo. */
.epepe-gallery-lightbox.is-loading .epepe-lightbox-image {
	opacity: 0.25;
}

.epepe-lightbox-loading {
	position: absolute;
	inset: 0;
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: #fff;
	font-size: 14px;
	letter-spacing: 0.02em;
	pointer-events: none;
}

.epepe-gallery-lightbox.is-loading .epepe-lightbox-loading {
	display: flex;
}

.epepe-lightbox-spinner {
	width: 38px;
	height: 38px;
	border: 3px solid rgba(255, 255, 255, 0.25);
	border-top-color: var(--epepe-accent);
	border-radius: 50%;
	animation: epepe-lightbox-spin 0.7s linear infinite;
}

@keyframes epepe-lightbox-spin {
	to { transform: rotate(360deg); }
}

.epepe-lightbox-footer {
	margin-top: 22px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	text-align: center;
	max-width: 90vw;
}

.epepe-lightbox-title {
	color: #fff;
	font-size: 15px;
	letter-spacing: 0.02em;
}

.epepe-lightbox-buy-btn {
	display: inline-block;
	padding: 13px 30px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--epepe-ink) !important;
	background: var(--epepe-accent) !important;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.epepe-lightbox-buy-btn:hover {
	background: var(--epepe-accent-dark) !important;
	color: #fff !important;
}

.epepe-lightbox-close,
.epepe-lightbox-nav {
	position: absolute;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: #fff !important;
	line-height: 1;
	cursor: pointer;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	transition: background 0.15s ease;
}

.epepe-lightbox-close:hover,
.epepe-lightbox-nav:hover {
	background: var(--epepe-accent) !important;
	color: #fff !important;
}

.epepe-lightbox-close {
	top: 18px;
	right: 22px;
	width: 44px;
	height: 44px;
	font-size: 26px;
}

.epepe-lightbox-nav {
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	font-size: 30px;
}

.epepe-lightbox-prev {
	left: 18px;
}

.epepe-lightbox-next {
	right: 18px;
}

@media (max-width: 600px) {
	.epepe-lightbox-nav {
		width: 42px;
		height: 42px;
		font-size: 22px;
	}

	.epepe-lightbox-prev {
		left: 8px;
	}

	.epepe-lightbox-next {
		right: 8px;
	}

	.epepe-lightbox-close {
		width: 38px;
		height: 38px;
		font-size: 22px;
		top: 10px;
		right: 10px;
	}
}

/* ---------------------------------------------------------------------
   Wishlist gumb (lajkanje) – vlastita implementacija, localStorage
--------------------------------------------------------------------- */

.epepe-gallery-card-wishlist {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
}

.epepe-wishlist-heart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 2px 8px rgba(26, 26, 46, 0.18);
	color: var(--epepe-ink-soft) !important;
	cursor: pointer;
	transition: color 0.15s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

/* After clicking a card heart the pointer moves away but the button keeps
   :focus, and the theme/Elementor generic `button:focus`/`:active` (pinkish)
   background leaked through because our resting background isn't !important.
   Pin the neutral resting look for the focused-not-hovered / pressed state on
   the Galerija cards; :hover and .is-active still win (they're hovered/liked). */
.epepe-gallery-card-wishlist .epepe-wishlist-heart:focus:not(:hover):not(.is-active),
.epepe-gallery-card-wishlist .epepe-wishlist-heart:active:not(:hover):not(.is-active) {
	background: rgba(255, 255, 255, 0.94) !important;
	color: var(--epepe-ink-soft) !important;
	box-shadow: 0 2px 8px rgba(26, 26, 46, 0.18);
	outline: none;
}

/* Hover AND liked (is-active) both fill solid gold with a white heart —
   the exact same treatment as the heart inside the Galerija lightbox, so
   the like button looks identical everywhere. */
.epepe-wishlist-heart:hover,
.epepe-wishlist-heart.is-active {
	background: var(--epepe-accent) !important;
	color: #fff !important;
}

.epepe-wishlist-heart:hover {
	box-shadow: 0 8px 20px rgba(197, 160, 89, 0.4);
	transform: translateY(-2px);
}

.epepe-wishlist-heart:focus-visible {
	outline: 2px solid var(--epepe-accent-dark);
	outline-offset: 2px;
}

.epepe-wishlist-heart .epepe-heart-filled {
	display: none;
}

.epepe-wishlist-heart.is-active .epepe-heart-outline {
	display: none;
}

.epepe-wishlist-heart.is-active .epepe-heart-filled {
	display: block;
}

.epepe-single-photo-wishlist {
	flex: none;
}

.epepe-single-photo-wishlist .epepe-wishlist-heart {
	width: 44px;
	height: 44px;
	border: 1px solid var(--epepe-border);
	background: #fff;
	box-shadow: none;
}

.epepe-single-photo-wishlist .epepe-wishlist-heart:hover,
.epepe-single-photo-wishlist .epepe-wishlist-heart.is-active {
	border-color: var(--epepe-accent) !important;
}

/* Wishlist heart sitting next to "Kupi fotografiju" inside the dark
   Galerija lightbox — same frosted-glass treatment as the close/nav
   buttons there, not the light-card style used elsewhere. */
.epepe-lightbox-actions {
	display: flex;
	align-items: center;
	gap: 14px;
}

.epepe-lightbox-actions .epepe-wishlist-heart {
	width: 44px;
	height: 44px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff !important;
	box-shadow: none;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.epepe-lightbox-actions .epepe-wishlist-heart:hover {
	background: var(--epepe-accent) !important;
	color: #fff !important;
	box-shadow: none;
	transform: none;
}

.epepe-lightbox-actions .epepe-wishlist-heart.is-active {
	background: var(--epepe-accent) !important;
	color: #fff !important;
}

/* ---------------------------------------------------------------------
   Wishlist count badge – [epepe_wishlist_count] shortcode (za header)
--------------------------------------------------------------------- */

.epepe-wishlist-count-badge {
	display: inline-flex;
	align-items: center;
	align-self: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid var(--epepe-border);
	border-radius: 20px;
	background: #fff;
	color: var(--epepe-ink);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.epepe-wishlist-count-label {
	white-space: nowrap;
}

.epepe-wishlist-count-badge:hover {
	border-color: var(--epepe-accent);
	color: var(--epepe-accent-dark);
}

.epepe-wishlist-count-badge svg {
	flex: none;
}

.epepe-wishlist-count-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--epepe-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
}

.epepe-wishlist-count-badge.is-empty .epepe-wishlist-count-num {
	display: none;
}

/* ---------------------------------------------------------------------
   Galerija – "Učitaj još"
--------------------------------------------------------------------- */

.epepe-gallery-load-more-wrap {
	display: flex;
	justify-content: center;
	margin-top: 32px;
	padding-bottom: 48px;
}

/* Same solid-gold pill + hover treatment as "Kupi fotografiju"
   (.epepe-lightbox-buy-btn) — !important on colour for the same reason as
   .epepe-add-to-cart-btn above (dense WooCommerce/Elementor CSS on this page). */
.epepe-gallery-load-more {
	display: inline-block;
	padding: 13px 34px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--epepe-ink) !important;
	background: var(--epepe-accent) !important;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.epepe-gallery-load-more:hover:not(:disabled) {
	background: var(--epepe-accent-dark) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(197, 160, 89, 0.35);
}

.epepe-gallery-load-more:disabled {
	opacity: 0.6;
	cursor: default;
}

.epepe-gallery-card-media {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--epepe-bg-soft);
	overflow: hidden;
}

.epepe-gallery-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.epepe-gallery-card-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 14px 16px 18px;
}

.epepe-gallery-card-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--epepe-ink);
}

.epepe-gallery-card-cat {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--epepe-accent-dark);
}

.epepe-gallery-card-price {
	margin-top: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--epepe-ink-soft);
}

.epepe-gallery-card-cta {
	margin-top: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--epepe-accent-dark);
}

.epepe-archive-header {
	max-width: 1200px;
	margin: 0 auto 32px;
	padding: 16px 20px 0;
}

.epepe-archive-title {
	font-size: 32px;
	color: var(--epepe-ink);
	margin-bottom: 8px;
}

.epepe-archive-description {
	color: var(--epepe-ink-soft);
}

/* Photo-wishlist section, inserted right after the site's existing Jet
   wishlist widget on /wishlist/ (see inject_photos_into_native_wishlist_page())
   — a thin divider + moderate spacing reads as "next section", not a big gap
   like a whole new page. Heading is toned down from the full archive-page
   title so it sits as a subsection under "Tvoja lista želja", not a
   competing page heading. */
.epepe-native-wishlist-photos {
	max-width: 1200px;
	margin: 28px auto 0;
	padding: 28px 20px 0;
	border-top: 1px solid var(--epepe-border);
}

.epepe-native-wishlist-photos .epepe-archive-header {
	max-width: none;
	margin: 0 0 20px;
	padding: 0;
}

.epepe-native-wishlist-photos .epepe-archive-title {
	font-size: 24px;
}

/* ---------------------------------------------------------------------
   Toolbar – filter po kategoriji + sortiranje
--------------------------------------------------------------------- */

.epepe-archive-toolbar {
	max-width: 1200px;
	margin: 0 auto 28px;
	padding: 0 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: flex-end;
}

.epepe-archive-filter,
.epepe-archive-sort {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.epepe-archive-filter label,
.epepe-archive-sort label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--epepe-ink-soft);
}

.epepe-archive-filter select,
.epepe-archive-sort select {
	min-width: 200px;
	padding: 9px 12px;
	border: 1px solid var(--epepe-border);
	border-radius: 6px;
	background: #fff;
	color: var(--epepe-ink);
	font-size: 14px;
}

.epepe-archive-search {
	position: relative;
	flex: 1 1 260px;
}

.epepe-archive-search form {
	display: flex;
	gap: 8px;
}

.epepe-archive-search input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: 9px 12px;
	border: 1px solid var(--epepe-border);
	border-radius: 6px;
	background: #fff;
	color: var(--epepe-ink);
	font-size: 14px;
}

.epepe-archive-search button {
	padding: 9px 18px;
	border: none;
	border-radius: 6px;
	background: var(--epepe-ink);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease;
}

.epepe-archive-search button:hover {
	background: var(--epepe-accent-dark);
}

/* Keep "Traži" dark ink after it's been pressed — the theme's generic
   `button:focus`/`:active` (pinkish) background leaked through because the
   base background above isn't !important. :hover (gold) still wins. */
.epepe-archive-search button:focus:not(:hover),
.epepe-archive-search button:active:not(:hover) {
	background: var(--epepe-ink) !important;
	color: #fff !important;
	box-shadow: none;
	outline: none;
}

.epepe-live-search-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	margin-top: 6px;
	background: #fff;
	border: 1px solid var(--epepe-border);
	border-radius: 8px;
	box-shadow: 0 12px 28px rgba(26, 26, 46, 0.16);
	max-height: 360px;
	overflow-y: auto;
	z-index: 30;
}

.epepe-live-search-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	text-decoration: none;
	color: inherit;
	border-bottom: 1px solid var(--epepe-border);
}

.epepe-live-search-item:last-child {
	border-bottom: none;
}

.epepe-live-search-item:hover {
	background: var(--epepe-bg-soft);
}

.epepe-live-search-item img {
	width: 44px;
	height: 44px;
	object-fit: cover;
	border-radius: 6px;
	flex-shrink: 0;
	background: var(--epepe-bg-soft);
}

.epepe-live-search-item-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.epepe-live-search-item-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--epepe-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.epepe-live-search-item-price {
	font-size: 12px;
	color: var(--epepe-ink-soft);
}

.epepe-live-search-empty {
	margin: 0;
	padding: 14px;
	font-size: 13px;
	color: var(--epepe-ink-soft);
}

.epepe-search-active {
	max-width: 1200px;
	margin: -14px auto 20px;
	padding: 0 20px;
	font-size: 13px;
	color: var(--epepe-ink-soft);
}

.epepe-search-active a {
	color: var(--epepe-accent-dark);
	text-decoration: none;
}

.epepe-search-active a:hover {
	text-decoration: underline;
}

/* ---------------------------------------------------------------------
   Stranicenje (the_posts_pagination)
--------------------------------------------------------------------- */

.epepe-photo-archive .pagination,
.epepe-photo-archive .navigation.pagination {
	max-width: 1200px;
	margin: 40px auto 0;
	padding: 0 20px 40px;
}

.epepe-photo-archive .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

/* Same solid-gold pill treatment as the Galerija "Učitaj još" button
   (.epepe-gallery-load-more) — !important on colour to survive the dense
   WooCommerce/theme pagination CSS. Current page uses the darker gold. */
.epepe-photo-archive .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 16px;
	border: none;
	border-radius: 999px;
	background: var(--epepe-accent) !important;
	color: var(--epepe-ink) !important;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.epepe-photo-archive .page-numbers:hover {
	background: var(--epepe-accent-dark) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(197, 160, 89, 0.35);
}

.epepe-photo-archive .page-numbers.current {
	background: var(--epepe-accent-dark) !important;
	color: #fff !important;
}

.epepe-photo-archive .page-numbers.dots {
	background: none !important;
	color: var(--epepe-ink-soft) !important;
	box-shadow: none;
}

/* ---------------------------------------------------------------------
   Responsive
--------------------------------------------------------------------- */

@media (max-width: 900px) {
	.epepe-single-photo {
		grid-template-columns: 1fr;
	}

	.epepe-single-photo-left {
		position: static;
	}

	.epepe-photo-gallery {
		--epepe-gallery-columns: 2;
	}
}

@media (max-width: 560px) {
	.epepe-photo-gallery {
		--epepe-gallery-columns: 1;
	}
}
