/*
Theme Name:   IBD — Hello Elementor Child
Theme URI:    https://ibd-projektiranje.si
Description:  Child tema za ibd-projektiranje.si. Vsebuje lasten CSS in dizajn tokene IBD. Nadrejena tema Hello Elementor se posodablja neodvisno.
Author:       IBD projektiranje d.o.o.
Template:     hello-elementor
Version:      0.1.0
Text Domain:  ibd-hello-child
*/

/* Lasten CSS pišemo sem. Tokeni so v assets/css/tokens.css. */

/* --- Dostopnost: focus mora biti vedno viden (Claude.md, razdelek 10) --- */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--ibd-primary);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Skip link — prva stvar, ki jo doseže tipkovnica. */
.ibd-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	padding: 12px 20px;
	background: var(--ibd-primary);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	border-radius: 0 0 var(--ibd-radius-btn) 0;
}

.ibd-skip-link:focus {
	left: 0;
}

/* --- Povezave v besedilu ---
   Nadrejena tema jih izriše v svoji privzeti barvi, kar povozi dizajn sistem.
   Tu jih vrnemo na IBD modro. Sekundarna modra #4A6CF7 se NE uporablja —
   ima kontrast 4,40:1 in ne dosega zahtevanih 4,5:1 za besedilo. */
.elementor-widget-text-editor a,
.elementor-widget-theme-post-content a,
.ibd-prose a {
	color: var(--ibd-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--ibd-transition-color);
}

.elementor-widget-text-editor a:hover,
.elementor-widget-theme-post-content a:hover,
.ibd-prose a:hover {
	color: var(--ibd-dark);
	text-decoration-thickness: 2px;
}

/* --- Povezave v footerju ---
   Enako vedenje kot meni v headerju: v mirovanju barva besedila,
   ob prehodu z miško IBD modra. Podčrtaj se pokaže šele ob prehodu,
   da footer ostane umirjen, povezave pa ostanejo prepoznavne. */
.elementor-location-footer .elementor-widget-text-editor a {
	color: var(--ibd-text);
	text-decoration: none;
	transition: color var(--ibd-transition-color);
}

.elementor-location-footer .elementor-widget-text-editor a:hover,
.elementor-location-footer .elementor-widget-text-editor a:focus-visible {
	color: var(--ibd-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Koraki sodelovanja ---
   Navpična časovnica po referenčni postavitvi: ob levem robu teče črta,
   ki se ob drsenju polni, koraki pa se aktivirajo eden za drugim.
   Neaktivni koraki so zbledeli, aktivni polni. */
.ibd-proces {
	position: relative;
	padding-left: 72px;
}

/* Črta ob korakih. */
.ibd-proces__crta {
	position: absolute;
	top: 12px;
	bottom: 12px;
	left: 27px;
	width: 2px;
	background: var(--ibd-border);
}

.ibd-proces__napredek {
	display: block;
	width: 100%;
	height: 0;
	background: var(--ibd-primary);
	transition: height 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
}

.ibd-proces__korak {
	position: relative;
	padding-bottom: var(--ibd-space-12);
	opacity: 0.35;
	transition: opacity 500ms ease;
}

.ibd-proces__korak:last-child {
	padding-bottom: 0;
}

.ibd-proces__korak.je-aktiven {
	opacity: 1;
}

/* Oštevilčen krog na črti. */
.ibd-proces__stevilka {
	position: absolute;
	top: 0;
	left: -72px;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 2px solid var(--ibd-border);
	background: var(--ibd-card);
	color: var(--ibd-text-muted);
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-small);
	font-weight: var(--ibd-fw-semibold);
	transition: border-color 400ms ease, background-color 400ms ease, color 400ms ease;
}

.ibd-proces__korak.je-aktiven .ibd-proces__stevilka {
	border-color: var(--ibd-primary);
	background: var(--ibd-primary);
	color: #fff;
}

.ibd-proces__naslov {
	margin: 0 0 var(--ibd-space-3);
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-h3);
	font-weight: var(--ibd-fw-semibold);
	line-height: 1.3;
	color: var(--ibd-text);
}

.ibd-proces__opis {
	margin: 0;
	max-width: 62ch;
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-body);
	line-height: var(--ibd-lh-body);
	color: var(--ibd-text-muted);
}

/* Slika ob korakih ostane na mestu, dokler se koraki odvijajo. */
.ibd-proces-slika {
	position: sticky;
	top: 120px;
}

/* Brez izreza — slika se prikaže v svojem razmerju, da se nič ne odreže. */
.ibd-proces-slika img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--ibd-radius-card);
}

@media (max-width: 767px) {
	.ibd-proces {
		padding-left: 56px;
	}

	.ibd-proces__crta {
		left: 21px;
	}

	.ibd-proces__stevilka {
		left: -56px;
		width: 44px;
		height: 44px;
	}

	.ibd-proces-slika {
		position: static;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ibd-proces__korak,
	.ibd-proces__stevilka,
	.ibd-proces__napredek {
		transition: none;
	}
}

/* --- Družbena omrežja: črki namesto znamčnih ikon ---
   Modra črka v modrem okvirju. Ob prehodu z miško le rahel modri poudarek,
   ne polna zapolnitev — skladno s Corporate Minimal. */
.ibd-druzbena {
	display: flex;
	gap: var(--ibd-space-3);
	margin-top: var(--ibd-space-2);
}

.ibd-druzbena__povezava {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* 44 px je najmanjši priporočeni zadetek dotika. */
	width: 44px;
	height: 44px;
	border: 1px solid var(--ibd-primary);
	border-radius: var(--ibd-radius-btn);
	color: var(--ibd-primary);
	font-family: var(--ibd-font);
	font-size: 16px;
	font-weight: var(--ibd-fw-bold);
	line-height: 1;
	text-decoration: none;
	transition:
		background-color var(--ibd-transition-color),
		color var(--ibd-transition-color),
		border-color var(--ibd-transition-color);
}

.ibd-druzbena__povezava:hover {
	background-color: rgba(22, 23, 165, 0.08);
	color: var(--ibd-dark);
	border-color: var(--ibd-dark);
	text-decoration: none;
}

.ibd-druzbena__povezava:focus-visible {
	outline: 2px solid var(--ibd-primary);
	outline-offset: 2px;
}

/* --- Posamezna referenca ---
   Levo naslov in opis, desno podatki, med njima navpična črta — kot na
   referenčni postavitvi. Na mobilniku črta postane vodoravna nad podatki. */
.elementor-element-ibdrefpodatki {
	border-left: 1px solid var(--ibd-border);
	padding-left: var(--ibd-space-12);
}

.ibd-kratek-opis {
	margin: 0;
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-body-lg);
	line-height: var(--ibd-lh-body);
	color: var(--ibd-text-muted);
	max-width: 68ch;
}

/* Galerija, ki jo naročnik vstavi v polje z vsebino. */
.ibd-referenca-galerija .wp-block-gallery,
.ibd-referenca-galerija .gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--ibd-space-6);
	margin: 0;
}

.ibd-referenca-galerija .wp-block-image,
.ibd-referenca-galerija .gallery-item {
	margin: 0;
	width: auto !important;
}

.ibd-referenca-galerija img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--ibd-radius-card);
}

@media (max-width: 1024px) {
	.ibd-referenca-galerija .wp-block-gallery,
	.ibd-referenca-galerija .gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.elementor-element-ibdrefpodatki {
		border-left: none;
		border-top: 1px solid var(--ibd-border);
		padding-left: 0;
		padding-top: var(--ibd-space-8);
	}

	.ibd-referenca-galerija .wp-block-gallery,
	.ibd-referenca-galerija .gallery {
		grid-template-columns: 1fr;
	}
}

/* --- Stranski stolpec z arhivom novic ---
   Ostane na mestu med branjem članka; na mobilniku se postavi pod besedilo. */
.ibd-arhiv {
	position: sticky;
	top: 120px;
	padding: var(--ibd-space-8);
	background: var(--ibd-surface);
	border: 1px solid var(--ibd-border);
	border-radius: var(--ibd-radius-card);
}

.ibd-arhiv__naslov {
	margin: 0 0 var(--ibd-space-5);
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-h4);
	font-weight: var(--ibd-fw-semibold);
	line-height: 1.3;
	color: var(--ibd-text);
}

.ibd-arhiv__seznam {
	list-style: none;
	margin: 0 0 var(--ibd-space-5);
	padding: 0;
	display: grid;
	gap: var(--ibd-space-4);
}

.ibd-arhiv__postavka {
	display: grid;
	gap: 2px;
	padding-bottom: var(--ibd-space-4);
	border-bottom: 1px solid var(--ibd-border);
}

.ibd-arhiv__postavka:last-child {
	padding-bottom: 0;
	border-bottom: none;
}

.ibd-arhiv__povezava {
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-body);
	font-weight: var(--ibd-fw-medium);
	line-height: 1.45;
	color: var(--ibd-text);
	text-decoration: none;
	transition: color var(--ibd-transition-color);
}

.ibd-arhiv__povezava:hover,
.ibd-arhiv__povezava:focus-visible {
	color: var(--ibd-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.ibd-arhiv__datum {
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-small);
	color: var(--ibd-text-muted);
}

.ibd-arhiv__vse {
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-body);
	font-weight: var(--ibd-fw-semibold);
	color: var(--ibd-primary);
	text-decoration: none;
	transition: color var(--ibd-transition-color);
}

.ibd-arhiv__vse:hover,
.ibd-arhiv__vse:focus-visible {
	color: var(--ibd-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

@media (max-width: 767px) {
	.ibd-arhiv {
		position: static;
		padding: var(--ibd-space-6);
	}
}

/* --- Povezava "Preberi" v arhivih ---
   Poenotena s povezavami v besedilu (npr. "Več o storitvi" na domači strani).

   Selektor mora vključevati .elementor-widget-archive-posts in oznako a,
   sicer Elementorjevo pravilo z večjo specifičnostjo prevlada in povezavi
   vsili barvo ter pisavo iz globalne "accent" nastavitve. */
.elementor-widget-archive-posts a.elementor-post__read-more,
.elementor-widget-posts a.elementor-post__read-more,
.elementor-post__read-more {
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-body);
	font-weight: var(--ibd-fw-regular);
	color: var(--ibd-primary);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--ibd-transition-color);
}

.elementor-widget-archive-posts a.elementor-post__read-more:hover,
.elementor-widget-posts a.elementor-post__read-more:hover,
.elementor-post__read-more:hover,
.elementor-post__read-more:focus-visible {
	color: var(--ibd-dark);
	text-decoration-thickness: 2px;
}

/* --- Mreža referenc ---
   Postavitev po referenčni temi: naslov nad sliko, kategorija kot oznaka
   čez sliko, blaga povečava ob prehodu z miško (transform 1.05s ease). */
.ibd-reference-mreza {
	display: grid;
	grid-template-columns: repeat(var(--ibd-stolpci, 3), minmax(0, 1fr));
	gap: var(--ibd-space-8);
	width: 100%;
}

@media (max-width: 1024px) {
	.ibd-reference-mreza {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.ibd-reference-mreza {
		grid-template-columns: 1fr;
		gap: var(--ibd-space-6);
	}
}

.ibd-referenca__naslov {
	margin: 0 0 var(--ibd-space-4);
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-h4);
	font-weight: var(--ibd-fw-semibold);
	line-height: 1.3;
}

.ibd-referenca__naslov a {
	color: var(--ibd-text);
	text-decoration: none;
	transition: color var(--ibd-transition-color);
}

.ibd-referenca__naslov a:hover,
.ibd-referenca__naslov a:focus-visible {
	color: var(--ibd-primary);
}

.ibd-referenca__slika {
	position: relative;
	overflow: hidden;
	border-radius: var(--ibd-radius-card);
	background: var(--ibd-surface);
}

.ibd-referenca__slika img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 7 / 5;
	object-fit: cover;
	transition: transform 1.05s ease;
}

.ibd-referenca:hover .ibd-referenca__slika img {
	transform: scale(1.06);
}

/* Oznaka vrste objekta — črn pravokotnik čez sliko, zgoraj levo. */
.ibd-referenca__oznaka {
	position: absolute;
	top: var(--ibd-space-4);
	left: var(--ibd-space-4);
	padding: 6px 12px;
	background: var(--ibd-text);
	color: #fff;
	font-family: var(--ibd-font);
	font-size: var(--ibd-fs-small);
	font-weight: var(--ibd-fw-semibold);
	letter-spacing: 0.02em;
	line-height: 1.4;
}

@media (prefers-reduced-motion: reduce) {
	.ibd-referenca__slika img,
	.ibd-referenca:hover .ibd-referenca__slika img {
		transition: none;
		transform: none;
	}
}

/* --- Štiri storitve v vrsti, ločene s tankimi črtami ---
   Kot na referenčni postavitvi: celice se stikajo, med njimi je 1 px črta.
   Na mobilniku se zložijo pod sebe in navpične črte postanejo vodoravne.

   Ciljamo po Elementor ID-ju kontejnerja (ibdstormreza), ker Elementor
   pri kontejnerjih ne izpiše lastnih razredov iz _css_classes. */
.elementor-element-ibdstormreza {
	border-top: 1px solid var(--ibd-border);
	border-bottom: 1px solid var(--ibd-border);
}

.elementor-element-ibdstormreza > .e-con {
	border-left: 1px solid var(--ibd-border);
}

.elementor-element-ibdstormreza > .e-con:first-child {
	border-left: none;
}

/* Tablica: dva stolpca, zato črta odpade pri tretji celici. */
@media (max-width: 1024px) and (min-width: 768px) {
	.elementor-element-ibdstormreza > .e-con:nth-child(3) {
		border-left: none;
	}

	.elementor-element-ibdstormreza > .e-con:nth-child(n + 3) {
		border-top: 1px solid var(--ibd-border);
	}
}

@media (max-width: 767px) {
	.elementor-element-ibdstormreza > .e-con {
		border-left: none;
		border-top: 1px solid var(--ibd-border);
	}

	.elementor-element-ibdstormreza > .e-con:first-child {
		border-top: none;
	}
}

/* --- Arhitekturna risba z razkritjem ---
   Povzeto po referenčni strani, kjer je učinek izveden z animacijo clip-path:
   slika se iz sredine razpre navzven, 3 s, zamik 0,2 s, mehko iztekanje.

   Slika zapolni svoj stolpec (width:100%, kot na referenci). Zgornje omejitve
   širine ni — stolpec je ožji od izvorne slike, zato se ne razteguje.
   Razred "je-viden" doda assets/js/ibd-reveal.js ob prihodu v vidno polje. */
.ibd-reveal {
	width: 100%;
	margin-inline: auto;
}

.ibd-reveal img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
	clip-path: inset(0 50% 0 50%);
	will-change: clip-path;
	/* cubic-bezier ustreza GSAP power3.out z referenčne strani */
	transition: clip-path 3s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
}

.ibd-reveal.je-viden img {
	clip-path: inset(0%);
}

/* Brez animacije, če si uporabnik tega ne želi. */
@media (prefers-reduced-motion: reduce) {
	.ibd-reveal img {
		clip-path: inset(0%);
		transition: none;
	}
}

/* --- Ključni podatki reference (shortcode ibd_podatki_reference) --- */
.ibd-podatki {
	margin: 0;
	display: grid;
	gap: var(--ibd-space-4);
}

.ibd-podatki__vrstica {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: var(--ibd-space-4);
	padding-bottom: var(--ibd-space-4);
	border-bottom: 1px solid var(--ibd-border);
}

.ibd-podatki dt {
	margin: 0;
	font-size: var(--ibd-fs-small);
	font-weight: var(--ibd-fw-semibold);
	color: var(--ibd-text-muted);
}

.ibd-podatki dd {
	margin: 0;
	font-size: var(--ibd-fs-body);
	color: var(--ibd-text);
}

/* --- Tehnični podatki (shortcode ibd_tehnicni_podatki) --- */
.ibd-tehnicni {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--ibd-space-3);
}

.ibd-tehnicni li {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ibd-space-2);
	padding-bottom: var(--ibd-space-3);
	border-bottom: 1px solid var(--ibd-border);
}

.ibd-tehnicni__oznaka {
	font-weight: var(--ibd-fw-semibold);
	color: var(--ibd-text-muted);
	min-width: 180px;
}

.ibd-tehnicni__vrednost {
	color: var(--ibd-text);
}

@media (max-width: 767px) {
	.ibd-podatki__vrstica {
		grid-template-columns: 1fr;
		gap: var(--ibd-space-1);
	}

	.ibd-tehnicni__oznaka {
		min-width: 0;
		width: 100%;
	}
}

/* --- Berljivost: omejena dolžina vrstice --- */
.ibd-prose p,
.ibd-prose li {
	max-width: 68ch;
}

/* --- Spoštuj nastavitev uporabnika glede animacij --- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
