/* ==================================================================
   E5CMS 8 - DEFAULT TEMPLATE
   Neutralni predlozak za nove webove. Za novog klijenta promijeni
   samo varijable u :root (boje, font, sirina), ostalo ne diraj.
   ================================================================== */

:root {
	--brand: #1f5fa8;          /* glavna boja klijenta */
	--brand-dark: #174a84;     /* hover / tamnija nijansa */
	--brand-contrast: #ffffff; /* tekst na brand pozadini */

	--text: #1d2329;
	--text-muted: #5b6670;
	--bg: #ffffff;
	--bg-alt: #f4f6f8;
	--border: #e1e5ea;
	--footer-bg: #1d2329;
	--footer-text: #c9d0d6;

	--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--max-width: 1200px;
	--radius: 6px;
	--gap: 24px;
}

/* ---------- RESET / OSNOVA ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 17px;
	line-height: 1.65;
	color: var(--text);
	background: var(--bg);
}

img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }

a { color: var(--brand); text-decoration: none; transition: color .15s; }
a:hover { color: var(--brand-dark); text-decoration: underline; }

h1, h2, h3, h4, h5, h6 { line-height: 1.25; margin: 1.4em 0 .5em; font-weight: 700; color: var(--text); }
h1 { font-size: 2.1rem; margin-top: 0; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.1rem; }
p { margin: 0 0 1em; }

ul, ol { padding-left: 1.3em; }

table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; }
th, td { padding: 10px 12px; border: 1px solid var(--border); text-align: left; vertical-align: top; }
th { background: var(--bg-alt); }

hr { border: 0; border-top: 1px solid var(--border); margin: 2em 0; }

blockquote {
	margin: 0 0 1.5em;
	padding: 12px 20px;
	border-left: 4px solid var(--brand);
	background: var(--bg-alt);
}

/* ---------- LAYOUT ---------- */
.wrapper { min-height: 100vh; display: flex; flex-direction: column; }

.container {
	width: 100%;
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 20px;
}

.main_container { flex: 1 0 auto; padding: 48px 0 64px; }

/* ---------- TOP BAR (kontakt + drustvene mreze) ---------- */
.top_bar {
	background: var(--bg-alt);
	border-bottom: 1px solid var(--border);
	font-size: 14px;
	color: var(--text-muted);
}
.top_bar .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 40px; }
.top_bar:not(:has(a)) { display: none; } /* sakrij ako nema kontakata ni mreza */

.header_contacts_data div { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.header_contacts_data p { margin: 0; }
.header_contacts_data a { color: var(--text); }

.header_social_cnt ul { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.header_social_cnt img { width: 22px; height: 22px; opacity: .75; transition: opacity .15s; }
.header_social_cnt img:hover { opacity: 1; }

/* ---------- HEADER ---------- */
.site_header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--bg);
	border-bottom: 1px solid var(--border);
}
.site_header .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; }

.logo { display: flex; align-items: center; flex-shrink: 0; }
.logo img { max-height: 52px; width: auto; }
.logo:hover { text-decoration: none; }

/* ---------- GLAVNI IZBORNIK (zone1) ---------- */
.main_nav ul { list-style: none; margin: 0; padding: 0; }
.main_nav > ul,
.main_nav > div > ul { display: flex; flex-wrap: wrap; gap: 4px; }
.main_nav li { position: relative; }
.main_nav a {
	display: block;
	padding: 10px 14px;
	color: var(--text);
	font-weight: 600;
	font-size: 15px;
	border-radius: var(--radius);
}
.main_nav a:hover, .main_nav a.active { color: var(--brand); background: var(--bg-alt); text-decoration: none; }

/* podizbornik */
.main_nav ul ul {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	padding: 8px;
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: 0 10px 30px rgba(0,0,0,.08);
	z-index: 10;
}
.main_nav li:hover > ul, .main_nav li:focus-within > ul { display: block; }
.main_nav ul ul a { font-weight: 500; }

/* mobilni izbornik (bez JS-a) */
.nav_toggle { display: none; }
.nav_toggle_label { display: none; cursor: pointer; padding: 10px; }
.nav_toggle_label span,
.nav_toggle_label span::before,
.nav_toggle_label span::after {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--text);
	position: relative;
	transition: transform .2s;
}
.nav_toggle_label span::before, .nav_toggle_label span::after { content: ""; position: absolute; }
.nav_toggle_label span::before { top: -7px; }
.nav_toggle_label span::after { top: 7px; }

/* ---------- HERO (naslovnica) ---------- */
.hero {
	position: relative;
	background: var(--brand);
	color: var(--brand-contrast);
	overflow: hidden;
}
.hero_image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .35; }
.hero .container { position: relative; padding-top: 88px; padding-bottom: 88px; }
.hero_title { font-size: 2.6rem; font-weight: 700; line-height: 1.2; margin: 0 0 .3em; color: inherit; }
.hero_title:empty, .hero_slogan:empty { display: none; }
.hero_slogan { font-size: 1.2rem; margin: 0; opacity: .9; max-width: 680px; }

/* ---------- SADRZAJ ---------- */
.content article,
.basic_site_inner_content article { margin-bottom: 2.5em; }
.content article:last-of-type,
.basic_site_inner_content article:last-of-type { margin-bottom: 0; }

.page_image { margin: 0 0 32px; }
.page_image img { width: 100%; border-radius: var(--radius); }
.page_image:empty { display: none; }

/* ---------- OBRASCI ---------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"],
input[type="number"], input[type="search"], input[type="date"], select, textarea {
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	font: inherit;
	font-size: 16px;
	color: var(--text);
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(31,95,168,.15); }
textarea { min-height: 140px; resize: vertical; }
label { display: block; margin: 0 0 6px; font-weight: 600; font-size: 15px; }

button, input[type="submit"], input[type="button"], .button, .read_more {
	display: inline-block;
	padding: 11px 22px;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--brand-contrast);
	background: var(--brand);
	border: 0;
	border-radius: var(--radius);
	cursor: pointer;
	transition: background .15s;
}
button:hover, input[type="submit"]:hover, input[type="button"]:hover, .button:hover, .read_more:hover {
	background: var(--brand-dark);
	color: var(--brand-contrast);
	text-decoration: none;
}

/* ---------- PORUKE CMS-a ---------- */
.error, .errors, .msg_error { padding: 12px 16px; margin: 0 0 1em; color: #8a1c1c; background: #fdecec; border-radius: var(--radius); }
.success, .msg_success { padding: 12px 16px; margin: 0 0 1em; color: #1d5e2a; background: #e9f7ec; border-radius: var(--radius); }

/* ---------- GALERIJA / LISTE ---------- */
.gallery, .gallery_list, .news_list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--gap); list-style: none; padding: 0; }
.gallery img, .gallery_list img { border-radius: var(--radius); }

.search_result { list-style: none; padding: 0; }
.search_result li { padding: 16px 0; border-bottom: 1px solid var(--border); }

/* ---------- FOOTER ---------- */
.site_footer { background: var(--footer-bg); color: var(--footer-text); font-size: 15px; }
.site_footer a { color: #fff; }
.site_footer h2, .site_footer h3, .site_footer h4 { color: #fff; margin-top: 0; }

.footer_top .container { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; padding-top: 48px; padding-bottom: 40px; }
.master_data p { margin: 0; }

.footer_zone ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 24px; }
.footer_zone a { color: var(--footer-text); }
.footer_zone a:hover, .footer_zone a.active { color: #fff; }
.footer_zone ul ul { display: none; }

.footer_copyright { border-top: 1px solid rgba(255,255,255,.1); font-size: 14px; }
.footer_copyright .container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-top: 18px; padding-bottom: 18px; }
.footer_copyright p { margin: 0; }

/* ---------- GDPR stranica ---------- */
.gdpr_page .main_container { padding-top: 40px; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 960px) {
	.footer_top .container { grid-template-columns: 1fr; gap: 24px; }
	.hero .container { padding-top: 64px; padding-bottom: 64px; }
	.hero_title { font-size: 2.1rem; }
}

@media (max-width: 860px) {
	.site_header .container { flex-wrap: wrap; min-height: 64px; }
	.nav_toggle_label { display: block; }
	.main_nav { display: none; width: 100%; padding-bottom: 12px; }
	.nav_toggle:checked ~ .main_nav { display: block; }
	.main_nav > ul, .main_nav > div > ul { flex-direction: column; gap: 0; }
	.main_nav ul ul { display: block; position: static; box-shadow: none; border: 0; padding: 0 0 0 16px; min-width: 0; }
	.top_bar .container { flex-direction: column; align-items: flex-start; padding-top: 8px; padding-bottom: 8px; }
}

@media (max-width: 600px) {
	body { font-size: 16px; }
	h1 { font-size: 1.7rem; }
	h2 { font-size: 1.35rem; }
	.hero_title { font-size: 1.8rem; }
	.main_container { padding: 32px 0 48px; }
	.footer_copyright .container { flex-direction: column; }
}

/* ---------- PRINT ---------- */
@media print {
	.top_bar, .site_header nav, .nav_toggle_label, .site_footer, .cookie_gdpr { display: none !important; }
	body { font-size: 12pt; color: #000; }
}
