/* =========================================================================
   Bloki strani - Soča River Resort
   Tema: temno ozadje #383E42, tekst #d4cfc7, poudarek mint #57CFC4,
   rečni gradient #9FF3E6 -> #57CFC4 -> #15A89A, pisava Fira Sans.
   ========================================================================= */

.pb-block {
	position: relative;
	width: 100%;
}

/* predogled (?pb_preview=1): okvir + oznaka za skrite bloke */
.pb-preview-hidden {
	position: relative;
	outline: 2px dashed #dfa75a;
	outline-offset: -2px;
	opacity: .82;
}

.pb-preview-tag {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 50;
	background: #dfa75a;
	color: #2d3236;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .5px;
	padding: 3px 9px;
	border-radius: 3px;
	font-family: 'Fira Sans', sans-serif;
}

/* full-bleed bloki morajo počistiti morebiten legacy float (header/vrstice) */
.pb-cover,
.pb-video-cover,
.pb-fleha,
.pb-gallery--coverflow .pb-gallery-coverflow-wrap,
.pb-gallery--kenburns .pb-gallery-kenburns {
	clear: both;
}

/* vsebinski razmik med bloki */
.pb-h1,
.pb-text,
.pb-cta,
.pb-image-text,
.pb-counters,
.pb-gallery {
	padding: 45px 0;
}

/* ---------- Naslov (h1) ---------- */
.pb-h1 {
	padding: 74px 0 84px;
}

.pb-h1-inner {
	text-align: center;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
}

.pb-h1-line {
	display: block;
	width: 84px;
	height: 3px;
	margin: 0 auto;
	background: linear-gradient(90deg, #9FF3E6, #57CFC4, #15A89A);
	border-radius: 3px;
}

.pb-h1-title {
	color: #15A89A;
	font-weight: 400;
	line-height: 1.15em;
	letter-spacing: .5px;
	margin: 16px 0;
	overflow-wrap: break-word;
	word-break: break-word;
}
/* hierarhija velikosti: h1 > h2 > h3 (da se naslova razlikujeta) */
h1.pb-h1-title { font-size: clamp(34px, 7vw, 64px); }
h2.pb-h1-title { font-size: clamp(25px, 4.6vw, 40px); }
h3.pb-h1-title { font-size: clamp(20px, 3.6vw, 30px); font-weight: 500; }
/* naslov ni krepek nikjer (kot logo) */
.pb-h1-title strong,
.pb-h1-title b { font-weight: 400; }

.pb-h1-line + .pb-subtitle,
.pb-h1 .pb-subtitle {
	margin-top: 16px;
}

.pb-subtitle {
	color: #C2883A; /* toplo zlato - elegantno dopolnjuje smaragdno */
	opacity: 1;
	font-size: clamp(16px, 2.6vw, 20px);
	max-width: 760px;
	margin: 0 auto;
	line-height: 1.55em;
}

.pb-h1--gold {
	background: rgba(223, 167, 90, .08);
}

.pb-h1--gold .pb-h1-title {
	color: #dfa75a;
}

.pb-h1--gold .pb-h1-line {
	background: #dfa75a;
}

.pb-h1--dark {
	background: #2d3236;
}

/* ---------- Besedilo (text) - premium ---------- */
.pb-text .main_cont {
	font-size: 18.5px;
	line-height: 1.85em;
	letter-spacing: .2px;
	color: #3a4642;
}
.pb-text .main_cont p { margin: 0 0 1.15em; }
.pb-text .main_cont p:last-child { margin-bottom: 0; }
/* premium drop-cap (rečni gradient) na prvi črki prvega odstavka */
.pb-text .main_cont > p:first-of-type::first-letter {
	font-family: 'Marcellus', 'Fira Sans', serif;
	font-size: 3.7em;
	line-height: .78;
	float: left;
	margin: 10px 14px 0 0;
	background: linear-gradient(150deg, #15A89A 0%, #57CFC4 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: #15A89A;
	font-weight: 400;
}

/* ---------- CTA gumb ---------- */
.pb-cta-inner {
	text-align: center;
	padding: 40px 20px;
	border-radius: 6px;
}

.pb-cta--dark .pb-cta-inner {
	background: #2d3236;
}

.pb-cta--light .pb-cta-inner {
	background: #f2f2f2;
}

.pb-cta--light .pb-cta-title {
	color: #15A89A;
}

.pb-cta--light .pb-cta-desc {
	color: #C2883A;
}

.pb-cta--transparent .pb-cta-inner {
	background: transparent;
}

.pb-cta-title {
	color: #57CFC4;
	font-size: clamp(22px, 4vw, 34px);
	font-weight: 600;
	margin-bottom: 14px;
}

.pb-cta-desc {
	color: #C2883A; /* toplo zlato - enako kot standardni podnaslov */
	font-size: clamp(16px, 2.6vw, 20px);
	max-width: 720px;
	margin: 0 auto 10px;
	line-height: 1.5em;
}

.pb-cta-btn i {
	margin-left: 8px;
}

/* ---------- Ločilnica (fleha) ---------- */
.pb-fleha {
	color: #57CFC4;
	text-align: center;
	line-height: 0;
	padding: 0;
}

.pb-fleha--wave {
	padding: 22px 0;
	line-height: 0;
}

.pb-fleha--wave .pb-fleha-wave {
	display: block;
	width: 100%;
	max-width: 1100px;
	height: 64px;
	margin: 0 auto;
}

/* ločilnica: silhueta reke Soče (vodoravno) */
.pb-fleha--reka {
	padding: 26px 0;
	line-height: 0;
}

.pb-fleha--reka .pb-fleha-reka {
	display: block;
	width: 100%;
	max-width: 1200px;
	height: 88px;
	margin: 0 auto;
}

/* potujoč sijaj po reki - en svetel odsek se sprehodi, nato premor (na vsake kvatre) */
.pb-reka-sijaj {
	stroke-dasharray: 45 2200;
	stroke-dashoffset: 2245;
	animation: pbRekaSijaj 7s ease-in-out infinite;
}

@keyframes pbRekaSijaj {
	0%   { stroke-dashoffset: 2245; opacity: 0; }
	12%  { opacity: .3; }
	55%  { stroke-dashoffset: 400;  opacity: .3; }
	70%  { stroke-dashoffset: 0;    opacity: 0; }
	100% { stroke-dashoffset: 0;    opacity: 0; }
}

.pb-fleha--arrow {
	padding: 22px 0;
	line-height: 1;
}

.pb-fleha--arrow .pb-fleha-arrow {
	font-size: 30px;
	color: #57CFC4;
	animation: pbFlehaBounce 1.8s ease-in-out infinite;
	display: inline-block;
}

@keyframes pbFlehaBounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(8px); }
}

.pb-fleha--dots {
	padding: 28px 0;
}

.pb-fleha--dots i {
	display: inline-block;
	width: 9px;
	height: 9px;
	margin: 0 6px;
	border-radius: 50%;
	background: #57CFC4;
}

.pb-fleha--dots i:nth-child(2) { opacity: .6; }
.pb-fleha--dots i:nth-child(3) { opacity: .3; }

.pb-fleha--line {
	padding: 30px 0;
}

.pb-fleha--line .pb-fleha-line {
	display: block;
	width: 120px;
	height: 2px;
	margin: 0 auto;
	background: #57CFC4;
	opacity: .5;
}

/* ---------- Slika + tekst ---------- */
.pb-image-text {
	padding: 66px 0;
}

/* ozadje / "zanimivost" bloka */
.pb-image-text--bg-light { background: #f5f8f7; }
.pb-image-text--bg-mint {
	background: linear-gradient(135deg, rgba(159, 243, 230, .18), rgba(21, 168, 154, .10));
}
.pb-image-text--bg-dark { background: #2d3236; }
.pb-image-text--bg-dark .pb-image-text-title { color: #57CFC4; }
.pb-image-text--bg-dark .pb-image-text-body,
.pb-image-text--bg-dark .pb-image-text-body * { color: #e7ecea; }
.pb-image-text--bg-dark .pb-image-text-body li::before { color: #57CFC4; }

.pb-image-text-inner {
	display: flex;
	align-items: center;
	gap: 56px;
}

/* bulete v smaragdni barvi */
.pb-image-text-body li::before {
	color: #15A89A;
}

.pb-image-text--right .pb-image-text-inner {
	flex-direction: row-reverse;
}

.pb-image-text-media {
	flex: 0 0 45%;
	max-width: 45%;
}

.pb-image-text-media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}

/* galerija znotraj slika+tekst (več slik = cross-fade) */
.pb-it-gallery {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 4px;
	overflow: hidden;
	background: #e7eceb;
}

.pb-it-gallery .pb-it-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1s ease;
}

.pb-it-gallery .pb-it-img.active {
	opacity: 1;
}

.pb-it-dots {
	position: absolute;
	bottom: 12px;
	left: 0;
	right: 0;
	text-align: center;
	z-index: 2;
	line-height: 0;
}

.pb-it-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .55);
	margin: 0 4px;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
	transition: background .2s;
}

.pb-it-dot.active {
	background: #fff;
}

.pb-image-text-body {
	flex: 1;
}

.pb-image-text-title {
	color: #57CFC4;
	font-size: clamp(20px, 3.5vw, 30px);
	font-weight: 600;
	margin-bottom: 16px;
}

/* ---------- Števci ---------- */
.pb-counters {
	text-align: center;
}

.pb-counters-title {
	color: #57CFC4;
	font-size: clamp(22px, 4vw, 32px);
	font-weight: 600;
	margin-bottom: 8px;
}

.pb-counters-sub {
	margin-bottom: 30px;
}

.pb-counters-grid {
	display: grid;
	grid-template-columns: repeat(var(--pb-cn, 3), 1fr);
	gap: 24px;
}

.pb-counters-cols-1 { --pb-cn: 1; }
.pb-counters-cols-2 { --pb-cn: 2; }
.pb-counters-cols-3 { --pb-cn: 3; }
.pb-counters-cols-4 { --pb-cn: 4; }
.pb-counters-cols-5 { --pb-cn: 5; }
.pb-counters-cols-6 { --pb-cn: 3; }

.pb-counter-num {
	font-size: clamp(34px, 6vw, 56px);
	font-weight: 700;
	color: #57CFC4;
	line-height: 1;
}

.pb-counter-label {
	margin-top: 10px;
	color: #d4cfc7;
	opacity: .85;
	font-size: 15px;
}

/* ---------- Ikone / značilnosti ---------- */
.pb-icons {
	text-align: center;
}

.pb-icons-title {
	color: #15A89A;
	font-size: clamp(22px, 4vw, 32px);
	font-weight: 600;
	margin-bottom: 8px;
}

.pb-icons-sub {
	margin-bottom: 30px;
}

.pb-icons-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 28px 44px;
}

.pb-icon-item {
	flex: 0 0 auto;
	width: 130px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.pb-icon-circle {
	width: 76px;
	height: 76px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(21, 168, 154, .10);
	border: 1px solid rgba(21, 168, 154, .35);
	transition: transform .25s, background .25s;
}

.pb-icon-circle i {
	font-size: 30px;
	color: #15A89A;
}

.pb-icon-item:hover .pb-icon-circle {
	transform: translateY(-4px);
	background: rgba(21, 168, 154, .18);
}

.pb-icon-text {
	font-size: 15px;
	line-height: 1.3;
	color: #44504f;
	font-weight: 500;
}

@media (max-width: 600px) {
	.pb-icons-row {
		flex-wrap: nowrap;
		overflow-x: auto;
		justify-content: flex-start;
		scrollbar-width: none;
		gap: 20px;
		padding-bottom: 6px;
	}
	.pb-icons-row::-webkit-scrollbar { display: none; }
	.pb-icon-item { width: 104px; }
}

/* ---------- Galerija: skupno ---------- */
.pb-gallery-title {
	color: #15A89A;
	font-size: clamp(22px, 4vw, 32px);
	font-weight: 600;
	text-align: center;
	margin-bottom: 8px;
}

.pb-gallery-sub {
	text-align: center;
	margin-bottom: 26px;
}

.pb-gallery-img {
	cursor: pointer;
	transition: transform .4s, filter .4s;
}

/* Galerija: mozaik (CSS columns masonry) */
.pb-gallery-mozaik {
	column-count: var(--pb-cols, 3);
	column-gap: 16px;
}

.pb-gallery-mozaik .pb-gallery-img {
	width: 100%;
	display: block;
	margin: 0 0 16px;
	border-radius: 14px;
	break-inside: avoid;
	box-shadow: 0 8px 22px rgba(12, 46, 43, .12);
	transition: transform .45s cubic-bezier(.22, .61, .36, 1), box-shadow .45s ease, filter .45s ease;
	transform-origin: center;
}

.pb-gallery-mozaik .pb-gallery-img:hover {
	transform: translateY(-7px) scale(1.035) rotate(-.7deg);
	box-shadow: 0 26px 54px rgba(12, 46, 43, .30);
	filter: saturate(1.08);
	position: relative;
	z-index: 3;
}

/* Galerija: coverflow (horizontalni drsnik) */
.pb-gallery-coverflow-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.pb-gallery-coverflow {
	display: flex;
	gap: 14px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 10px 50px;
	scrollbar-width: none;
	cursor: grab;
}

.pb-gallery-coverflow::-webkit-scrollbar {
	display: none;
}

.pb-gallery-coverflow.pb-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
}

.pb-cf-slide {
	flex: 0 0 auto;
	width: calc((100% - 2 * 14px) / 3);
	min-width: 260px;
	scroll-snap-align: center;
}

.pb-gallery-coverflow[data-cols="2"] .pb-cf-slide { width: calc((100% - 14px) / 2); }
.pb-gallery-coverflow[data-cols="4"] .pb-cf-slide { width: calc((100% - 3 * 14px) / 4); }

.pb-cf-slide .pb-gallery-img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}

.pb-cf-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(56, 62, 66, .85);
	color: #57CFC4;
	border: 1px solid #57CFC4;
	cursor: pointer;
	font-size: 16px;
}

.pb-cf-prev { left: 6px; }
.pb-cf-next { right: 6px; }

/* Galerija: ken burns cross-fade */
.pb-gallery-kenburns {
	position: relative;
	width: 100%;
	height: 70vh;
	overflow: hidden;
}

.pb-kb-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.4s ease;
}

.pb-kb-slide.active {
	opacity: 1;
}

.pb-kb-slide .pb-gallery-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: pbKenBurns 9s ease-in-out infinite alternate;
}

@keyframes pbKenBurns {
	from { transform: scale(1); }
	to { transform: scale(1.12); }
}

/* ---------- Lightbox (skupni) ---------- */
.pb-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(20, 23, 25, .94);
}

.pb-lightbox.open {
	display: flex;
}

.pb-lb-img {
	max-width: 88vw;
	max-height: 86vh;
	object-fit: contain;
	border-radius: 4px;
	animation: pbLbIn .3s ease;
}

@keyframes pbLbIn {
	from { opacity: 0; transform: scale(.96); }
	to { opacity: 1; transform: scale(1); }
}

.pb-lb-close,
.pb-lb-nav {
	position: absolute;
	background: none;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-size: 30px;
	padding: 12px;
}

.pb-lb-close { top: 14px; right: 18px; font-size: 34px; }
.pb-lb-prev { left: 12px; top: 50%; transform: translateY(-50%); }
.pb-lb-next { right: 12px; top: 50%; transform: translateY(-50%); }

.pb-lb-counter {
	position: absolute;
	bottom: 18px;
	left: 0;
	right: 0;
	text-align: center;
	color: #d4cfc7;
	font-size: 14px;
	letter-spacing: 1px;
}

/* ---------- Iframe (booking engine ipd.) ---------- */
.pb-iframe-title {
	color: #15A89A;
	font-size: clamp(22px, 4vw, 32px);
	font-weight: 600;
	text-align: center;
	margin-bottom: 8px;
}
.pb-iframe-sub {
	text-align: center;
	margin-bottom: 26px;
}
.pb-iframe-frame {
	position: relative;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 14px 44px rgba(0, 0, 0, .12);
	border: 1px solid #e7eceb;
	background: #fff;
}
.pb-iframe-frame iframe {
	display: block;
	width: 100%;
	height: var(--pb-ifh, 850px);
	border: 0;
}
.pb-iframe--full .pb-iframe-frame {
	border-radius: 0;
	border: 0;
	box-shadow: none;
}
.pb-iframe-loader {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f5f8f7;
	z-index: 1;
	transition: opacity .4s;
}
.pb-iframe-frame.pb-loaded .pb-iframe-loader {
	opacity: 0;
	pointer-events: none;
}
.pb-iframe-spin {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 4px solid rgba(21, 168, 154, .25);
	border-top-color: #15A89A;
	animation: pbSpin .8s linear infinite;
}
@keyframes pbSpin {
	to { transform: rotate(360deg); }
}
@media (max-width: 768px) {
	.pb-iframe-frame iframe { height: var(--pb-ifh-m, 1150px); }
}
@media (prefers-reduced-motion: reduce) {
	.pb-iframe-spin { animation: none; }
}

/* ---------- Hero: cover + video ---------- */
.pb-cover,
.pb-video-cover {
	min-height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pb-cover--half {
	min-height: 60vh;
}

/* Logo-napis na vrhu hero videa (uvodna stran - tam je glavni header skrit
   med predvajanjem; ob scrollu prevzame vlogo emerald sticky vrstica).
   Privzeto skrit; prikaže se samo na uvodni strani (body.is-landing). */
.pb-hero-logo { display: none; }
body.is-landing .pb-video-cover .pb-hero-logo { display: block; }
.pb-hero-logo {
	position: absolute;
	top: clamp(28px, 5vh, 64px);
	left: 50%;
	transform: translateX(-50%);
	z-index: 5;
	display: block;
	line-height: 0;
	pointer-events: auto;
}
.pb-hero-logo img {
	display: block;
	height: clamp(46px, 8vh, 78px);
	filter: drop-shadow(0 3px 14px rgba(0, 0, 0, .45));
}
.pb-hero-logo-shine {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(110deg, transparent 38%, rgba(255, 255, 255, .9) 50%, transparent 62%);
	background-size: 280% 100%;
	background-repeat: no-repeat;
	background-position: 160% 0;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	animation: srrShine 5.5s ease-in-out infinite;
}
@keyframes srrShine { 0%, 62% { background-position: 160% 0; } 100% { background-position: -45% 0; } }
@media (prefers-reduced-motion: reduce) {
	.pb-hero-logo-shine { animation: none; }
}

.pb-cover-bg,
.pb-video-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	will-change: transform;
}

.pb-video-bg {
	overflow: hidden;
}

.pb-video-yt,
.pb-video-file {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	border: 0;
}

/* YouTube iframe mora prekriti hero (16:9 -> cover) */
.pb-video-yt {
	width: 100vw;
	height: 56.25vw;
	min-height: 100vh;
	min-width: 177.77vh;
}

.pb-cover-overlay,
.pb-video-overlay {
	position: absolute;
	inset: 0;
	/* rahel preliv samo za berljivost teksta - barve videa/coverja pridejo do izraza */
	background: linear-gradient(180deg, rgba(12, 18, 16, .04) 0%, rgba(12, 18, 16, .02) 40%, rgba(12, 18, 16, .30) 100%);
}

.pb-cover-content,
.pb-video-cta {
	position: relative;
	z-index: 2;
	text-align: center;
	padding: 0 20px;
	max-width: 1000px;
	will-change: transform;
}

.pb-hero-title {
	/* transparenten / izrezan naslov - medij prosijeva skozi črke, bel obris */
	font-weight: 800;
	font-size: clamp(28px, 5.2vw, 62px);
	line-height: 1.08em;
	letter-spacing: .5px;
	color: rgba(255, 255, 255, .07);
	-webkit-text-stroke: 1.4px rgba(255, 255, 255, .94);
	text-stroke: 1.4px rgba(255, 255, 255, .94);
	text-shadow: 0 6px 44px rgba(0, 0, 0, .45);
	margin: 0 auto;
	overflow-wrap: break-word;
	word-break: break-word;
	max-width: 100%;
}

.pb-hero-sub {
	color: #fff;
	opacity: .94;
	font-size: clamp(16px, 2.6vw, 22px);
	font-weight: 300;
	letter-spacing: .3px;
	margin: 22px auto 0;
	max-width: 640px;
	line-height: 1.5em;
	text-shadow: 0 1px 14px rgba(0, 0, 0, .5);
}

/* fancy title markerji */
/* vsaka vrstica naslova se NE lomi sama - prelom nastane le na markerju * */
.pb-ft-line { display: block; white-space: nowrap; }
/* mehki del = transparenten z obrisom (deduje od .pb-hero-title) */
.pb-ft-soft { color: rgba(255, 255, 255, .07); }
/* ostri del = poln poudarek (mint), brez obrisa - "izstopa" */
.pb-ft-sharp {
	color: #57CFC4;
	-webkit-text-stroke: 0;
	text-stroke: 0;
	text-shadow: 0 2px 26px rgba(21, 168, 154, .55);
}

/* prekrivni vzorec čez hero medij (overlay) */
.pb-hero-ovp {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}

.pb-ov-dots {
	background-image: radial-gradient(rgba(255, 255, 255, .28) 1.4px, transparent 1.6px);
	background-size: 22px 22px;
}

.pb-ov-lines {
	background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .14) 0 1px, transparent 1px 7px);
}

.pb-ov-vlines {
	background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .14) 0 1px, transparent 1px 7px);
}

.pb-ov-grid {
	background-image:
		repeating-linear-gradient(0deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 26px),
		repeating-linear-gradient(90deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 26px);
}

.pb-ov-diag {
	background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .12) 0 1px, transparent 1px 11px);
}

.pb-ov-vignette {
	background: radial-gradient(ellipse at center, transparent 52%, rgba(0, 0, 0, .6) 100%);
}

.pb-ov-grain {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
	opacity: .12;
	mix-blend-mode: overlay;
}

/* "romb" rez - na vrhu IN na dnu, beli klini (ozadje reza ostane belo) */
.pb-cut-subtle::before,
.pb-cut-medium::before,
.pb-cut-strong::before,
.pb-cut-subtle::after,
.pb-cut-medium::after,
.pb-cut-strong::after {
	content: '';
	position: absolute;
	left: -1px;
	right: -1px;
	height: var(--pb-cut);
	background: #fff;
	z-index: 4;
	pointer-events: none;
}

.pb-cut-subtle::before,
.pb-cut-medium::before,
.pb-cut-strong::before {
	top: 0;
	clip-path: polygon(0 100%, 50% 0, 100% 100%, 100% 0, 0 0);
}

.pb-cut-subtle::after,
.pb-cut-medium::after,
.pb-cut-strong::after {
	bottom: 0;
	clip-path: polygon(0 0, 50% 100%, 100% 0, 100% 100%, 0 100%);
}

/* hero CTA gumb (svetel, na temnem ozadju) */
.pb-video-cta-btn {
	display: inline-block;
	margin-top: 26px;
	padding: 14px 30px;
	color: #fff;
	border: 2px solid #fff;
	text-decoration: none;
	letter-spacing: 1px;
	font-size: 16px;
	border-radius: 2px;
	transition: background .3s, color .3s;
}

.pb-video-cta-btn:hover {
	background: #57CFC4;
	border-color: #57CFC4;
	color: #fff !important;
}

.pb-video-cta-btn i {
	margin-left: 8px;
}

/* mute gumb */
.pb-mute-btn {
	position: absolute;
	bottom: 22px;
	right: 22px;
	z-index: 4;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(40, 45, 48, .6);
	border: 1px solid rgba(255, 255, 255, .5);
	color: #fff;
	cursor: pointer;
	font-size: 16px;
}

/* fade-up za prvi pregib (brez JS odvisnosti) */
.animate-fadeup {
	opacity: 0;
	transform: translateY(26px);
	animation: pbFadeUp .9s ease forwards .25s;
}

.pb-hero-sub.animate-fadeup {
	animation-delay: .45s;
}

@keyframes pbFadeUp {
	to { opacity: 1; transform: translateY(0); }
}

/* ---------- RWD ---------- */
@media (max-width: 768px) {
	.pb-h1 { padding: 40px 0 46px; }
	h1.pb-h1-title { font-size: clamp(26px, 8vw, 36px); }
	h2.pb-h1-title { font-size: clamp(22px, 6vw, 30px); }
	.pb-hero-title { font-size: clamp(20px, 6.6vw, 32px); -webkit-text-stroke-width: 1px; text-stroke-width: 1px; }
	.pb-hero-sub { font-size: clamp(14px, 4vw, 18px); }
	.pb-ft-line { white-space: normal; }   /* dolge vrstice naj se na mobilnem prelomijo */

	.pb-image-text-inner {
		flex-direction: column;
		gap: 22px;
	}

	.pb-image-text--right .pb-image-text-inner {
		flex-direction: column;
	}

	.pb-image-text-media {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.pb-counters-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.pb-counters-cols-1 {
		grid-template-columns: 1fr;
	}

	.pb-gallery-mozaik {
		column-count: 2;
	}

	.pb-cf-slide {
		width: 80%;
		min-width: 0;
	}

	.pb-gallery-coverflow[data-cols="2"] .pb-cf-slide,
	.pb-gallery-coverflow[data-cols="4"] .pb-cf-slide {
		width: 80%;
	}

	.pb-gallery-kenburns {
		height: 50vh;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pb-kb-slide .pb-gallery-img,
	.pb-fleha--arrow .pb-fleha-arrow,
	.pb-reka-sijaj {
		animation: none;
		opacity: 0;
	}

	.animate-fadeup {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* =========================================================================
   Enotno "dihanje" vseh blokov: 25px zgoraj in spodaj.
   (pravilo na koncu => premaga prejšnje per-blok padinge; hero ostane full-bleed)
   ========================================================================= */
.pb-block {
	padding-top: 25px;
	padding-bottom: 25px;
}
.pb-cover,
.pb-video-cover {
	padding-top: 0;
	padding-bottom: 0;
}

/* =========================================================================
   Enotna barva in teža VSEH naslovov blokov (smaragdna, ne krepko).
   ========================================================================= */
.pb-h1-title,
.pb-image-text-title,
.pb-counters-title,
.pb-icons-title,
.pb-gallery-title,
.pb-cta-title,
.pb-iframe-title,
.pb-text .user_style h1,
.pb-text .user_style h2,
.pb-text .user_style h3,
.pb-image-text-body h1,
.pb-image-text-body h2,
.pb-image-text-body h3 {
	color: #15A89A !important;
	font-weight: 400 !important;
}

/* =========================================================================
   Mehko scroll-razkrivanje sekcij. Skrito stanje velja LE ko je JS aktiven
   (html.reveal-on), sicer ostane vse vidno. Hero (cover/video) se ne skriva.
   ========================================================================= */
.reveal-on .pb-block.animate:not(.pb-cover):not(.pb-video-cover) {
	opacity: 0;
	transform: none;
	transition: opacity .25s ease;
	will-change: opacity;
}
.reveal-on .pb-block.animate.is-in:not(.pb-cover):not(.pb-video-cover) {
	opacity: 1;
}
/* rahel zamik notranjih elementov (stagger) za bolj 'awwwards' obcutek */
.reveal-on .pb-block.animate.is-in .pb-counters-item,
.reveal-on .pb-block.animate.is-in .pb-icons-item,
.reveal-on .pb-block.animate.is-in .pb-gallery-item {
	animation: pbStagger .3s ease-out backwards;
}
.reveal-on .pb-block.animate.is-in .pb-counters-item:nth-child(2),
.reveal-on .pb-block.animate.is-in .pb-icons-item:nth-child(2) { animation-delay: .03s; }
.reveal-on .pb-block.animate.is-in .pb-counters-item:nth-child(3),
.reveal-on .pb-block.animate.is-in .pb-icons-item:nth-child(3) { animation-delay: .06s; }
.reveal-on .pb-block.animate.is-in .pb-counters-item:nth-child(4),
.reveal-on .pb-block.animate.is-in .pb-icons-item:nth-child(4) { animation-delay: .09s; }
.reveal-on .pb-block.animate.is-in .pb-counters-item:nth-child(n+5),
.reveal-on .pb-block.animate.is-in .pb-icons-item:nth-child(n+5) { animation-delay: .12s; }
@keyframes pbStagger {
	from { opacity: 0; }
	to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.reveal-on .pb-block.animate { opacity: 1 !important; transform: none !important; transition: none; }
	.reveal-on .pb-block.animate.is-in .pb-counters-item,
	.reveal-on .pb-block.animate.is-in .pb-icons-item,
	.reveal-on .pb-block.animate.is-in .pb-gallery-item { animation: none; }
}

/* =========================================================================
   GUMBI (premium): več gumbov, ikona + 3 efekti (fill / shine / glow).
   ========================================================================= */
.pb-btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 24px; }
.pb-btn {
	position: relative; overflow: hidden;
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 30px; border-radius: 40px;
	font-family: 'Marcellus', 'Fira Sans', serif; font-size: 16px; letter-spacing: 1px;
	text-decoration: none; cursor: pointer;
	border: 1.5px solid #15A89A; background: #15A89A; color: #fff;
	transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
	z-index: 0;
}
.pb-btn i { font-size: .95em; }
.pb-btn:hover { color: #fff; }

/* EFEKT: fill (drsni zalivni efekt) */
.pb-btn--fill { background: transparent; color: #15A89A; }
.pb-btn--fill::before {
	content: ''; position: absolute; inset: 0; background: #15A89A;
	transform: translateX(-101%); transition: transform .4s ease; z-index: -1;
}
.pb-btn--fill:hover { color: #fff; }
.pb-btn--fill:hover::before { transform: translateX(0); }

/* EFEKT: shine (svetlobni odsev čez gumb) */
.pb-btn--shine::after {
	content: ''; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
	background: linear-gradient(110deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: skewX(-18deg); transition: left .6s ease; pointer-events: none;
}
.pb-btn--shine:hover::after { left: 150%; }

/* EFEKT: glow (žareč dvig) */
.pb-btn--glow { box-shadow: 0 6px 18px rgba(21, 168, 154, .35); }
.pb-btn--glow:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(21, 168, 154, .58); }

/* gumbi na heroju (cover/video): fill = bel obris -> belo polnilo */
.pb-video-cta .pb-btn--fill,
.pb-cover-content .pb-btn--fill { border-color: #fff; color: #fff; }
.pb-video-cta .pb-btn--fill::before,
.pb-cover-content .pb-btn--fill::before { background: #fff; }
.pb-video-cta .pb-btn--fill:hover,
.pb-cover-content .pb-btn--fill:hover { color: #15A89A; }

/* =========================================================================
   MOBILE swipe carousel + indikatorji (pike) za galerijo (mozaik) in ikone
   ========================================================================= */
.pb-dots { display: none; justify-content: center; gap: 8px; margin-top: 16px; }
.pb-dots span {
	width: 8px; height: 8px; border-radius: 50%;
	background: rgba(21, 168, 154, .28); transition: .25s ease; cursor: pointer;
}
.pb-dots span.act { background: #15A89A; transform: scale(1.3); }
/* coverflow (slider s puščicami) ima pike vedno - tudi na namizju */
.pb-cf-dots { display: flex; margin-top: 18px; }

@media (max-width: 768px) {
	.pb-dots { display: flex; }

	/* galerija MOZAIK -> vodoravni swipe s snap */
	.pb-gallery--mozaik .pb-gallery-mozaik {
		column-count: unset !important;
		display: flex;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		padding-bottom: 2px;
	}
	.pb-gallery--mozaik .pb-gallery-mozaik::-webkit-scrollbar { display: none; }
	.pb-gallery--mozaik .pb-gallery-mozaik {
		scroll-padding-left: 0;
	}
	.pb-gallery--mozaik .pb-gallery-mozaik .pb-gallery-img {
		flex: 0 0 86%;
		width: 86%;
		margin: 0;
		height: 250px;
		object-fit: cover;
		scroll-snap-align: start;   /* prva slika poravnana levo (ne centrirana) */
		transform: none !important;   /* brez hover-dviga na touch */
	}

	/* IKONE -> swipe s snap */
	.pb-icons-row { scroll-snap-type: x mandatory; }
	.pb-icon-item { scroll-snap-align: center; }

	/* na mobilnem skrij puščice galerije (uporabi se swipe + pike) */
	.pb-cf-arrow { display: none !important; }
}

/* =========================================================================
   MOBILE hero video: ležeč (16:9) video v pokončnem heroju -> prikaži CEL
   okvir (contain) + zabrisano ozadje (blurred backdrop) zapolni preostalo.
   ========================================================================= */
/* živo zabrisano video ozadje (isti vir) - privzeto skrito (namizje nespremenjeno) */
.pb-video-blur {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: blur(7px) brightness(.85);
	transform: scale(1.12);
	pointer-events: none;
	display: none;
}
@media (max-width: 768px) {
	/* fallback ozadje (YouTube / brez blur-videa) */
	.pb-video-bg::before {
		content: '';
		position: absolute;
		inset: -30px;
		background: inherit;
		background-color: #0e2e2b;
		background-size: cover;
		background-position: center;
		filter: blur(24px) brightness(.78);
		transform: scale(1.05);
	}
	.pb-video-blur { display: block; }

	/* hero = dejanski viewport (da je video na SREDINI ekrana, brez 100vh napake z naslovno vrstico) */
	.pb-video-cover, .pb-cover { min-height: 100svh; min-height: 100dvh; }

	/* spredaj: video od roba do roba + 5% čez vsako stran (110%) -> večji */
	.pb-video-file {
		width: 110%;
		height: auto;
		aspect-ratio: 16 / 9;
		max-height: 82vh;
		object-fit: cover;
	}
	/* YouTube: enako - 16:9 + 5% čez vsako stran */
	.pb-video-yt {
		width: 110vw;
		height: 61.875vw;
		min-height: 0;
		min-width: 0;
	}
}

/* =========================================================================
   Scroll indikator - elegantna animirana puščica (zaobljeni chevroni, SVG)
   Dvignjen nad iPhone vrstico (safe-area-inset-bottom).
   ========================================================================= */
.pb-scroll-hint {
	position: absolute;
	left: 50%;
	bottom: 34px;
	bottom: calc(38px + env(safe-area-inset-bottom, 0px));
	transform: translateX(-50%);
	z-index: 4;
	/* reset gumba + klikljivost (prej je bil div brez klika) */
	-webkit-appearance: none;
	appearance: none;
	border: 0;
	background: none;
	padding: 8px 14px;
	margin: 0;
	cursor: pointer;
	pointer-events: auto;
	animation: pbScrollFloat 2.6s ease-in-out infinite;
}
.pb-scroll-hint:focus-visible {
	outline: 2px solid rgba(255, 255, 255, .85);
	outline-offset: 4px;
	border-radius: 8px;
}
.pb-scroll-hint:hover svg { opacity: .85; }
.pb-scroll-hint svg {
	display: block;
	width: 34px;
	height: 42px;
	filter: drop-shadow(0 3px 10px rgba(0, 0, 0, .45));
	transition: opacity .25s ease;
}
.pb-scroll-hint path {
	fill: none;
	stroke: #fff;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.pb-scroll-hint .c1 { animation: pbChev 1.9s ease-in-out infinite; }
.pb-scroll-hint .c2 { animation: pbChev 1.9s ease-in-out infinite .24s; }
@keyframes pbChev {
	0%   { opacity: 0; }
	35%  { opacity: 1; }
	65%  { opacity: .35; }
	100% { opacity: 0; }
}
@keyframes pbScrollFloat {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50%      { transform: translateX(-50%) translateY(9px); }
}
@media (prefers-reduced-motion: reduce) {
	.pb-scroll-hint { animation: none; }
	.pb-scroll-hint .c1, .pb-scroll-hint .c2 { animation: none; opacity: .8; }
}

/* =========================================================================
   Blok: Doživetja & dogodki (experiences) - kartice z ikono + gumb povpraševanja
   ========================================================================= */
.pb-exp {
	padding: clamp(48px, 7vw, 82px) 0;
	text-align: center;
	background: #f5f8f7;
}
.pb-exp-title { margin-bottom: 8px; }
.pb-exp-sub { margin: 0 auto 14px; max-width: 760px; }

.pb-exp-group {
	position: relative;
	margin: 40px 0 6px;
	font-family: 'Marcellus', 'Fira Sans', serif;
	font-size: clamp(19px, 3vw, 25px);
	color: #2d3236;
	font-weight: 600;
}
.pb-exp-group span {
	position: relative;
	display: inline-block;
	padding: 0 18px;
}
.pb-exp-group span::before,
.pb-exp-group span::after {
	content: '';
	position: absolute;
	top: 50%;
	width: clamp(20px, 6vw, 60px);
	height: 2px;
	background: linear-gradient(90deg, transparent, #57CFC4);
}
.pb-exp-group span::before { right: 100%; transform: scaleX(-1); }
.pb-exp-group span::after  { left: 100%; }
.pb-exp-group-sub {
	color: #5b6166;
	font-size: 14.5px;
	margin: 0 auto 26px;
	max-width: 680px;
}

.pb-exp-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 20px;
	margin-top: 22px;
	text-align: left;
}
.pb-exp-card {
	background: #fff;
	border: 1px solid #e3eae8;
	border-radius: 16px;
	padding: 24px 22px 22px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 6px 20px rgba(21, 168, 154, .06);
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.pb-exp-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(21, 168, 154, .16);
	border-color: rgba(21, 168, 154, .4);
}
.pb-exp-ico {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(21, 168, 154, .10);
	border: 1px solid rgba(21, 168, 154, .30);
	margin-bottom: 14px;
}
.pb-exp-ico i { font-size: 24px; color: #15A89A; }
.pb-exp-meta {
	font-size: 12px;
	letter-spacing: .6px;
	text-transform: uppercase;
	color: #15A89A;
	font-weight: 600;
	margin-bottom: 4px;
}
.pb-exp-card-title {
	font-family: 'Marcellus', 'Fira Sans', serif;
	font-size: 18.5px;
	color: #2d3236;
	margin: 0 0 8px;
	line-height: 1.25;
}
.pb-exp-card-desc {
	font-size: 14px;
	line-height: 1.55;
	color: #5b6166;
	margin: 0 0 18px;
	flex: 1 1 auto;
}
.pb-exp-inq {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	border: 1.5px solid #15A89A;
	background: transparent;
	color: #15A89A;
	font-family: 'Marcellus', 'Fira Sans', serif;
	font-size: 14px;
	letter-spacing: .5px;
	padding: 9px 18px;
	border-radius: 30px;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}
.pb-exp-inq:hover { background: #15A89A; color: #fff; transform: translateY(-2px); }
.pb-exp-inq i { font-size: .95em; }

/* ---- Povpraševalni modal ---- */
html.pb-exp-lock { overflow: hidden; }
.pb-exp-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: none;
}
.pb-exp-modal.is-open { display: block; }
.pb-exp-modal-ovl {
	position: absolute;
	inset: 0;
	background: rgba(12, 18, 16, .55);
	backdrop-filter: blur(2px);
}
.pb-exp-modal-box {
	position: relative;
	z-index: 2;
	width: 92%;
	max-width: 560px;
	margin: 6vh auto 0;
	max-height: 88vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 18px;
	padding: 30px 28px 28px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
	text-align: left;
	animation: pbExpIn .3s ease;
}
@keyframes pbExpIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.pb-exp-modal-x {
	position: absolute;
	top: 12px;
	right: 16px;
	border: 0;
	background: none;
	font-size: 30px;
	line-height: 1;
	color: #9aa3a0;
	cursor: pointer;
}
.pb-exp-modal-x:hover { color: #15A89A; }
.pb-exp-modal-h {
	font-family: 'Marcellus', 'Fira Sans', serif;
	font-size: 24px;
	color: #15A89A;
	margin: 0 0 4px;
}
.pb-exp-modal-for { font-size: 14px; color: #5b6166; margin: 0 0 18px; }
.pb-exp-modal-for strong { color: #2d3236; }

.pb-exp-form .pb-exp-frow {
	display: flex;
	gap: 14px;
	margin-bottom: 12px;
}
.pb-exp-form label {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	font-size: 13px;
	color: #4a4f53;
	gap: 5px;
}
.pb-exp-ffull { display: flex; flex-direction: column; margin-bottom: 14px; }
.pb-exp-form input,
.pb-exp-form textarea {
	font-family: 'Fira Sans', sans-serif;
	font-size: 15px;
	padding: 11px 13px;
	border: 1px solid #d7dddb;
	border-radius: 10px;
	background: #fbfdfc;
	color: #2d3236;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.pb-exp-form input:focus,
.pb-exp-form textarea:focus {
	outline: none;
	border-color: #15A89A;
	box-shadow: 0 0 0 3px rgba(21, 168, 154, .12);
}
.pb-exp-form input.is-valid {
	border-color: #2faa6a;
	background: #f4fbf7 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232faa6a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat right 11px center / 16px 16px;
	padding-right: 36px;
}
.pb-exp-form input.is-invalid { border-color: #d9534f; background-color: #fdf6f6; }
.pb-exp-form textarea { resize: vertical; min-height: 70px; }

.pb-exp-form-msg { font-size: 13.5px; margin: 4px 0 12px; min-height: 18px; color: #5b6166; }
.pb-exp-form-msg.err { color: #d9534f; }
.pb-exp-submit { width: 100%; justify-content: center; margin-top: 4px; }

.pb-exp-thanks { display: none; text-align: center; padding: 14px 6px; }
.pb-exp-thanks.is-on { display: block; }
.pb-exp-thanks i { font-size: 52px; color: #2faa6a; margin-bottom: 14px; }
.pb-exp-thanks p { font-size: 16px; color: #2d3236; margin: 0 0 20px; line-height: 1.5; }

@media (max-width: 560px) {
	.pb-exp-form .pb-exp-frow { flex-direction: column; gap: 12px; }
	.pb-exp-modal-box { padding: 26px 18px 22px; margin-top: 4vh; }
}
